ó
    |chÌ  ã                   óv   • S r SSKJr  \" S/ SQ5      r\" S/ SQ5      rS rS rS	 rS
 rS r	S r
S rS rS rg)zý
Helper function for returning the field information that is associated
with a model class. This includes returning all the forward and reverse
relationships and their associated metadata.

Usage: `get_field_info(model)` returns a `FieldInfo` instance.
é    )Ú
namedtupleÚ	FieldInfo)ÚpkÚfieldsÚforward_relationsÚreverse_relationsÚfields_and_pkÚ	relationsÚRelationInfo©Úmodel_fieldÚrelated_modelÚto_manyÚto_fieldÚhas_through_modelÚreversec                 óà   • U R                   R                  R                   n[        U5      n[        U5      n[	        U5      n[        U5      n[        X#5      n[        XE5      n[        X#XEXg5      $ )z¿
Given a model class, returns a `FieldInfo` instance, which is a
`namedtuple`, containing metadata about the various field types on the model
including information about their relationships.
)	Ú_metaÚconcrete_modelÚ_get_pkÚ_get_fieldsÚ_get_forward_relationshipsÚ_get_reverse_relationshipsÚ_merge_fields_and_pkÚ_merge_relationshipsr   )ÚmodelÚoptsr   r   r   r   r	   Úrelationshipss           Úh/var/www/djangovue.mamus.xyz/django/venv/lib/python3.13/site-packages/rest_framework/utils/model_meta.pyÚget_field_infor       sl   € ð �;‰;×%Ñ%×+Ñ+€Dä	�‹€BÜ˜Ó€FÜ2°4Ó8ÐÜ2°4Ó8ÐÜ(¨Ó4€MÜ(Ð):ÓN€Mä�RÐ!2Ø"ó3ð 3ó    c                 ó  • U R                   nUR                  nU(       aa  UR                  (       aP  UR                  R                  R                  R                   nUR                  nU(       a  UR                  (       a  MP  U$ ©N)r   Úremote_fieldÚparent_linkr   r   )r   r   Úrels      r   r   r   0   sU   € Ø	�‰€BØ
�/‰/€Cæ
�#—/—/à�_‰_×"Ñ"×(Ñ(×+Ñ+ˆØ�o‰oˆö �#—/—/‘/ð
 €Ir!   c                 óÂ   • 0 nU R                    Vs/ s H*  o"R                  (       d  M  UR                  (       a  M(  UPM,     sn H  nX!UR                  '   M     U$ s  snf r#   )r   Ú	serializer$   Úname)r   r   Úfields      r   r   r   <   sL   € Ø€FØ%)§[¢[Ó_¢[˜E·OµO“%ÈE×L^ÕL^—%¡[Ô_ˆØ"ˆu�z‰zÓñ `ð €Mùò `s   ‘A©A¼Ac                 óH   • [        U SS 5      =(       a    U R                  S   $ )NÚ	to_fieldsr   )Úgetattrr,   )r*   s    r   Ú_get_to_fieldr.   D   s   € Ü�5˜+ tÓ,×C°·±ÀÑ1CÐCr!   c           
      ó@  • 0 nU R                    Vs/ s H*  o"R                  (       d  M  UR                  (       d  M(  UPM,     sn H:  n[        UUR                  R                  S[        U5      SSS9XR                  '   M<     U R                   Vs/ s H  o"R                  (       d  M  UPM     sn H^  n[        UUR                  R                  SSUR                  R                  R                  R                  (       + SS9XR                  '   M`     U$ s  snf s  snf )ú2
Returns a dict of field names to `RelationInfo`.
Fr   TN)r   r(   r$   r   r   r.   r)   Úmany_to_manyÚthroughr   Úauto_created)r   r   r*   s      r   r   r   H   sò   € ð ÐØ%)§[¢[Ó[¢[˜E·OµO“%È×HZÕHZ—%¡[Ô[ˆÜ(4ØØ×,Ñ,×2Ñ2ØÜ" 5Ó)Ø#Øñ)
ÐŸ*™*Ó%ñ \ð &*×%6Ò%6ÓJÒ%6˜E¿/½/—%Ñ%6ÔJˆÜ(4ØØ×,Ñ,×2Ñ2Øàà×&Ñ&×.Ñ.×4Ñ4×AÑAÔAàñ
)
ÐŸ*™*Ó%ñ Kð Ðùò1 \ùò Ks   ‘D©D¼DÂDÂ)Dc                 óî  • 0 nU R                    Vs/ s H!  o"R                  R                  (       a  M  UPM#     nnU H^  nUR                  5       n[	        SUR
                  UR                  R                  R                  [        UR                  5      SSS9X'   M`     U R                    Vs/ s H!  o"R                  R                  (       d  M  UPM#     nnU HŽ  nUR                  5       n[	        SUR
                  SS[        UR                  R                  SS5      SL=(       a9    UR                  R                  R                  R                  R                  (       + SS9X'   M�     U$ s  snf s  snf )r0   NFTr   r2   )Úrelated_objectsr*   r1   Úget_accessor_namer   r   r$   Úmultipler.   r-   r2   r   r3   )r   r   ÚrÚall_related_objectsÚrelationÚaccessor_nameÚ all_related_many_to_many_objectss          r   r   r   h   sC  € ð ÐØ&*×&:Ò&:ÓWÒ&: Ç'Á'×BVÕBVŸ1Ñ&:ÐÐWÛ'ˆØ ×2Ñ2Ó4ˆÜ+7ØØ"×0Ñ0Ø—N‘N×/Ñ/×8Ñ8Ü" 8§>¡>Ó2Ø#Øñ,
ÐÓ(ñ (ð 48×3GÒ3GÓ'`Ò3G¨aÏ7É7×K_ÕK_¯Ñ3GÐ$Ð'`Û4ˆØ ×2Ñ2Ó4ˆÜ+7ØØ"×0Ñ0Øàä˜Ÿ™×4Ñ4°iÀÓFÈdÐR÷ KØ—N‘N×/Ñ/×7Ñ7×=Ñ=×JÑJÔJàñ,
ÐÓ(ñ 5ð Ðùò; Xùò (as   ‘E-³E-Â-E2ÃE2c                 óF   • SX R                   U 0nUR                  U5        U$ )Nr   )r)   Úupdate)r   r   r	   s      r   r   r   �   s&   € Ø˜2Ÿw™w¨Ð+€MØ×Ñ˜Ô àÐr!   c                 ó   • 0 U EUE$ r#   © )r   r   s     r   r   r   ”   s   € Ø5ÐÐ5Ð#4Ð5Ð5r!   c                 óŽ   • [        U S5      =(       a3    [        U R                  S5      =(       a    U R                  R                  $ )zW
Given a model class, returns a boolean True if it is abstract and False if it is not.
r   Úabstract)Úhasattrr   rB   )r   s    r   Úis_abstract_modelrD   ˜   s0   € ô �5˜'Ó"×`¤w¨u¯{©{¸JÓ'G×`ÈEÏKÉK×L`ÑL`Ð`r!   N)Ú__doc__Úcollectionsr   r   r   r    r   r   r.   r   r   r   r   rD   r@   r!   r   Ú<module>rG      sd   ðñõ #á�{ò %ó €	ñ ˜.ò +ó €ò3ò&	òòDòò@"òJò6óar!   