§
    äžyj`  ã                   ó0  — d Z ddlZddlZddlZddlZddlZ	ddl
mZ g d¢Zddddd	œd
„Zddddd	œd„Zddœd„Zd„ Zd„ Zd„ Z G d„ d¦  «        Zd„ Z G d„ d¦  «        Z eeeeeee ed¦  «        h¦  «        Zd„ Z dd„Z!d„ Z"e#dk    r e!¦   «          dS dS )a/  Support to pretty-print lists, tuples, & dictionaries recursively.

Very simple, but useful, especially in debugging data structures.

Classes
-------

PrettyPrinter()
    Handle pretty-printing operations onto a stream using a configured
    set of formatting parameters.

Functions
---------

pformat()
    Format a Python object into a pretty-printed representation.

pprint()
    Pretty-print a Python object to a stream [default is sys.stdout].

saferepr()
    Generate a 'standard' repr()-like value, but protect against recursive
    data structures.

é    N)ÚStringIO)ÚpprintÚpformatÚ
isreadableÚisrecursiveÚsafereprÚPrettyPrinterÚppé   éP   FT©ÚcompactÚ
sort_dictsÚunderscore_numbersc          	      ó\   — t          |||||||¬¦  «        }|                     | ¦  «         dS )zAPretty-print a Python object to a stream [default is sys.stdout].)ÚstreamÚindentÚwidthÚdepthr   r   r   N)r	   r   )	Úobjectr   r   r   r   r   r   r   Úprinters	            ú^/home/ragecks/.local/share/uv/python/cpython-3.11.15-linux-x86_64-gnu/lib/python3.11/pprint.pyr   r   0   sC   € õ Ø˜f¨E¸Ø JØ-ð/ñ /ô /€Gð ‡N‚N�6ÑÔÐÐÐó    c                óR   — t          ||||||¬¦  «                             | ¦  «        S )z<Format a Python object into a pretty-printed representation.)r   r   r   r   r   r   )r	   r   )r   r   r   r   r   r   r   s          r   r   r   9   s8   € õ  ¨e¸5Ø!(°ZØ,>ð@ñ @ô @ç@GÂÈÁÄðPr   )r   c                ó*   — t          | g|¢R d|i|¤Ž dS )zPretty-print a Python objectr   N)r   )r   r   ÚargsÚkwargss       r   r
   r
   @   s+   € å
ˆ6Ð:�DÐ:Ð:Ð: ZÐ:°6Ð:Ð:Ð:Ð:Ð:r   c                 óV   — t          ¦   «                              | i dd¦  «        d         S )z=Version of repr() which can handle recursive data structures.Nr   ©r	   Ú
_safe_repr©r   s    r   r   r   D   ó%   € å‰?Œ?×%Ò% f¨b°$¸Ñ:Ô:¸1Ô=Ð=r   c                 óV   — t          ¦   «                              | i dd¦  «        d         S )z4Determine if saferepr(object) is readable by eval().Nr   r   r   r!   s    r   r   r   H   r"   r   c                 óV   — t          ¦   «                              | i dd¦  «        d         S )z8Determine if object requires a recursive representation.Nr   é   r   r!   s    r   r   r   L   r"   r   c                   ó$   — e Zd ZdZdgZd„ Zd„ ZdS )Ú	_safe_keyaU  Helper function for key functions when sorting unorderable objects.

    The wrapped-object will fallback to a Py2.x style comparison for
    unorderable types (sorting first comparing the type name and then by
    the obj ids).  Does not work recursively, so dict.items() must have
    _safe_key applied to both the key and the value.

    Úobjc                 ó   — || _         d S ©N)r(   )Úselfr(   s     r   Ú__init__z_safe_key.__init__\   s   € ØˆŒˆˆr   c                 ó  — 	 | j         |j         k     S # t          $ ro t          t          | j         ¦  «        ¦  «        t	          | j         ¦  «        ft          t          |j         ¦  «        ¦  «        t	          |j         ¦  «        fk     cY S w xY wr*   )r(   Ú	TypeErrorÚstrÚtypeÚid)r+   Úothers     r   Ú__lt__z_safe_key.__lt___   s…   € ð	;Ø”8˜eœiÒ'Ð'øÝð 	;ð 	;ð 	;Ý�˜dœh™œÑ(Ô(­"¨T¬X©,¬,Ð7Ý�˜eœi™œÑ)Ô)­2¨e¬i©=¬=Ð9ò:ð ;ð ;ð ;ð	;øøøs   ‚ ’A6BÂ
BN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r,   r3   © r   r   r'   r'   P   sE   € € € € € ðð ð �€Iðð ð ð;ð ;ð ;ð ;ð ;r   r'   c                 óV   — t          | d         ¦  «        t          | d         ¦  «        fS )z&Helper function for comparing 2-tuplesr   r   )r'   )Úts    r   Ú_safe_tupler<   f   s!   € å�Q�q”T‰?Œ?�I a¨¤d™OœOÐ+Ð+r   c                   óž  — e Zd Zd%ddddœd„Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Z	i Z
d„ Zee
ej        <   d„ Zee
ej        j        <   d„ Zee
ej        <   d„ Zee
ej        <   d„ Zee
ej        <   ee
ej        <   d„ Zee
ej        <   d„ Zee
ej        <   d„ Zee
ej        <   d„ Zee
ej         j        <   d„ Z!e!e
ej"        j        <   d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(e(e
ej)        j        <   d„ Z*e*e
ej+        j        <   d„ Z,e,e
ej-        j        <   d „ Z.e.e
ej/        j        <   d!„ Z0e0e
ej1        j        <   d"„ Z2e2e
ej3        j        <   d#„ Z4e4e
ej5        j        <   d$„ Z6dS )&r	   r   r   NFTr   c                ó`  — t          |¦  «        }t          |¦  «        }|dk     rt          d¦  «        ‚|�|dk    rt          d¦  «        ‚|st          d¦  «        ‚|| _        || _        || _        |�|| _        nt          j        | _        t          |¦  «        | _	        || _
        || _        dS )aá  Handle pretty printing operations onto a stream using a set of
        configured parameters.

        indent
            Number of spaces to indent for each level of nesting.

        width
            Attempted maximum number of columns in the output.

        depth
            The maximum depth to print out nested structures.

        stream
            The desired output stream.  If omitted (or false), the standard
            output stream available at construction will be used.

        compact
            If true, several items will be combined in one line.

        sort_dicts
            If true, dict keys are sorted.

        underscore_numbers
            If true, digit groups are separated with underscores.

        r   zindent must be >= 0Nzdepth must be > 0zwidth must be != 0)ÚintÚ
