
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3

  \|Q  ã            
   @   sè   d dl Zd dlZd dlZd dlZd dlmZ	 ddddddgZ
d ddœdd„Zd!ddœdd„Zdd„ Zdd„ Zdd„ ZG dd„ dƒZdd„ ZG dd„ dƒZdd„ ZeeeeeeeeedƒhƒZdd„ Zd"dd„Zdd„ Z e!dkräeƒ  dS )#é    N)ÚStringIOÚpprintÚpformatÚ
isreadableÚisrecursiveÚsafereprÚPrettyPrinteré   éP   F)Úcompactc            C   s    t |||||d�}|j| ƒ d S )N)ÚstreamÚindentÚwidthÚdepthr   )r   r   )Úobjectr   r   r   r   r   Zprinter© r   ú/usr/lib64/python3.6/pprint.pyr   /   s    c            C   s   t ||||d�j| ƒS )N)r   r   r   r   )r   r   )r   r   r   r   r   r   r   r   r   7   s    c             C   s   t | i d dƒd S )Nr   )Ú
_safe_repr)r   r   r   r   r   <   s    c             C   s   t | i d dƒd S )Nr   r	   )r   )r   r   r   r   r   @   s    c             C   s   t | i d dƒd S )Nr   é   )r   )r   r   r   r   r   D   s    c               @   s"   e Zd ZdgZdd„ Zdd„ ZdS )Ú	_safe_keyÚobjc             C   s
   || _ d S )N)r   )Úselfr   r   r   r   Ú__init__T   s    z_safe_key.__init__c             C   sR   y| j |j k S  tk
rL   tt| j ƒƒt| j ƒftt|j ƒƒt|j ƒfk S X d S )N)r   Ú	TypeErrorÚstrÚtypeÚid)r   Úotherr   r   r   Ú__lt__W   s
    z_safe_key.__lt__N)Ú__name__Ú
__module__Ú__qualname__Ú	__slots__r   r   r   r   r   r   r   H   s   
r   c             C   s   t | d ƒt | d ƒfS )Nr   r	   )r   )Útr   r   r   Ú_safe_tuple^   s    r$   c               @   s¤  e Zd Zd:ddœdd„Zdd	„ Zd
d„ Zdd„ Zdd„ Zdd„ Zi Z	dd„ Z
e
e	ej< dd„ Zee	ejj< dd„ Zee	ej< dd„ Zee	ej< dd„ Zee	ej< ee	ej< dd„ Zee	ej< dd„ Zee	ej< d d!„ Zee	ej< d"d#„ Zee	ejj< d$d%„ Z d&d'„ Z!d(d)„ Z"d*d+„ Z#d,d-„ Z$e$e	ej%j< d.d/„ Z&e&e	ej'j< d0d1„ Z(e(e	ej)j< d2d3„ Z*e*e	ej+j< d4d5„ Z,e,e	ej-j< d6d7„ Z.e.e	ej/j< d8d9„ Z0e0e	ej1j< dS );r   r	   r
   NF)r   c            C   s|   t |ƒ}t |ƒ}|dk r tdƒ‚|d k	r8|dkr8tdƒ‚|sDtdƒ‚|| _|| _|| _|d k	rf|| _ntj| _t|ƒ| _	d S )Nr   zindent must be >= 0zdepth must be > 0zwidth must be != 0)
ÚintÚ
ValueErrorÚ_depthÚ_indent_per_levelÚ_widthÚ_streamÚ_sysÚstdoutÚboolÚ_compact)r   r   r   r   r   r   r   r   r   r   c   s    zPrettyPrinter.__init__c             C   s&   | j || jddi dƒ | jjdƒ d S )Nr   Ú
)Ú_formatr*   Úwrite)r   r   r   r   r   r   Š   s    zPrettyPrinter.pprintc             C   s"   t ƒ }| j||ddi dƒ |jƒ S )Nr   )Ú	_StringIOr0   Úgetvalue)r   r   Zsior   r   r   r   Ž   s    zPrettyPrinter.pformatc             C   s   | j |i ddƒd S )Nr   r   )Úformat)r   r   r   r   r   r   “   s    zPrettyPrinter.isrecursivec             C   s    | j |i ddƒ\}}}|o| S )Nr   )r4   )r   r   ÚsÚreadableÚ	recursiver   r   r   r   –   s    zPrettyPrinter.isreadablec          	   C   sÞ   t |ƒ}||kr.|jt|ƒƒ d| _d| _d S | j|||ƒ}| j| | }	t|ƒ|	krÐ| jj	t
|ƒjd ƒ}
|
d k	rœd||< |
| ||||||d ƒ ||= d S t|tƒrÐd||< | j||||||d ƒ ||= d S |j|ƒ d S )NTFr	   )r   r1   Ú
_recursionÚ
_recursiveÚ	_readableÚ_reprr)   ÚlenÚ	_dispatchÚgetr   Ú__repr__Ú
isinstanceÚdictÚ_pprint_dict)r   r   r   r   Ú	allowanceÚcontextÚlevelÚobjidÚrepÚ	max_widthÚpr   r   r   r0   š   s,    
zPrettyPrinter._formatc       
      C   sj   |j }|dƒ | jdkr*|| jd d ƒ t|ƒ}|r^t|jƒ td�}	| j|	|||d ||ƒ |dƒ d S )Nú{r	   ú )Úkeyú})r1   r(   r<   ÚsortedÚitemsr$   Ú_format_dict_items)
