Use ruff in pre-commit

This commit is contained in:
Kien Dang 2023-08-05 13:42:00 +08:00
parent 5eb5fe294a
commit add11cb9a6
18 changed files with 58 additions and 51 deletions

View File

@ -15,16 +15,12 @@ repos:
- --autofix - --autofix
- id: trailing-whitespace - id: trailing-whitespace
exclude: README.md exclude: README.md
- repo: https://github.com/asottile/pyupgrade
rev: v3.3.2
hooks:
- id: pyupgrade
args: [--py38-plus]
- repo: https://github.com/psf/black - repo: https://github.com/psf/black
rev: 23.3.0 rev: 23.3.0
hooks: hooks:
- id: black - id: black
- repo: https://github.com/PyCQA/flake8 - repo: https://github.com/astral-sh/ruff-pre-commit
rev: 6.0.0 rev: v0.0.282
hooks: hooks:
- id: flake8 - id: ruff
args: [--fix, --exit-non-zero-on-fix]

20
.ruff.toml Normal file
View File

@ -0,0 +1,20 @@
select = [
"E", # pycodestyle
"W", # pycodestyle
"F", # pyflake
]
ignore = [
"E501", # line-too-long
]
exclude = [
"**/docs",
]
target-version = "py38"
[per-file-ignores]
# Ignore unused imports (F401) in these files
"__init__.py" = ["F401"]
"graphene_django/compat.py" = ["F401"]

View File

@ -6,7 +6,9 @@ from cookbook.ingredients.models import Ingredient
class Recipe(models.Model): class Recipe(models.Model):
title = models.CharField(max_length=100) title = models.CharField(max_length=100)
instructions = models.TextField() instructions = models.TextField()
__unicode__ = lambda self: self.title
def __unicode__(self):
return self.title
class RecipeIngredient(models.Model): class RecipeIngredient(models.Model):

View File

@ -1,6 +1,5 @@
from django.db import connections from django.db import connections
from promise import Promise
from .sql.tracking import unwrap_cursor, wrap_cursor from .sql.tracking import unwrap_cursor, wrap_cursor
from .exception.formating import wrap_exception from .exception.formating import wrap_exception

View File

@ -3,13 +3,12 @@ import pytest
from django.db import models from django.db import models
from django.db.models.query import QuerySet from django.db.models.query import QuerySet
from django_filters import filters
from django_filters import FilterSet from django_filters import FilterSet
import graphene import graphene
from graphene.relay import Node from graphene.relay import Node
from graphene_django import DjangoObjectType from graphene_django import DjangoObjectType
from graphene_django.utils import DJANGO_FILTER_INSTALLED from graphene_django.utils import DJANGO_FILTER_INSTALLED
from graphene_django.filter import ArrayFilter, ListFilter from graphene_django.filter import ArrayFilter
from ...compat import ArrayField from ...compat import ArrayField

View File

@ -222,7 +222,7 @@ def test_filter_filterset_information_on_meta_related():
reporter = Field(ReporterFilterNode) reporter = Field(ReporterFilterNode)
article = Field(ArticleFilterNode) article = Field(ArticleFilterNode)
schema = Schema(query=Query) Schema(query=Query)
articles_field = ReporterFilterNode._meta.fields["articles"].get_type() articles_field = ReporterFilterNode._meta.fields["articles"].get_type()
assert_arguments(articles_field, "headline", "reporter") assert_arguments(articles_field, "headline", "reporter")
assert_not_orderable(articles_field) assert_not_orderable(articles_field)
@ -294,7 +294,7 @@ def test_filter_filterset_class_information_on_meta_related():
reporter = Field(ReporterFilterNode) reporter = Field(ReporterFilterNode)
article = Field(ArticleFilterNode) article = Field(ArticleFilterNode)
schema = Schema(query=Query) Schema(query=Query)
articles_field = ReporterFilterNode._meta.fields["articles"].get_type() articles_field = ReporterFilterNode._meta.fields["articles"].get_type()
assert_arguments(articles_field, "headline", "reporter") assert_arguments(articles_field, "headline", "reporter")
assert_not_orderable(articles_field) assert_not_orderable(articles_field)
@ -1186,7 +1186,7 @@ def test_filter_filterset_based_on_mixin():
first_name="Adam", last_name="Doe", email="adam@doe.com" first_name="Adam", last_name="Doe", email="adam@doe.com"
) )
article_2 = Article.objects.create( Article.objects.create(
headline="Good Bye", headline="Good Bye",
reporter=reporter_2, reporter=reporter_2,
editor=reporter_2, editor=reporter_2,

View File

@ -1,8 +1,6 @@
import json import json
import pytest import pytest
from django_filters import FilterSet
from django_filters import rest_framework as filters
from graphene import ObjectType, Schema from graphene import ObjectType, Schema
from graphene.relay import Node from graphene.relay import Node
from graphene_django import DjangoObjectType from graphene_django import DjangoObjectType

View File

@ -1,8 +1,7 @@
import graphene import graphene
from django import forms from django import forms
from django_filters.utils import get_model_field, get_field_parts from django_filters.utils import get_model_field
from django_filters.filters import Filter, BaseCSVFilter from .filters import ListFilter, RangeFilter, TypedFilter
from .filters import ArrayFilter, ListFilter, RangeFilter, TypedFilter
from .filterset import custom_filterset_factory, setup_filterset from .filterset import custom_filterset_factory, setup_filterset
from ..forms import GlobalIDFormField, GlobalIDMultipleChoiceField from ..forms import GlobalIDFormField, GlobalIDMultipleChoiceField
@ -50,7 +49,7 @@ def get_filtering_args_from_filterset(filterset_class, type):
): ):
# Get the filter field for filters that are no explicitly declared. # Get the filter field for filters that are no explicitly declared.
if filter_type == "isnull": if filter_type == "isnull":
field = graphene.Boolean(required=required) graphene.Boolean(required=required)
else: else:
model_field = get_model_field(model, filter_field.field_name) model_field = get_model_field(model, filter_field.field_name)

