Miscellaneous CI fixes (#1447)

* Update Makefile

* django master requires at least python 3.10 now

* Allow customizing options passed to tox -e pre-commit

* py.test -> pytest

* Update ruff

* Fix E721

Do not compare types, use `isinstance()`

* Add back black to dev dependencies

* Pin black and ruff versions
This commit is contained in:
Kien Dang 2023-08-10 01:48:42 +08:00 committed by GitHub
parent db34d2e815
commit 79b4a23ae0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 21 additions and 20 deletions

View File

@ -20,7 +20,7 @@ repos:
hooks: hooks:
- id: black - id: black
- repo: https://github.com/astral-sh/ruff-pre-commit - repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.0.282 rev: v0.0.283
hooks: hooks:
- id: ruff - id: ruff
args: [--fix, --exit-non-zero-on-fix, --show-fixes] args: [--fix, --exit-non-zero-on-fix, --show-fixes]

View File

@ -10,7 +10,7 @@ dev-setup:
.PHONY: tests ## Run unit tests .PHONY: tests ## Run unit tests
tests: tests:
PYTHONPATH=. py.test graphene_django --cov=graphene_django -vv PYTHONPATH=. pytest graphene_django --cov=graphene_django -vv
.PHONY: format ## Format code .PHONY: format ## Format code
format: format:
@ -18,7 +18,7 @@ format:
.PHONY: lint ## Lint code .PHONY: lint ## Lint code
lint: lint:
flake8 graphene_django examples ruff graphene_django examples
.PHONY: docs ## Generate docs .PHONY: docs ## Generate docs
docs: dev-setup docs: dev-setup

View File

@ -27,8 +27,8 @@ def get_form_field_description(field):
@singledispatch @singledispatch
def convert_form_field(field): def convert_form_field(field):
raise ImproperlyConfigured( raise ImproperlyConfigured(
"Don't know how to convert the Django form field {} ({}) " f"Don't know how to convert the Django form field {field} ({field.__class__}) "
"to Graphene type".format(field, field.__class__) "to Graphene type"
) )

View File

@ -83,7 +83,7 @@ class Command(CommandArguments):
def handle(self, *args, **options): def handle(self, *args, **options):
options_schema = options.get("schema") options_schema = options.get("schema")
if options_schema and type(options_schema) is str: if options_schema and isinstance(options_schema, str):
module_str, schema_name = options_schema.rsplit(".", 1) module_str, schema_name = options_schema.rsplit(".", 1)
mod = importlib.import_module(module_str) mod = importlib.import_module(module_str)
schema = getattr(mod, schema_name) schema = getattr(mod, schema_name)

View File

@ -13,8 +13,8 @@ from .types import DictType
@singledispatch @singledispatch
def get_graphene_type_from_serializer_field(field): def get_graphene_type_from_serializer_field(field):
raise ImproperlyConfigured( raise ImproperlyConfigured(
"Don't know how to convert the serializer field {} ({}) " f"Don't know how to convert the serializer field {field} ({field.__class__}) "
"to Graphene type".format(field, field.__class__) "to Graphene type"
) )

View File

@ -160,9 +160,9 @@ class DjangoObjectType(ObjectType):
registry = get_global_registry() registry = get_global_registry()
assert isinstance(registry, Registry), ( assert isinstance(registry, Registry), (
"The attribute registry in {} needs to be an instance of " f"The attribute registry in {cls.__name__} needs to be an instance of "
'Registry, received "{}".' f'Registry, received "{registry}".'
).format(cls.__name__, registry) )
if filter_fields and filterset_class: if filter_fields and filterset_class:
raise Exception("Can't set both filter_fields and filterset_class") raise Exception("Can't set both filter_fields and filterset_class")
@ -175,7 +175,7 @@ class DjangoObjectType(ObjectType):
assert not (fields and exclude), ( assert not (fields and exclude), (
"Cannot set both 'fields' and 'exclude' options on " "Cannot set both 'fields' and 'exclude' options on "
"DjangoObjectType {class_name}.".format(class_name=cls.__name__) f"DjangoObjectType {cls.__name__}."
) )
# Alias only_fields -> fields # Alias only_fields -> fields
@ -214,8 +214,8 @@ class DjangoObjectType(ObjectType):
warnings.warn( warnings.warn(
"Creating a DjangoObjectType without either the `fields` " "Creating a DjangoObjectType without either the `fields` "
"or the `exclude` option is deprecated. Add an explicit `fields " "or the `exclude` option is deprecated. Add an explicit `fields "
"= '__all__'` option on DjangoObjectType {class_name} to use all " f"= '__all__'` option on DjangoObjectType {cls.__name__} to use all "
"fields".format(class_name=cls.__name__), "fields",
DeprecationWarning, DeprecationWarning,
stacklevel=2, stacklevel=2,
) )

View File

@ -26,7 +26,8 @@ tests_require = [
dev_requires = [ dev_requires = [
"ruff", "black==23.7.0",
"ruff==0.0.283",
"pre-commit", "pre-commit",
] + tests_require ] + tests_require

10
tox.ini
View File

@ -1,8 +1,8 @@
[tox] [tox]
envlist = envlist =
py{38,39,310}-django32, py{38,39,310}-django32
py{38,39,310}-django{41,42,main}, py{38,39}-django{41,42}
py311-django{41,42,main} py{310,311}-django{41,42,main}
pre-commit pre-commit
[gh-actions] [gh-actions]
@ -32,10 +32,10 @@ deps =
django41: Django>=4.1,<4.2 django41: Django>=4.1,<4.2
django42: Django>=4.2,<4.3 django42: Django>=4.2,<4.3
djangomain: https://github.com/django/django/archive/main.zip djangomain: https://github.com/django/django/archive/main.zip
commands = {posargs:py.test --cov=graphene_django graphene_django examples} commands = {posargs:pytest --cov=graphene_django graphene_django examples}
[testenv:pre-commit] [testenv:pre-commit]
skip_install = true skip_install = true
deps = pre-commit deps = pre-commit
commands = commands =
pre-commit run --all-files --show-diff-on-failure pre-commit run {posargs:--all-files --show-diff-on-failure}