Ë
    üûàgáR  ã                   ó  — d dl Z d dlZd dlmZ ddlmZ ddlmZmZm	Z	m
Z
  e«       Z ej                  e«      Zd„ Zdd„Z G d„ d	«      Z G d
„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Zy)é    N)Úserializersé   )Úopenapi)Úforce_real_strÚget_field_defaultÚget_object_classesÚis_list_viewc                 ó¦   — t        | |«      }t        j                  |«      rt        |dd «      r|dfS ddlm} |t	         || |d «      t
        «      fS )NÚ__self__Tr   )Úgetattr_static)ÚgetattrÚinspectÚismethodr   Ú
isinstanceÚstaticmethod)Úcls_or_instanceÚmethod_nameÚmethodr   s       úV/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/drf_yasg/inspectors/base.pyÚis_callable_methodr      sP   € Ü�_ kÓ2€FÜ×Ñ˜Ô¤G¨F°JÀÔ$Eà�tˆ|Ðå&Ø”:™n¨_¸kÈ4ÓPÔR^Ó_Ð_Ð_ó    c                 óú   — t        | |«      r	 t        | |«      \  }}|r |«       S 	 |rt        | |«      rt        | |«      S |S # t        $ r. t        j	                  dt        | «      j                  d¬«       Y ŒRw xY w)aþ  Call a view method which might throw an exception. If an exception is thrown, log an informative error message
    and return the value of fallback_attr, or default if not present. The method must be callable without any arguments
    except cls or self.

    :param view: view class or instance; if a class is passed, instance methods won't be called
    :type view: rest_framework.views.APIView or type[rest_framework.views.APIView]
    :param str method_name: name of a method on the view
    :param str fallback_attr: name of an attribute on the view to fall back on, if calling the method fails
    :param default: default value if all else fails
    :return: view method's return value, or value of view's fallback_attr, or default
    :rtype: any or None
    z…view's %s raised exception during schema generation; use `getattr(self, 'swagger_fake_view', False)` to detect and short-circuit thisT)Úexc_info)Úhasattrr   Ú	ExceptionÚloggerÚwarningÚtypeÚ__name__r   )Úviewr   Úfallback_attrÚdefaultÚview_methodÚis_callabales         r   Úcall_view_methodr%      s‹   € ô ˆt�[Ô!ð	?Ü(:¸4ÀÓ(MÑ%ˆK˜ÙÙ"“}Ð$ð ñ œ  }Ô5Ü�t˜]Ó+Ð+à€Nøô ò 	?Ü�N‰Nð jä ›:×.Ñ.¸ð ö ?ð	?ús   ŽA Á4A:Á9A:c                   ó,   — e Zd Zd„ Zd„ Zdd„Zd„ Zd„ Zy)ÚBaseInspectorc                 óJ   — || _         || _        || _        || _        || _        y)aš  
        :param rest_framework.views.APIView view: the view associated with this endpoint
        :param str path: the path component of the operation URL
        :param str method: the http method of the operation
        :param openapi.ReferenceResolver components: referenceable components
        :param rest_framework.request.Request request: the request made against the schema view; can be None
        N)r    Úpathr   Ú
