Ë
    üûàg´  ã                   óà   — d dl Z d dlmZ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 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 ej6                  ZeefeefeeefdœZd„ Z	 	 dd„Zy)é    N)ÚWRAPPER_ASSIGNMENTSÚwraps©Úadd_never_cache_headers)Ú
cache_page)Úvary_on_headers)Ú
exceptions)ÚResponse)Úapi_settings)ÚAPIViewé   )Úswagger_settings)ÚReDocOldRendererÚReDocRendererÚSwaggerJSONRendererÚSwaggerUIRendererÚSwaggerYAMLRendererÚ_SpecRenderer)ÚswaggerÚredocz	redoc-oldc                 ó:   ‡ — t        ‰ t        ¬«      ˆ fd„«       }|S )zX
    Decorator that adds headers to a response so that it will
    never be cached.
    )Úassignedc                 óH   •—  ‰| g|¢­i |¤Ž}d„ }|j                  |«       |S )Nc                 ó   — t        | «       | S ©Nr   )Úresponses    úL/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/drf_yasg/views.pyÚcallbackzBdeferred_never_cache.<locals>._wrapped_view_func.<locals>.callback,   s   € Ü# HÔ-ØˆOó    )Úadd_post_render_callback)ÚrequestÚargsÚkwargsr   r   Ú	view_funcs        €r   Ú_wrapped_view_funcz0deferred_never_cache.<locals>._wrapped_view_func$   s1   ø€ á˜WÐ6 tÒ6¨vÑ6ˆò	ð 	×)Ñ)¨(Ô3Øˆr   )r   r   )r$   r%   s   ` r   Údeferred_never_cacher&      s'   ø€ ô ˆ9Ô2Ô3óó 4ðð Ðr   c	                 óª  ‡ ‡‡‡‡‡
‡‡‡‡— |Š|xs t         j                  Š|Š
‰
€t        j                  Š
|Š‰€t        j                  Š‰ xs t         j
                  Š ‰xs g Št        ˆfd„t        D «       «      Št         j                  r/t        j                  dt        «       ‰t        d„ ‰D «       «      z  Š G ˆ
ˆˆˆˆˆ ˆˆˆf	d„dt        «      }	|	S )aÁ  Create a SchemaView class with default renderers and generators.

    :param Info info: information about the API; if omitted, defaults to :ref:`DEFAULT_INFO <default-swagger-settings>`
    :param str url: same as :class:`.OpenAPISchemaGenerator`
    :param patterns: same as :class:`.OpenAPISchemaGenerator`
    :param urlconf: same as :class:`.OpenAPISchemaGenerator`
    :param bool public: if False, includes only the endpoints that are accessible by the user viewing the schema
    :param list validators: a list of validator names to apply; the only allowed value is ``ssv``, for now
    :param type generator_class: schema generator class to use; should be a subclass of :class:`.OpenAPISchemaGenerator`
    :param list authentication_classes: authentication classes for the schema view itself
    :param list permission_classes: permission classes for the schema view itself
    :return: SchemaView class
    :rtype: type[drf_yasg.views.SchemaView]
    c              3   ó@   •K  — | ]  }|j                  ‰«      –— Œ y ­wr   )Úwith_validators)Ú.0ÚrendererÚ
validatorss     €r   ú	<genexpr>z"get_schema_view.<locals>.<genexpr>P   s   øè ø€ Ò`ÀX˜H×4Ñ4°Z×@Ñ`ùs   ƒa  SwaggerJSONRenderer & SwaggerYAMLRenderer's `format` has changed to not include a `.` prefix, please silence this warning by setting `SWAGGER_USE_COMPAT_RENDERERS = False` in your Django settings and ensure your application works (check your URLCONF and swagger/redoc URLs).c              3   ó–   K  — | ]A  }t        |t        t        f«      r)t        |j                  |fd d|j
                  z   i«      –— ŒC y­w)Úformatú.N)Ú