ValueErrorÚ_depthÚ_indent_per_levelÚ_widthÚ_streamÚ_sysÚstdoutÚboolÚ_compactÚ_sort_dictsÚ_underscore_numbers)r+   r   r   r   r   r   r   r   s           r   r,   zPrettyPrinter.__init__k   s·   € õ8 �V‘”ˆÝ�E‘
”
ˆØ�AŠ:ˆ:ÝÐ2Ñ3Ô3Ð3ØÐ ¨!¢ ÝÐ0Ñ1Ô1Ð1Øð 	3ÝÐ1Ñ2Ô2Ð2ØˆŒØ!'ˆÔØˆŒØÐØ!ˆDŒLˆLåœ;ˆDŒLÝ˜W™œˆŒØ%ˆÔØ#5ˆÔ Ð Ð r   c                 óŠ   — | j         �;|                      || j         ddi d¦  «         | j                              d¦  «         d S d S )Nr   Ú
)rD   Ú_formatÚwrite©r+   r   s     r   r   zPrettyPrinter.pprintš   sL   € ØŒ<Ð#Ø�LŠL˜ ¤¨q°!°R¸Ñ;Ô;Ð;ØŒL×Ò˜tÑ$Ô$Ð$Ð$Ð$ð $Ð#r   c                 óz   — t          ¦   «         }|                      ||ddi d¦  «         |                     ¦   «         S ©Nr   )Ú	_StringIOrM   Úgetvalue)r+   r   Úsios      r   r   zPrettyPrinter.pformatŸ   s5   € Ý‰kŒkˆØ�Š�V˜S ! Q¨¨AÑ.Ô.Ð.Ø�|Š|‰~Œ~Ðr   c                 ó>   — |                       |i dd¦  «        d         S )Nr   r%   ©ÚformatrO   s     r   r   zPrettyPrinter.isrecursive¤   s   € Ø�{Š{˜6 2 q¨!Ñ,Ô,¨QÔ/Ð/r   c                 óD   — |                       |i dd¦  «        \  }}}|o| S rQ   rV   )r+   r   ÚsÚreadableÚ	recursives        r   r   zPrettyPrinter.isreadable§   s-   € Ø!%§¢¨V°R¸¸AÑ!>Ô!>Ñˆˆ8�YØÐ) 	˜MÐ)r   c           
      óÊ  — t          |¦  «        }||v r2|                     t          |¦  «        ¦  «         d| _        d| _        d S |                      |||¦  «        }| j        |z
  |z
  }	t          |¦  «        |	k    rÑ| j         	                    t          |¦  «        j        d ¦  «        }
|
�d||<    |
| ||||||dz   ¦  «         ||= d S t          j        |¦  «        rpt          |t          ¦  «        s[|j        j        rOt#          |j        d¦  «        r:d|j        j        j        v r'd||<   |                      ||||||dz   ¦  «         ||= d S |                     |¦  «         d S )NTFr   Ú__wrapped__Ú__create_fn__)r1   rN   Ú
_recursionÚ
_recursiveÚ	_readableÚ_reprrC   ÚlenÚ	_dispatchÚgetr0   Ú__repr__Ú_dataclassesÚis_dataclassÚ
isinstanceÚ__dataclass_params__ÚreprÚhasattrr]   r6   Ú_pprint_dataclass)r+   r   r   r   Ú	allowanceÚcontextÚlevelÚobjidÚrepÚ	max_widthÚps              r   rM   zPrettyPrinter._format«   s†  € Ý�6‘
”
ˆØ�GÐÐØ�LŠL� FÑ+Ô+Ñ,Ô,Ð,Ø"ˆDŒOØ"ˆDŒNØˆFØ�jŠj˜ ¨%Ñ0Ô0ˆØ”K &Ñ(¨9Ñ4ˆ	Ýˆs‰8Œ8�iÒÐØ”×"Ò"¥4¨¡<¤<Ô#8¸$Ñ?Ô?ˆAØˆ}Ø!"�˜‘Ø��$˜ ¨°	¸7ÀEÈAÁIÑNÔNÐNØ˜E�NØ�ÝÔ+¨FÑ3Ô3ð 	Ý  ­Ñ.Ô.ð	àÔ-Ô2ð	õ ˜&œ/¨=Ñ9Ô9ð		ð
 " V¤_Ô%@Ô%MÐMÐMØ!"�˜‘Ø×&Ò& v¨v°v¸yÈ'ÐSXÐ[\ÑS\Ñ]Ô]Ð]Ø˜E�NØ�Ø�Š�SÑÔÐÐÐr   c                 ó  ‡— ‰j         j        }|t          |¦  «        dz   z  }ˆfd„t          j        ‰¦  «        D ¦   «         }|                     |dz   ¦  «         |                      ||||||¦  «         |                     d¦  «         d S )Nr   c                 óV   •— g | ]%}|j         ¯	|j        t          ‰|j        ¦  «        f‘Œ&S r9   )rk   ÚnameÚgetattr)Ú.0Úfr   s     €r   ú
<listcomp>z3PrettyPrinter._pprint_dataclass.<locals>.<listcomp>Ê   s5   ø€ ÐbÐbÐb°qÐ[\Ô[aÐb�!”&�' &¨!¬&Ñ1Ô1Ð2ÐbÐbÐbr   ú(ú))Ú	__class__r4   rc   rg   ÚfieldsrN   Ú_format_namespace_items©	r+   r   r   r   rn   ro   rp   Úcls_nameÚitemss	    `       r   rm   zPrettyPrinter._pprint_dataclassÇ   s•   ø€ ØÔ#Ô,ˆØ•#�h‘-”- !Ñ#Ñ#ˆØbÐbÐbÐb½LÔ<OÐPVÑ<WÔ<WÐbÑbÔbˆØ�Š�X ‘^Ñ$Ô$Ð$Ø×$Ò$ U¨F°F¸IÀwÐPUÑVÔVÐVØ�Š�SÑÔÐÐÐr   c                 óf  — |j         } |d¦  «         | j        dk    r || j        dz
  dz  ¦  «         t          |¦  «        }|ra| j        r)t	          |                     ¦   «         t          ¬¦  «        }	n|                     ¦   «         }	|                      |	|||dz   ||¦  «          |d¦  «         d S )NÚ{r   Ú ©ÚkeyÚ})rN   rB   rc   rI   Úsortedrƒ   r<   Ú_format_dict_items)