View File

@ -1,7 +1,6 @@
from django import forms from django import forms
from pytest import raises from pytest import raises
import graphene
from graphene import ( from graphene import (
String, String,
Int, Int,

View File

@ -1,4 +1,3 @@
import pytest
from django import forms from django import forms
from django.core.exceptions import ValidationError from django.core.exceptions import ValidationError
from pytest import raises from pytest import raises

View File

@ -2,7 +2,6 @@ import copy
import graphene import graphene
from django.db import models from django.db import models
from graphene import InputObjectType
from pytest import raises from pytest import raises
from rest_framework import serializers from rest_framework import serializers

View File

@ -250,7 +250,7 @@ def test_model_invalid_update_mutate_and_get_payload_success():
model_operations = ["update"] model_operations = ["update"]
with raises(Exception) as exc: with raises(Exception) as exc:
result = InvalidModelMutation.mutate_and_get_payload( InvalidModelMutation.mutate_and_get_payload(
None, mock_info(), **{"cool_name": "Narf"} None, mock_info(), **{"cool_name": "Narf"}
) )

View File

@ -1,18 +1,12 @@
# https://github.com/graphql-python/graphene-django/issues/520 # https://github.com/graphql-python/graphene-django/issues/520
import datetime
from django import forms from django import forms
import graphene import graphene
from graphene import Field, ResolveInfo
from graphene.types.inputobjecttype import InputObjectType
from pytest import raises
from pytest import mark
from rest_framework import serializers from rest_framework import serializers
from ...types import DjangoObjectType
from ...rest_framework.models import MyFakeModel from ...rest_framework.models import MyFakeModel
from ...rest_framework.mutation import SerializerMutation from ...rest_framework.mutation import SerializerMutation
from ...forms.mutation import DjangoFormMutation from ...forms.mutation import DjangoFormMutation

View File

@ -22,7 +22,7 @@ class TestDjangoListField:
foo = String() foo = String()
with pytest.raises(AssertionError): with pytest.raises(AssertionError):
list_field = DjangoListField(TestType) DjangoListField(TestType)
def test_only_import_paths(self): def test_only_import_paths(self):
list_field = DjangoListField("graphene_django.tests.schema.Human") list_field = DjangoListField("graphene_django.tests.schema.Human")

View File

@ -5,7 +5,6 @@ from graphene.relay import Node
from graphql_relay import to_global_id from graphql_relay import to_global_id
from ..fields import DjangoConnectionField
from ..types import DjangoObjectType from ..types import DjangoObjectType
from .models import Article, Reporter, FilmDetails, Film from .models import Article, Reporter, FilmDetails, Film

View File

@ -517,7 +517,7 @@ def test_should_query_node_filtering_with_distinct_queryset():
).distinct() ).distinct()
f = Film.objects.create() f = Film.objects.create()
fd = FilmDetails.objects.create(location="Berlin", film=f) FilmDetails.objects.create(location="Berlin", film=f)
schema = graphene.Schema(query=Query) schema = graphene.Schema(query=Query)
query = """ query = """
@ -640,7 +640,7 @@ def test_should_enforce_first_or_last(graphene_settings):
class Query(graphene.ObjectType): class Query(graphene.ObjectType):
all_reporters = DjangoConnectionField(ReporterType) all_reporters = DjangoConnectionField(ReporterType)
r = Reporter.objects.create( Reporter.objects.create(
first_name="John", last_name="Doe", email="johndoe@example.com", a_choice=1 first_name="John", last_name="Doe", email="johndoe@example.com", a_choice=1
) )
@ -682,7 +682,7 @@ def test_should_error_if_first_is_greater_than_max(graphene_settings):
assert Query.all_reporters.max_limit == 100 assert Query.all_reporters.max_limit == 100
r = Reporter.objects.create( Reporter.objects.create(
first_name="John", last_name="Doe", email="johndoe@example.com", a_choice=1 first_name="John", last_name="Doe", email="johndoe@example.com", a_choice=1
) )
@ -724,7 +724,7 @@ def test_should_error_if_last_is_greater_than_max(graphene_settings):
assert Query.all_reporters.max_limit == 100 assert Query.all_reporters.max_limit == 100
r = Reporter.objects.create( Reporter.objects.create(
first_name="John", last_name="Doe", email="johndoe@example.com", a_choice=1 first_name="John", last_name="Doe", email="johndoe@example.com", a_choice=1
) )
@ -788,7 +788,7 @@ def test_should_query_promise_connectionfields():
def test_should_query_connectionfields_with_last(): def test_should_query_connectionfields_with_last():
r = Reporter.objects.create( Reporter.objects.create(
first_name="John", last_name="Doe", email="johndoe@example.com", a_choice=1 first_name="John", last_name="Doe", email="johndoe@example.com", a_choice=1
) )
@ -825,11 +825,11 @@ def test_should_query_connectionfields_with_last():
def test_should_query_connectionfields_with_manager(): def test_should_query_connectionfields_with_manager():
r = Reporter.objects.create( Reporter.objects.create(
first_name="John", last_name="Doe", email="johndoe@example.com", a_choice=1 first_name="John", last_name="Doe", email="johndoe@example.com", a_choice=1
) )
r = Reporter.objects.create( Reporter.objects.create(
first_name="John", last_name="NotDoe", email="johndoe@example.com", a_choice=1 first_name="John", last_name="NotDoe", email="johndoe@example.com", a_choice=1
) )
@ -1369,10 +1369,10 @@ def test_model_inheritance_support_local_relationships():
def test_should_resolve_get_queryset_connectionfields(): def test_should_resolve_get_queryset_connectionfields():
reporter_1 = Reporter.objects.create( Reporter.objects.create(
first_name="John", last_name="Doe", email="johndoe@example.com", a_choice=1 first_name="John", last_name="Doe", email="johndoe@example.com", a_choice=1
) )
reporter_2 = CNNReporter.objects.create( CNNReporter.objects.create(
first_name="Some", first_name="Some",
last_name="Guy", last_name="Guy",
email="someguy@cnn.com", email="someguy@cnn.com",
@ -1414,10 +1414,10 @@ def test_should_resolve_get_queryset_connectionfields():
def test_connection_should_limit_after_to_list_length(): def test_connection_should_limit_after_to_list_length():
reporter_1 = Reporter.objects.create( Reporter.objects.create(
first_name="John", last_name="Doe", email="johndoe@example.com", a_choice=1 first_name="John", last_name="Doe", email="johndoe@example.com", a_choice=1
) )
reporter_2 = Reporter.objects.create( Reporter.objects.create(
first_name="Some", last_name="Guy", email="someguy@cnn.com", a_choice=1 first_name="Some", last_name="Guy", email="someguy@cnn.com", a_choice=1
) )
@ -1710,7 +1710,7 @@ def test_should_preserve_prefetch_related(django_assert_num_queries):
""" """
schema = graphene.Schema(query=Query) schema = graphene.Schema(query=Query)
with django_assert_num_queries(3) as captured: with django_assert_num_queries(3):
result = schema.execute(query) result = schema.execute(query)
assert not result.errors assert not result.errors
@ -2022,7 +2022,7 @@ def test_should_query_nullable_foreign_key():
schema = graphene.Schema(query=Query) schema = graphene.Schema(query=Query)
person = Person.objects.create(name="Jane") person = Person.objects.create(name="Jane")
pets = [ [
Pet.objects.create(name="Stray dog", age=1), Pet.objects.create(name="Stray dog", age=1),
Pet.objects.create(name="Jane's dog", owner=person, age=1), Pet.objects.create(name="Jane's dog", owner=person, age=1),
] ]

View File

@ -6,7 +6,6 @@ from unittest.mock import patch
from django.db import connection from django.db import connection
from graphene_django.settings import graphene_settings
from .models import Pet from .models import Pet
@ -31,8 +30,12 @@ def response_json(response):
return json.loads(response.content.decode()) return json.loads(response.content.decode())
j = lambda **kwargs: json.dumps(kwargs) def j(**kwargs):
jl = lambda **kwargs: json.dumps([kwargs]) return json.dumps(kwargs)
def jl(**kwargs):
return json.dumps([kwargs])
def test_graphiql_is_enabled(client): def test_graphiql_is_enabled(client):

View File

@ -1,9 +1,10 @@
import warnings import warnings
from collections import OrderedDict from collections import OrderedDict
from typing import Type from typing import Type # noqa: F401
from django.db.models import Model # noqa: F401
import graphene import graphene
from django.db.models import Model
from graphene.relay import Connection, Node from graphene.relay import Connection, Node
from graphene.types.objecttype import ObjectType, ObjectTypeOptions from graphene.types.objecttype import ObjectType, ObjectTypeOptions
from graphene.types.utils import yank_fields_from_attrs from graphene.types.utils import yank_fields_from_attrs