componentsÚrequest)Úselfr    r)   r   r*   r+   s         r   Ú__init__zBaseInspector.__init__7   s'   € ð ˆŒ	ØˆŒ	ØˆŒØ$ˆŒØˆ�r   c                 ó   — |S )ap  After an inspector handles an object (i.e. returns a value other than :data:`.NotHandled`), all inspectors
        that were probed get the chance to alter the result, in reverse order. The inspector that handled the object
        is the first to receive a ``process_result`` call with the object it just returned.

        This behavior is similar to the Django request/response middleware processing.

        If this inspector has no post-processing to do, it should just ``return result`` (the default implementation).

        :param result: the return value of the winning inspector, or ``None`` if no inspector handled the object
        :param str method_name: name of the method that was called on the inspector
        :param obj: first argument passed to inspector method
        :param kwargs: additional arguments passed to inspector method
        :return:
        © )r,   Úresultr   ÚobjÚkwargss        r   Úprocess_resultzBaseInspector.process_resultE   s	   € ð ˆr   Nc                 óî  — |xs i }g }|D ]¨  }t        j                  |«      sJ d«       ‚t        |t        «      sJ d«       ‚ || j                  | j
                  | j                  | j                  | j                  fi |¤Ž}|j                  |«       t        ||d«      }|€Œ– ||fi |¤Ž}	|	t        usŒ¨ n t        j                  d|||«       d}	t        |«      D ]  } |j                  |	||fi |¤Ž}	Œ |	S )af  Probe a list of inspectors with a given object. The first inspector in the list to return a value that
        is not :data:`.NotHandled` wins.

        :param list[type[BaseInspector]] inspectors: list of inspectors to probe
        :param str method_name: name of the target method on the inspector
        :param obj: first argument to inspector method
        :param dict initkwargs: extra kwargs for instantiating inspector class
        :param kwargs: additional arguments to inspector method
        :return: the return value of the winning inspector, or ``None`` if no inspector handled the object
        z(inspector must be a class, not an objectz&inspectors must subclass BaseInspectorNz@%s ignored because no inspector in %s handled it (operation: %s))r   ÚisclassÚ
issubclassr'   r    r)   r   r*   r+   Úappendr   Ú
NotHandledr   r   Úreversedr3   )
r,   Ú
inspectorsr   r1   Ú
initkwargsr2   Útried_inspectorsÚ	inspectorr   r0   s
             r   Úprobe_inspectorszBaseInspector.probe_inspectorsV   s  € ð  Ò% 2ˆ
ØÐà#ò 	ˆIÜ—?‘? 9Ô-ÐYÐ/YÓYÐ-Ü˜i¬Ô7ÐaÐ9aÓaÐ7á! $§)¡)¨T¯Y©Y¸¿¹ÀTÇ_Á_ÐVZ×VbÑVbÑqÐfpÑqˆIØ×#Ñ# IÔ.Ü˜Y¨°TÓ:ˆFØˆ~Øá˜CÑ* 6Ñ*ˆFØœZÒ'Ùð	ô �N‰NÐ]Ø 
¨Kô9àˆFä!Ð"2Ó3ò 	RˆIØ-�Y×-Ñ-¨f°kÀ3ÑQÈ&ÑQ‰Fð	Rð ˆr   c                 óD   — t        t        | j                  ddg «      «      S )z¯Get the renderer classes of this view by calling `get_renderers`.

        :return: renderer classes
        :rtype: list[type[rest_framework.renderers.BaseRenderer]]
        Úget_renderersÚrenderer_classes©r   r%   r    ©r,   s    r   Úget_renderer_classesz"BaseInspector.get_renderer_classes{   s!   € ô "Ô"2°4·9±9¸oÐOaÐceÓ"fÓgÐgr   c                 óD   — t        t        | j                  ddg «      «      S )z¥Get the parser classes of this view by calling `get_parsers`.

        :return: parser classes
        :rtype: list[type[rest_framework.parsers.BaseParser]]
        Úget_parsersÚparser_classesrB   rC   s    r   Úget_parser_classesz BaseInspector.get_parser_classesƒ   s!   € ô "Ô"2°4·9±9¸mÐM]Ð_aÓ"bÓcÐcr   ©N)r   Ú
__module__Ú__qualname__r-   r3   r>   rD   rH   r/   r   r   r'   r'   6   s   „ òòó"#òJhódr   r'   c                   ó   — e Zd ZdZd„ Zd„ Zy)ÚPaginatorInspectorz�Base inspector for paginators.

    Responsible for determining extra query parameters and response structure added by given paginators.
    c                 ó   — t         S )a  Get the pagination parameters for a single paginator **instance**.

        Should return :data:`.NotHandled` if this inspector does not know how to handle the given `paginator`.

        :param BasePagination paginator: the paginator
        :rtype: list[openapi.Parameter]
        ©r8   )r,   Ú	paginators     r   Úget_paginator_parametersz+PaginatorInspector.get_paginator_parameters’   ó
   € ô Ðr   c                 ó   — t         S )ad  Add appropriate paging fields to a response :class:`.Schema`.

        Should return :data:`.NotHandled` if this inspector does not know how to handle the given `paginator`.

        :param BasePagination paginator: the paginator
        :param openapi.Schema response_schema: the response schema that must be paged.
        :rtype: openapi.Schema
        rO   )r,   rP   Úresponse_schemas      r   Úget_paginated_responsez)PaginatorInspector.get_paginated_responseœ   ó
   € ô Ðr   N)r   rJ   rK   Ú__doc__rQ   rU   r/   r   r   rM   rM   Œ   s   „ ñò
ó	r   rM   c                   ó   — e Zd ZdZd„ Zy)ÚFilterInspectorz€Base inspector for filter backends.

    Responsible for determining extra query parameters added by given filter backends.
    c                 ó   — t         S )a.  Get the filter parameters for a single filter backend **instance**.

        Should return :data:`.NotHandled` if this inspector does not know how to handle the given `filter_backend`.

        :param BaseFilterBackend filter_backend: the filter backend
        :rtype: list[openapi.Parameter]
        rO   )r,   Úfilter_backends     r   Úget_filter_parametersz%FilterInspector.get_filter_parameters®   rR   r   N)r   rJ   rK   rW   r\   r/   r   r   rY   rY   ¨   s   „ ñó
r   rY   c                   ó:   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zd„ Zd„ Zˆ xZ	S )ÚFieldInspectorz6Base inspector for serializers and serializer fields. c                 óB   •— t         t        | �  |||||«       || _        y rI   )Úsuperr^   r-   Úfield_inspectors)r,   r    r)   r   r*   r+   ra   Ú	__class__s          €r   r-   zFieldInspector.__init__¼   s"   ø€ ÜŒn˜dÑ,¨T°4¸ÀÈWÔUØ 0ˆÕr   c                 óˆ   — t        |dd«      }t        |di «      }|r&|j                  «       D ]  \  }}t        |||«       Œ yy)aV  Set fields from the ``swagger_schema_fields`` attribute on the Meta class. This method is called
        only for serializers or fields that are converted into ``openapi.Schema`` objects.

        :param serializer_or_field: serializer or field instance
        :param openapi.Schema schema: the schema object to be modified in-place
        ÚMetaNÚswagger_schema_fields)r   ÚitemsÚsetattr)r,   Úserializer_or_fieldÚschemaÚmetare   ÚattrÚvals          r   Úadd_manual_fieldsz FieldInspector.add_manual_fieldsÀ   sS   € ô Ð*¨F°DÓ9ˆÜ '¨Ð.EÀrÓ JÐÙ Ø2×8Ñ8Ó:ò +‘	��cÜ˜  cÕ*ñ+ð !r   c                 ó   — t         S )a  Convert a drf Serializer or Field instance into a Swagger object.

        Should return :data:`.NotHandled` if this inspector does not know how to handle the given `field`.

        :param rest_framework.serializers.Field field: the source field
        :param type[openapi.SwaggerDict] swagger_object_type: should be one of Schema, Parameter, Items
        :param bool use_references: if False, forces all objects to be declared inline
           instead of by referencing other components
        :param kwargs: extra attributes for constructing the object;
           if swagger_object_type is Parameter, ``name`` and ``in_`` should be provided
        :return: the swagger object
        :rtype: openapi.Parameter or openapi.Items or openapi.Schema or openapi.SchemaRef
        rO   ©r,   ÚfieldÚswagger_object_typeÚuse_referencesr2   s        r   Úfield_to_swagger_objectz&FieldInspector.field_to_swagger_objectÍ   s
   € ô Ðr   c                 ó`   —  | j                   | j                  d|d| j                  if||dœ|¤ŽS )zþHelper method for recursively probing `field_inspectors` to handle a given field.

        All arguments are the same as :meth:`.field_to_swagger_object`.

        :rtype: openapi.Parameter or openapi.Items or openapi.Schema or openapi.SchemaRef
        rs   ra   )rq   rr   ©r>   ra   ro   s        r   Úprobe_field_inspectorsz%FieldInspector.probe_field_inspectorsÝ   sH   € ð %ˆt×$Ñ$Ø×!Ñ!Ð#<¸eÐFXÐZ^×ZoÑZoÐEpð
à 3ÀNñ
àV\ñ
ð 	
r   c                 ó  ‡ ‡‡‡‡‡	— ‰t         j                  t         j                  t         j                  fv sJ ‚t	        ‰t         j
                  «      rJ d«       ‚‰j                  rt        ‰j                  «      ndŠ	‰t         j                  k(  r‰	ndŠ	t        ‰dd«      }|rt        |«      ndŠ‰t         j                  k7  r‰ndŠdˆˆˆˆ ˆˆ	fd„	}‰t         j                  k(  rt         j                  nt         j                  }||fS )a[  Helper method to extract generic information from a field and return a partial constructor for the
        appropriate openapi object.

        All arguments are the same as :meth:`.field_to_swagger_object`.

        The return value is a tuple consisting of:

        * a function for constructing objects of `swagger_object_type`; its prototype is: ::

            def SwaggerType(existing_object=None, **instance_kwargs):

          This function creates an instance of `swagger_object_type`, passing the following attributes to its init,
          in order of precedence:

            - arguments specified by the ``kwargs`` parameter of :meth:`._get_partial_types`
            - ``instance_kwargs`` passed to the constructor function
            - ``title``, ``description``, ``required``, ``x-nullable`` and ``default`` inferred from the field,
              where appropriate

          If ``existing_object`` is not ``None``, it is updated instead of creating a new object.

        * a type that should be used for child objects if `field` is of an array type. This can currently have two
          values:

            - :class:`.Schema` if `swagger_object_type` is :class:`.Schema`
            - :class:`.Items` if `swagger_object_type` is  :class:`.Parameter` or :class:`.Items`

        :rtype: (function,type[openapi.Schema] or type[openapi.Items])
        z,passed field is already a SwaggerDict objectNÚ	help_textc                 ó‚  •— d|vr"‰t         j                  k(  r‰j                  |d<   d|vr7‰t         j                  k7  r$t	        ‰«      }|d t
        j                  fvr||d<   |r5|j                  dd «      t         j                  k7  r|j                  d‰«       ‰�|j                  d‰«       t        ‰dd «      rd|d<   |j                  ‰	«       | �?t        | ‰«      sJ ‚t        |j                  «       «      D ]  \  }}t        | ||«       Œ | }n ‰d	i |¤Ž}‰t         j                   k(  r‰
j#                  ‰|«       |S )
NÚrequiredr"   r   ÚtitleÚdescriptionÚ
allow_nullTÚ
x_nullabler/   )r   Ú	Parameterrz   ÚItemsr   r   ÚemptyÚgetÚ
TYPE_ARRAYÚ
setdefaultr   Úupdater   Úsortedrf   rg   ÚSchemarm   )Úexisting_objectÚuse_field_titleÚinstance_kwargsr"   Úkeyrl   r0   r|   rp   r2   r,   rq   r{   s          €€€€€€r   ÚSwaggerTypez6FieldInspector._get_partial_types.<locals>.SwaggerType  sB  ø€ Ø Ñ0Ð5HÌG×L]ÑL]Ò5]Ø.3¯n©n� 
Ñ+à Ñ/Ð4GÌ7Ï=É=Ò4XÜ+¨EÓ2�Ø 4¬×):Ñ):Ð";Ñ;Ø18�O IÑ.á ?×#6Ñ#6°v¸tÓ#DÌ×HZÑHZÒ#ZØ×*Ñ*¨7°EÔ:ØÐ&Ø×*Ñ*¨=¸+ÔFä�u˜l¨DÔ1Ø04� Ñ-à×"Ñ" 6Ô*àÐ*Ü! /Ð3FÔGÐGÐGÜ & ×'<Ñ'<Ó'>Ó ?ò 7‘H�C˜Ü˜O¨S°#Õ6ð7à(‘á,Ñ?¨Ñ?�ð #¤g§n¡nÒ4Ø×&Ñ& u¨fÔ5ØˆMr   )NT)	r   r‡   r   r€   r   ÚSwaggerDictÚlabelr   r   )
r,   rp   rq   rr   r2   rx   rŒ   Úchild_swagger_typer|   r{   s
   ``` `   @@r   Ú_get_partial_typesz!FieldInspector._get_partial_typesé   sÒ   ý€ ð< #¤w§~¡~´w×7HÑ7HÌ'Ï-É-Ð&XÑXÐXÐXÜ˜e¤W×%8Ñ%8Ô9ÐiÐ;iÓiÐ9Ø/4¯{ª{”˜uŸ{™{Ô+ÀˆØ,´·±Ò>‘ÀDˆÜ˜E ;°Ó5ˆ	Ù3<”n YÔ/À$ˆØ%8¼G¿M¹MÒ%I‘kÈtˆ÷	ò 	ðD 0CÄgÇnÁnÒ/TœWŸ^š^ÔZa×ZgÑZgÐØÐ.Ð.Ð.r   )
r   rJ   rK   rW   r-   rm   rs   rv   r�   Ú__classcell__©rb   s   @r   r^   r^   ¹   s    ø„ Ù@ô1ò+òò 

öI/r   r^   c                   ó   — e Zd Zd„ Zd„ Zy)ÚSerializerInspectorc                 ó   — t         S )a-  Convert a DRF Serializer instance to an :class:`.openapi.Schema`.

        Should return :data:`.NotHandled` if this inspector does not know how to handle the given `serializer`.

        :param serializers.BaseSerializer serializer: the ``Serializer`` instance
        :rtype: openapi.Schema
        rO   ©r,   Ú
serializers     r   Ú
get_schemazSerializerInspector.get_schema6  rR   r   c                 ó   — t         S )a�  Convert a DRF serializer into a list of :class:`.Parameter`\ s.

        Should return :data:`.NotHandled` if this inspector does not know how to handle the given `serializer`.

        :param serializers.BaseSerializer serializer: the ``Serializer`` instance
        :param str in_: the location of the parameters, one of the `openapi.IN_*` constants
        :rtype: list[openapi.Parameter]
        rO   ©r,   r—   Úin_s      r   Úget_request_parametersz*SerializerInspector.get_request_parameters@  rV   r   N)r   rJ   rK   r˜   rœ   r/   r   r   r”   r”   5  s   „ òó	r   r”   c                   óx   ‡ — e Zd ZdZdZdZg Zg Zg Zˆ fd„Z	d„ Z
d„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zˆ xZS )ÚViewInspector)ÚPUTÚPATCHÚPOSTÚDELETE)rŸ   r    r¡   )ÚGETc                 ó¨   •— t         t        | �  |||||«       || _        | j	                  d«       | j	                  d«       | j	                  d«       y)zì
        Inspector class responsible for providing :class:`.Operation` definitions given a view, path and method.

        :param dict overrides: manual overrides as passed to :func:`@swagger_auto_schema <.swagger_auto_schema>`
        ra   Úfilter_inspectorsÚpaginator_inspectorsN)r`   rž   r-   Ú	overridesÚ_prepend_inspector_overrides)r,   r    r)   r   r*   r+   r§   rb   s          €r   r-   zViewInspector.__init__Z  sP   ø€ ô 	Œm˜TÑ+¨D°$¸À
ÈGÔTØ"ˆŒØ×)Ñ)Ð*<Ô=Ø×)Ñ)Ð*=Ô>Ø×)Ñ)Ð*@ÕAr   c                 ó¨   — | j                   j                  |d «      }|r/t        | |«      D �cg c]	  }||vsŒ|‘Œ }}t        | |||z   «       y y c c}w rI   )r§   r‚   r   rg   )r,   r:   Úextra_inspectorsÚinspÚdefault_inspectorss        r   r¨   z*ViewInspector._prepend_inspector_overridesf  s[   € ØŸ>™>×-Ñ-¨j¸$Ó?ÐÙÜ3:¸4ÀÓ3LÖ!m¨4ÐPTÐ\lÒPl¢$Ð!mÐÐ!mÜ�D˜*Ð&6Ð9KÑ&KÕLð ùÚ!ms
   ­	A·Ac                 ó   — t        d«      ‚)aw  Get an :class:`.Operation` for the given API endpoint (path, method).
        This includes query, body parameters and response schemas.

        :param tuple[str] operation_keys: an array of keys describing the hierarchical layout of this view in the API;
          e.g. ``('snippets', 'list')``, ``('snippets', 'retrieve')``, etc.
        :rtype: openapi.Operation
        z-ViewInspector must implement get_operation()!)ÚNotImplementedError)r,   Úoperation_keyss     r   Úget_operationzViewInspector.get_operationl  s   € ô "Ð"QÓRÐRr   c                 óX   — t        | j                  | j                  | j                  «      S )aÁ  Determine whether this view is a list or a detail view. The difference between the two is that
        detail views depend on a pk/id path parameter. Note that a non-detail view does not necessarily imply a list
        response (:meth:`.has_list_response`), nor are list responses limited to non-detail views.

        For example, one might have a `/topic/<pk>/posts` endpoint which is a detail view that has a list response.

        :rtype: bool)r	   r)   r   r    rC   s    r   r	   zViewInspector.is_list_viewv  s   € ô ˜DŸI™I t§{¡{°D·I±IÓ>Ð>r   c                 ór   — | j                  «       xr& | j                  j                  «       | j                  v S )zçDetermine whether this view returns multiple objects. By default this is any non-detail view
        (see :meth:`.is_list_view`) whose request method is one of :attr:`.implicit_list_response_methods`.

        :rtype: bool
        )r	   r   ÚupperÚimplicit_list_response_methodsrC   s    r   Úhas_list_responsezViewInspector.has_list_response€  s0   € ð × Ñ Ó"Òc¨¯©×(9Ñ(9Ó(;¸t×?bÑ?bÐ(bÐcr   c                 óT   — t        | j                  dd«      xr | j                  «       S )zoDetermine whether filter backend parameters should be included for this request.

        :rtype: bool
        Úfilter_backendsN©r   r    rµ   rC   s    r   Úshould_filterzViewInspector.should_filterˆ  s&   € ô
 �t—y‘yÐ"3°TÓ:ÒW¸t×?UÑ?UÓ?WÐWr   c                 ó¶   — | j                  «       sg S g }t        | j                  d«      D ]+  }|| j                  | j                  d |«       «      xs g z  }Œ- |S )zqReturn the parameters added to the view by its filter backends.

        :rtype: list[openapi.Parameter]
        r·   r\   )r¹   r   r    r>   r¥   )r,   Úfieldsr[   s      r   r\   z#ViewInspector.get_filter_parameters�  sh   € ð
 ×!Ñ!Ô#ØˆIàˆÜ% d§i¡iÐ1BÓCò 	uˆNØ�d×+Ñ+¨D×,BÑ,BÐD[Ñ]kÓ]mÓnÒtÐrtÑt‰Fð	uð ˆr   c                 óT   — t        | j                  dd«      xr | j                  «       S )zŠDetermine whether paging parameters and structure should be added to this operation's request and response.

        :rtype: bool
        rP   Nr¸   rC   s    r   Úshould_pagezViewInspector.should_page�  s%   € ô
 �t—y‘y +¨tÓ4ÒQ¸×9OÑ9OÓ9QÐQr   c                 ó�   — | j                  «       sg S | j                  | j                  dt        | j                  d«      «      xs g S )zkReturn the parameters added to the view by its paginator.

        :rtype: list[openapi.Parameter]
        rQ   rP   )r½   r>   r¦   r   r    rC   s    r   Úget_pagination_parametersz'ViewInspector.get_pagination_parameters¤  sL   € ð
 ×ÑÔ!ØˆIà×$Ñ$ T×%>Ñ%>Ð@ZÜ%,¨T¯Y©Y¸Ó%DóFò LØIKð	Lr   c                 óV   — | j                  | j                  d|d| j                  i«      S )a#  Convert a serializer to an OpenAPI :class:`.Schema`.

        :param serializers.BaseSerializer serializer: the ``Serializer`` instance
        :returns: the converted :class:`.Schema`, or ``None`` in case of an unknown serializer
        :rtype: openapi.Schema or openapi.SchemaRef
        r˜   ra   ru   r–   s     r   Úserializer_to_schemaz"ViewInspector.serializer_to_schema¯  s3   € ð ×$Ñ$Ø×!Ñ! <°Ð>PÐRV×RgÑRgÐ=hó
ð 	
r   c                 ób   — | j                  | j                  d|d| j                  i|¬«      xs g S )a(  Convert a serializer to a possibly empty list of :class:`.Parameter`\ s.

        :param serializers.BaseSerializer serializer: the ``Serializer`` instance
        :param str in_: the location of the parameters, one of the `openapi.IN_*` constants
        :rtype: list[openapi.Parameter]
        rœ   ra   )r›   ru   rš   s      r   Úserializer_to_parametersz&ViewInspector.serializer_to_parametersº  sF   € ð ×$Ñ$Ø×!Ñ!Ð#;¸ZÐJ\Ð^b×^sÑ^sÐItØð %ó 
ò ð ð	r   c                 óh   — | j                  | j                  dt        | j                  d«      |¬«      S )a+  Add appropriate paging fields to a response :class:`.Schema`.

        :param openapi.Schema response_schema: the response schema that must be paged.
        :returns: the paginated response class:`.Schema`, or ``None`` in case of an unknown pagination scheme
        :rtype: openapi.Schema
        rU   rP   )rT   )r>   r¦   r   r    )r,   rT   s     r   rU   z$ViewInspector.get_paginated_responseÆ  s:   € ð ×$Ñ$ T×%>Ñ%>Ð@XÜ%,¨T¯Y©Y¸Ó%DÐVeð %ó gð 	gr   )r   rJ   rK   Úbody_methodsÚimplicit_body_methodsr´   ra   r¥   r¦   r-   r¨   r°   r	   rµ   r¹   r\   r½   r¿   rÁ   rÃ   rU   r‘   r’   s   @r   rž   rž   L  sp   ø„ Ø5€Lð 5Ðð &.Ð"ð ÐØÐØÐô
BòMòSò?òdòXòòRò	Lò	
ò
ögr   rž   )NN)r   ÚloggingÚrest_frameworkr   Ú r   Úutilsr   r   r   r	   Úobjectr8   Ú	getLoggerr   r   r   r%   r'   rM   rY   r^   r”   rž   r/   r   r   ú<module>rÍ      s�   ðÛ Û å &å ß WÓ Wñ ‹X€
à	ˆ×	Ñ	˜8Ó	$€ò`ó÷:Sdñ Sdôl˜ô ô8�mô ô"y/�]ô y/ôx˜.ô ô.Bg�Mõ Bgr   