r+   r   r   r   rn   ro   rp   rN   Úlengthrƒ   s
             r   Ú_pprint_dictzPrettyPrinter._pprint_dictÑ   sÂ   € Ø”ˆØˆˆc‰
Œ
ˆ
ØÔ! AÒ%Ð%ØˆE�4Ô)¨AÑ-°Ñ4Ñ5Ô5Ð5Ý�V‘”ˆØð 	4ØÔð 'Ý˜vŸ|š|™~œ~µ;Ð?Ñ?Ô?��àŸš™œ�Ø×#Ò# E¨6°6¸9Àq¹=Ø$+¨Uñ4ô 4ð 4àˆˆc‰
Œ
ˆ
ˆ
ˆ
r   c                 ó†  — t          |¦  «        s$|                     t          |¦  «        ¦  «         d S |j        }|                     |j        dz   ¦  «         |                      t          |                     ¦   «         ¦  «        ||t          |j        ¦  «        z   dz   |dz   ||¦  «         |                     d¦  «         d S )Nr|   r   r}   )rc   rN   rk   r~   r4   rM   Úlistrƒ   )r+   r   r   r   rn   ro   rp   Úclss           r   Ú_pprint_ordered_dictz"PrettyPrinter._pprint_ordered_dictâ   s´   € Ý�6‰{Œ{ð 	Ø�LŠL�˜f™œÑ&Ô&Ð&ØˆFØÔˆØ�Š�S”\ CÑ'Ñ(Ô(Ð(Ø�Š•T˜&Ÿ,š,™.œ.Ñ)Ô)¨6Ø�c #¤,Ñ/Ô/Ñ/°!Ñ3°YÀ±]Ø˜eñ	%ô 	%ð 	%ð 	�Š�SÑÔÐÐÐr   c                 ó”   — |                      d¦  «         |                      ||||dz   ||¦  «         |                      d¦  «         d S )NÚ[r   Ú])rN   Ú_format_items©r+   r   r   r   rn   ro   rp   s          r   Ú_pprint_listzPrettyPrinter._pprint_listï   sU   € Ø�Š�SÑÔÐØ×Ò˜6 6¨6°9¸q±=Ø" Eñ	+ô 	+ð 	+à�Š�SÑÔÐÐÐr   c           	      óÜ   — |                      d¦  «         t          |¦  «        dk    rdnd}|                      ||||t          |¦  «        z   ||¦  «         |                      |¦  «         d S )Nr|   r   z,)r}   )rN   rc   r•   )r+   r   r   r   rn   ro   rp   Úendchars           r   Ú_pprint_tuplezPrettyPrinter._pprint_tuple÷   su   € Ø�Š�SÑÔÐÝ˜f™+œ+¨Ò*Ð*�$�$°ˆØ×Ò˜6 6¨6°9½sÀ7¹|¼|Ñ3KØ" Eñ	+ô 	+ð 	+à�Š�WÑÔÐÐÐr   c           	      óØ  — t          |¦  «        s$|                     t          |¦  «        ¦  «         d S |j        }|t          u r|                     d¦  «         d}n9|                     |j        dz   ¦  «         d}|t          |j        ¦  «        dz   z  }t          |t          ¬¦  «        }|                      ||||t          |¦  «        z   ||¦  «         |                     |¦  «         d S )Nr…   r‰   ú({ú})r   r‡   )	rc   rN   rk   r~   Úsetr4   rŠ   r'   r•   )	r+   r   r   r   rn   ro   rp   Útypr™   s	            r   Ú_pprint_setzPrettyPrinter._pprint_set   sè   € Ý�6‰{Œ{ð 	Ø�LŠL�˜f™œÑ&Ô&Ð&ØˆFØÔˆØ•#ˆ:ˆ:Ø�LŠL˜ÑÔÐØˆGˆGà�LŠL˜œ¨Ñ,Ñ-Ô-Ð-ØˆGØ•c˜#œ,Ñ'Ô'¨!Ñ+Ñ+ˆFÝ˜¥IÐ.Ñ.Ô.ˆØ×Ò˜6 6¨6°9½sÀ7¹|¼|Ñ3KØ" Eñ	+ô 	+ð 	+à�Š�WÑÔÐÐÐr   c                 ó|  — |j         }t          |¦  «        s |t          |¦  «        ¦  «         d S g }|                     d¦  «        }	|dk    r
|dz  }|dz  }| j        |z
  x}
}t          |	¦  «        D �]L\  }}t          |¦  «        }|t          |	¦  «        dz
  k    r|