issubclassr   r   ÚtypeÚ__name__r/   )r*   Úclss     r   r-   z"get_schema_view.<locals>.<genexpr>Z   sF   è ø€ ò !
àÜ˜#Ô 3Ô5HÐIÔJô �—‘ ˜v¨°#¸¿
¹
Ñ2BÐ'C×Dñ!
ùs   ‚AA	c                   ó”   •	— e Zd ZdZdZW °ZW °ZW ° ZW °ZW °Z	dˆˆˆˆfd„	Z
ed„ «       Zed	d„«       Zed	ˆfd„	«       Zed
ˆfd„	«       Zy)ú#get_schema_view.<locals>.SchemaViewTNc                 ó0  •— |j                   xs |xs d}t        |j                  t        «      r| j	                  ‰|‰‰‰	«      }n| j	                  ‰|‰g ¬«      }|j                  || j                  «      }|€t        j                  «       ‚t        |«      S )NÚ )Úpatterns)
ÚversionÚ
isinstanceÚaccepted_rendererr   Úgenerator_classÚ
get_schemaÚpublicr	   ÚPermissionDeniedr
   )
Úselfr!   r:   r/   Ú	generatorÚschemaÚinfor9   ÚurlÚurlconfs
         €€€€r   Úgetz'get_schema_view.<locals>.SchemaView.geti   sŒ   ø€ Ø—o‘oÒ6¨Ò6°BˆGÜ˜'×3Ñ3´]ÔCØ ×0Ñ0°°wÀÀXÈwÓW‘	à ×0Ñ0°°wÀÈbÐ0ÓQ�	à×)Ñ)¨'°4·;±;Ó?ˆFØˆ~Ü ×1Ñ1Ó3Ð3Ü˜FÓ#Ð#r   c                 ód   —  t        dd«      |«      } t        |fi |¤Ž|«      }t        |«      }|S )z�Override this method to customize how caching is applied to the view.

            Arguments described in :meth:`.as_cached_view`.
            ÚCookieÚAuthorization)r   r   r&   )r4   ÚviewÚcache_timeoutÚcache_kwargss       r   Úapply_cachez/get_schema_view.<locals>.SchemaView.apply_cacheu   s<   € ð >”? 8¨_Ó=¸dÓCˆDØ<”:˜mÑ<¨|Ñ<¸TÓBˆDÜ'¨Ó-ˆDØˆKr   c                 ó˜   — |xs i } | j                   di |¤Ž}|dk7  r| j                  |||«      }|S |rt        j                  d«       |S )aŸ  
            Calls .as_view() and wraps the result in a cache_page decorator.
            See https://docs.djangoproject.com/en/dev/topics/cache/

            :param int cache_timeout: same as cache_page; set to 0 for no cache
            :param dict cache_kwargs: dictionary of kwargs to be passed to cache_page
            :param initkwargs: kwargs for .as_view()
            :return: a view instance
            r   z:cache_kwargs ignored because cache_timeout is 0 (disabled)© )Úas_viewrN   ÚwarningsÚwarn)r4   rL   rM   Ú
initkwargsrK   s        r   Úas_cached_viewz2get_schema_view.<locals>.SchemaView.as_cached_view€   sY   € ð (Ò-¨2ˆLØ�3—;‘;Ñ, Ñ,ˆDØ Ò!Ø—‘ t¨]¸LÓI�ð ˆKñ Ü—‘ÐZÔ[ØˆKr   c                 ó,   •— | j                  ||‰¬«      S )a‡  
            Instantiate this view with just JSON and YAML renderers, optionally wrapped with cache_page.
            See https://docs.djangoproject.com/en/dev/topics/cache/.

            :param int cache_timeout: same as cache_page; set to 0 for no cache
            :param dict cache_kwargs: dictionary of kwargs to be passed to cache_page
            :return: a view instance
            ©Úrenderer_classes)rU   )r4   rL   rM   Ú_spec_rendererss      €r   Ú
