
                             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# e$ r	 ddl	mZ Y 2w xY w)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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/third_party/functools32/reprlib32.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____annotations__)setgetattrr   r   r   r   )r   r   r   r   s   ` @r   decorating_functionz+recursive_repr.<locals>.decorating_function   sT    u		 %]LA!-;"=*=")-9JB"O     )r   r   s   ` r   r   r      s    * r   c                   b    e Z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   c                     d| _         d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _	        d| _
        y )N            (   )maxlevelmaxtuplemaxlistmaxarraymaxdictmaxsetmaxfrozensetmaxdeque	maxstringmaxlongmaxother)r   s    r   __init__zRepr.__init__(   sP    r   c                 :    | j                  || j                        S r   )repr1r'   )r   xs     r   r   z	Repr.repr5   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   r5   leveltypenamepartss        r   r4   z
Repr.repr18   sn    7##(?NN$ExxH48+,4748!34Q>>%%a//r   c                    t        |      }|dk  r|rd}nd|dz
  }	| j                  }
t        ||      D cg c]  } |
||	       }}||kD  r|j                  d       dj	                  |      }|dk(  r|r||z   }|||S c c}w )Nr   ...   , )lenr4   r   appendr<   )r   r5   r?   leftrightmaxitertrailnsnewlevelr4   elempiecess                r   _repr_iterablezRepr._repr_iterableB   s    FA:!AqyHJJE8>q'8JK8JeD(+8JFK7{V]]51		&!AAv%%%-%E**	 Ls   Bc                 B    | j                  ||dd| j                  d      S )N(),)rQ   r(   r   r5   r?   s      r   
repr_tuplezRepr.repr_tupleO   s!    ""1eS#t}}cJJr   c                 @    | j                  ||dd| j                        S )N[])rQ   r)   rV   s      r   	repr_listzRepr.repr_listR   s    ""1eS#t||DDr   c                 ^    d|j                   z  }| j                  |||d| j                        S )Nzarray('%s', []))typecoderQ   r*   )r   r5   r?   headers       r   
repr_arrayzRepr.repr_arrayU   s-     1::-""1eVT4==IIr   c                 V    t        |      }| j                  ||dd| j                        S )Nzset([r]   )_possibly_sortedrQ   r,   rV   s      r   repr_setzRepr.repr_setY   s)    Q""1eWdDKKHHr   c                 V    t        |      }| j                  ||dd| j                        S )Nzfrozenset([r]   )rb   rQ   r-   rV   s      r   repr_frozensetzRepr.repr_frozenset]   s0    Q""1e]D#'#4#46 	6r   c                 @    | j                  ||dd| j                        S )Nzdeque([r]   )rQ   r.   rV   s      r   
repr_dequezRepr.repr_dequeb   s    ""1eYdmmLLr   c                 b   t        |      }|dk(  ry|dk  ry|dz
  }| j                  }g }t        t        |      | j                        D ]-  } |||      } |||   |      }	|j                  |d|	       / || j                  kD  r|j                  d       dj                  |      }
d|
d	S )
Nr   z{}z{...}rD   z: rC   rE   {})rF   r4   r   rb   r+   rG   r<   )r   r5   r?   rL   rN   r4   rP   r   keyreprvalreprrM   s              r   	repr_dictzRepr.repr_dicte   s    F6$A:g19

*1-t||<CC*GAcFH-GMMgw78 = t||V]]51IIf}r   c                 r   t        j                  |d | j                         }t        |      | j                  kD  r|t	        d| j                  dz
  dz        }t	        d| j                  dz
  |z
        }t        j                  |d | |t        |      |z
  d  z         }|d | dz   |t        |      |z
  d  z   }|S Nr         rC   )builtinsr   r/   rF   maxr   r5   r?   rM   ijs         r   repr_strzRepr.repr_strt   s    MM!OT^^,-q6DNN"Aq(1,-AAt~~a')*AaeaAq	l23A"1#a&(),Ar   c                    t        j                  |      }t        |      | j                  kD  rRt	        d| j                  dz
  dz        }t	        d| j                  dz
  |z
        }|d | dz   |t        |      |z
  d  z   }|S ro   )rr   r   rF   r0   rs   rt   s         r   repr_intzRepr.repr_int}   sy    MM!q6DLL AQ*+AAt||A~a'(A"1#a&(),Ar   c                 l   	 t        j                  |      }t        |      | j                  kD  rRt        d| j                  dz
  dz        }t        d| j                  dz
  |z
        }|d | d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   rp   rq   rC   )	rr   r   	Exception	__class__r   r   rF   r1   rs   rt   s         r   r>   zRepr.repr_instance   s    	Ia A
 q6DMM!Aa!+,AAt}}Qq()A"1#a&(),A  	I(AKK,@,@"Q%+HHH	Is   B -B32B3N) )r   r   __qualname__r2   r   r4   rQ   rW   r[   r`   rc   re   rg   rm   rw   ry   r>   r   r   r   r   r   &   sM    ,0+KEJI6
Mr   r   c                 N    	 t        |       S # t        $ r t        |       cY S w xY wr   )sortedr{   list)r5   s    r   rb   rb      s)    ay Aws   
 $$)rC   )r   __all____builtin__rr   	itertoolsr   threadr   ImportError_dummy_thread32r   r   rb   aReprr   r   r   r   <module>r      sY    M
,  * 4j jZ 	zzi  *)*s   = A
A