Source code for drf_yasg.inspectors.query

from functools import wraps

try:
    import coreschema
except ImportError:
    coreschema = None

from .. import openapi
from ..utils import force_real_str
from .base import FilterInspector, NotHandled, PaginatorInspector


def ignore_assert_decorator(func):
    @wraps(func)
    def wrapper(*args, **kwargs):
        try:
            return func(*args, **kwargs)
        except AssertionError:
            return NotHandled

    return wrapper


class DrfAPICompatInspector(PaginatorInspector, FilterInspector):
[docs] def param_to_schema(self, param): return openapi.Parameter( name=param["name"], in_=param["in"], description=param.get("description"), required=param.get("required", False), **param["schema"], )
[docs] def get_paginator_parameters(self, paginator): if hasattr(paginator, "get_schema_operation_parameters"): return list( map( self.param_to_schema, paginator.get_schema_operation_parameters(self.view), ) ) return NotHandled
[docs] def get_filter_parameters(self, filter_backend): if hasattr(filter_backend, "get_schema_operation_parameters"): return list( map( self.param_to_schema, filter_backend.get_schema_operation_parameters(self.view), ) ) if hasattr(filter_backend, "get_filterset_class"): return self.get_filter_backend_params(filter_backend) return NotHandled
[docs] def get_filter_backend_params(self, filter_backend): filterset_class = filter_backend.get_filterset_class( self.view, self.view.queryset, ) if filterset_class is None: return NotHandled return [ openapi.Parameter( name=field_name, in_=openapi.IN_QUERY, required=field.extra.get("required", False), type=openapi.TYPE_STRING, description=str(field.label) if field.label else "", ) for field_name, field in filterset_class.base_filters.items() ]
class CoreAPICompatInspector(PaginatorInspector, FilterInspector): """Converts ``core">Fu"n">get("required", False),=DEFAULT_TYPE)lass=">.SCHEMA_DEFINITIONS) #: whether to output :class:`.Schema` definition">.components)if ( force_real_strDictField) and source)) rdself, , paginatorref def field_to_swagger_obass="p">(PaginatorInspector, FilterInspector): &qu , items=ref result = use_references, **kwar"viewcode-back" p.process_result(.process_result(.process_result(.process_result(. ``djangorestframework_camel_case``. # real values set in __init__ to prevent import errors field_inspectors = [] #: filter_inspectors = [an class="p">, None) !=+ None :pn>(.process_result(.JSONField)<>.Items(getattrss="k"ot;Hac=field.extra.get("required", Faltcspan class="c1"># pragma: no cover nt imppan class="p">("required"serializers.ListSerializerre import (selfserializers.HiddenField.TYPE_STRINGopenapi.HiddenField, CamelCaseJSONRenderer) "aoyan>) !=+ None :pn>(.process_result="n">paramsd"> :pn>(.process_result="n">paramsd"> uot;""Set fields from the ``swagger_schema_fields`` attribute on the Meta clhref="top-down order if path in ignored_endpoints: path in innen> ]/span> in re import n clas"clak_aun class="nn">re import > in ignored_endpoints"kc">True, ( "Can not create schema for RecursiveField on the Metn>IN_QUERY, pan>, value in fields.items() if not () ' type_ie "Can not create scwagger_schema_fields`` attribute on the Meta clhref="top-down order if path return list( ">path return list( ">path return list( ">path t)return list( list(Custom sass="n">path return list( ">path )pathresult, schema.required]in sys.modules: © Copyright 2018, Cristi V..

Built with Sphinxif plass="[`taK"n">swa-7`t?v=958 /spanFu"n">get(.is None: .is use_reft[NoUTf_yasg/inspectors/query.html0000644000000000000000000007500715167205247030440 0 use_reft[NoUTf_yasg/inspectors/query.html000064400000000000000000007500715167205247030440 0 use_reft[NoUTf_yasg/inspectop0000ve"toctree-l="p">( self, field, swagger_object_type, use_references, >field_to_swagger_object( self, field, swagger_object_type
Built with Sphinx< .js?v=958b65b0">