r   r   r   r   rC   rD   rE   r1   ZlengthrO   r   r   r   rB   ´   s    
zPrettyPrinter._pprint_dictc             C   sl   t |ƒs|jt|ƒƒ d S |j}|j|jd ƒ | jt|jƒ ƒ||t |jƒ d |d ||ƒ |jdƒ d S )Nú(r	   ú))r<   r1   ÚreprÚ	__class__r   r0   ÚlistrO   )r   r   r   r   rC   rD   rE   Úclsr   r   r   Ú_pprint_ordered_dictÂ   s    z"PrettyPrinter._pprint_ordered_dictc             C   s0   |j dƒ | j||||d ||ƒ |j dƒ d S )Nú[r	   ú])r1   Ú_format_items)r   r   r   r   rC   rD   rE   r   r   r   Ú_pprint_listÏ   s    
zPrettyPrinter._pprint_listc             C   sH   |j dƒ t|ƒdkrdnd}| j||||t|ƒ ||ƒ |j |ƒ d S )NrQ   r	   z,)rR   )r1   r<   rZ   )r   r   r   r   rC   rD   rE   Úendcharr   r   r   Ú_pprint_tuple×   s
    
zPrettyPrinter._pprint_tuplec       	      C   s”   t |ƒs|jt|ƒƒ d S |j}|tkr8|jdƒ d}n&|j|jd ƒ d}|t |jƒd 7 }t|td�}| j||||t |ƒ ||ƒ |j|ƒ d S )NrJ   rM   z({z})r	   )rL   )	r<   r1   rS   rT   Úsetr   rN   r   rZ   )	r   r   r   r   rC   rD   rE   Útypr\   r   r   r   Ú_pprint_setà   s    
zPrettyPrinter._pprint_setc             C   sÀ  |j }t|ƒs|t|ƒƒ d S g }|jdƒ}	|dkrD|d7 }|d7 }| j|  }
}xðt|	ƒD ]ä\}}t|ƒ}|t|	ƒd kr„|
|8 }
t|ƒ|
krœ|j|ƒ q\tjd|ƒ}|j	ƒ  |}d}xtt|ƒD ]h\}}|| }|t|ƒd krú|t|	ƒd krú||8 }tt|ƒƒ|k�r&|�r |jt|ƒƒ |}qÂ|}qÂW |r\|jt|ƒƒ q\W t|ƒdk�r^||ƒ d S |dk�rp|dƒ x8t|ƒD ],\}}|dk�rœ|dd|  ƒ ||ƒ �qzW |dk�r¼|d	ƒ d S )
NTr	   z\S*\s*Ú rQ   r   r/   rK   rR   )
r1   r<   rS   Ú
splitlinesr)   Ú	enumerateÚappendÚreÚfindallÚpop)r   r   r   r   rC   rD   rE   r1   ZchunksÚlinesZ
max_width1rH   ÚiÚlinerG   ÚpartsZ
max_width2ÚcurrentÚjÚpartÚ	candidater   r   r   Ú_pprint_strô   sT    
 


zPrettyPrinter._pprint_strc             C   s–   |j }t|ƒdkr"|t|ƒƒ d S |dk}|rF|d7 }|d7 }|dƒ d}	x:t|| j| |ƒD ]$}
||	ƒ ||
ƒ |	s^dd|  }	q^W |r’|dƒ d S )Né   r	   rQ   ra   r/   rK   rR   )r1   r<   rS   Ú_wrap_bytes_reprr)   )r   r   r   r   rC   rD   rE   r1   ZparensÚdelimrG   r   r   r   Ú_pprint_bytes'  s"    zPrettyPrinter._pprint_bytesc             C   s>   |j }|dƒ | jt|ƒ||d |d ||d ƒ |dƒ d S )Nz
bytearray(é
   r	   rR   )r1   rt   Úbytes)r   r   r   r   rC   rD   rE   r1   r   r   r   Ú_pprint_bytearray<  s
    zPrettyPrinter._pprint_bytearrayc             C   s8   |j dƒ | j|jƒ ||d |d ||ƒ |j dƒ d S )Nzmappingproxy(é   r	   rR   )r1   r0   Úcopy)r   r   r   r   rC   rD   rE   r   r   r   Ú_pprint_mappingproxyE  s    
