
    eY                     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       |_        |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      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__)setgetattrr   r   r   r   r   )r   r   r   r   s   ` @r   decorating_functionz+recursive_repr.<locals>.decorating_function   sc    u		 %]LA!-;"=*=&}nE")-9JB"O     )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.   r/   r0   r1   r2   r3   r   r4   s                 r   __init__zRepr.__init__&   s`    
 !  ( " "r   c                 :    | j                  || j                        S r   )repr1r)   )r   xs     r   r   z	Repr.repr9   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   r9   leveltypenamepartss        r   r8   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 )	r4   r@   
isinstanceint
ValueErrorr)   	TypeErrorr>   len)r   piecesrC   r4   seperrors         r   _joinz
Repr._joinF   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   rI   )rN   r   r8   r   appendrR   r4   )r   r9   rC   leftrightmaxitertrailnsnewlevelr8   elemrO   s                r   _repr_iterablezRepr._repr_iterableZ   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(rH   ,)r]   r*   r   r9   rC   s      r   
repr_tuplezRepr.repr_tuplei   s!    ""1eS#t}}cJJr   c                 @    | j                  ||dd| j                        S )N[])r]   r+   ra   s      r   	repr_listzRepr.repr_listl   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   r9   rC   headers       r   
repr_arrayzRepr.repr_arrayo   s?     1::-- 1::-""1eVT4==IIr   c                 \    |syt        |      }| j                  ||dd| j                        S )Nzset(){})_possibly_sortedr]   r.   ra   s      r   repr_setzRepr.repr_setu   s/    Q""1eS#t{{CCr   c                 \    |syt        |      }| j                  ||dd| j                        S )Nzfrozenset()zfrozenset({z}))ro   r]   r/   ra   s      r   repr_frozensetzRepr.repr_frozenset{   s6     Q""1e]D#'#4#46 	6r   c                 @    | j                  ||dd| j                        S )Nzdeque([rh   )r]   r0   ra   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{}rm   rn   rI   z: )rN   r   r8   r   ro   r-   rT   rR   )r   r9   rC   rY   r[   r8   rO   r   keyreprvalreprrZ   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   r1   rN   maxr   r   r9   rC   rZ   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 rz   )r}   r   rN   r2   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   rN   r3   r~   r   r   s         r   rB   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=)rG   )r   r   r   r6   r   r8   rR   r]   rb   rf   rk   rp   rr   rt   rx   r   r   rB   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)r9   s    r   ro   ro      s)    ay Aws   
 $$)r'   )r   __all__r}   	itertoolsr   _threadr   r   r   ro   aReprr   r    r   r   <module>r      s?    M
,   6O Od 	zzr   