diff --git a/django_declarative_apis/adapters.py b/django_declarative_apis/adapters.py index f0ed6d2..f38cdf7 100644 --- a/django_declarative_apis/adapters.py +++ b/django_declarative_apis/adapters.py @@ -47,13 +47,13 @@ def __init__(self, **kwargs): ) if isinstance(handler, (list, tuple)): - self.method_handlers[ - method.upper() - ] = BehavioralEndpointDefinitionRouter(*handler) + self.method_handlers[method.upper()] = ( + BehavioralEndpointDefinitionRouter(*handler) + ) else: - self.method_handlers[ - method.upper() - ] = BehavioralEndpointDefinitionRouter(handler) + self.method_handlers[method.upper()] = ( + BehavioralEndpointDefinitionRouter(handler) + ) self.allowed_methods = self.method_handlers.keys() diff --git a/django_declarative_apis/machinery/__init__.py b/django_declarative_apis/machinery/__init__.py index 5abd05e..aa042e6 100644 --- a/django_declarative_apis/machinery/__init__.py +++ b/django_declarative_apis/machinery/__init__.py @@ -111,7 +111,7 @@ def get_instance_value(self, owner_instance, owner_class): message = "Resource instance not found" raise errors.ClientErrorNotFound(message) - if value.__class__ == dict: + if value.__class__ is dict: return value if not getattr(value, "_api_filter", False): diff --git a/django_declarative_apis/machinery/attributes.py b/django_declarative_apis/machinery/attributes.py index cfcf605..aecf892 100644 --- a/django_declarative_apis/machinery/attributes.py +++ b/django_declarative_apis/machinery/attributes.py @@ -143,7 +143,7 @@ def coerce_value_to_type(self, raw_value): return None try: - if self.field_type == bool: + if self.field_type is bool: if isinstance(raw_value, bool): return raw_value if isinstance(raw_value, str): @@ -558,9 +558,9 @@ def _run_task(self, owner_instance): self.task_runner(owner_instance) def run(self, owner_instance): - assert ( - self.task_state != EndpointTask.STATE_RUNNING - ), "Circular task reference detected!" + assert self.task_state != EndpointTask.STATE_RUNNING, ( + "Circular task reference detected!" + ) try: self.task_state = EndpointTask.STATE_RUNNING @@ -569,9 +569,9 @@ def run(self, owner_instance): depends_on = getattr(owner_instance, depends_on) if depends_on and (depends_on.task_state != EndpointTask.STATE_COMPLETED): - assert not isinstance( - depends_on, DeferrableEndpointTask - ), "DeferredEndpointTask cannot be used as depends_on arg" + assert not isinstance(depends_on, DeferrableEndpointTask), ( + "DeferredEndpointTask cannot be used as depends_on arg" + ) depends_on.run(owner_instance) self._run_task(owner_instance) @@ -708,9 +708,9 @@ def __init__( if execute_unless: assert callable(execute_unless), "execute_unless MUST be callable" - assert ( - inspect.getfullargspec(execute_unless).args == ["self"] - ), "execute_unless MUST be an instance method that takes only the 'self' argument" + assert inspect.getfullargspec(execute_unless).args == ["self"], ( + "execute_unless MUST be an instance method that takes only the 'self' argument" + ) self.execute_unless = execute_unless @@ -733,9 +733,9 @@ def _run_task(self, owner_instance): resource = owner_instance.resource - assert isinstance( - resource, django_models.Model - ), "resource must be an instance of django.db.models.Model to run as deferred task" + assert isinstance(resource, django_models.Model), ( + "resource must be an instance of django.db.models.Model to run as deferred task" + ) delay = self._resolve_maybe_callable(owner_instance, self.delay) or 0 always_defer = self._resolve_maybe_callable(owner_instance, self.always_defer) @@ -788,9 +788,9 @@ def __init__( **kwargs, ): super().__init__(**kwargs) - assert ( - task_args_packer is not None - ), "task_args_packer required for DeferrableGenericEndpointTask" + assert task_args_packer is not None, ( + "task_args_packer required for DeferrableGenericEndpointTask" + ) self.task_args_packer = task_args_packer def _run_task(self, owner_instance): diff --git a/django_declarative_apis/machinery/tasks.py b/django_declarative_apis/machinery/tasks.py index ffad31c..eee62dd 100644 --- a/django_declarative_apis/machinery/tasks.py +++ b/django_declarative_apis/machinery/tasks.py @@ -447,9 +447,9 @@ def schedule_resource_task_runner( delay=0, ): resource = resource_bound_method.__self__ - assert isinstance( - resource, django.db.models.Model - ), "resource must be an instance of django.db.models.Model to run as deferred task" + assert isinstance(resource, django.db.models.Model), ( + "resource must be an instance of django.db.models.Model to run as deferred task" + ) resource_class_name = "{0}.{1}".format( resource.__module__, resource.__class__.__name__ diff --git a/example/example/urls.py b/example/example/urls.py index cbf8b37..e192f9f 100644 --- a/example/example/urls.py +++ b/example/example/urls.py @@ -20,6 +20,7 @@ 1. Import the include() function: from django.conf.urls import url, include 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) """ + from django.conf.urls import url, include import myapp.urls diff --git a/example/requirements-dev.txt b/example/requirements-dev.txt index dc0ba34..99afb56 100644 --- a/example/requirements-dev.txt +++ b/example/requirements-dev.txt @@ -1 +1 @@ -coverage==7.10.2 +coverage==7.13.0 diff --git a/pyproject.toml b/pyproject.toml index b2019e7..6a9fbc0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -37,18 +37,17 @@ classifiers = [ dev = [ "bandit>=1.7.4", "bumpversion~=0.5", - "coverage[toml]==6.3.2", - "ipython~=7.0", + "coverage[toml]==7.13.0", "oauth2==1.9.0.post1", "pyyaml~=6.0", - "ruff~=0.1.2", + "ruff>=0.1.2,<0.15.0", "sphinx_rtd_theme==3.0.2", - "tblib~=1.6.0", + "tblib>=1.6,<3.3", ] [tool.ruff] extend-exclude = [".heroku"] -extend-select = ["C901"] +lint.extend-select = ["C901"] [tool.coverage.run] omit = ["*/tests/*", "*/management/*", "*/migrations/*"] diff --git a/tests/machinery/test_base.py b/tests/machinery/test_base.py index bcd1a81..6c32f7d 100644 --- a/tests/machinery/test_base.py +++ b/tests/machinery/test_base.py @@ -723,8 +723,11 @@ def test_filter_cache_reduces_queries(self): filtering.apply_filters_to_object(root, filters.INEFFICIENT_FILTERS) root = models.InefficientRoot.objects.get(id=self.root_id) - with self.assertNumQueries(3), override_settings( - DDA_FILTER_MODEL_CACHING_ENABLED=True, DDA_FILTER_CACHE_DEBUG_LOG=True + with ( + self.assertNumQueries(3), + override_settings( + DDA_FILTER_MODEL_CACHING_ENABLED=True, DDA_FILTER_CACHE_DEBUG_LOG=True + ), ): filtering.apply_filters_to_object(root, filters.INEFFICIENT_FILTERS) @@ -736,8 +739,11 @@ def test_model_cache_reduces_queries(self): ) root = models.InefficientRoot.objects.get(id=self.root_id) - with self.assertNumQueries(3), override_settings( - DDA_FILTER_MODEL_CACHING_ENABLED=True, DDA_FILTER_CACHE_DEBUG_LOG=True + with ( + self.assertNumQueries(3), + override_settings( + DDA_FILTER_MODEL_CACHING_ENABLED=True, DDA_FILTER_CACHE_DEBUG_LOG=True + ), ): filtering.apply_filters_to_object( root, filters.INEFFICIENT_FUNCTION_FILTERS diff --git a/tests/test_filters.py b/tests/test_filters.py index 40cbc7d..b10de80 100644 --- a/tests/test_filters.py +++ b/tests/test_filters.py @@ -165,11 +165,10 @@ def test_expandable_properties(self): self.assertTrue("expandable_dict" in filtered["__expandable__"]) self.assertTrue("expandable_string" in filtered["__expandable__"]) - with mock.patch( - "tests.models.TestModel.expandable_dict" - ) as dict_mock, mock.patch( - "tests.models.TestModel.expandable_string" - ) as str_mock: + with ( + mock.patch("tests.models.TestModel.expandable_dict") as dict_mock, + mock.patch("tests.models.TestModel.expandable_string") as str_mock, + ): filtered = filtering.apply_filters_to_object( self.test_model, filters.DEFAULT_FILTERS ) diff --git a/tests/testutils.py b/tests/testutils.py index 113057a..c3c068a 100644 --- a/tests/testutils.py +++ b/tests/testutils.py @@ -33,7 +33,6 @@ class NoLoggingTestRunner(DiscoverRunner): - """Don't log during tests.""" def run_tests(self, test_labels, extra_tests=None, **kwargs): @@ -144,9 +143,9 @@ def _build_request(cls, request): body=all_request_parameters, ) - oauth_signature_data[ - "oauth_signature" - ] = oauth1_client.get_oauth_signature(oauth_request) + oauth_signature_data["oauth_signature"] = ( + oauth1_client.get_oauth_signature(oauth_request) + ) else: # use HMAC-SHA1 signature method oauth_signature_data.update({"oauth_signature_method": "HMAC-SHA1"})