z"PrettyPrinter._pprint_mappingproxyc             C   s    |j }|| j7 }dd|  }t|ƒd }	xrt|ƒD ]f\}
\}}|
|	k}| j|||ƒ}||ƒ |dƒ | j|||t|ƒ d |r‚|nd||ƒ |s2||ƒ q2W d S )Nz,
rK   r	   z: r   )r1   r(   r<   rc   r;   r0   )r   rO   r   r   rC   rD   rE   r1   ÚdelimnlZ
last_indexri   rL   ÚentÚlastrG   r   r   r   rP   M  s    

z PrettyPrinter._format_dict_itemsc             C   sN  |j }|| j7 }| jdkr,|| jd d ƒ dd|  }d}	| j| d  }
}t|ƒ}yt|ƒ}W n tk
rv   d S X d}xÌ|�sH|}yt|ƒ}W n( tk
r¼   d}||8 }|
|8 }
Y nX | j�r| j|||ƒ}t|ƒd }|
|k rô|}
|	rô|}	|
|k�r|
|8 }
||	ƒ d}	||ƒ q~||	ƒ |}	| j	||||�r<|nd||ƒ q~W d S )	Nr	   rK   z,
ra   FTr   z, )
r1   r(   r)   ÚiterÚnextÚStopIterationr.   r;   r<   r0   )r   rO   r   r   rC   rD   rE   r1   r{   rs   r   rH   ÚitZnext_entr}   r|   rG   Úwr   r   r   rZ   ^  sN    



zPrettyPrinter._format_itemsc             C   s4   | j ||jƒ | j|ƒ\}}}|s&d| _|r0d| _|S )NFT)r4   ry   r'   r:   r9   )r   r   rD   rE   rS   r6   r7   r   r   r   r;   ‡  s    zPrettyPrinter._reprc             C   s   t ||||ƒS )N)r   )r   r   rD   Ú	maxlevelsrE   r   r   r   r4   �  s    zPrettyPrinter.formatc       	      C   s‚   t |ƒs|jt|ƒƒ d S | j|j||ƒ}|j}|t |jƒd 7 }|jd|j|d| f ƒ | j||||d ||ƒ |jdƒ d S )Nr	   z	%s(%s,
%srK   rR   )r<   r1   rS   r;   Údefault_factoryrT   r   rB   )	r   r   r   r   rC   rD   rE   ZrdfrV   r   r   r   Ú_pprint_default_dict—  s    z"PrettyPrinter._pprint_default_dictc       	      C   sŠ   t |ƒs|jt|ƒƒ d S |j}|j|jd ƒ | jdkrN|j| jd d ƒ |jƒ }| j|||t |jƒ d |d ||ƒ |jdƒ d S )Nz({r	   rK   r   z}))r<   r1   rS   rT   r   r(   Úmost_commonrP   )	r   r   r   r   rC   rD   rE   rV   rO   r   r   r   Ú_pprint_counter¤  s    
zPrettyPrinter._pprint_counterc       
      C   s¼   t |jƒs|jt|ƒƒ d S |j}|j|jd ƒ |t |jƒd 7 }xrt|jƒD ]d\}}	|t |jƒd krŽ| j|	|||d ||ƒ |jdƒ qP| j|	||d||ƒ |jdd|  ƒ qPW d S )NrQ   r	   rR   z,
rK   )r<   Úmapsr1   rS   rT   r   rc   r0   )
r   r   r   r   rC   rD   rE   rV   ri   Úmr   r   r   Ú_pprint_chain_map´  s    
zPrettyPrinter._pprint_chain_mapc       	      C   s¸   t |ƒs|jt|ƒƒ d S |j}|j|jd ƒ |t |jƒd 7 }|jdƒ |jd krz| j||||d ||ƒ |jdƒ n:| j|||d||ƒ | j|j||ƒ}|jdd| |f ƒ d S )NrQ   r	   rX   r   z])z],
%smaxlen=%s)rK   )r<   r1   rS   rT   r   ÚmaxlenrZ   r;   )	r   r   r   r   rC   rD   rE   rV   Zrmlr   r   r   Ú_pprint_dequeÅ  s    

