???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................U
    e5dS                  
   @   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d	gZ
d$dddddZd%dddddZ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 re   dS )'    N)StringIOpprintpformat
isreadableisrecursivesafereprPrettyPrinterpp   P   FTcompact
sort_dictsc                C   s"   t ||||||d}||  d S )N)streamindentwidthdepthr   r   )r   r   )objectr   r   r   r   r   r   Zprinter r   /usr/lib64/python3.8/pprint.pyr   /   s        c                C   s   t |||||d| S )N)r   r   r   r   r   )r   r   )r   r   r   r   r   r   r   r   r   r   7   s     )r   c                O   s   t | f|d|i| d S )Nr   )r   )r   r   argskwargsr   r   r   r	   =   s    c                 C   s   t | i d ddd S )Nr   T
_safe_reprr   r   r   r   r   A   s    c                 C   s   t | i d ddd S )Nr   Tr
   r   r   r   r   r   r   E   s    c                 C   s   t | i d ddd S )Nr   T   r   r   r   r   r   r   I   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__Y   s    z_safe_key.__init__c                 C   sX   z| j |j k W S  tk
rR   tt| j t| j ftt|j t|j fk  Y S X d S r   )r   	TypeErrorstrtypeid)r   otherr   r   r   __lt__\   s    z_safe_key.__lt__N)__name__
__module____qualname__	__slots__r    r&   r   r   r   r   r   M   s   
r   c                 C   s   t | d t | d fS )Nr   r
   )r   )tr   r   r   _safe_tuplec   s    r,   c                   @   s  e Zd Zd;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/d0 Z&e&e	ej'j< d1d2 Z(e(e	ej)j< d3d4 Z*e*e	ej+j< d5d6 Z,e,e	ej-j< d7d8 Z.e.e	ej/j< d9d: Z0e0e	ej1j< dS )<r   r
   r   NFTr   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_sort_dicts)r   r   r   r   r   r   r   r   r   r   r    h   s     
zPrettyPrinter.__init__c                 C   s&   |  || jddi d | jd d S )Nr   
)_formatr2   writer   r   r   r   r   r      s    zPrettyPrinter.pprintc                 C   s"   t  }| ||ddi d | S Nr   )	_StringIOr9   getvalue)r   r   Zsior   r   r   r      s    zPrettyPrinter.pformatc                 C   s   |  |i ddd S )Nr   r   formatr;   r   r   r   r      s    zPrettyPrinter.isrecursivec                 C   s    |  |i dd\}}}|o| S r<   r?   )r   r   sreadable	recursiver   r   r   r      s    zPrettyPrinter.isreadablec              	   C   s   t |}||kr.|t| d| _d| _d S | |||}| j| | }	t||	kr| j	t
|jd }
|
d k	rd||< |
| ||||||d  ||= d S t|trd||< | ||||||d  ||= d S || d S )NTFr
   )r$   r:   
_recursion
_recursive	_readable_reprr1   len	_dispatchgetr#   __repr__
isinstancedict_pprint_dict)r   r   r   r   	allowancecontextlevelobjidrep	max_widthpr   r   r   r9      s0    
 zPrettyPrinter._formatc           
      C   sz   |j }|d | jdkr*|| jd d  t|}|rn| jrNt| td}	n| }	| |	|||d || |d d S )N{r
    key})r:   r0   rH   r7   sorteditemsr,   _format_dict_items)
