a
    Sic                     @   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   _/var/www/html/django/DPS/env/lib/python3.9/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   optsZnames_and_managersZmanager_nameZmanager_instancer   r   r	   manager_repr   s    r   c                 C   sb   t | tjrt| S t | tr,| jr,t| } t| } | drT| 	drT| dd  S t
dd| S )Nzu''   z at 0x[0-9A-Fa-f]{4,32}>>)
isinstancer   Managerr   r   _delegate_textr   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 }|rh|rh|d7 }|rv|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       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_stringZkwarg_string
class_namer   r   r	   
field_repr/   s    


r2   c                 C   s   t | |d }d| }|r"|j}n| j}| D ]\}}|d| | d 7 }t|drj|t||d 7 }q0t|dr|t||d 7 }q0t|dr|t |j|jd	7 }q0|t |7 }q0| jr|d| d
 7 }|d| d t| j 7 }|S )N:z    
z = fieldsr   r   child_relationr.   zclass Meta:z    validators = )	r2   r5   r*   hasattrserializer_repr	list_reprr6   
validatorsr   )
serializerindentr.   retZ
indent_strr5   
field_namer-   r   r   r	   r9   F   s$    


r9   c                 C   s&   | j }t|drt| ||dS t| S )Nr5   r7   )r   r8   r9   r2   )r<   r=   r   r   r   r	   r:   a   s    
r:   )F)N)__doc__r   	django.dbr   django.utils.encodingr   django.utils.functionalr   r   r   r2   r9   r:   r   r   r   r	   <module>   s   