|z  }
t          |¦  «        |
k    r|                     |¦  «         ŒYt          j        d|¦  «        }|sJ ‚|d         rJ ‚| 	                    ¦   «          |}d}t          |¦  «        D ]„\  }}||z   }|t          |¦  «        dz
  k    r|t          |	¦  «        dz
  k    r||z  }t          t          |¦  «        ¦  «        |k    r'|r"|                     t          |¦  «        ¦  «         |}Œ‚|}Œ…|r"|                     t          |¦  «        ¦  «         �ŒNt          |¦  «        dk    r ||¦  «         d S |dk    r |d¦  «         t          |¦  «        D ]'\  }}|dk    r |dd	|z  z   ¦  «          ||¦  «         Œ(|dk    r |d
¦  «         d S d S )NTr   z\S*\s*éÿÿÿÿÚ r|   r   rL   r†   r}   )
rN   rc   rk   Ú
splitlinesrC   Ú	enumerateÚappendÚreÚfindallÚpop)r+   r   r   r   rn   ro   rp   rN   ÚchunksÚlinesÚ
max_width1rs   ÚiÚlinerr   ÚpartsÚ
max_width2ÚcurrentÚjÚpartÚ	candidates                        r   Ú_pprint_strzPrettyPrinter._pprint_str  sˆ  € Ø”ˆÝ�6‰{Œ{ð 	ØˆE•$�v‘,”,ÑÔÐØˆFØˆØ×!Ò! $Ñ'Ô'ˆØ�AŠ:ˆ:Ø�a‰KˆFØ˜‰NˆIØ!%¤¨vÑ!5Ð5ˆ
�YÝ  Ñ'Ô'ð 	1ñ 	1‰GˆAˆtÝ�t‘*”*ˆCØ•C˜‘J”J ‘NÒ"Ð"Ø˜iÑ'�
Ý�3‰xŒx˜:Ò%Ð%Ø—’˜cÑ"Ô"Ð"Ð"õ œ
 9¨dÑ3Ô3�Ø���uØ  œ9Ð$Ð$�}Ø—	’	‘”�Ø&�
Ø�Ý(¨Ñ/Ô/ð 	,ð 	,‘G�A�tØ '¨$¡�IØ�C ™JœJ¨™NÒ*Ð*¨qµC¸±J´JÀ±NÒ/BÐ/BØ" iÑ/˜
Ý�4 	™?œ?Ñ+Ô+¨jÒ8Ð8Ø"ð 9Ø"ŸMšM­$¨w©-¬-Ñ8Ô8Ð8Ø"&˜˜à"+˜˜Øð 1Ø—M’M¥$ w¡-¤-Ñ0Ô0Ð0ùÝˆv‰;Œ;˜!ÒÐØˆE�#‰JŒJˆJØˆFØ�AŠ:ˆ:ØˆE�#‰JŒJˆJÝ Ñ'Ô'ð 	ð 	‰FˆAˆsØ�1ŠuˆuØ��d˜S ™ZÑ'Ñ(Ô(Ð(ØˆE�#‰JŒJˆJˆJØ�AŠ:ˆ:ØˆE�#‰JŒJˆJˆJˆJð ˆ:r   c                 óB  — |j         }t          |¦  «        dk    r |t          |¦  «        ¦  «         d S |dk    }|r|dz  }|dz  } |d¦  «         d}	t          || j        |z
  |¦  «        D ]"}
 ||	¦  «          ||
¦  «         |	sdd|z  z   }	Œ#|r |d¦  «         d S d S )Né   r   r|   r£   rL   r†   r}   )rN   rc   rk   Ú_wrap_bytes_reprrC   )r+   r   r   r   rn   ro   rp   rN   ÚparensÚdelimrr   s              r   Ú_pprint_byteszPrettyPrinter._pprint_bytesG  sà   € Ø”ˆÝˆv‰;Œ;˜!ÒÐØˆE•$�v‘,”,ÑÔÐØˆFØ˜!’ˆØð 	Ø�a‰KˆFØ˜‰NˆIØˆE�#‰JŒJˆJØˆÝ# F¨D¬K¸&Ñ,@À)ÑLÔLð 	*ð 	*ˆCØˆE�%‰LŒLˆLØˆE�#‰JŒJˆJØð *Ø˜s 6™zÑ)�øØð 	ØˆE�#‰JŒJˆJˆJˆJð	ð 	r   c           	      ó    — |j         } |d¦  «         |                      t          |¦  «        ||dz   |dz   ||dz   ¦  «          |d¦  «         d S )Nz
bytearray(é
   r   r}   )rN   r»   Úbytes)r+   r   r   r   rn   ro   rp   rN   s           r   Ú_pprint_bytearrayzPrettyPrinter._pprint_bytearray\  sa   € Ø”ˆØˆˆlÑÔÐØ×Ò�5 ™=œ=¨&°&¸2±+Ø$ q™=¨'°5¸1±9ñ	>ô 	>ð 	>àˆˆc‰
