diff --git a/rest_framework/management/commands/generateschema.py b/rest_framework/management/commands/generateschema.py index 9dcb55f34..b4ed759b3 100644 --- a/rest_framework/management/commands/generateschema.py +++ b/rest_framework/management/commands/generateschema.py @@ -6,7 +6,7 @@ from rest_framework.schemas import coreapi from rest_framework.schemas.openapi import SchemaGenerator OPENAPI_MODE = 'openapi' -OPENAPI_AGID_MODE = 'openapi-agid' # WiP +OPENAPI_AGID_MODE = 'openapi-agid' COREAPI_MODE = 'coreapi' diff --git a/rest_framework/schemas/agid_schema_views.py b/rest_framework/schemas/agid_schema_views.py index 2d8dd4ed0..da8e1002e 100644 --- a/rest_framework/schemas/agid_schema_views.py +++ b/rest_framework/schemas/agid_schema_views.py @@ -21,13 +21,13 @@ basic use-cases: Other access should target the submodules directly """ from rest_framework.settings import api_settings + +from . import openapi_agid # noqa +from .inspectors import DefaultSchema # noqa + api_settings.defaults['DEFAULT_SCHEMA_CLASS'] = \ 'rest_framework.schemas.openapi_agid.AgidAutoSchema' -from . import openapi_agid -# from .openapi_agid import AgidAutoSchema, AgidSchemaGenerator # noqa -from .inspectors import DefaultSchema # noqa - def get_schema_view( title=None, url=None, description=None, urlconf=None, renderer_classes=None, diff --git a/rest_framework/schemas/generators.py b/rest_framework/schemas/generators.py index afd6b786b..96409193d 100644 --- a/rest_framework/schemas/generators.py +++ b/rest_framework/schemas/generators.py @@ -167,7 +167,7 @@ class BaseSchemaGenerator: self.url = url self.endpoints = None - for k,v in kwargs.items(): + for k, v in kwargs.items(): setattr(self, k, v) def _initialise_endpoints(self): diff --git a/rest_framework/schemas/openapi_agid.py b/rest_framework/schemas/openapi_agid.py index 3428a6ccc..5da69127b 100644 --- a/rest_framework/schemas/openapi_agid.py +++ b/rest_framework/schemas/openapi_agid.py @@ -1,10 +1,10 @@ -from rest_framework import ( - RemovedInDRF314Warning, exceptions, renderers, serializers -) +import warnings from urllib.parse import urljoin -from . openapi import SchemaGenerator, AutoSchema -from . utils import get_pk_description, is_list_view +from rest_framework import serializers + +from .openapi import AutoSchema, SchemaGenerator +from .utils import is_list_view class AgidSchemaGenerator(SchemaGenerator): @@ -31,8 +31,8 @@ class AgidSchemaGenerator(SchemaGenerator): return servers def get_tags(self): - tags = getattr(self, 'tags', {}), - return tags[0] if isinstance(tags, tuple) else tags + tags = getattr(self, 'tags', {}) + return tags def get_schema(self, request=None, public=False): """ @@ -92,7 +92,6 @@ class AgidSchemaGenerator(SchemaGenerator): return schema - class AgidAutoSchema(AutoSchema): def get_responses(self, path, method): diff --git a/tests/schemas/test_openapi.py b/tests/schemas/test_openapi.py index d483f3d45..f80507142 100644 --- a/tests/schemas/test_openapi.py +++ b/tests/schemas/test_openapi.py @@ -54,7 +54,7 @@ class TestFieldMapping(TestCase): cases = [ (serializers.ListField(), {'items': {}, 'type': 'array'}), (serializers.ListField(child=serializers.BooleanField()), {'items': {'type': 'boolean'}, 'type': 'array'}), - (serializers.ListField(child=serializers.FloatField()), {'items': {'type': 'number'}, 'type': 'array'}), + (serializers.ListField(child=serializers.FloatField()), {'items': {'type': 'number', 'format': 'float'}, 'type': 'array'}), (serializers.ListField(child=serializers.CharField()), {'items': {'type': 'string'}, 'type': 'array'}), (serializers.ListField(child=serializers.IntegerField(max_value=4294967295)), {'items': {'type': 'integer', 'maximum': 4294967295, 'format': 'int64'}, 'type': 'array'}),