Ë
    º2Úi«  ã                   óP  — 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 d dlmZmZ dd	lmZmZ dd
lmZmZmZ ddlmZ ddlm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  G d„ de «      Z! G d„ de «      Z" G d„ de"«      Z#y)é    )ÚImproperlyConfigured)Úresolve_url)Úrender_to_string)Ú	force_str)ÚPromise)ÚBaseRendererÚJSONRendererÚTemplateHTMLRenderer)ÚencodersÚjsoné   )Úredoc_settingsÚswagger_settings)Ú
VALIDATORSÚOpenAPICodecJsonÚOpenAPICodecYaml)ÚSwagger)Úfilter_nonec                   ó4   — e Zd ZdZdZg ZdZed„ «       Zdd„Z	y)Ú_SpecRendererz?Base class for text renderers. Handles encoding and validation.úutf-8Nc                 ó”   — t        d„ |D «       «      sJ ddj                  t        «      z   «       ‚t        | j                  | fd|i«      S )Nc              3   ó,   K  — | ]  }|t         v –— Œ y ­w©N)r   )Ú.0Úvlds     úI/var/www/html/acx/venv/lib/python3.12/site-packages/drf_yasg/renderers.pyú	<genexpr>z0_SpecRenderer.with_validators.<locals>.<genexpr>   s   è ø€ Ò;¨�3œ*Ô$Ñ;ùs   ‚zallowed validators are z, Ú
validators)ÚallÚjoinr   ÚtypeÚ__name__)Úclsr   s     r   Úwith_validatorsz_SpecRenderer.with_validators   sH   € äÑ;°
Ô;Ô;ÐnÐ=VÐY]×YbÑYbÔcmÓYnÑ=nÓnÐ;Ü�C—L‘L 3 &¨<¸Ð*DÓEÐEó    c                 óÖ   — | j                   sJ d«       ‚| j                  | j                  «      }t        |t        «      st	        «       j                  |||«      S |j                  |«      S )Nzmust override codec_class)Úcodec_classr   Ú
isinstancer   r	   ÚrenderÚencode)ÚselfÚdataÚ
media_typeÚrenderer_contextÚcodecs        r   r*   z_SpecRenderer.render   s^   € Ø×ÒÐ<Ð!<Ó<ÐØ× Ñ  §¡Ó1ˆä˜$¤Ô(ô  “>×(Ñ(¨¨zÐ;KÓLÐLà�|‰|˜DÓ!Ð!r&   ©NN)
r#   Ú
__module__Ú__qualname__Ú__doc__Úcharsetr   r(   Úclassmethodr%   r*   © r&   r   r   r      s-   „ ÙIØ€GØ€JØ€KàñFó ðFô
"r&   r   c                   ó   — e Zd ZdZdZdZeZy)ÚOpenAPIRendererz_Renders the schema as a JSON document with the ``application/openapi+json`` specific mime type.zapplication/openapi+jsonÚopenapiN©r#   r2   r3   r4   r.   Úformatr   r(   r7   r&   r   r9   r9   '   s   „ ÙiØ+€JØ€FØ"�Kr&   r9   c                   ó   — e Zd ZdZdZdZeZy)ÚSwaggerJSONRendererzVRenders the schema as a JSON document with the generic ``application/json`` mime type.zapplication/jsonz.jsonNr;   r7   r&   r   r>   r>   .   s   „ Ù`Ø#€JØ€FØ"�Kr&   r>   c                   ó   — e Zd ZdZdZdZeZy)ÚSwaggerYAMLRendererz&Renders the schema as a YAML document.zapplication/yamlz.yamlN)r#   r2   r3   r4   r.   r<   r   r(   r7   r&   r   r@   r@   5   s   „ Ù0Ø#€JØ€FØ"�Kr&   r@   c                   ó>   — e Zd ZdZdZdZdZdd„Zdd„Zd„ Z	d	„ Z
d
„ Zy)Ú_UIRendererzbBase class for web UI renderers. Handles loading and passing settings to the appropriate template.z	text/htmlr   Ú Nc                 ó,  — t        |t        «      s	 t        «       j                  |||«      S | j                  ||«       t        | j                  ||d   «      S # t        $ r1 |d   }d|j
                  |j                  j                  «       fz  cY S w xY w)NÚresponsez%d %sÚrequest)r)   r   r
   r*   r   Ústatus_codeÚstatus_textÚtitleÚset_contextr   Útemplate)r,   ÚswaggerÚaccepted_media_typer/   rE   s        r   r*   z_UIRenderer.renderB   sž   € Ü˜'¤7Ô+ðVô ,Ó-×4Ñ4°WÐ>QÐScÓdÐdð 	×ÑÐ)¨7Ô3Ü §¡Ð/?ÐAQÐR[ÑA\Ó]Ð]øô (ò Và+¨JÑ7�Ø (×"6Ñ"6¸×8LÑ8L×8RÑ8RÓ8TÐ!UÑUÒUðVús   ’A Á7BÂBc                 óX  — |r|j                   j                  xs dnd|d<   |r|j                   j                  xs dnd|d<   t        j                  | j                  «       t        j                  ¬«      |d<   t        j                  |d<   |j                  | j                  «       «       y )NrC   rI   Úversion©r$   Úoauth2_configÚUSE_SESSION_AUTH)ÚinforI   rO   r   ÚdumpsÚget_oauth2_configr   ÚJSONEncoderr   rR   ÚupdateÚget_auth_urls)r,   r/   rL   s      r   rJ   z_UIRenderer.set_contextQ   sŽ   € Ù@G G§L¡L×$6Ñ$6Ò$<¹"ÈRÐ˜Ñ!ÙDK g§l¡l×&:Ñ&:Ò&@¹bÐQSÐ˜Ñ#Ü,0¯J©J°t×7MÑ7MÓ7OÔU]×UiÑUiÔ,jÐ˜Ñ)Ü/?×/PÑ/PÐÐ+Ñ,Ø×Ñ × 2Ñ 2Ó 4Õ5r&   c                 óî   — t        |t        «      rt        |«      }|€y d\  }}t        |t        «      s(t        |«      dkD  r|\  }}}nt        |«      dk(  r|\  }}|xs d}|xs i }t	        |g|¢­i |¤ŽS )Nr1   é   r7   )r)   r   ÚstrÚlenr   )r,   ÚtoÚargsÚkwargss       r   r   z_UIRenderer.resolve_urlX   s‚   € Ü�bœ'Ô"Ü�R“ˆBàˆ:Øà!‰ˆˆfÜ˜"œcÔ"Ü�2‹w˜Š{Ø#%Ñ ��D™&Ü�R“˜A’Ø‘
��FàŠz�rˆØ’˜2ˆä˜2Ð/ Ò/¨Ñ/Ð/r&   c                 ó–   — | j                  t        j                  «      | j                  t        j                  «      dœ}t	        |«      S )N)Ú	LOGIN_URLÚ
LOGOUT_URL)r   r   ra   rb   r   )r,   Úurlss     r   rX   z_UIRenderer.get_auth_urlsk   s@   € à×)Ñ)Ô*:×*DÑ*DÓEØ×*Ñ*Ô+;×+FÑ+FÓGñ
ˆô
 ˜4Ó Ð r&   c                 óT   — t         j                  }t        |t        «      sJ d«       ‚|S )NzOAUTH2_CONFIG must be a dict)r   ÚOAUTH2_CONFIGr)   Údict©r,   r-   s     r   rU   z_UIRenderer.get_oauth2_configs   s(   € Ü×-Ñ-ˆÜ˜$¤Ô%ÐEÐ'EÓEÐ%Øˆr&   r1   r   )r#   r2   r3   r4   r.   r5   rK   r*   rJ   r   rX   rU   r7   r&   r   rB   rB   <   s.   „ ÙlØ€JØ€GØ€Hó^ó6ò0ò&!ór&   rB   c                   ó2   ‡ — e Zd ZdZdZdZdˆ fd„	Zd„ Zˆ xZS )ÚSwaggerUIRendererz7Renders a swagger-ui web interface for schema browsing.zdrf-yasg/swagger-ui.htmlrL   c                 ó(  •— t         t        | �  ||«       | j                  «       }|j	                  dd «      }t        |j	                  dd«      «      }|r|r|j                  |«      |d<   t        j                  |t        j                  ¬«      |d<   y )NrF   Úoauth2RedirectUrlrC   rP   r   )Úsuperri   rJ   Úget_swagger_ui_settingsÚgetr   Úbuild_absolute_urir   rT   r   rV   )r,   r/   rL   Úswagger_ui_settingsrF   Úoauth_redirect_urlÚ	__class__s         €r   rJ   zSwaggerUIRenderer.set_context~   s�   ø€ ÜÔ Ñ2Ð3CÀWÔMØ"×:Ñ:Ó<Ðà"×&Ñ& y°$Ó7ˆÜ&Ð':×'>Ñ'>Ð?RÐTVÓ'WÓXÐÙÑ)Ø7>×7QÑ7QÐRdÓ7eÐÐ 3Ñ4ä/3¯z©zÐ:MÔS[×SgÑSgÔ/hÐÐ+Ò,r&   c                 óê  — i d| j                  t        j                  «      “dt        j                  “dt        j                  “dt        j
                  “dt        j                  “dt        j                  “dt        j                  “dt        j                  “d	t        j                  “d
t        j                  “dt        j                  “dt        j                  “dt        j                  “dt        j                  “dt        j                  “dt        j                   “dt        j"                  “}t%        |«      }t        j&                  dk7  r"| j                  t        j&                  «      |d<   |S )NÚurlÚoperationsSorterÚ
tagsSorterÚdocExpansionÚdeepLinkingÚshowExtensionsÚdefaultModelRenderingÚdefaultModelExpandDepthÚdefaultModelsExpandDepthÚshowCommonExtensionsrk   ÚsupportedSubmitMethodsÚdisplayOperationIdÚpersistAuthÚrefetchWithAuthÚrefetchOnLogoutÚfetchSchemaWithQueryrC   ÚvalidatorUrl)r   r   ÚSPEC_URLÚOPERATIONS_SORTERÚTAGS_SORTERÚDOC_EXPANSIONÚDEEP_LINKINGÚSHOW_EXTENSIONSÚDEFAULT_MODEL_RENDERINGÚDEFAULT_MODEL_DEPTHÚSHOW_COMMON_EXTENSIONSÚOAUTH2_REDIRECT_URLÚSUPPORTED_SUBMIT_METHODSÚDISPLAY_OPERATION_IDÚPERSIST_AUTHÚREFETCH_SCHEMA_WITH_AUTHÚREFETCH_SCHEMA_ON_LOGOUTÚFETCH_SCHEMA_WITH_QUERYr   ÚVALIDATOR_URLrg   s     r   rm   z)SwaggerUIRenderer.get_swagger_ui_settings‰   sŽ  € ð
Ø�4×#Ñ#Ô$4×$=Ñ$=Ó>ð
àÔ 0× BÑ Bð
ð Ô*×6Ñ6ð
ð Ô,×:Ñ:ð	
ð
 Ô+×8Ñ8ð
ð Ô.×>Ñ>ð
ð $Ô%5×%MÑ%Mð
ð &Ô'7×'KÑ'Kð
ð 'Ô(8×(LÑ(Lð
ð #Ô$4×$KÑ$Kð
ð  Ô!1×!EÑ!Eð
ð %Ô&6×&OÑ&Oð
ð !Ô"2×"GÑ"Gð
ð Ô+×8Ñ8ð
ð Ô/×HÑHð
ð  Ô/×HÑHð!
ð" #Ô$4×$LÑ$Lð#
ˆô( ˜4Ó ˆÜ×)Ñ)¨RÒ/Ø#'×#3Ñ#3Ô4D×4RÑ4RÓ#SˆD�Ñ àˆr&   r   )	r#   r2   r3   r4   rK   r<   rJ   rm   Ú__classcell__©rr   s   @r   ri   ri   y   s   ø„ ÙAØ)€HØ€Fõ	iör&   ri   c                   ó2   ‡ — e Zd ZdZdZdZdˆ fd„	Zd„ Zˆ xZS )ÚReDocRendererz2Renders a ReDoc web interface for schema browsing.zdrf-yasg/redoc.htmlÚredocc                 óš   •— t         t        | �  ||«       t        j                  | j                  «       t        j                  ¬«      |d<   y )NrP   r   )rl   r™   rJ   r   rT   Úget_redoc_settingsr   rV   )r,   r/   rL   rr   s      €r   rJ   zReDocRenderer.set_contextª   s<   ø€ ÜŒm˜TÑ.Ð/?ÀÔIÜ-1¯Z©Z¸×8OÑ8OÓ8QÔW_×WkÑWkÔ-lÐÐ)Ò*r&   c           	      ó,  — | j                  t        j                  «      t        j                  t        j                  t        j
                  t        j                  t        j                  t        j                  t        j                  dœ}t        |«      S )N)rt   ÚlazyRenderingÚhideHostnameÚexpandResponsesÚpathInMiddlePanelÚnativeScrollbarsÚrequiredPropsFirstrƒ   )r   r   r…   ÚLAZY_RENDERINGÚHIDE_HOSTNAMEÚEXPAND_RESPONSESÚPATH_IN_MIDDLEÚNATIVE_SCROLLBARSÚREQUIRED_PROPS_FIRSTr”   r   rg   s     r   rœ   z ReDocRenderer.get_redoc_settings®   si   € à×#Ñ#¤N×$;Ñ$;Ó<Ü+×:Ñ:Ü*×8Ñ8Ü-×>Ñ>Ü!/×!>Ñ!>Ü .× @Ñ @Ü"0×"EÑ"EÜ$2×$JÑ$Jñ	
ˆô ˜4Ó Ð r&   r   )	r#   r2   r3   r4   rK   r<   rJ   rœ   r–   r—   s   @r   r™   r™   ¥   s   ø„ Ù<Ø$€HØ€Fõmö!r&   r™   c                   ó   — e Zd ZdZdZy)ÚReDocOldRendererz8Renders a ReDoc 1.x.x web interface for schema browsing.zdrf-yasg/redoc-old.htmlN)r#   r2   r3   r4   rK   r7   r&   r   r«   r«   ½   s
   „ ÙBØ(�Hr&   r«   N)$Údjango.core.exceptionsr   Údjango.shortcutsr   Údjango.template.loaderr   Údjango.utils.encodingr   Údjango.utils.functionalr   Úrest_framework.renderersr   r	   r
   Úrest_framework.utilsr   r   Úapp_settingsr   r   Úcodecsr   r   r   r:   r   Úutilsr   r   r9   r>   r@   rB   ri   r™   r«   r7   r&   r   ú<module>r¶      sŽ   ðÝ 7Ý (Ý 3Ý +Ý +ß UÑ Uß /ç :ß BÑ BÝ Ý ô"�Lô "ô0#�mô #ô#˜-ô #ô#˜-ô #ô:�,ô :ôz)˜ô )ôX!�Kô !ô0)�}õ )r&   