r   r   r   r   rO   rP   rQ   r:   Zlengthr\   r   r   r   rN      s    
 zPrettyPrinter._pprint_dictc                 C   sl   t |s|t| d S |j}||jd  | t| ||t |j d |d || |d d S )N(r
   ))rH   r:   repr	__class__r'   r9   listr\   )r   r   r   r   rO   rP   rQ   clsr   r   r   _pprint_ordered_dict   s      z"PrettyPrinter._pprint_ordered_dictc                 C   s0   | d | ||||d || | d d S )N[r
   ])r:   _format_itemsr   r   r   r   rO   rP   rQ   r   r   r   _pprint_list   s    
 zPrettyPrinter._pprint_listc                 C   sH   | d t|dkrdnd}| ||||t| || | | d S )Nr^   r
   z,)r_   )r:   rH   rg   )r   r   r   r   rO   rP   rQ   endcharr   r   r   _pprint_tuple   s    
 zPrettyPrinter._pprint_tuplec           	      C   s   t |s|t| d S |j}|tkr8|d d}n&||jd  d}|t |jd 7 }t|td}| ||||t | || || d S )NrV   rZ   ({})r
   rX   )	rH   r:   r`   ra   setr'   r[   r   rg   )	r   r   r   r   rO   rP   rQ   typrj   r   r   r   _pprint_set   s     
 zPrettyPrinter._pprint_setc                 C   s  |j }t|s|t| d S g }|d}	|dkrD|d7 }|d7 }| j|  }
}t|	D ]\}}t|}|t|	d kr|
|8 }
t||
kr|| qZtd|}|	  |}d}t|D ]h\}}|| }|t|d kr|t|	d kr||8 }tt||kr"|r|t| |}q|}q|rZ|t| qZt|dkrV|| d S |dkrh|d t|D ],\}}|dkr|dd|   || qp|dkr|d	 d S )
NTr
   z\S*\s* r^   r   r8   rW   r_   )
r:   rH   r`   
splitlinesr1   	enumerateappendrefindallpop)r   r   r   r   rO   rP   rQ   r:   ZchunkslinesZ
max_width1rT   ilinerS   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}	t|| j| |D ]$}
||	 ||
 |	s\dd|  }	q\|r|d d S )N   r
   r^   rq   r8   rW   r_   )r:   rH   r`   _wrap_bytes_reprr1   )r   r   r   r   rO   rP   rQ   r:   ZparensdelimrS   r   r   r   _pprint_bytes3  s"    zPrettyPrinter._pprint_bytesc              	   C   s>   |j }|d | t|||d |d ||d  |d d S )Nz
bytearray(
   r
   r_   )r:   r   bytes)r   r   r   r   rO   rP   rQ   r:   r   r   r   _pprint_bytearrayH  s      zPrettyPrinter._pprint_bytearrayc                 C   s8   | d | | ||d |d || | d d S )Nzmappingproxy(   r
   r_   )r:   r9   copyrh   r   r   r   _pprint_mappingproxyQ  s    
 z"PrettyPrinter._pprint_mappingproxyc              	   C   s   |j }|| j7 }dd|  }t|d }	t|D ]f\}
\}}|
|	k}| |||}|| |d | |||t| d |r|nd|| |s0|| q0d S )N,
rW   r
   z: r   )r:   r0   rH   rs   rG   r9   )r   r\   r   r   rO   rP   rQ   r:   delimnlZ
last_indexry   rY   entlastrS   r   r   r   r]   Y  s     

 z PrettyPrinter._format_dict_itemsc                 C   sL  |j }|| j7 }| jdkr,|| jd d  dd|  }d}	| j| d  }
}t|}zt|}W n tk
rx   Y d S X d}|sH|}zt|}W n( tk
r   d}||8 }|
|8 }
Y nX | jr| |||}t|d }|
|k r|}
|	r|}	|
|kr|
|8 }
||	 d}	|| q~||	 |}	| 	||||r<|nd|| q~d S )	Nr
   rW   r   rq   FTr   , )
r:   r0   r1   iternextStopIterationr6   rG   rH   r9   )r   r\   r   r   rO   rP   rQ   r:   r   r   r   rT   itZnext_entr   r   rS   wr   r   r   rg   j  sR    



 zPrettyPrinter._format_itemsc                 C   s4   |  || | j|\}}}|s&d| _|r0d| _|S )NFT)r@   r   r/   rF   rE   )r   r   rP   rQ   r`   rB   rC   r   r   r   rG     s     
