diff --git a/docs/conf.py b/docs/conf.py index cd9266ce..9038cd2b 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# -*- coding: utf-8 -*- +# # # Django REST framework JSON:API documentation build configuration file, created by # sphinx-quickstart on Fri Jul 24 23:31:15 2015. diff --git a/example/api/resources/identity.py b/example/api/resources/identity.py index a291ba4f..12705553 100644 --- a/example/api/resources/identity.py +++ b/example/api/resources/identity.py @@ -33,7 +33,7 @@ def posts(self, request): @action(detail=True) def manual_resource_name(self, request, *args, **kwargs): self.resource_name = "data" - return super(Identity, self).retrieve(request, args, kwargs) + return super().retrieve(request, args, kwargs) @action(detail=True) def validation(self, request, *args, **kwargs): diff --git a/example/factories.py b/example/factories.py index 0de561f6..96b85cad 100644 --- a/example/factories.py +++ b/example/factories.py @@ -1,5 +1,3 @@ -# -*- encoding: utf-8 -*- - import factory from faker import Factory as FakerFactory diff --git a/example/migrations/0001_initial.py b/example/migrations/0001_initial.py index 35e01afe..0161cd49 100644 --- a/example/migrations/0001_initial.py +++ b/example/migrations/0001_initial.py @@ -1,7 +1,3 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.5 on 2016-05-02 08:26 -from __future__ import unicode_literals - import django.db.models.deletion from django.db import migrations, models diff --git a/example/migrations/0002_taggeditem.py b/example/migrations/0002_taggeditem.py index 3a57d22f..0abf49e0 100644 --- a/example/migrations/0002_taggeditem.py +++ b/example/migrations/0002_taggeditem.py @@ -1,7 +1,3 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-02-01 08:34 -from __future__ import unicode_literals - import django.db.models.deletion from django.db import migrations, models diff --git a/example/migrations/0003_polymorphics.py b/example/migrations/0003_polymorphics.py index 46919dbb..1bae8491 100644 --- a/example/migrations/0003_polymorphics.py +++ b/example/migrations/0003_polymorphics.py @@ -1,7 +1,3 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.1 on 2017-05-17 14:49 -from __future__ import unicode_literals - import django.db.models.deletion from django.db import migrations, models diff --git a/example/migrations/0004_auto_20171011_0631.py b/example/migrations/0004_auto_20171011_0631.py index b1035dfe..fa597a29 100644 --- a/example/migrations/0004_auto_20171011_0631.py +++ b/example/migrations/0004_auto_20171011_0631.py @@ -1,7 +1,3 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.6 on 2017-10-11 06:31 -from __future__ import unicode_literals - import django.db.models.deletion from django.db import migrations, models diff --git a/example/models.py b/example/models.py index 18b965a3..63d93e33 100644 --- a/example/models.py +++ b/example/models.py @@ -1,6 +1,3 @@ -# -*- encoding: utf-8 -*- -from __future__ import unicode_literals - from django.contrib.contenttypes.fields import GenericForeignKey, GenericRelation from django.contrib.contenttypes.models import ContentType from django.db import models diff --git a/example/serializers.py b/example/serializers.py index 43415243..0e1022cc 100644 --- a/example/serializers.py +++ b/example/serializers.py @@ -83,7 +83,7 @@ class Meta: class EntrySerializer(serializers.ModelSerializer): def __init__(self, *args, **kwargs): - super(EntrySerializer, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) # to make testing more concise we'll only output the # `featured` field when it's requested via `include` request = kwargs.get("context", {}).get("request") @@ -379,7 +379,7 @@ class Meta: class CurrentProjectRelatedField(relations.PolymorphicResourceRelatedField): def get_attribute(self, instance): - obj = super(CurrentProjectRelatedField, self).get_attribute(instance) + obj = super().get_attribute(instance) is_art = self.field_name == "current_art_project" and isinstance( obj, ArtProject diff --git a/example/tests/__init__.py b/example/tests/__init__.py index daca2310..94a86486 100644 --- a/example/tests/__init__.py +++ b/example/tests/__init__.py @@ -11,7 +11,7 @@ def setUp(self): """ Create those users """ - super(TestBase, self).setUp() + super().setUp() self.create_users() def create_user(self, username, email, password="pw", first_name="", last_name=""): diff --git a/example/tests/snapshots/snap_test_errors.py b/example/tests/snapshots/snap_test_errors.py index dd5ca4f8..09bc25ef 100644 --- a/example/tests/snapshots/snap_test_errors.py +++ b/example/tests/snapshots/snap_test_errors.py @@ -1,7 +1,3 @@ -# -*- coding: utf-8 -*- -# snapshottest: v1 - https://goo.gl/zC4yUc -from __future__ import unicode_literals - from snapshottest import Snapshot snapshots = Snapshot() diff --git a/example/tests/snapshots/snap_test_openapi.py b/example/tests/snapshots/snap_test_openapi.py index f89fb442..a0e6e78e 100644 --- a/example/tests/snapshots/snap_test_openapi.py +++ b/example/tests/snapshots/snap_test_openapi.py @@ -1,7 +1,3 @@ -# -*- coding: utf-8 -*- -# snapshottest: v1 - https://goo.gl/zC4yUc -from __future__ import unicode_literals - from snapshottest import Snapshot snapshots = Snapshot() diff --git a/example/tests/test_format_keys.py b/example/tests/test_format_keys.py index 698a8bb1..8d99eec7 100644 --- a/example/tests/test_format_keys.py +++ b/example/tests/test_format_keys.py @@ -14,7 +14,7 @@ class FormatKeysSetTests(TestBase): list_url = reverse("user-list") def setUp(self): - super(FormatKeysSetTests, self).setUp() + super().setUp() self.detail_url = reverse("user-detail", kwargs={"pk": self.miles.pk}) def test_camelization(self): diff --git a/example/tests/test_generic_validation.py b/example/tests/test_generic_validation.py index 99d2d09a..1c3561e7 100644 --- a/example/tests/test_generic_validation.py +++ b/example/tests/test_generic_validation.py @@ -9,7 +9,7 @@ class GenericValidationTest(TestBase): """ def setUp(self): - super(GenericValidationTest, self).setUp() + super().setUp() self.url = reverse("user-validation", kwargs={"pk": self.miles.pk}) def test_generic_validation_error(self): diff --git a/example/tests/test_model_viewsets.py b/example/tests/test_model_viewsets.py index a5bbcc00..c58b5131 100644 --- a/example/tests/test_model_viewsets.py +++ b/example/tests/test_model_viewsets.py @@ -19,7 +19,7 @@ class ModelViewSetTests(TestBase): list_url = reverse("user-list") def setUp(self): - super(ModelViewSetTests, self).setUp() + super().setUp() self.detail_url = reverse("user-detail", kwargs={"pk": self.miles.pk}) def test_key_in_list_result(self): diff --git a/example/tests/test_serializers.py b/example/tests/test_serializers.py index 9cfe6db9..8f14fed8 100644 --- a/example/tests/test_serializers.py +++ b/example/tests/test_serializers.py @@ -179,7 +179,7 @@ def test_deserialize_many(self): print(serializer.data) -class TestModelSerializer(object): +class TestModelSerializer: def test_model_serializer_with_implicit_fields(self, comment, client): expected = { "data": { diff --git a/example/tests/unit/test_filter_schema_params.py b/example/tests/unit/test_filter_schema_params.py index 9c78dc61..f50304ac 100644 --- a/example/tests/unit/test_filter_schema_params.py +++ b/example/tests/unit/test_filter_schema_params.py @@ -22,7 +22,7 @@ class DummyEntryViewSet(EntryViewSet): def __init__(self, **kwargs): # dummy up self.request since PreloadIncludesMixin expects it to be defined self.request = None - super(DummyEntryViewSet, self).__init__(**kwargs) + super().__init__(**kwargs) def test_filters_get_schema_params(): diff --git a/example/tests/unit/test_renderer_class_methods.py b/example/tests/unit/test_renderer_class_methods.py index 51cc2481..6e7c9ea1 100644 --- a/example/tests/unit/test_renderer_class_methods.py +++ b/example/tests/unit/test_renderer_class_methods.py @@ -70,14 +70,12 @@ class CustomRenderer(JSONRenderer): @classmethod def extract_attributes(cls, fields, resource): cls.extract_attributes_was_overriden = True - return super(CustomRenderer, cls).extract_attributes(fields, resource) + return super().extract_attributes(fields, resource) @classmethod def extract_relationships(cls, fields, resource, resource_instance): cls.extract_relationships_was_overriden = True - return super(CustomRenderer, cls).extract_relationships( - fields, resource, resource_instance - ) + return super().extract_relationships(fields, resource, resource_instance) assert ( CustomRenderer.build_json_resource_obj( diff --git a/example/tests/unit/test_serializer_method_field.py b/example/tests/unit/test_serializer_method_field.py index 37e74ce6..1be56f47 100644 --- a/example/tests/unit/test_serializer_method_field.py +++ b/example/tests/unit/test_serializer_method_field.py @@ -1,5 +1,3 @@ -from __future__ import absolute_import - from rest_framework import serializers from rest_framework_json_api.relations import SerializerMethodResourceRelatedField diff --git a/example/views.py b/example/views.py index 64d31780..27ec6c2e 100644 --- a/example/views.py +++ b/example/views.py @@ -57,7 +57,7 @@ def get_object(self): if entry_pk is not None: return Entry.objects.get(id=entry_pk).blog - return super(BlogViewSet, self).get_object() + return super().get_object() class DRFBlogViewSet(ModelViewSet): @@ -70,7 +70,7 @@ def get_object(self): if entry_pk is not None: return Entry.objects.get(id=entry_pk).blog - return super(DRFBlogViewSet, self).get_object() + return super().get_object() class JsonApiViewSet(ModelViewSet): @@ -98,7 +98,7 @@ def handle_exception(self, exc): exc.status_code = HTTP_422_UNPROCESSABLE_ENTITY # exception handler can't be set on class so you have to # override the error response in this method - response = super(JsonApiViewSet, self).handle_exception(exc) + response = super().handle_exception(exc) context = self.get_exception_handler_context() return format_drf_errors(response, context, exc) @@ -121,7 +121,7 @@ def get_object(self): if entry_pk is not None: return Entry.objects.exclude(pk=entry_pk).first() - return super(EntryViewSet, self).get_object() + return super().get_object() class DRFEntryViewSet(ModelViewSet): @@ -135,7 +135,7 @@ def get_object(self): if entry_pk is not None: return Entry.objects.exclude(pk=entry_pk).first() - return super(DRFEntryViewSet, self).get_object() + return super().get_object() class NoPagination(JsonApiPageNumberPagination): diff --git a/rest_framework_json_api/__init__.py b/rest_framework_json_api/__init__.py index 8f8e5dd7..6add109f 100644 --- a/rest_framework_json_api/__init__.py +++ b/rest_framework_json_api/__init__.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - __title__ = "djangorestframework-jsonapi" __version__ = "4.2.1" __author__ = "" diff --git a/rest_framework_json_api/django_filters/backends.py b/rest_framework_json_api/django_filters/backends.py index 72ae873e..61518e1c 100644 --- a/rest_framework_json_api/django_filters/backends.py +++ b/rest_framework_json_api/django_filters/backends.py @@ -138,7 +138,7 @@ def get_schema_operation_parameters(self, view): This is basically the reverse of `get_filterset_kwargs` above. """ - result = super(DjangoFilterBackend, self).get_schema_operation_parameters(view) + result = super().get_schema_operation_parameters(view) for res in result: if "name" in res: res["name"] = "filter[{}]".format(res["name"]).replace("__", ".") diff --git a/rest_framework_json_api/filters.py b/rest_framework_json_api/filters.py index d5dd337c..ba3794cb 100644 --- a/rest_framework_json_api/filters.py +++ b/rest_framework_json_api/filters.py @@ -61,9 +61,7 @@ def remove_invalid_fields(self, queryset, fields, view, request): else: underscore_fields.append(undo_format_field_name(item_rewritten)) - return super(OrderingFilter, self).remove_invalid_fields( - queryset, underscore_fields, view, request - ) + return super().remove_invalid_fields(queryset, underscore_fields, view, request) class QueryParameterValidationFilter(BaseFilterBackend): diff --git a/rest_framework_json_api/parsers.py b/rest_framework_json_api/parsers.py index 93767a07..61824749 100644 --- a/rest_framework_json_api/parsers.py +++ b/rest_framework_json_api/parsers.py @@ -74,7 +74,7 @@ def parse(self, stream, media_type=None, parser_context=None): """ Parses the incoming bytestream as JSON and returns the resulting data """ - result = super(JSONParser, self).parse( + result = super().parse( stream, media_type=media_type, parser_context=parser_context ) diff --git a/rest_framework_json_api/renderers.py b/rest_framework_json_api/renderers.py index b84666db..db297870 100644 --- a/rest_framework_json_api/renderers.py +++ b/rest_framework_json_api/renderers.py @@ -662,9 +662,7 @@ class BrowsableAPIRenderer(renderers.BrowsableAPIRenderer): includes_template = "rest_framework_json_api/includes.html" def get_context(self, data, accepted_media_type, renderer_context): - context = super(BrowsableAPIRenderer, self).get_context( - data, accepted_media_type, renderer_context - ) + context = super().get_context(data, accepted_media_type, renderer_context) view = renderer_context["view"] context["includes_form"] = self.get_includes_form(view) diff --git a/rest_framework_json_api/serializers.py b/rest_framework_json_api/serializers.py index d2ec5b53..0b4a8dfd 100644 --- a/rest_framework_json_api/serializers.py +++ b/rest_framework_json_api/serializers.py @@ -328,7 +328,7 @@ def get_field_names(self, declared_fields, info): field = declared_fields[field_name] if field_name not in meta_fields: declared[field_name] = field - fields = super(ModelSerializer, self).get_field_names(declared, info) + fields = super().get_field_names(declared, info) return list(fields) + list(getattr(self.Meta, "meta_fields", list())) diff --git a/setup.py b/setup.py index eff9d026..08712129 100755 --- a/setup.py +++ b/setup.py @@ -1,5 +1,4 @@ -#!/usr/bin/env python -from __future__ import print_function +#!/usr/bin/env python3 import os import re