ó
    |chæ  ã                   ó~   • S r SSKJr  SSKJr  SSKJr  SSKJrJ	r	  SSK
Jr  SSKJr   " S S	5      r " S
 S\5      rg)aL  
The metadata API is used to allow customization of how `OPTIONS` requests
are handled. We currently provide a single default implementation that returns
some fairly ad-hoc information about the view.

Future implementations might use JSON schema or other definitions in order
to return this information in a more standardized way.
é    )ÚPermissionDenied)ÚHttp404)Ú	force_str)Ú
exceptionsÚserializers)Úclone_request)ÚClassLookupDictc                   ó   • \ rS rSrS rSrg)ÚBaseMetadataé   c                 ó   • [        S5      e)z`
Return a dictionary of metadata about the view.
Used to return responses for OPTIONS requests.
z).determine_metadata() must be overridden.)ÚNotImplementedError)ÚselfÚrequestÚviews      Ú`/var/www/djangovue.mamus.xyz/django/venv/lib/python3.13/site-packages/rest_framework/metadata.pyÚdetermine_metadataÚBaseMetadata.determine_metadata   s   € ô
 "Ð"MÓNÐNó    © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Ú__static_attributes__r   r   r   r   r      s   † õOr   r   c                   óv  • \ rS rSrSr\" 0 \R                  S_\R                  S_\R                  S_\R                  S_\R                  S_\R                  S_\R                  S_\R                  S	_\R                  S
