
    	g                     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      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	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   builtinsarraycollections)	tuplelistr$   r   	frozensetdequedictstrint            (   ...Nmaxlevelmaxtuplemaxlistmaxarraymaxdictmaxsetmaxfrozensetmaxdeque	maxstringmaxlongmaxotherr   indentc                    || _         || _        || _        || _        || _        || _        || _        || _        |	| _        |
| _	        || _
        || _        || _        y r   r3   )r   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r   r?   s                 r   __init__zRepr.__init__2   s`    
 !  ( " "r!   c                 :    | j                  || j                        S r   )repr1r4   )r   xs     r   r   z	Repr.reprE   s    zz!T]]++r!   c                 @   t        |      }|j                  }d|v r!|j                         }dj                  |      }t	        | d|z   d       }|r?|| j
                  vr	 |||      S t	        |dd       }|| j
                  |   k(  r	 |||      S | j                  ||      S )N _repr_r   )typer   splitjoinr   _lookuprepr_instance)r   rD   levelclstypenamepartsmethodmodules           r   rC   z
Repr.repr1H   s    1g<<(?NN$ExxHw148t||+a''S,5Fh//a''!!!U++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 )rF   z,
   z,Repr.indent must be a str, int or None, not )	r?   rK   
isinstancer,   
ValueErrorr4   	TypeErrorrI   len)r   piecesrN   r?   seperrors         r   _joinz
Repr._join\   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   rW   )r[   r   rC   r   appendr_   r?   )r   rD   rN   leftrightmaxitertrailnsnewlevelrC   elemr\   s                r   _repr_iterablezRepr._repr_iterablep   s    FA:!AqyHJJE8>q'8JK8JeD(+8JFK7{dnn-

65)AAv%DKK$7E** Ls   B#c                 B    | j                  ||dd| j                  d      S )N(rV   ,)rj   r5   r   rD   rN   s      r   
repr_tuplezRepr.repr_tuple   s!    ""1eS#t}}cJJr!   c                 @    | j                  ||dd| j                        S )N[])rj   r6   rn   s      r   	repr_listzRepr.repr_list   s    ""1eS#t||DDr!   c                     |sd|j                   z  S d|j                   z  }| j                  |||d| j                        S )Nzarray('%s')zarray('%s', []))typecoderj   r7   )r   rD   rN   headers       r   
repr_arrayzRepr.repr_array   s?     1::-- 1::-""1eVT4==IIr!   c                 \    |syt        |      }| j                  ||dd| j                        S )Nzset(){})_possibly_sortedrj   r9   rn   s      r   repr_setzRepr.repr_set   s/    Q""1eS#t{{CCr!   c                 \    |syt        |      }| j                  ||dd| j                        S )Nzfrozenset()zfrozenset({z}))r|   rj   r:   rn   s      r   repr_frozensetzRepr.repr_frozenset   s6     Q""1e]D#'#4#46 	6r!   c                 @    | j                  ||dd| j                        S )Nzdeque([ru   )rj   r;   rn   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{}rz   r{   rW   z: )r[   r   rC   r   r|   r8   ra   r_   )r   rD   rN   rf   rh   rC   r\   r   keyreprvalreprrg   s              r   	repr_dictzRepr.repr_dict   s    F6A:'#--19

*1-t||<CC*GAcFH-GMMgw78 = 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         )r#   r   r<   r[   maxr   r   rD   rN   rg   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   r[   r=   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   r[   r>   r   r   r   s         r   rM   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=)rU   )r   r   r   rL   rA   r   rC   r_   rj   ro   rs   rx   r}   r   r   r   r   r   rM   r   r!   r   r   r   %   s    
G aQq1BuT&,,(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   r'   )rD   s    r   r|   r|      s)    ay Aws   
 $$)r2   )r   __all__r#   	itertoolsr   _threadr   r   r   r|   aReprr   r   r!   r   <module>r      s?    M
,   8d dN 	zzr!   