zPrettyPrinter._reprc                 C   s   t ||||| jS r   )r   r7   )r   r   rP   	maxlevelsrQ   r   r   r   r@     s    zPrettyPrinter.formatc           	      C   s   t |s|t| d S | |j||}|j}|t |jd 7 }|d|j|d| f  | ||||d || |d d S )Nr
   z	%s(%s,
%srW   r_   )rH   r:   r`   rG   default_factoryra   r'   rN   )	r   r   r   r   rO   rP   rQ   Zrdfrc   r   r   r   _pprint_default_dict  s    z"PrettyPrinter._pprint_default_dictc           	      C   s   t |s|t| d S |j}||jd  | jdkrN|| jd d  | }| |||t |j d |d || |d d S )Nrl   r
   rW   r   rm   )rH   r:   r`   ra   r'   r0   most_commonr]   )	r   r   r   r   rO   rP   rQ   rc   r\   r   r   r   _pprint_counter  s    
  zPrettyPrinter._pprint_counterc           
   	   C   s   t |js|t| d S |j}||jd  |t |jd 7 }t|jD ]d\}}	|t |jd kr| |	|||d || |d qN| |	||d|| |dd|   qNd S )Nr^   r
   r_   r   rW   )rH   mapsr:   r`   ra   r'   rs   r9   )
r   r   r   r   rO   rP   rQ   rc   ry   mr   r   r   _pprint_chain_map  s    
zPrettyPrinter._pprint_chain_mapc           	      C   s   t |s|t| d S |j}||jd  |t |jd 7 }|d |jd krz| ||||d || |d n:| |||d|| | |j||}|dd| |f  d S )Nr^   r
   re   r   z])z],
%smaxlen=%s)rW   )rH   r:   r`   ra   r'   maxlenrg   rG   )	r   r   r   r   rO   rP   rQ   rc   Zrmlr   r   r   _pprint_deque  s&    

  zPrettyPrinter._pprint_dequec              	   C   s   |  |j|||||d  d S Nr
   r9   datarh   r   r   r   _pprint_user_dict  s    zPrettyPrinter._pprint_user_dictc              	   C   s   |  |j|||||d  d S r   r   rh   r   r   r   _pprint_user_list  s    zPrettyPrinter._pprint_user_listc              	   C   s   |  |j|||||d  d S r   r   rh   r   r   r   _pprint_user_string  s    z!PrettyPrinter._pprint_user_string)r
   r   NN)2r'   r(   r)   r    r   r   r   r   r9   rI   rN   rM   rK   rd   _collectionsOrderedDictri   rb   rk   tuplerp   rn   	frozensetr   r"   r   r   r   	bytearrayr   _typesMappingProxyTyper]   rg   rG   r@   r   defaultdictr   Counterr   ChainMapr   dequer   UserDictr   UserListr   
UserStringr   r   r   r   r   g   s^    +




1


)	c                 C   s  t | }|tkrt| ddfS t|dd }t|trD|tjkrD| sJdS t| }|rl||krldd||kfS ||krt| ddfS d||< d}d}	g }
|
j	}|d7 }|rt
|  td}n|  }|D ]b\}}t|||||\}}}t|||||\}}}|d||f  |o|o|}|s$|rd}	q||= d	d
|
 ||	fS t|tr\|tjkstt|trn|tjkrnt|tr| sdS d}n"t| dkrd}n| sdS d}t| }|r||kr|d d||kfS ||krt| ddfS d||< d}d}	g }
|
j	}|d7 }| D ]8}t|||||\}}}|| |sFd}|rd}	q||= |d
|
 ||	fS t| }||o|d dfS )NTFrK   )z{}TFz{...}r
   rX   z%s: %sz{%s}r   )z[]TFz[%s]z(%s,))z()TFz(%s)z...<)r#   _builtin_scalarsr`   getattr
issubclassrM   rK   r$   rD   rt   r[   r\   r,   r   joinrb   r   rH   
startswith)r   rP   r   rQ   r   ro   rrR   rB   rC   Z
componentsrt   r\   kvZkreprZ	kreadableZkrecurZvreprZ	vreadableZvrecurr@   oZoreprZ	oreadableZorecurrS   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   rD   ?  s    rD   c                 C   s   dd l }| d kr,ddddgdddfgd	 } t }| }t| i d dd
 | }||  | }td||  td||  d S )Nr   string)r
   r      r         )      i Tz_safe_repr:zpformat:)timer   perf_counterr   r   print)r   r   rU   t1t2Zt3r   r   r   
_perfcheckD  s    
r   c                 c   s   d}t | d d }tdt | dD ]T}| ||d  }|| }||krP||8 }t t||krt|rnt|V  |}q$|}q$|rt|V  d S )N    r   r   )rH   ranger`   )r   r   rO   r|   r   ry   r~   r   r   r   r   r   Q  s    
r   __main__)Nr
   r   N)r
   r   N)N)#collectionsr   ru   sysr3   typesr   ior   r=   __all__r   r   r	   r   r   r   r   r,   r   r   r   r"   r   r   r-   floatcomplexr5   r#   r   rD   r   r   r'   r   r   r   r   <module>%   sH   
      F 

