
    _}dg                     X    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dS )zj
Helper functions for creating user-friendly representations
of serializer classes and serializer fields.
    N)models)	force_str)Promisec                     | j         }|j        }d |j        D             }|D ]\  }}|| k    r|j        j        d|dc S  t	          |           S )Nc                      g | ]}|j         |fS  )name).0managers     b/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/rest_framework/utils/representation.py
<listcomp>z manager_repr.<locals>.<listcomp>   s/        
w      .z.all())model_metamanagersobject_namerepr)valuer   optsnames_and_managersmanager_namemanager_instances         r   manager_reprr      s    KE;D  =  
 += K K&&u$$$)K$;$;$;\\\JJJJ %;;r   c                 R   t          | t          j                  rt          |           S t          | t                    rt          | d          } t          |           } |                     d          r|                     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&      s    %(( #E"""%!! 4%d333KKE  %.."5"5 QRRy 6,c5999r   Fc                    | j         }|r/|                                }d|d<   |                    dd            d                    d | j        D                       }d                    d t          |                                          D                       }|r|r|dz  }|r|j        j        }n| j        j        }|d||dS )	NTmanychildz, c                 ,    g | ]}t          |          S r   r&   )r
   vals     r   r   zfield_repr.<locals>.<listcomp>6   s    CCCJsOOCCCr   c                 <    g | ]\  }}|d t          |          S )=r+   )r
   keyr,   s      r   r   zfield_repr.<locals>.<listcomp>7   s=       C 33
3(  r   ())	_kwargscopypopjoin_argssorteditems	__class____name__)field
force_manykwargs
arg_stringkwarg_string
class_names         r   
field_reprrA   /   s    ]F "v

7D!!!CCu{CCCDDJ99  v||~~..    L  l d
 .)2

_-
#ZZ>>r   c                 *   t          | |          dz   }d|z  }|r|j        }n| j        }|                                D ]\  }}|d|z   |z   dz   z  }t          |d          r|t	          ||dz             z  }:t          |d          r|t          ||dz             z  }at          |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r<   zclass Meta:z    validators = )	rA   rE   r8   hasattrserializer_repr	list_reprrF   
validatorsr&   )
serializerindentr<   ret
indent_strrE   
field_namer;   s           r   rI   rI   F   sV   
Z
,
,s
2C&J #""#\\^^ 	% 	%
Etj :-555(## 	%?5&1*555CCUG$$ 	%9UFQJ///CCU,-- 	%:e2u?STTTTCC:e$$$CC [tj =00tj #66JDY9Z9ZZZJr   c                 r    | j         }t          |d          rt          | ||          S t          |           S )NrE   rG   )r)   rH   rI   rA   )rL   rM   r)   s      r   rJ   rJ   a   s@    Euh Ez6eDDDDj!!!r   )F)N)__doc__r$   	django.dbr   django.utils.encodingr   django.utils.functionalr   r   r&   rA   rI   rJ   r   r   r   <module>rV      s     
			       + + + + + + + + + + + +  : : :*? ? ? ?.   6" " " " "r   