Œ
ˆ
ˆ
ˆ
r   c                 ó¾   — |                      d¦  «         |                      |                     ¦   «         ||dz   |dz   ||¦  «         |                      d¦  «         d S )Nzmappingproxy(é   r   r}   )rN   rM   Úcopyr–   s          r   Ú_pprint_mappingproxyz"PrettyPrinter._pprint_mappingproxye  s_   € Ø�Š�_Ñ%Ô%Ð%Ø�Š�V—[’[‘]”] F¨F°R©K¸ÀQ¹Ø˜eñ	%ô 	%ð 	%à�Š�SÑÔÐÐÐr   c                 óD  — t          |¦  «        t          j        u rd}n|j        j        }|t          |¦  «        dz   z  }|j                             ¦   «         }|                     |dz   ¦  «         |  	                    ||||||¦  «         |                     d¦  «         d S )NÚ	namespacer   r|   r}   )
r0   Ú_typesÚSimpleNamespacer~   r4   rc   Ú__dict__rƒ   rN   r€   r�   s	            r   Ú_pprint_simplenamespacez%PrettyPrinter._pprint_simplenamespacem  sŸ   € Ý�‰<Œ<�6Ô1Ð1Ð1ð #ˆHˆHàÔ'Ô0ˆHØ•#�h‘-”- !Ñ#Ñ#ˆØ”×%Ò%Ñ'Ô'ˆØ�Š�X ‘^Ñ$Ô$Ð$Ø×$Ò$ U¨F°F¸IÀwÐPUÑVÔVÐVØ�Š�SÑÔÐÐÐr   c           	      ón  — |j         }|| j        z  }dd|z  z   }t          |¦  «        dz
  }	t          |¦  «        D ]y\  }
\  }}|
|	k    }|                      |||¦  «        } ||¦  «          |d¦  «         |                      |||t          |¦  «        z   dz   |r|nd||¦  «         |s ||¦  «         Œzd S )Nú,
r†   r   ú: r%   )rN   rB   rc   r¥   rb   rM   )r+   rƒ   r   r   rn   ro   rp   rN   ÚdelimnlÚ
last_indexr­   rˆ   ÚentÚlastrr   s                  r   r‹   z PrettyPrinter._format_dict_items|  sé   € à”ˆØ�$Ô(Ñ(ˆØ˜# ™,Ñ&ˆÝ˜‘Z”Z !‘^ˆ
Ý& uÑ-Ô-ð 		ð 		‰MˆA‰z��SØ˜
’?ˆDØ—*’*˜S '¨5Ñ1Ô1ˆCØˆE�#‰JŒJˆJØˆE�$‰KŒKˆKØ�LŠL˜˜f f­s°3©x¬xÑ&7¸!Ñ&;Ø&*Ð1˜˜°Ø  %ñ)ô )ð )ð ð Ø��g‘”�øð		ð 		r   c           	      óf  — |j         }dd|z  z   }t          |¦  «        dz
  }	t          |¦  «        D ]\  }
\  }}|
|	k    } ||¦  «          |d¦  «         t          |¦  «        |v r |d¦  «         n1|                      |||t          |¦  «        z   dz   |r|nd||¦  «         |s ||¦  «         Œ€d S )NrË   r†   r   Ú=ú...)rN   rc   r¥   r1   rM   )r+   rƒ   r   r   rn   ro   rp   rN   rÍ   rÎ   r­   rˆ   rÏ   rÐ   s                 r   r€   z%PrettyPrinter._format_namespace_items�  sé   € Ø”ˆØ˜# ™,Ñ&ˆÝ˜‘Z”Z !‘^ˆ
Ý& uÑ-Ô-ð 	ð 	‰MˆA‰z��SØ˜
’?ˆDØˆE�#‰JŒJˆJØˆE�#‰JŒJˆJÝ�#‰wŒw˜'Ð!Ð!ð ��e‘”��à—’˜S &¨&µ3°s±8´8Ñ*;¸aÑ*?Ø*.Ð5˜Y˜Y°AØ$ eñ-ô -ð -ð ð Ø��g‘”�øð	ð 	r   c                 ó‚  — |j         }|| j        z  }| j        dk    r || j        dz
  dz  ¦  «         dd|z  z   }d}	| j        |z
  dz   x}
}t          |¦  «        }	 t	          |¦  «        }n# t
          $ r Y d S w xY wd}|s¾|}	 t	          |¦  «        }n# t
          $ r d}||z  }|
|z  }
Y nw xY w| j        rY|                      |||¦  «        }t          |¦  «        dz   }|
|k     r|}
|	r|}	|
|k    r|
|z  }
 ||	¦  «         d}	 ||¦  «         Œ‘ ||	¦  «         |}	|  	                    ||||r|nd||¦  «         |¯¼d S d S )	Nr   r†   rË   r£   FTr%   ú, )