without_uiz.get_schema_view.<locals>.SchemaView.without_ui“   s   ø€ ð ×%Ñ% m°\ÐTcÐ%ÓdÐdr   c                 óŽ   •— |t         v sJ ddj                  t         «      z   «       ‚t         |   ‰z   }| j                  |||¬«      S )aÔ  
            Instantiate this view with a Web UI renderer, optionally wrapped with cache_page.
            See https://docs.djangoproject.com/en/dev/topics/cache/.

            :param str renderer: UI renderer; allowed values are ``swagger``, ``redoc``
            :param int cache_timeout: same as cache_page; set to 0 for no cache
            :param dict cache_kwargs: dictionary of kwargs to be passed to cache_page
            :return: a view instance
            z supported default renderers are z, rW   )ÚUI_RENDERERSÚjoinrU   )r4   r+   rL   rM   rX   rY   s        €r   Úwith_uiz+get_schema_view.<locals>.SchemaView.with_uiŸ   sT   ø€ ð œ|Ñ+ÐiÐ-OÐRV×R[ÑR[Ô\hÓRiÑ-iÓiÐ+Ü+¨HÑ5¸ÑGÐà×%Ñ% m°\ÐTdÐ%ÓeÐer   )r8   N)r   N)r   r   N)r3   Ú
__module__Ú__qualname__Ú_ignore_model_permissionsrC   r?   r=   Úauthentication_classesÚpermission_classesrX   rG   ÚclassmethodrN   rU   rZ   r^   )	Ú_auth_classesÚ_generator_classÚ_perm_classesÚ_publicrY   rD   r9   rE   rF   s	   €€€€€€€€€r   Ú
SchemaViewr6   `   sˆ   ø„ Ø$(Ð!ØˆÙˆÙ*ˆÙ!.ÐÙ*ÐÙ*Ð÷
	$ð 
	$ð 
ñ	ó 
ð	ð 
ò	ó 
ð	ð$ 
ô		eó 
ð		eð 
ô	fó 
ñ	fr   ri   )r   ÚDEFAULT_GENERATOR_CLASSr   ÚDEFAULT_AUTHENTICATION_CLASSESÚDEFAULT_PERMISSION_CLASSESÚDEFAULT_INFOÚtupleÚSPEC_RENDERERSÚUSE_COMPAT_RENDERERSrR   rS   ÚDeprecationWarningr   )rD   rE   r9   rF   r?   r,   r=   rb   rc   ri   re   rf   rg   rh   rY   s   ```` `    @@@@@r   Úget_schema_viewrr   6   sÖ   ÿù€ ð  €GØ&ÒRÔ*:×*RÑ*RÐØ*€MØÐÜ$×CÑCˆØ&€MØÐÜ$×?Ñ?ˆØÒ0Ô#×0Ñ0€DØÒ!˜r€JÜÓ`ÔQ_Ô`Ó`€Oô ×,Ò,Ü�‰ð;ô ô	 ð 	œ5ñ !
à&ô!
ó 
ñ 	
ˆ÷Mfö Mf”Wô Mfð^ Ðr   )	NNNNFNNNN) rR   Ú	functoolsr   r   Údjango.utils.cacher   Údjango.views.decorators.cacher   Údjango.views.decorators.varyr   Úrest_frameworkr	   Úrest_framework.responser
   Úrest_framework.settingsr   Úrest_framework.viewsr   Úapp_settingsr   Ú	renderersr   r   r   r   r   r   ÚDEFAULT_SPEC_RENDERERSro   r\   r&   rr   rP   r   r   ú<module>r~      sr   ðÛ ß 0å 6Ý 4Ý 8Ý %Ý ,Ý 0Ý (å *÷÷ ð "×8Ñ8€à! =Ð1ØÐ.Ð/Ø" MÐ3DÐEñ€òð0 `dØZ^ôyr   