o
     Þhš  ã                   @   s`   d Z ddlZddlmZ ddlmZ ddlmZ dd„ Zdd	„ Z	ddd„Z
ddd„Zdd„ ZdS )zj
Helper functions for creating user-friendly representations
of serializer classes and serializer fields.
é    N)Úmodels)Ú	force_str)ÚPromisec                 C   sN   | j }|j}dd„ |jD ƒ}|D ]\}}|| kr"d|jj|f   S qt| ƒS )Nc                 S   s   g | ]}|j |f‘qS © )Úname)Ú.0Úmanagerr   r   úc/var/www/html/premium_crap/venv/lib/python3.10/site-packages/rest_framework/utils/representation.pyÚ
<listcomp>   s    ÿÿz manager_repr.<locals>.<listcomp>z%s.%s.all())ÚmodelÚ_metaÚmanagersÚobject_nameÚrepr)Úvaluer   ÚoptsÚnames_and_managersÚmanager_nameÚmanager_instancer   r   r	   Úmanager_repr   s   ýÿr   c                 C   s`   t | tjƒr
t| ƒS t | tƒrt| dd�} t| ƒ} |  d¡r)|  d¡r)| dd … S t	 
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   r   r   r	   Ú
smart_repr   s   
r    Fc                 C   sŒ   | j }|r| ¡ }d|d< | dd ¡ d dd„ | jD ƒ¡}d dd„ t| ¡ ƒD ƒ¡}|r4|r4|d7 }|r;|jj}n| jj}d|||f S )	NTÚmanyÚchildz, c                 S   s   g | ]}t |ƒ‘qS r   ©r    )r   Úvalr   r   r	   r
   6   s    zfield_repr.<locals>.<listcomp>c                 S   s    g | ]\}}d |t |ƒf ‘qS )z%s=%sr#   )r   Úkeyr$   r   r   r	   r
   7   s    ÿÿz%s(%s%s))	Ú_kwargsÚcopyÚpopÚjoinÚ_argsÚsortedÚitemsÚ	__class__Ú__name__)ÚfieldÚ
force_manyÚkwargsÚ
arg_stringÚkwarg_stringÚ
class_namer   r   r	   Ú
field_repr/   s   

þ
r5   c                 C   sê   t | |ƒd }d| }|r|j}n| j}| ¡ D ]B\}}|d| | d 7 }t|dƒr5|t||d ƒ7 }qt|dƒrD|t||d ƒ7 }qt|dƒrT|t |j|jd	�7 }q|t |ƒ7 }q| jrs|d| d
 7 }|d| d t| jƒ 7 }|S )Nú:z    Ú
z = Úfieldsr   r"   Úchild_relation©r0   zclass Meta:z    validators = )	r5   r8   r,   ÚhasattrÚserializer_reprÚ	list_reprr9   Ú
validatorsr    )Ú
serializerÚindentr0   ÚretÚ
indent_strr8   Ú
field_namer/   r   r   r	   r<   F   s$   


r<   c                 C   s&   | j }t|dƒrt| ||d�S t| ƒS )Nr8   r:   )r"   r;   r<   r5   )r?   r@   r"   r   r   r	   r=   a   s   
r=   )F)N)Ú__doc__r   Ú	django.dbr   Údjango.utils.encodingr   Údjango.utils.functionalr   r   r    r5   r<   r=   r   r   r   r	   Ú<module>   s    

