B
    /`                 @   s^   d Z dddgZddlZddlmZ ddlmZ dd	dZG d
d dZdd Z	e Z
e
jZdS )zGRedo the builtin repr() (representation) but with limits on most sizes.Reprreprrecursive_repr    N)islice)	get_ident...c                s    fdd}|S )zGDecorator to make a repr function return fillvalue for a recursive callc                sX   t    fdd}td|_td|_td|_td|_tdi |_|S )Nc          	      sB   t | t f}|kr S | z| }W d | X |S )N)idr   adddiscard)selfkeyresult)	fillvaluerepr_runninguser_function A/home/kop/projects/devel/pgwui/test_venv/lib/python3.7/reprlib.pywrapper   s    
z<recursive_repr.<locals>.decorating_function.<locals>.wrapper
__module____doc____name____qualname____annotations__)setgetattrr   r   r   r   r   )r   r   )r   )r   r   r   decorating_function   s    z+recursive_repr.<locals>.decorating_functionr   )r   r   r   )r   r   r   	   s    c               @   s~   e Zd Zdd Zdd Zdd Zddd	Zd
d Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd ZdS ) r   c             C   sF   d| _ d| _d| _d| _d| _d| _d| _d| _d| _d| _	d| _
d S )N            (   )maxlevelmaxtuplemaxlistmaxarraymaxdictmaxsetmaxfrozensetmaxdeque	maxstringmaxlongmaxother)r   r   r   r   __init__&   s    zRepr.__init__c             C   s   |  || jS )N)repr1r!   )r   xr   r   r   r   3   s    z	Repr.reprc             C   sV   t |j}d|kr$| }d|}t| d| rFt| d| ||S | ||S d S )N _Zrepr_)typer   splitjoinhasattrr   repr_instance)r   r.   leveltypenamepartsr   r   r   r-   6   s    

z
Repr.repr1 c       
         s   t |}|dkr|rd}nX|d  | j fddt||D }	||krT|	d d|	}|dkrr|rr|| }d|||f S )Nr   z...   c                s   g | ]}| qS r   r   ).0elem)newlevelr-   r   r   
<listcomp>G   s    z'Repr._repr_iterable.<locals>.<listcomp>z, z%s%s%s)lenr-   r   appendr3   )
r   r.   r6   ZleftZrightZmaxiterZtrailnspiecesr   )r=   r-   r   _repr_iterable@   s     

 zRepr._repr_iterablec             C   s   |  ||dd| jdS )N(),)rD   r"   )r   r.   r6   r   r   r   
repr_tupleM   s    zRepr.repr_tuplec             C   s   |  ||dd| jS )N[])rD   r#   )r   r.   r6   r   r   r   	repr_listP   s    zRepr.repr_listc             C   s,   |sd|j  S d|j  }| |||d| jS )Nzarray('%s')zarray('%s', [z]))ZtypecoderD   r$   )r   r.   r6   Zheaderr   r   r   
repr_arrayS   s    

zRepr.repr_arrayc             C   s$   |sdS t |}| ||dd| jS )Nzset(){})_possibly_sortedrD   r&   )r   r.   r6   r   r   r   repr_setY   s    zRepr.repr_setc             C   s$   |sdS t |}| ||dd| jS )Nzfrozenset()zfrozenset({z}))rO   rD   r'   )r   r.   r6   r   r   r   repr_frozenset_   s
    zRepr.repr_frozensetc             C   s   |  ||dd| jS )Nzdeque([z]))rD   r(   )r   r.   r6   r   r   r   
repr_dequef   s    zRepr.repr_dequec             C   s   t |}|dkrdS |dkr dS |d }| j}g }xBtt|| jD ].}|||}||| |}	|d||	f  qDW || jkr|d d|}
d|
f S )	Nr   z{}z{...}r:   z%s: %sz...z, z{%s})r?   r-   r   rO   r%   r@   r3   )r   r.   r6   rA   r=   r-   rC   r   ZkeyreprZvalreprrB   r   r   r   	repr_dicti   s       

 

zRepr.repr_dictc             C   s   t |d | j }t|| jkrtd| jd d }td| jd | }t |d | |t|| d   }|d | d |t|| d   }|S )Nr         z...)builtinsr   r)   r?   max)r   r.   r6   rB   ijr   r   r   repr_strx   s    &$zRepr.repr_strc             C   sh   t |}t|| jkrdtd| jd d }td| jd | }|d | d |t|| d   }|S )Nr   rT   rU   z...)rV   r   r?   r*   rW   )r   r.   r6   rB   rX   rY   r   r   r   repr_int   s    
$zRepr.repr_intc             C   s   yt |}W n$ tk
r2   d|jjt|f S X t|| jkrtd| jd d }td| jd | }|d | d |t|| d   }|S )Nz<%s instance at %#x>r   rT   rU   z...)	rV   r   	Exception	__class__r   r   r?   r+   rW   )r   r.   r6   rB   rX   rY   r   r   r   r5      s    $zRepr.repr_instanceN)r9   )r   r   r   r,   r   r-   rD   rH   rK   rL   rP   rQ   rR   rS   rZ   r[   r5   r   r   r   r   r   $   s   

	c             C   s&   yt | S  tk
r    t| S X d S )N)sortedr\   list)r.   r   r   r   rO      s    rO   )r   )r   __all__rV   	itertoolsr   _threadr   r   r   rO   ZaReprr   r   r   r   r   <module>   s   

s	