zPrettyPrinter._pprint_dequec             C   s   | j |j|||||d ƒ d S )Nr	   )r0   Údata)r   r   r   r   rC   rD   rE   r   r   r   Ú_pprint_user_dictÙ  s    zPrettyPrinter._pprint_user_dictc             C   s   | j |j|||||d ƒ d S )Nr	   )r0   r�   )r   r   r   r   rC   rD   rE   r   r   r   Ú_pprint_user_listÞ  s    zPrettyPrinter._pprint_user_listc             C   s   | j |j|||||d ƒ d S )Nr	   )r0   r�   )r   r   r   r   rC   rD   rE   r   r   r   Ú_pprint_user_stringã  s    z!PrettyPrinter._pprint_user_string)r	   r
   NN)2r   r    r!   r   r   r   r   r   r0   r=   rB   rA   r?   rW   Ú_collectionsÚOrderedDictr[   rU   r]   Útupler`   r^   Ú	frozensetrp   r   rt   rv   rw   Ú	bytearrayrz   Ú_typesÚMappingProxyTyperP   rZ   r;   r4   r…   Údefaultdictr‡   ÚCounterrŠ   ÚChainMaprŒ   ÚdequerŽ   ÚUserDictr�   ÚUserListr�   Ú
UserStringr   r   r   r   r   b   sZ   &




1


)	c             C   s„  t | ƒ}|tkrt| ƒddfS t|dd ƒ}t|tƒo<|tjk�r8| sHdS t| ƒ}|rj||krjdd||kfS ||kr€t| ƒddfS d||< d}d}g }	|	j	}
|d7 }t
}t| jƒ td�}xf|D ]^\}}|||||ƒ\}}}|||||ƒ\}}}|
d||f ƒ |�o
|�o
|}|�s|r¼d}q¼W ||= d	d
j|	ƒ ||fS t|tƒ�rP|tjk�sht|tƒ�rd|tjk�rdt|tƒ�r„| �s~dS d}n"t| ƒdk�r˜d}n| �s¢dS d}t| ƒ}|�rÐ||k�rÐ|d d||kfS ||k�rèt| ƒddfS d||< d}d}g }	|	j	}
|d7 }x>| D ]6}t
||||ƒ\}}}|
|ƒ |�s:d}|�rd}�qW ||= |d
j|	ƒ ||fS t| ƒ}||�o~|jdƒ dfS )NTFr?   ú{}z{...}r	   )rL   z%s: %sz{%s}z, ú[]z[%s]z(%s,)ú()z(%s)z...ú<)rŸ   TF)r    TF)r¡   TF)r   Ú_builtin_scalarsrS   ÚgetattrÚ
issubclassrA   r?   r   r8   rd   r   rN   rO   r$   ÚjoinrU   r“   r<   Ú
startswith)r   rD   rƒ   rE   r_   ÚrrF   r6   r7   Z
componentsrd   r   rO   ÚkÚvZkreprZ	kreadableZkrecurZvreprZ	vreadableZvrecurr4   ÚoZoreprZ	oreadableZorecurrG   r   r   r   r   ê  s|    



r   c             C   s   dt | ƒjt| ƒf S )Nz<Recursion on %s with id=%s>)r   r   r   )r   r   r   r   r8   1  s    r8   c             C   s‚   dd l }| d kr,ddddgddd	œfgd
 } tƒ }|j ƒ }t| i d dƒ |j ƒ }|j| ƒ |j ƒ }td|| ƒ td|| ƒ d S )Nr   Ústringr	   r   é   rq   é   é   )é   é   i † z_safe_repr:zpformat:)r	   r   )Útimer   r   r   Úprint)r   r²   rI   Zt1Zt2Zt3r   r   r   Ú
_perfcheck6  s    
r´   c             c   s�   d}t | ƒd d }xhtdt | ƒdƒD ]T}| ||d … }|| }||krR||8 }t t|ƒƒ|krv|rpt|ƒV  |}q&|}q&W |rŒt|ƒV  d S )Nó    rq   r   )r<   ÚrangerS   )r   r   rC   rl   r}   ri   rn   ro   r   r   r   rr   C  s    
rr   Ú__main__)Nr	   r
   N)r	   r
   N)N)"Úcollectionsr‘   re   Úsysr+   Útypesr–   Úior   r2   Ú__all__r   r   r   r   r   r   r$   r   r   r”   r   rv   r•   r%   ÚfloatÚcomplexr-   r   r£   r8   r´   rr   r   r   r   r   r   Ú<module>%   s4   
   D
