
    Rh                     x    d Z g dZddlZddlmZ ddlmZ d
dZ G d d      Zd	 Z	 e       Z
e
j                  Zy)zGRedo the builtin repr() (representation) but with limits on most sizes.)Reprreprrecursive_repr    N)islice)	get_identc                       fd}|S )zGDecorator to make a repr function return fillvalue for a recursive callc                      t                fd}t         d      |_        t         d      |_        t         d      |_        t         d      |_        t         di       |_        t         dd      |_        |S )	Nc                     t        |       t               f}|v rS j                  |       	  |       }j                  |       |S # j                  |       w xY wN)idr   adddiscard)selfkeyresult	fillvaluerepr_runninguser_functions      /usr/lib/python3.12/reprlib.pywrapperz<recursive_repr.<locals>.decorating_function.<locals>.wrapper   sc    T(IK'Cl"  S!*&t,$$S)M $$S)s   A
 
A
__module____doc____name____qualname____annotations____type_params__ )setgetattrr   r   r   r   r   r   )r   r   r   r   s   ` @r   decorating_functionz+recursive_repr.<locals>.decorating_function   su    u		 %]LA!-;"=*=&}nE")-9JB"O")-9JB"O    r   )r   r    s   ` r   r   r   	   s    . r!   c                       e Zd Zddddddddddddddd	Zd
 Zd Zd ZddZd Zd Z	d Z
d Zd Zd Zd Zd Zd Zd Zy)r               (   ...Nmaxlevelmaxtuplemaxlistmaxarraymaxdictmaxsetmaxfrozensetmaxdeque	maxstringmaxlongmaxotherr   indentc                    || _         || _        || _        || _        || _        || _        || _        || _        |	| _        |
| _	        || _
        || _        || _        y r   r)   )r   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r   r5   s                 r   __init__zRepr.__init__'   s`    
 !  ( " "r!   c                 :    | j                  || j                        S r   )repr1r*   )r   xs     r   r   z	Repr.repr:   s    zz!T]]++r!   c                     t        |      j                  }d|v r!|j                         }dj                  |      }t	        | d|z         r t        | d|z         ||      S | j                  ||      S )N _repr_)typer   splitjoinhasattrr   repr_instance)r   r:   leveltypenamepartss        r   r9   z
Repr.repr1=   sn    7##(?NN$ExxH48+,4748!34Q>>%%a//r!   c                    | j                   dj                  |      S |sy| j                   }t        |t              r|dk  rt	        d|d      |dz  }	 d| j
                  |z
  dz   |z  z   }|j                  dg|d      dt        |       xs d  S # t        $ r}t        d	t        |             |d }~ww xY w)
Nz,  r   z(Repr.indent cannot be negative int (was )r<   z,
   z,Repr.indent must be a str, int or None, not )	r5   rA   
isinstanceint
ValueErrorr*   	TypeErrorr?   len)r   piecesrD   r5   seperrors         r   _joinz
Repr._joinG   s    ;;99V$$fc"z >vjJ  cMF	4==5014>>C
 xx)f)b)*1c&k\-ATBB	  	>tF|nM	s   B 	B= B88B=c                 P   t        |      }|dk  r|r| j                  }n{|dz
  }	| j                  }
