
    Nwg                     V    d Z ddlZddlmZ ddlmZ ddlmZ d Zd Z	ddZ
dd	Zd
 Zy)zj
Helper functions for creating user-friendly representations
of serializer classes and serializer fields.
    N)models)	force_str)Promisec                     | j                   }|j                  }|j                  D cg c]  }|j                  |f }}|D ](  \  }}|| k(  s|j                  j                  d|dc S  t        |       S c c}w )N.z.all())model_metamanagersnameobject_namerepr)valuer   optsmanagernames_and_managersmanager_namemanager_instances          Z/var/www/horilla/myenv/lib/python3.12/site-packages/rest_framework/utils/representation.pymanager_reprr      s    KKE;;D == 
w 
 += K&&u$$)KK$;$;\JJK ;s   A6c                    t        | t        j                        rt        |       S t        | t              rt        | d      } t        |       } | j                  d      r| j                  d      r| dd  S t        j                  dd|       S )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!      sw    %(E""%!%d3KE %.."5QRy 66,c599    c                    | j                   }|r'|j                         }d|d<   |j                  dd        dj                  | j                  D cg c]  }t        |       c}      }dj                  t        |j                               D cg c]  \  }}|dt        |       c}}      }|r|r|dz  }|r|j                  j                  }n| j                  j                  }|d||dS c c}w c c}}w )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||~.C 
3( L ld
))22
__--
#Z>> Ds   C3C8
c                    t        | |      dz   }d|z  }|r|j                  }n| j                  }|j                         D ]  \  }}|d|z   |z   dz   z  }t        |d      r|t	        ||dz         z  }3t        |d      r|t        ||dz         z  }Rt        |d      r%|t        |j                  |j                  	      z  }|t        |      z  } | j                  r,|d|z   d
z   z  }|d|z   dz   t        | j                        z   z  }|S )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""""#\\^ 	%
Etj :-555(#?5&1*55CUG$9UFQJ//CU,-:e22u?S?STTC:e$$C	% tj =00tj #66JDYDY9ZZZJr"   c                 d    | j                   }t        |d      rt        | ||      S t        |       S )Nr>   r@   )r%   rA   rB   r:   )rE   rF   r%   s      r   rC   rC   a   s1    Euhz6e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"   