rN   rB   rC   ÚiterÚnextÚStopIterationrH   rb   rc   rM   )r+   rƒ   r   r   rn   ro   rp   rN   rÍ   rº   r   rs   ÚitÚnext_entrÐ   rÏ   rr   Úws                     r   r•   zPrettyPrinter._format_items   sá  € Ø”ˆØ�$Ô(Ñ(ˆØÔ! AÒ%Ð%ØˆE�4Ô)¨AÑ-°Ñ4Ñ5Ô5Ð5Ø˜# ™,Ñ&ˆØˆØ œK¨&Ñ0°1Ñ4Ð4ˆ�	Ý�%‰[Œ[ˆð	Ý˜B‘x”xˆHˆHøÝð 	ð 	ð 	ØˆFˆFð	øøøàˆØð 	)ØˆCð#Ý ™8œ8��øÝ ð #ð #ð #Ø�Ø˜YÑ&�	Ø˜Ñ"���ð#øøøð Œ}ð Ø—j’j  g¨uÑ5Ô5�Ý˜‘H”H˜q‘L�Ø˜1’9�9Ø%�EØð (Ø '˜Ø˜A’:�:Ø˜Q‘J�EØ�E˜%‘L”L�LØ �EØ�E˜#‘J”J�JØØˆE�%‰LŒLˆLØˆEØ�LŠL˜˜f fØ&*Ð1˜˜°Ø  %ñ)ô )ð )ð/ ð 	)ð 	)ð 	)ð 	)ð 	)s$   ÁA, Á,
A:Á9A:ÂB ÂB-Â,B-c                 ó�   — |                       ||                     ¦   «         | j        |¦  «        \  }}}|sd| _        |rd| _        |S )NFT)rW   rÂ   rA   ra   r`   )r+   r   ro   rp   rk   rZ   r[   s          r   rb   zPrettyPrinter._reprÉ  sT   € Ø$(§K¢K°¸¿º¹¼Ø04´¸Uñ%Dô %DÑ!ˆˆh˜	àð 	#Ø"ˆDŒNØð 	#Ø"ˆDŒOØˆr   c                 ó2   — |                       ||||¦  «        S )zÈFormat object for a specific context, returning a string
        and flags indicating whether the representation is 'readable'
        and whether the object represents a recursive construct.
        )r    )r+   r   ro   Ú	maxlevelsrp   s        r   rW   zPrettyPrinter.formatÒ  s   € ð
 �Š˜v w°	¸5ÑAÔAÐAr   c                 ó”  — t          |¦  «        s$|                     t          |¦  «        ¦  «         d S |                      |j        ||¦  «        }|j        }|t          |j        ¦  «        dz   z  }|                     |j        ›d|›dd|z  ›�¦  «         |                      ||||dz   ||¦  «         |                     d¦  «         d S )Nr   r|   rË   r†   r}   )rc   rN   rk   rb   Údefault_factoryr~   r4   r�   )	r+   r   r   r   rn   ro   rp   Úrdfr�   s	            r   Ú_pprint_default_dictz"PrettyPrinter._pprint_default_dictÙ  sÉ   € Ý�6‰{Œ{ð 	Ø�LŠL�˜f™œÑ&Ô&Ð&ØˆFØ�jŠj˜Ô/°¸%Ñ@Ô@ˆØÔˆØ•#�c”lÑ#Ô# aÑ'Ñ'ˆØ�Š S¤\ \ \°3°3°3¸¸f¹¸ÐEÑFÔFÐFØ×Ò˜& &¨&°)¸a±-ÀÈ%ÑPÔPÐPØ�Š�SÑÔÐÐÐr   c                 óÆ  — t          |¦  «        s$|                     t          |¦  «        ¦  «         d S |j        }|                     |j        dz   ¦  «         | j        dk    r |                     | j        dz
  dz  ¦  «         |                     ¦   «         }|                      |||t          |j        ¦  «        z   dz   |dz   ||¦  «         |                     d¦  «         d S )Nrœ   r   r†   r%   r�   )rc   rN   rk   r~   r4   rB   Úmost_commonr‹   )	r+   r   r   r   rn   ro   rp   r�   rƒ   s	            r   Ú_pprint_counterzPrettyPrinter._pprint_counteræ  sä   € Ý�6‰{Œ{ð 	Ø�LŠL�˜f™œÑ&Ô&Ð&ØˆFØÔˆØ�Š�S”\ DÑ(Ñ)Ô)Ð)ØÔ! AÒ%Ð%Ø�LŠL˜$Ô0°1Ñ4¸Ñ;Ñ<Ô<Ð<Ø×"Ò"Ñ$Ô$ˆØ×Ò  vØ &­¨S¬\Ñ):Ô):Ñ :¸QÑ >À	ÈAÁØ '¨ñ	0ô 	0ð 	0ð 	�Š�TÑÔÐÐÐr   c           	      ó,  — t          |j        ¦  «        s$|                     t          |¦  «        ¦  «         d S |j        }|                     |j        dz   ¦  «         |t          |j        ¦  «        dz   z  }t          |j        ¦  «        D ]ˆ\  }}	|t          |j        ¦  «        dz
  k    r3|                      |	|||dz   ||¦  «         |                     d¦  «         ŒS|                      |	||d||¦  «         |                     dd|z  z   ¦  «         Œ‰d S )Nr|   r   r}   rË   r†   )rc   ÚmapsrN   rk   r~   r4   r¥   rM   )
r+   r   r   r   rn   ro   rp   r�   r­   Úms
             r   Ú_pprint_chain_mapzPrettyPrinter._pprint_chain_mapö  s  € Ý�6”;ÑÔð 	Ø�LŠL�˜f™œÑ&Ô&Ð&ØˆFØÔˆØ�Š�S”\ CÑ'Ñ(Ô(Ð(Ø•#�c”lÑ#Ô# aÑ'Ñ'ˆÝ˜fœkÑ*Ô*ð 	3ð 	3‰DˆAˆqØ•C˜œÑ$Ô$ qÑ(Ò(Ð(Ø—’˜Q ¨°	¸A±¸wÈÑNÔNÐNØ—’˜SÑ!Ô!Ð!Ð!à—’˜Q ¨°°7¸EÑBÔBÐBØ—’˜U S¨6¡\Ñ1Ñ2Ô2Ð2Ð2ð	3ð 	3r   c                 ó2  — t          |¦  «        s$|                     t          |¦  «        ¦  «         d S |j        }|                     |j        dz   ¦  «         |t          |j        ¦  «        dz   z  }|                     d¦  «         |j        €4|                      ||||dz   ||¦  «         |                     d¦  «         d S |                      |||d||¦  «         |                      |j        ||¦  «        }|                     dd|z  ›d|›d	�¦  «         d S )
Nr|   r   r“   r%   z])z],
r†   zmaxlen=r}   )rc   rN   rk   r~   r4   Úmaxlenr•   rb   )	r+   r   r   r   rn   ro   rp   r�   Úrmls	            r   Ú_pprint_dequezPrettyPrinter._pprint_deque  s)  € Ý�6‰{Œ{ð 	Ø�LŠL�˜f™œÑ&Ô&Ð&ØˆFØÔˆØ�Š�S”\ CÑ'Ñ(Ô(Ð(Ø•#�c”lÑ#Ô# aÑ'Ñ'ˆØ�Š�SÑÔÐØŒ=Ð Ø×Ò˜v v¨v°yÀ1±}Ø&¨ñ/ô /ð /à�LŠL˜ÑÔÐÐÐà×Ò˜v v¨v°qØ&¨ñ/ô /ð /à—*’*˜Vœ]¨G°UÑ;Ô;ˆCØ�LŠLˆL¨s°V©|¨|¨|¸S¸S¸SÐAÑBÔBÐBÐBÐBr   c           	      óJ   — |                       |j        |||||dz
  ¦  «         d S ©Nr   ©rM   Údatar–   s          r   Ú_pprint_user_dictzPrettyPrinter._pprint_user_dict  ó*   € Ø�Š�V”[ &¨&°)¸WÀeÈaÁiÑPÔPÐPÐPÐPr   c           	      óJ   — |                       |j        |||||dz
  ¦  «         d S rï   rð   r–   s          r   Ú_pprint_user_listzPrettyPrinter._pprint_user_list   ró   r   c           	      óJ   — |                       |j        |||||dz
  ¦  «         d S rï   rð   r–   s          r   Ú_pprint_user_stringz!PrettyPrinter._pprint_user_string%  ró   r   c                 óò  — t          |¦  «        }|t          v rt          |¦  «        ddfS t          |dd ¦  «        }t	          |t
          ¦  «        r.|t
          j        u r | j        r|d›ddfS t          |¦  «        ddfS t	          |t          ¦  «        �r|t          j        u �r|sdS t          |¦  «        }|r||k    rdd||v fS ||v rt          |¦  «        ddfS d||<   d}d}	g }
|
j        }|dz  }| j        r)t          |                     ¦   «         t          ¬¦  «        }n|                     ¦   «         }|D ]Y\  }}|                      ||||¦  «        \  }}}|                      ||||¦  «        \  }}} ||›d	|›�¦  «         |o|o|}|s|rd}	ŒZ||= d
d                     |
¦  «        z  ||	fS t	          |t$          ¦  «        r|t$          j        u s#t	          |t&          ¦  «        ræ|t&          j        u rØt	          |t$          ¦  «        r|sdS d}nt)          |¦  «        dk    rd}n|sdS d}t          |¦  «        }|r||k    r
|dz  d||v fS ||v rt          |¦  «        ddfS d||<   d}d}	g }
|
j        }|dz  }|D ]1}|                      ||||¦  «        \  }}} ||¦  «         |sd}|rd}	Œ2||= |d                     |
¦  «        z  ||	fS t          |¦  «        }||o|                     d¦  «         dfS )NTFrf   Ú_d)z{}TFz{...}r   r‡   rÌ   z{%s}rÕ   )z[]TFz[%s]z(%s,))z()TFz(%s)rÓ   Ú<)r0   Ú_builtin_scalarsrk   rx   Ú
issubclassr?   rf   rJ   Údictr1   r_   r¦   rI   rŠ   rƒ   r<   rW   Újoinr�   Útuplerc   Ú
startswith)r+   r   ro   rÞ   rp   rŸ   Úrrq   rZ   r[   Ú
componentsr¦   rƒ   ÚkÚvÚkreprÚ	kreadableÚkrecurÚvreprÚ	vreadableÚvrecurrW   ÚoÚoreprÚ	oreadableÚorecurrr   s                              r   r    zPrettyPrinter._safe_repr*  s×  € å�6‰lŒlˆØÕ"Ð"Ð"Ý˜‘<”<  uÐ,Ð,å�C˜ TÑ*Ô*ˆå�c�3ÑÔð 	1 A­¬Ð$5Ð$5ØÔ'ð 1Ø �~�~ t¨UÐ2Ð2å˜F‘|”| T¨5Ð0Ð0å�c�4Ñ Ô ñ 	G Q­$¬-Ð%7Ñ%7Øð )Ø(Ð(Ý�v‘J”JˆEØð 8˜U iÒ/Ð/Ø  u°Ð'7Ð7Ð7Ø˜ÐÐÝ! &Ñ)Ô)¨5°$Ð6Ð6ØˆG�E‰NØˆHØˆIØˆJØÔ&ˆFØ�Q‰JˆEØÔð 'Ý˜vŸ|š|™~œ~µ;Ð?Ñ?Ô?��àŸš™œ�Øð %ð %‘��1Ø+/¯;ª;Ø�w 	¨5ñ,2ô ,2Ñ(��y &à+/¯;ª;Ø�w 	¨5ñ,2ô ,2Ñ(��y &à� 5 5 5¨%¨%Ð0Ñ1Ô1Ð1Ø#Ð?¨	Ð?°i�Øð %˜Vð %Ø $�IøØ˜�Ø˜DŸIšI jÑ1Ô1Ñ1°8¸YÐFÐFå�s�DÑ!Ô!ð  	G a­4¬=Ð&8Ð&8Ý�s�EÑ"Ô"ð '9Ø'(­E¬NÐ':Ð':Ý˜#�tÑ$Ô$ð 	 Øð -Ø,Ð,Ø��Ý�V‘” Ò!Ð!Ø ��àð -Ø,Ð,Ø�Ý�v‘J”JˆEØð ?˜U iÒ/Ð/Ø ‘~ u¨e°wÐ.>Ð>Ð>Ø˜ÐÐÝ! &Ñ)Ô)¨5°$Ð6Ð6ØˆG�E‰NØˆHØˆIØˆJØÔ&ˆFØ�Q‰JˆEØð %ð %�Ø+/¯;ª;Ø�w 	¨5ñ,2ô ,2Ñ(��y &à��u‘”�Ø ð %Ø$�HØð %Ø $�IøØ˜�Ø˜DŸIšI jÑ1Ô1Ñ1°8¸YÐFÐFå�6‰lŒlˆØ�SÐ4 §¢°Ñ!4Ô!4Ð4°uÐ<Ð<r   )r   r   NN)7r4   r5   r6   r,   r   r   r   r   rM   rm   rd   r�   rý   rf   r‘   Ú_collectionsÚOrderedDictr—   r�   rš   rÿ   r    rž   Ú	frozensetrµ   r/   r»   r¾   r¿   Ú	bytearrayrÃ   rÆ   ÚMappingProxyTyperÉ   rÇ   r‹   r€   r•   rb   rW   râ   Údefaultdictrå   ÚCounterré   ÚChainMaprí   Údequerò   ÚUserDictrõ   ÚUserListr÷   Ú
UserStringr    r9   r   r   r	   r	   j   s6  € € € € € ð-6Ø¨4ÀEð-6ð -6ð -6ð -6ð -6ð^%ð %ð %ð
ð ð ð
0ð 0ð 0ð*ð *ð *ðð ð ð8ð ð ð €Iðð ð ð  ,€IˆdŒmÑð	ð 	ð 	ð 4H€IˆlÔ&Ô/Ñ0ðð ð ð  ,€IˆdŒmÑðð ð ð !.€IˆeŒnÑðð ð ð" *€IˆcŒlÑØ$/€IˆiÔ Ñ!ð/ð /ð /ðb *€IˆcŒlÑðð ð ð& !.€IˆeŒnÑðð ð ð %6€IˆiÔ Ñ!ðð ð ð 3G€IˆfÔ%Ô.Ñ/ðð ð ð 2I€IˆfÔ$Ô-Ñ.ðð ð ð"ð ð ð&')ð ')ð ')ðRð ð ðBð Bð Bð	ð 	ð 	ð 4H€IˆlÔ&Ô/Ñ0ðð ð ð 0?€IˆlÔ"Ô+Ñ,ð3ð 3ð 3ð 1B€IˆlÔ#Ô,Ñ-ðCð Cð Cð$ .;€IˆlÔ Ô)Ñ*ðQð Qð Qð 1B€IˆlÔ#Ô,Ñ-ðQð Qð Qð 1B€IˆlÔ#Ô,Ñ-ðQð Qð Qð 3F€IˆlÔ%Ô.Ñ/ðO=ð O=ð O=ð O=ð O=r   r	   c                 óR   — dt          | ¦  «        j        ›dt          | ¦  «        ›d�S )Nz<Recursion on z	 with id=Ú>)r0   r4   r1   r!   s    r   r_   r_   ~  s,   € € å�F‰|Œ|Ô$Ð$Ð$¥b¨¡j¤j j jð2ð 3r   c                 ól  — dd l }| €ddddgdddœfgd	z  } t          ¦   «         }|                     ¦   «         }|                     | i d dd
¦  «         |                     ¦   «         }|                     | ¦  «         |                     ¦   «         }t          d||z
  ¦  «         t          d||z
  ¦  «         d S )Nr   Ústring)r   r%   é   r·   é   é   )é   é   i † Tz_safe_repr:zpformat:)Útimer	   Úperf_counterr    r   Úprint)r   r$  rt   Út1Út2Út3s         r   Ú
_perfcheckr*  ƒ  sÆ   € Ø€K€K€KØ€~Ø˜V a¨ V°°q¨\¨\Ð:Ð;¸fÑDˆÝ‰Œ€AØ	×	Ò	Ñ	Ô	€BØ‡L‚L�˜˜T 1 dÑ+Ô+Ð+Ø	×	Ò	Ñ	Ô	€BØ‡I‚IˆfÑÔÐØ	×	Ò	Ñ	Ô	€BÝ	ˆ-˜˜b™Ñ!Ô!Ð!Ý	ˆ*�b˜2‘gÑÔÐÐÐr   c              #   óN  K  — d}t          | ¦  «        dz  dz  }t          dt          | ¦  «        d¦  «        D ]W}| ||dz   …         }||z   }||k    r||z  }t          t          |¦  «        ¦  «        |k    r|rt          |¦  «        V — |}ŒU|}ŒX|rt          |¦  «        V — d S d S )Nr   r·   r   )rc   Úrangerk   )r   r   rn   r±   rÐ   r­   r³   r´   s           r   r¸   r¸   �  sÙ   è è € Ø€GÝˆv‰;Œ;˜!Ñ˜aÑ€DÝ�1•c˜&‘k”k 1Ñ%Ô%ð 
 ð 
 ˆØ�a˜˜1™�fŒ~ˆØ˜d‘Nˆ	Ø�Š9ˆ9Ø�YÑˆEÝ�t�I‰ŒÑÔ %Ò'Ð'Øð $Ý˜7‘m”mÐ#Ð#Ð#ØˆGˆGàˆGˆGØð Ý�7‰mŒmÐÐÐÐÐðð r   Ú__main__)Nr   r   N)r   r   Nr*   )$r7   Úcollectionsr  Údataclassesrg   r§   ÚsysrE   ÚtypesrÆ   Úior   rR   Ú__all__r   r   r
   r   r   r   r'   r<   r	   r  r/   r¾   r  ÚfloatÚcomplexrG   r0   rû   r_   r*  r¸   r4   r9   r   r   ú<module>r6     sö  ððð ð4 #Ð "Ð "Ð "Ø "Ð "Ð "Ð "Ø 	€	€	€	Ø Ð Ð Ð Ø Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $ð"ð "ð "€ðØ T¸eðð ð ð ð ðPØ d¸uðPð Pð Pð Pð Pð "'ð ;ð ;ð ;ð ;ð ;ð>ð >ð >ð>ð >ð >ð>ð >ð >ð;ð ;ð ;ð ;ð ;ñ ;ô ;ð ;ð,,ð ,ð ,ðO=ð O=ð O=ð O=ð O=ñ O=ô O=ð O=ðb �9˜c 5¨)°U¸GØ" D D¨¡J¤Jð0ñ 1ô 1Ð ð3ð 3ð 3ð
ð ð ð ðð ð ð" ˆzÒÐØ€J�L„L€L€L€Lð Ðr   