t        ||      D cg c]  } |
||	       }}||kD  r|j	                  | j                         | j                  ||      }|dk(  r|r| j                  ||z   }|||S c c}w )Nr   rJ   )rO   r   r9   r   appendrS   r5   )r   r:   rD   leftrightmaxitertrailnsnewlevelr9   elemrP   s                r   _repr_iterablezRepr._repr_iterable[   s    FA:!AqyHJJE8>q'8JKeD(+KFK7{dnn-

65)AAv%DKK$7E** Ls   B#c                 B    | j                  ||dd| j                  d      S )N(rI   ,)r^   r+   r   r:   rD   s      r   
repr_tuplezRepr.repr_tuplej   s!    ""1eS#t}}cJJr!   c                 @    | j                  ||dd| j                        S )N[])r^   r,   rb   s      r   	repr_listzRepr.repr_listm   s    ""1eS#t||DDr!   c                     |sd|j                   z  S d|j                   z  }| j                  |||d| j                        S )Nzarray('%s')zarray('%s', []))typecoder^   r-   )r   r:   rD   headers       r   
repr_arrayzRepr.repr_arrayp   s?     1::-- 1::-""1eVT4==IIr!   c                 \    |syt        |      }| j                  ||dd| j                        S )Nzset(){})_possibly_sortedr^   r/   rb   s      r   repr_setzRepr.repr_setv   s/    Q""1eS#t{{CCr!   c                 \    |syt        |      }| j                  ||dd| j                        S )Nzfrozenset()zfrozenset({z}))rp   r^   r0   rb   s      r   repr_frozensetzRepr.repr_frozenset|   s6     Q""1e]D#'#4#46 	6r!   c                 @    | j                  ||dd| j                        S )Nzdeque([ri   )r^   r1   rb   s      r   
repr_dequezRepr.repr_deque   s    ""1eYdmmLLr!   c                    t        |      }|dk(  ry|dk  rd| j                  z   dz   S |dz
  }| j                  }g }t        t	        |      | j
                        D ]-  } |||      } |||   |      }	|j                  |d|	       / || j
                  kD  r|j                  | j                         | j                  ||      }
d|
dS )Nr   z{}rn   ro   rJ   z: )rO   r   r9   r   rp   r.   rU   rS   )r   r:   rD   rZ   r\   r9   rP   r   keyreprvalreprr[   s              r   	repr_dictzRepr.repr_dict   s    F6A:'#--19

*1-t||< 	9CC*GAcFH-GMMgw78	9 t||MM$..)JJvu%}r!   c                    t        j                  |d | j                         }t        |      | j                  kD  rt	        d| j                  dz
  dz        }t	        d| j                  dz
  |z
        }t        j                  |d | |t        |      |z
  d  z         }|d | | j
                  z   |t        |      |z
  d  z   }|S Nr         )builtinsr   r2   rO   maxr   r   r:   rD   r[   ijs         r   repr_strzRepr.repr_str   s    MM!OT^^,-q6DNN"Aq(1,-AAt~~a')*AaeaAq	l23A"1&3q6!895Ar!   c                    t        j                  |      }t        |      | j                  kD  r\t	        d| j                  dz
  dz        }t	        d| j                  dz
  |z
        }|d | | j
                  z   |t        |      |z
  d  z   }|S r{   )r~   r   rO   r3   r   r   r   s         r   repr_intzRepr.repr_int   s~    MM!q6DLL AQ*+AAt||A~a'(A"1&3q6!895Ar!   c                    	 t        j                  |      }t        |      | j                  kD  r\t        d| j                  dz
  dz        }t        d| j                  dz
  |z
        }|d | | j                  z   |t        |      |z
  d  z   }|S # t        $ r' d|j                  j                  t        |      fz  cY S w xY w)Nz<%s instance at %#x>r   r|   r}   )
r~   r   	Exception	__class__r   r   rO   r4   r   r   r   s         r   rC   zRepr.repr_instance   s    	Ja A
 q6DMM!Aa!+,AAt}}Qq()A"1&3q6!895A  	J)Q[[-A-A2a5,III	Js   B -B=<B=)rH   )r   r   r   r7   r   r9   rS   r^   rc   rg   rl   rq   rs   ru   ry   r   r   rC   r   r!   r   r   r   %   sr     aQq1BuT&,0C(+KEJD6M$r!   r   c                 N    	 t        |       S # t        $ r t        |       cY S w xY wr   )sortedr   list)r:   s    r   rp   rp      s)    ay Aws   
 $$)r(   )r   __all__r~   	itertoolsr   _threadr   r   r   rp   aReprr   r   r!   r   <module>r      s?    M
,   8O Od 	zzr!   