parent
64d9d42aa9
commit
69b628a7af
|
|
@ -491,7 +491,8 @@ hinting_type_info = [
|
||||||
]
|
]
|
||||||
|
|
||||||
if sys.version_info < (3, 0):
|
if sys.version_info < (3, 0):
|
||||||
hinting_type_info.append((unicode, (openapi.TYPE_STRING, None)))
|
# noinspection PyUnresolvedReferences
|
||||||
|
hinting_type_info.append((unicode, (openapi.TYPE_STRING, None))) # noqa: F821
|
||||||
|
|
||||||
if typing:
|
if typing:
|
||||||
def inspect_collection_hint_class(hint_class):
|
def inspect_collection_hint_class(hint_class):
|
||||||
|
|
@ -531,11 +532,14 @@ def get_basic_type_info_from_hint(hint_class):
|
||||||
:rtype: OrderedDict
|
:rtype: OrderedDict
|
||||||
"""
|
"""
|
||||||
union_types = _get_union_types(hint_class)
|
union_types = _get_union_types(hint_class)
|
||||||
|
|
||||||
if typing and union_types:
|
if typing and union_types:
|
||||||
# Optional is implemented as Union[T, None]
|
# Optional is implemented as Union[T, None]
|
||||||
if len(union_types) == 2 and isinstance(None, union_types[1]):
|
if len(union_types) == 2 and isinstance(None, union_types[1]):
|
||||||
result = get_basic_type_info_from_hint(union_types[0])
|
result = get_basic_type_info_from_hint(union_types[0])
|
||||||
|
if result:
|
||||||
result['x-nullable'] = True
|
result['x-nullable'] = True
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
return None
|
return None
|
||||||
|
|
@ -606,9 +610,7 @@ class SerializerMethodFieldInspector(FieldInspector):
|
||||||
# look for Python 3.5+ style type hinting of the return value
|
# look for Python 3.5+ style type hinting of the return value
|
||||||
hint_class = inspect_signature(method).return_annotation
|
hint_class = inspect_signature(method).return_annotation
|
||||||
|
|
||||||
if not inspect.isclass(hint_class) and hasattr(hint_class, '__args__'):
|
if not issubclass(hint_class, inspect._empty):
|
||||||
hint_class = hint_class.__args__[0]
|
|
||||||
if inspect.isclass(hint_class) and not issubclass(hint_class, inspect._empty):
|
|
||||||
type_info = get_basic_type_info_from_hint(hint_class)
|
type_info = get_basic_type_info_from_hint(hint_class)
|
||||||
|
|
||||||
if type_info is not None:
|
if type_info is not None:
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ from .. import openapi
|
||||||
from ..errors import SwaggerGenerationError
|
from ..errors import SwaggerGenerationError
|
||||||
from ..utils import (
|
from ..utils import (
|
||||||
filter_none, force_real_str, force_serializer_instance, get_consumes, get_produces, guess_response_status,
|
filter_none, force_real_str, force_serializer_instance, get_consumes, get_produces, guess_response_status,
|
||||||
is_list_view, merge_params, no_body, param_list_to_odict
|
merge_params, no_body, param_list_to_odict
|
||||||
)
|
)
|
||||||
from .base import ViewInspector, call_view_method
|
from .base import ViewInspector, call_view_method
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue