Ë
    üûàgçD  ã                   óÊ   — d dl Z d dlmZ d dlmZ d dlmZ d dlmZ ddl	m
Z
 ddlmZ dd	lmZmZmZmZmZmZmZmZmZ d
dlmZmZ  e j4                  e«      Z G d„ de«      Zy)é    N)ÚOrderedDict©Úis_form_media_type)Ú
AutoSchema)Ú
is_successé   )Úopenapi)ÚSwaggerGenerationError)	Úfilter_noneÚforce_real_strÚforce_serializer_instanceÚget_consumesÚget_producesÚguess_response_statusÚmerge_paramsÚno_bodyÚparam_list_to_odicté   )ÚViewInspectorÚcall_view_methodc                   ó¶   ‡ — e Zd Zdˆ fd„	Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zdd„Zd„ Zd„ Zd„ Zd„ Zdd„Zd„ Zd„ Zˆ xZS )ÚSwaggerAutoSchemac                 ó„   •— t         t        | �  ||||||«       t        «       | _        || j                  _        || _        y ©N)Úsuperr   Ú__init__r   Ú_schÚviewÚoperation_keys)	Úselfr   ÚpathÚmethodÚ
componentsÚrequestÚ	overridesr   Ú	__class__s	           €úV/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/drf_yasg/inspectors/view.pyr   zSwaggerAutoSchema.__init__   s;   ø€ ÜÔ Ñ/°°d¸FÀJÐPWÐYbÔcÜ“LˆŒ	Øˆ�	‰	ŒØ,ˆÕó    c                 óD  — |xs | j                   }| j                  «       }| j                  «       }| j                  |«      }| j	                  «       }||z   }t        |«      }| j                  |«      }| j                  |«      }| j                  «       \  }}	| j                  «       }
|
�t        |
t        «      sJ d«       ‚| j                  «       }| j                  |«      }| j                  «       }t        j                   |t#        |	«      t#        |«      ||||||
|¬«
      S )Nz7security must be a list of security requirement objects)
Úoperation_idÚdescriptionÚsummaryÚ	responsesÚ
parametersÚconsumesÚproducesÚtagsÚsecurityÚ
deprecated)r   r   r   Úget_request_body_parametersÚget_query_parametersr   Úadd_manual_parametersÚget_operation_idÚget_summary_and_descriptionÚget_securityÚ
isinstanceÚlistÚis_deprecatedÚget_tagsÚget_responsesr	   Ú	Operationr   )r    r   r/   r0   ÚbodyÚqueryr.   r*   r,   r+   r2   r3   r1   r-   s                 r'   Úget_operationzSwaggerAutoSchema.get_operation   s   € Ø'Ò>¨4×+>Ñ+>ˆà×$Ñ$Ó&ˆØ×$Ñ$Ó&ˆà×/Ñ/°Ó9ˆØ×)Ñ)Ó+ˆØ˜E‘\ˆ
Ü  Ó,ˆ
Ø×/Ñ/°
Ó;ˆ
à×,Ñ,¨^Ó<ˆØ#×?Ñ?ÓAÑˆ�Ø×$Ñ$Ó&ˆØÐ¤:¨h¼Ô#=ÐxÐ?xÓxÐ=Ø×'Ñ'Ó)ˆ
Ø�}‰}˜^Ó,ˆà×&Ñ&Ó(ˆ	ä× Ñ Ø%Ü& {Ó3Ü" 7Ó+ØØ!ØØØØØ!ô
ð 	
r(   c                 ó,  — | j                  «       }d}|€g S t        |t        j                  j                  «      r|}t        d„ |D «       «      r|�t        d«      ‚| j                  |«      S |€| j                  |«      }|�| j                  |«      gS g S )a   Return the request body parameters for this view. |br|
        This is either:

        -  a list with a single object Parameter with a :class:`.Schema` derived from the request serializer
        -  a list of primitive Parameters parsed as form data

        :param list[str] consumes: a list of accepted MIME types as returned by :meth:`.get_consumes`
        :return: a (potentially empty) list of :class:`.Parameter`\ s either ``in: body`` or ``in: formData``
        :rtype: list[openapi.Parameter]
        Nc              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr   r   ©Ú.0Úencodings     r'   ú	<genexpr>z@SwaggerAutoSchema.get_request_body_parameters.<locals>.<genexpr>O   s   è ø€ ÒE°Ô! (×+ÑEùó   ‚z$form request body cannot be a Schema)
Úget_request_serializerr:   r	   ÚSchemaÚOR_REFÚanyr
   Úget_request_form_parametersÚget_request_body_schemaÚmake_body_parameter)r    r/   Ú
serializerÚschemas       r'   r4   z-SwaggerAutoSchema.get_request_body_parameters<   s    € ð ×0Ñ0Ó2ˆ
ØˆØÐØˆIä�j¤'§.¡.×"7Ñ"7Ô8ØˆFäÑE¸HÔEÔEØÐ!Ü,Ð-SÓTÐTØ×3Ñ3°JÓ?Ð?àˆ~Ø×5Ñ5°jÓA�Ø9?Ð9K�D×,Ñ,¨VÓ4Ð5ÐSÐQSÐSr(   c                 ó.   — t        | j                  d«      S )z¶Return the serializer as defined by the view's ``get_serializer()`` method.

        :return: the view's ``Serializer``
        :rtype: rest_framework.serializers.Serializer
        Úget_serializer)r   r   ©r    s    r'   Úget_view_serializerz%SwaggerAutoSchema.get_view_serializerX   s   € ô   §	¡	Ð+;Ó<Ð<r(   c                 óD  — | j                   j                  dd«      }|��|t        u rt        S | j                  | j                  vr*t        ddj                  | j                  «      z   dz   «      ‚t        |t        j                  j                  «      r|S t        |«      S |S )zOParse the request_body key in the override dict. This method is not public API.Úrequest_bodyNz%request_body can only be applied to (ú,z=); are you looking for query_serializer or manual_parameters?)r%   Úgetr   r"   Úbody_methodsr
   Újoinr:   r	   rK   rL   r   ©r    Úbody_overrides     r'   Ú_get_request_body_overridez,SwaggerAutoSchema._get_request_body_override`   s›   € àŸ™×*Ñ*¨>¸4Ó@ˆàÐ$Ø¤Ñ'Ü�Ø�{‰{ $×"3Ñ"3Ñ3Ü,Ð-TÐWZ×W_ÑW_Ð`d×`qÑ`qÓWrÑ-rØ-lñ.mó nð nä˜-¬¯©×)>Ñ)>Ô?Ø$Ð$Ü,¨]Ó;Ð;àÐr(   c                 óŒ   — | j                  «       }|€(| j                  | j                  v r| j                  «       S |t        u ry|S )zúReturn the request serializer (used for parsing the request payload) for this endpoint.

        :return: the request serializer, or one of :class:`.Schema`, :class:`.SchemaRef`, ``None``
        :rtype: rest_framework.serializers.Serializer
        N)r_   r"   Úimplicit_body_methodsrV   r   r]   s     r'   rJ   z(SwaggerAutoSchema.get_request_serializerp   sI   € ð ×7Ñ7Ó9ˆàÐ  T§[¡[°D×4NÑ4NÑ%NØ×+Ñ+Ó-Ð-àœGÑ#ØàÐr(   c                 óD   — | j                  |t        j                  ¬«      S )zçGiven a Serializer, return a list of ``in: formData`` :class:`.Parameter`\ s.

        :param serializer: the view's request serializer as returned by :meth:`.get_request_serializer`
        :rtype: list[openapi.Parameter]
        ©Úin_)Úserializer_to_parametersr	   ÚIN_FORM©r    rQ   s     r'   rN   z-SwaggerAutoSchema.get_request_form_parameters€   s   € ð ×,Ñ,¨Z¼W¿_¹_Ð,ÓMÐMr(   c                 ó$   — | j                  |«      S )zûReturn the :class:`.Schema` for a given request's body data. Only applies to PUT, PATCH and POST requests.

        :param serializer: the view's request serializer as returned by :meth:`.get_request_serializer`
        :rtype: openapi.Schema
        )Úserializer_to_schemarg   s     r'   rO   z)SwaggerAutoSchema.get_request_body_schemaˆ   s   € ð ×(Ñ(¨Ó4Ð4r(   c                 óP   — t        j                  dt         j                  d|¬«      S )z¶Given a :class:`.Schema` object, create an ``in: body`` :class:`.Parameter`.

        :param openapi.Schema schema: the request body schema
        :rtype: openapi.Parameter
        ÚdataT)Únamerd   ÚrequiredrR   )r	   Ú	ParameterÚIN_BODY)r    rR   s     r'   rP   z%SwaggerAutoSchema.make_body_parameter�   s    € ô × Ñ  f´'·/±/ÈDÐY_Ô`Ð`r(   c                 óº  — | j                   j                  dd«      xs g }t        d„ |D «       «      rt        d«      ‚t        d„ |D «       «      r�t        d„ |D «       «      }|s t        d„ | j	                  «       D «       «      st        d«      ‚| j
                  | j                  vr*t        d	d
j                  | j                  «      z   dz   «      ‚t        ||«      S )zøAdd/replace parameters from the given list of automatically generated request parameters.

        :param list[openapi.Parameter] parameters: generated parameters
        :return: modified parameters
        :rtype: list[openapi.Parameter]
        Úmanual_parametersNc              3   óV   K  — | ]!  }|j                   t        j                  k(  –— Œ# y ­wr   ©rd   r	   ro   ©rF   Úparams     r'   rH   z:SwaggerAutoSchema.add_manual_parameters.<locals>.<genexpr>¡   ó   è ø€ ÒK°ˆu�y‰yœGŸO™OÕ+ÑKùó   ‚')zDspecify the body parameter as a Schema or Serializer in request_bodyc              3   óV   K  — | ]!  }|j                   t        j                  k(  –— Œ# y ­wr   )rd   r	   rf   rt   s     r'   rH   z:SwaggerAutoSchema.add_manual_parameters.<locals>.<genexpr>£   rv   rw   c              3   óV   K  — | ]!  }|j                   t        j                  k(  –— Œ# y ­wr   rs   rt   s     r'   rH   z:SwaggerAutoSchema.add_manual_parameters.<locals>.<genexpr>¤   s   è ø€ Ò$ZÀe U§Y¡Y´'·/±/Õ%AÑ$Zùrw   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr   r   rE   s     r'   rH   z:SwaggerAutoSchema.add_manual_parameters.<locals>.<genexpr>¥   s   è ø€ Ò,nÈhÔ-?À×-IÑ,nùrI   z~cannot add form parameters when the request has a request body; did you forget to set an appropriate parser class on the view?z(form parameters can only be applied to (rY   z) HTTP methods)	r%   rZ   rM   r
   r   r"   r[   r\   r   )r    r.   rq   Úhas_body_parameters       r'   r6   z'SwaggerAutoSchema.add_manual_parameters˜   sâ   € ð !ŸN™N×.Ñ.Ð/BÀDÓIÒOÈRÐäÑKÐ9JÔKÔKÜ(Ð)oÓpÐpÜÑKÐ9JÔKÔKÜ!$Ñ$ZÈzÔ$ZÓ!ZÐÙ!¬Ñ,nÐZ^×ZkÑZkÓZmÔ,nÔ)nÜ,ð .nó oð oà�{‰{ $×"3Ñ"3Ñ3Ü,ð .1Ø36·8±8¸D×<MÑ<MÓ3Nñ.OØQañ.bó cð cô ˜JÐ(9Ó:Ð:r(   c                 ól   — | j                  «       }t        j                  | j                  |«      ¬«      S )z§Get the possible responses for this view as a swagger :class:`.Responses` object.

        :return: the documented responses
        :rtype: openapi.Responses
        )r-   )Úget_response_serializersr	   Ú	ResponsesÚget_response_schemas)r    Úresponse_serializerss     r'   r>   zSwaggerAutoSchema.get_responses®   s5   € ð  $×<Ñ<Ó>ÐÜ× Ñ Ø×/Ñ/Ð0DÓEô
ð 	
r(   c                 óZ   — | j                  «       }|r
|t        ur|S | j                  «       S )a  Return the default response serializer for this endpoint. This is derived from either the ``request_body``
        override or the request serializer (:meth:`.get_view_serializer`).

        :return: response serializer, :class:`.Schema`, :class:`.SchemaRef`, ``None``
        )r_   r   rV   r]   s     r'   Úget_default_response_serializerz1SwaggerAutoSchema.get_default_response_serializer¹   s1   € ð ×7Ñ7Ó9ˆÙ˜]´'Ñ9Ø Ð à×'Ñ'Ó)Ð)r(   c                 óÊ  — | j                   j                  «       }t        |«      }d}|dv r| j                  «       }|xs d}|r/t	        |t
        j                  «      s| j                  |«      xs d}|rZ| j                  «       r%t        j                  t
        j                  |¬«      }| j                  «       r| j                  |«      xs |}t        t        |«      |i«      S )z•Get the default responses determined for this view from the request serializer and request method.

        :type: dict[str, openapi.Schema]
        Ú )rZ   ÚpostÚputÚpatch)ÚtypeÚitems)r"   Úlowerr   r‚   r:   r	   rK   ri   Úhas_list_responseÚ
TYPE_ARRAYÚshould_pageÚget_paginated_responser   Ústr)r    r"   Údefault_statusÚdefault_schemas       r'   Úget_default_responsesz'SwaggerAutoSchema.get_default_responsesÅ   sÇ   € ð
 —‘×"Ñ"Ó$ˆä.¨vÓ6ˆØˆØÐ4Ñ4Ø!×AÑAÓCˆNà'Ò-¨2ˆÙ¤*¨^¼W¿^¹^Ô"LØ!×6Ñ6°~ÓFÒLÈ"ˆNáØ×%Ñ%Ô'Ü!(§¡´W×5GÑ5GÈ~Ô!^�Ø×ÑÔ!Ø!%×!<Ñ!<¸^Ó!LÒ!^ÐP^�äœC Ó/°Ð@ÓAÐAr(   c                 ó*  — | j                   j                  dd«      xs i }t        d„ |j                  «       D «       «      }t        «       }t	        d„ |D «       «      s| j                  «       }|j                  d„ |j                  «       D «       «       |S )aØ  Return the response codes that this view is expected to return, and the serializer for each response body.
        The return value should be a dict where the keys are possible status codes, and values are either strings,
        ``Serializer``\ s, :class:`.Schema`, :class:`.SchemaRef` or :class:`.Response` objects. See
        :func:`@swagger_auto_schema <.swagger_auto_schema>` for more details.

        :return: the response serializers
        :rtype: dict
        r-   Nc              3   ó<   K  — | ]  \  }}t        |«      |f–— Œ y ­wr   ©r�   ©rF   ÚscÚresps      r'   rH   z=SwaggerAutoSchema.get_response_serializers.<locals>.<genexpr>ç   s   è ø€ Ò&`¹8¸2¸t¬¨B«°¤Ñ&`ùó   ‚c              3   óP   K  — | ]  }|d k7  sŒ	t        t        |«      «      –— Œ  y­w)ÚdefaultN)r   Úint)rF   r—   s     r'   rH   z=SwaggerAutoSchema.get_response_serializers.<locals>.<genexpr>ê   s   è ø€ ÒU¨2ÀRÈ9Ã_”:œc "›g×&ÑUùs   ‚
&�&c              3   ó<   K  — | ]  \  }}t        |«      |f–— Œ y ­wr   r•   r–   s      r'   rH   z=SwaggerAutoSchema.get_response_serializers.<locals>.<genexpr>í   s   è ø€ ÒR©X¨R°œ#˜b›' 4œÑRùr™   )r%   rZ   r   r‰   rM   r’   Úupdate)r    Úmanual_responsesr-   s      r'   r}   z*SwaggerAutoSchema.get_response_serializersÝ   sƒ   € ð  Ÿ>™>×-Ñ-¨k¸4Ó@ÒFÀBÐÜ&Ñ&`ÐGW×G]ÑG]ÓG_Ô&`Ó`Ðä“Mˆ	ÜÑUÐ1AÔUÔUØ×2Ñ2Ó4ˆIà×ÑÑRÐ9I×9OÑ9OÓ9QÔRÔRØÐr(   c                 óê  — t        «       }|j                  «       D �]T  \  }}t        |t        «      r!t	        j
                  t        |«      ¬«      }�n|sŒ;t        |t        j
                  «      rh|}t        |d«      rät        |j                  t        j                  j                  «      s¶t        |j                  «      }| j                  |«      |_        nŠt        |t        j                  j                  «      rt	        j
                  d|¬«      }nNt        |t        j                  «      r|}n1t        |«      }t	        j
                  d| j                  |«      ¬«      }||t        |«      <   �ŒW |S )a7  Return the :class:`.openapi.Response` objects calculated for this view.

        :param dict response_serializers: response serializers as returned by :meth:`.get_response_serializers`
        :return: a dictionary of status code to :class:`.Response` object
        :rtype: dict[str, openapi.Response]
        )r+   rR   r„   )r+   rR   )r   r‰   r:   r�   r	   ÚResponser   ÚhasattrrR   rK   rL   r   ri   Ú_Ref)r    r€   r-   r—   rQ   Úresponses         r'   r   z&SwaggerAutoSchema.get_response_schemasð   s,  € ô  “Mˆ	Ø2×8Ñ8Ó:ó 	*‰NˆB�
Ü˜*¤cÔ*Ü"×+Ñ+Ü .¨zÓ :ô’ñ  ØÜ˜J¬×(8Ñ(8Ô9Ø%�Ü˜8 XÔ.´zÀ(Ç/Á/ÔSZ×SaÑSa×ShÑShÔ7iÜ!:¸8¿?¹?Ó!K�JØ&*×&?Ñ&?À
Ó&K�H•OÜ˜J¬¯©×(=Ñ(=Ô>Ü"×+Ñ+Ø "Ø%ô‘ô ˜J¬¯©Ô5Ø%‘ä6°zÓB�
Ü"×+Ñ+Ø "Ø×4Ñ4°ZÓ@ô�ð
 "*ˆI”c˜"“gÓð5	*ð8 Ðr(   c                 óX   — | j                   j                  dd«      }|�t        |«      }|S )z�Return the query serializer (used for parsing query parameters) for this endpoint.

        :return: the query serializer, or ``None``
        Úquery_serializerN)r%   rZ   r   )r    r¦   s     r'   Úget_query_serializerz&SwaggerAutoSchema.get_query_serializer  s4   € ð
  Ÿ>™>×-Ñ-Ð.@À$ÓGÐØÐ'Ü8Ð9IÓJÐØÐr(   c                 ól  — | j                  «       | j                  «       z   }| j                  «       }g }|�{| j                  |t        j
                  ¬«      }t        t        t        |«      «      t        t        |«      «      z  «      dk7  r%t        d| j                  ›d| j                  ›�«      ‚||z   S )zdReturn the query parameters accepted by this view.

        :rtype: list[openapi.Parameter]
        rc   r   zmyour query_serializer contains fields that conflict with the filter_backend or paginator_class on the view - ú )Úget_filter_parametersÚget_pagination_parametersr§   re   r	   ÚIN_QUERYÚlenÚsetr   r
   r"   r!   )r    Únatural_parametersr¦   Úserializer_parameterss       r'   r5   z&SwaggerAutoSchema.get_query_parameters   s¶   € ð
 "×7Ñ7Ó9¸D×<ZÑ<ZÓ<\Ñ\Ðà×4Ñ4Ó6ÐØ "ÐØÐ'Ø$(×$AÑ$AÐBRÔX_×XhÑXhÐ$AÓ$iÐ!ä”3Ô*Ð+=Ó>Ó?Ä#ÔFYÐZoÓFpÓBqÑqÓrÐvwÒwÝ,àOSÏ{Ë{Ð\`×\eÒ\eðgóð ð
 "Ð$9Ñ9Ð9r(   c                 ó„   — |xs | j                   }| j                  j                  dd«      }|sdj                  |«      }|S )aq  Return an unique ID for this operation. The ID must be unique across
        all :class:`.Operation` objects in the API.

        :param tuple[str] operation_keys: an array of keys derived from the path describing the hierarchical layout
            of this view in the API; e.g. ``('snippets', 'list')``, ``('snippets', 'retrieve')``, etc.
        :rtype: str
        r*   r„   Ú_)r   r%   rZ   r\   )r    r   r*   s      r'   r7   z"SwaggerAutoSchema.get_operation_id4  sA   € ð (Ò>¨4×+>Ñ+>ˆà—~‘~×)Ñ)¨.¸"Ó=ˆÙØŸ8™8 NÓ3ˆLØÐr(   c                 óÊ   — d}d}|j                  dd«      }t        |«      dk(  r<|d   j                  «       |d<   t        |d   «      |k  r|\  }}|j                  «       }||fS )aS  Decide if and how to split a summary out of the given description. The default implementation
        uses the first paragraph of the description as a summary if it is less than 120 characters long.

        :param description: the full description to be analyzed
        :return: summary and description
        :rtype: (str,str)
        Néx   z

r   r   r   )Úsplitr­   Ústrip)r    r+   r,   Úsummary_max_lenÚsectionss        r'   Úsplit_summary_from_descriptionz0SwaggerAutoSchema.split_summary_from_descriptionC  sv   € ð ˆØˆØ×$Ñ$ V¨QÓ/ˆÜˆx‹=˜AÒØ" 1™+×+Ñ+Ó-ˆH�Q‰KÜ�8˜A‘;Ó /Ò1Ø'/Ñ$�˜Ø)×/Ñ/Ó1�à˜Ð#Ð#r(   c                 óV  — | j                   j                  dd«      }| j                   j                  dd«      }|€l| j                  j                  | j                  | j
                  «      xs d}|j                  «       j                  dd«      }|r|€| j                  |«      \  }}||fS )zžReturn an operation summary and description determined from the view's docstring.

        :return: summary and description
        :rtype: (str,str)
        Úoperation_descriptionNÚoperation_summaryr„   ú)	r%   rZ   r   Úget_descriptionr!   r"   r¶   Úreplacer¹   )r    r+   r,   s      r'   r8   z-SwaggerAutoSchema.get_summary_and_descriptionW  s�   € ð —n‘n×(Ñ(Ð)@À$ÓGˆØ—.‘.×$Ñ$Ð%8¸$Ó?ˆØÐØŸ)™)×3Ñ3°D·I±I¸t¿{¹{ÓKÒQÈrˆKØ%×+Ñ+Ó-×5Ñ5°d¸BÓ?ˆKá  à'+×'JÑ'JÈ;Ó'WÑ$�˜à˜Ð#Ð#r(   c                 ó:   — | j                   j                  dd«      S )aT  Return a list of security requirements for this operation.

        Returning an empty list marks the endpoint as unauthenticated (i.e. removes all accepted
        authentication schemes). Returning ``None`` will inherit the top-level security requirements.

        :return: security requirements
        :rtype: list[dict[str,list[str]]]r2   N©r%   rZ   rU   s    r'   r9   zSwaggerAutoSchema.get_securityi  s   € ð �~‰~×!Ñ! *¨dÓ3Ð3r(   c                 ó:   — | j                   j                  dd«      S )zƒReturn ``True`` if this operation is to be marked as deprecated.

        :return: deprecation status
        :rtype: bool
        r3   NrÁ   rU   s    r'   r<   zSwaggerAutoSchema.is_deprecateds  s   € ð �~‰~×!Ñ! ,°Ó5Ð5r(   c                 ól   — |xs | j                   }| j                  j                  d«      }|s|d   g}|S )a
  Get a list of tags for this operation. Tags determine how operations relate with each other, and in the UI
        each tag will show as a group containing the operations that use it. If not provided in overrides,
        tags will be inferred from the operation url.

        :param tuple[str] operation_keys: an array of keys derived from the path describing the hierarchical layout
            of this view in the API; e.g. ``('snippets', 'list')``, ``('snippets', 'retrieve')``, etc.
        :rtype: list[str]
        r1   r   )r   r%   rZ   )r    r   r1   s      r'   r=   zSwaggerAutoSchema.get_tags{  s=   € ð (Ò>¨4×+>Ñ+>ˆà�~‰~×!Ñ! &Ó)ˆÙØ" 1Ñ%Ð&ˆDàˆr(   c                 ó4   — t        | j                  «       «      S )zTReturn the MIME types this endpoint can consume.

        :rtype: list[str]
        )r   Úget_parser_classesrU   s    r'   r   zSwaggerAutoSchema.get_consumesŒ  s   € ô
 ˜D×3Ñ3Ó5Ó6Ð6r(   c                 ó4   — t        | j                  «       «      S )zTReturn the MIME types this endpoint can produce.

        :rtype: list[str]
        )r   Úget_renderer_classesrU   s    r'   r   zSwaggerAutoSchema.get_produces“  s   € ô
 ˜D×5Ñ5Ó7Ó8Ð8r(   r   )Ú__name__Ú
__module__Ú__qualname__r   rB   r4   rV   r_   rJ   rN   rO   rP   r6   r>   r‚   r’   r}   r   r§   r5   r7   r¹   r8   r9   r<   r=   r   r   Ú__classcell__)r&   s   @r'   r   r      s†   ø„ õ-ó 
òDTò8=òò ò Nò5òaò;ò,	
ò
*òBò0ò&$òL ò:ó(ò$ò($ò$4ò6óò"7ö9r(   r   )ÚloggingÚcollectionsr   Úrest_framework.requestr   Úrest_framework.schemasr   Úrest_framework.statusr   r„   r	   Úerrorsr
   Úutilsr   r   r   r   r   r   r   r   r   Úbaser   r   Ú	getLoggerrÈ   Úloggerr   © r(   r'   ú<module>r×      sN   ðÛ Ý #å 5Ý -Ý ,å Ý +÷÷ õ ÷ 2à	ˆ×	Ñ	˜8Ó	$€ôE9˜õ E9r(   