
    h                     Z    S r SSKrSSKJr  SSKJr  SSKJr  S rS r	SS jr
SS	 jrS
 rg)zj
Helper functions for creating user-friendly representations
of serializer classes and serializer fields.
    N)models)	force_str)Promisec                    U R                   nUR                  nUR                   Vs/ s H  nUR                  U4PM     nnU H*  u  pVX`:X  d  M  UR                  R                  < SU< S3s  $    [        U 5      $ s  snf )N.z.all())model_metamanagersnameobject_namerepr)valuer   optsmanagernames_and_managersmanager_namemanager_instances          U/var/www/html/env/lib/python3.13/site-packages/rest_framework/utils/representation.pymanager_reprr      s    KKE;;D ==   
w  
 +=&$$)KK$;$;\JJ += ;s   A<c                 <   [        U [        R                  5      (       a  [        U 5      $ [        U [        5      (       a
  [        U SS9n [        U 5      n U R                  S5      (       a  U R                  S5      (       a  U SS  $ [        R                  " SSU 5      $ )NT)strings_onlyzu''   z at 0x[0-9A-Fa-f]{4,32}>>)
isinstancer   Managerr   r   r   r   
startswithendswithresub)r   s    r   
smart_reprr!      s    %((E""%!!%d3KE %.."5"5QRy 66,c599    c                 8   U R                   nU(       a'  UR                  5       nSUS'   UR                  SS 5        SR                  U R                   Vs/ s H  n[        U5      PM     sn5      nSR                  [        UR                  5       5       VVs/ s H  u  pSU< S[        U5      < 3PM     snn5      nU(       a  U(       a  US-  nU(       a  UR                  R                  nOU R                  R                  nU< SU< U< S3$ s  snf s  snnf )NTmanychildz, =())
_kwargscopypopjoin_argsr!   sorteditems	__class____name__)field
force_manykwargsval
arg_stringkeykwarg_string
class_names           r   
field_reprr:   /   s    ]]Fv

7D!u{{C{JsO{CDJ99v||~..HC 
3(. L ld
))22
__--
#Z>> Ds   DD
c                 H   [        X5      S-   nSU-  nU(       a  UR                  nOU R                  nUR                  5        H  u  pgUSU-   U-   S-   -  n[        US5      (       a  U[	        XqS-   5      -  nM7  [        US5      (       a  U[        XqS-   5      -  nM[  [        US5      (       a#  U[        UR                  UR                  S	9-  nM  U[        U5      -  nM     U R                  (       a,  USU-   S
-   -  nUSU-   S-   [        U R                  5      -   -  nU$ )N:z    
z = fieldsr   r%   child_relationr3   zclass Meta:z    validators = )	r:   r>   r/   hasattrserializer_repr	list_reprr?   
validatorsr!   )
serializerindentr3   ret
indent_strr>   
field_namer2   s           r   rB   rB   F   s"   
Z
,s
2C&J""""#\\^
tj :-555(##?51*55CUG$$9UQJ//CU,--:e22u?S?STTC:e$$C , tj =00tj #66JDYDY9ZZZJr"   c                 f    U R                   n[        US5      (       a
  [        XUS9$ [        U 5      $ )Nr>   r@   )r%   rA   rB   r:   )rE   rF   r%   s      r   rC   rC   a   s2    EuhzeDDj!!r"   )F)N)__doc__r   	django.dbr   django.utils.encodingr   django.utils.functionalr   r   r!   r:   rB   rC    r"   r   <module>rP      s1    
  + +:*?.6"r"   