o
    "7h                     @   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   x/var/www/epreuve.sigeris.cm/public_html/epreuve/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    