_\R                   S_\R"                  S_\R$                  S_\R&                  S_\R(                  S_\R*                  S_\R,                  S_\R.                  S_\R0                  S\R2                  S\R4                  S\R6                  S\R8                  S0E5      rS rS rS r S r!Sr"g)ÚSimpleMetadataé   z½
This is the default metadata implementation.
It returns an ad-hoc set of information about the view.
There are not any formalized standards for `OPTIONS` responses
for us to base this on.
ÚfieldÚbooleanÚstringÚurlÚemailÚregexÚslugÚintegerÚfloatÚdecimalÚdateÚdatetimeÚtimeÚdurationÚchoicezmultiple choicezfile uploadzimage uploadÚlistznested objectc                 óJ  • UR                  5       UR                  5       UR                   Vs/ s H  o3R                  PM     snUR                   Vs/ s H  oDR                  PM     snS.n[        US5      (       a  U R                  X5      nU(       a  XeS'   U$ s  snf s  snf )N)ÚnameÚdescriptionÚrendersÚparsesÚget_serializerÚactions)Úget_view_nameÚget_view_descriptionÚrenderer_classesÚ
media_typeÚparser_classesÚhasattrÚdetermine_actions)r   r   r   ÚrendererÚparserÚmetadatar5   s          r   r   Ú!SimpleMetadata.determine_metadata;   s–   € à×&Ñ&Ó(Ø×4Ñ4Ó6Ø<@×<QÒ<QÓRÒ<Q°×+Ô+Ñ<QÑRØ7;×7JÒ7JÓKÒ7J¨V×(Ô(Ñ7JÑKñ	
ˆô �4Ð)×*Ñ*Ø×,Ñ,¨WÓ;ˆGÞØ&-˜Ñ#Øˆùò SùÚKs   ­BÁB 
c                 óÆ  • 0 nSS1[        UR                  5      -   H�  n[        X5      Ul         [	        US5      (       a  UR                  UR                  5        US:X  a!  [	        US5      (       a  UR                  5         UR                  5       nU R                  U5      X4'   Xl        M’     U$ ! [        R                  [        [        4 a     N-f = f! Xl        f = f)zv
For generic class based views we return information about
the fields that are accepted for 'PUT' and 'POST' methods.
ÚPUTÚPOSTÚcheck_permissionsÚ
get_object)ÚsetÚallowed_methodsr   r   r;   rD   rE   r4   Úget_serializer_infor   ÚAPIExceptionr   r   )r   r   r   r5   ÚmethodÚ
serializers         r   r<   Ú SimpleMetadata.determine_actionsH   sÎ   € ð
 ˆØ˜f�o¬¨D×,@Ñ,@Ó(AÔAˆFÜ(¨Ó9ˆDŒLð'ä˜4Ð!4×5Ñ5Ø×*Ñ*¨4¯<©<Ô8à˜U“?¤w¨t°\×'BÑ'BØ—O‘OÔ%ð "×0Ñ0Ó2�
Ø"&×":Ñ":¸:Ó"F�‘à&–ñ# Bð& ˆøô ×+Ñ+Ô-=¼wÐGó Ùðûð  '•ús*   ±AB3Â#CÂ3CÃCÃCÃCÃC c                 ó  • [        US5      (       a  UR                  nUR                  R                  5        VVs0 s H7  u  p#[	        U[
        R                  5      (       a  M&  X R                  U5      _M9     snn$ s  snnf )zV
Given an instance of a serializer, return a dictionary of metadata
about its fields.
Úchild)r;   rN   ÚfieldsÚitemsÚ
isinstancer   ÚHiddenFieldÚget_field_info)r   rK   Ú
field_namer   s       r   rH   Ú"SimpleMetadata.get_serializer_infoc   sw   € ô
 �:˜w×'Ñ'ð $×)Ñ)ˆJð &0×%6Ñ%6×%<Ñ%<Ô%>ô
â%>Ñ!�
Ü˜e¤[×%<Ñ%<×=ó 3ˆJ×+Ñ+¨EÓ2Ò2Ù%>ò
ð 	
ùó 
s   »%A=Á$A=c           
      ó„  • U R                   U   [        USS5      S.n/ SQnU H(  n[        XS5      nUc  M  US:w  d  M  [        USS9X$'   M*     [        US	S5      (       a  U R                  UR                  5      US	'   O&[        US
S5      (       a  U R                  U5      US'   UR                  S5      (       d}  [        U[        R                  [        R                  45      (       dN  [        US5      (       a=  UR                  R                  5        VVs/ s H  u  pgU[        USS9S.PM     snnUS'   U$ s  snnf )zT
Given an instance of a serializer field, return a dictionary
of metadata about it.
ÚrequiredF)ÚtyperW   )	Ú	read_onlyÚlabelÚ	help_textÚ
min_lengthÚ
max_lengthÚ	min_valueÚ	max_valueÚ
max_digitsÚdecimal_placesNÚ T)Ústrings_onlyrN   rO   ÚchildrenrY   Úchoices)ÚvalueÚdisplay_name)Úlabel_lookupÚgetattrr   rS   rN   rH   ÚgetrQ   r   ÚRelatedFieldÚManyRelatedFieldr;   re   rP   )r   r   Ú
field_infoÚattrsÚattrrf   Úchoice_valueÚchoice_names           r   rS   ÚSimpleMetadata.get_field_infor   s=  € ð ×%Ñ% eÑ,Ü  z°5Ó9ñ
ˆ
ò

ˆó ˆDÜ˜E¨Ó.ˆEØÓ  U¨b¥[Ü#,¨UÀÑ#F�
Ó ñ ô
 �5˜' 4×(Ñ(Ø"&×"5Ñ"5°e·k±kÓ"BˆJ�wÒÜ�U˜H d×+Ñ+Ø%)×%=Ñ%=¸eÓ%DˆJ�zÑ"à—‘˜{×+Ñ+Ü˜5¤;×#;Ñ#;¼[×=YÑ=YÐ"Z×[Ñ[Ü˜˜y×)Ñ)ð 27·±×1DÑ1DÔ1Fô%ò
 2GÑ-�Lð *Ü$-¨kÈÑ$Môñ 2Gò%ˆJ�yÑ!ð Ðùó%s   ÄD<r   N)#r   r   r   r   Ú__doc__r	   r   ÚFieldÚBooleanFieldÚ	CharFieldÚ	UUIDFieldÚURLFieldÚ
EmailFieldÚ
RegexFieldÚ	SlugFieldÚIntegerFieldÚ
FloatFieldÚDecimalFieldÚ	DateFieldÚDateTimeFieldÚ	TimeFieldÚDurationFieldÚChoiceFieldÚMultipleChoiceFieldÚ	FileFieldÚ
ImageFieldÚ	ListFieldÚ	DictFieldÚ
Serializerrh   r   r<   rH   rS   r   r   r   r   r   r      s™  † ññ #ð $Ø×Ñ˜7ð$à× Ñ  )ð$ð 	×Ñ˜xð$ð 	×Ñ˜xð	$ð
 	×Ñ˜eð$ð 	×Ñ ð$ð 	×Ñ ð$ð 	×Ñ˜vð$ð 	× Ñ  )ð$ð 	×Ñ ð$ð 	× Ñ  )ð$ð 	×Ñ˜vð$ð 	×!Ñ! :ð$ð 	×Ñ˜vð$ð 	×!Ñ! :ð$ð  	×Ñ ð!$ð" 	×'Ñ'Ð):ð#$ð$ 	×Ñ˜}Ø×Ñ Ø×Ñ˜vØ×Ñ˜Ø×Ñ ñ-$ó €Lò2òò6
õ&r   r   N)rs   Údjango.core.exceptionsr   Údjango.httpr   Údjango.utils.encodingr   Úrest_frameworkr   r   Úrest_framework.requestr   Ú"rest_framework.utils.field_mappingr	   r   r   r   r   r   Ú<module>r�      s8   ðñõ 4Ý Ý +ç 2Ý 0Ý >÷Oñ Oô}�\õ }r   