a
    |Ä#d&’  ã                   @   s  U d dl 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 d dlmZmZm	Z	m
Z
mZ d dlmZmZmZ d dlmZ d dlmZ d dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZm Z  d d	l!m"Z" zd dl#Z$d
Z%W n e&yü   dZ%Y n0 ddl'm(Z( ddl)m*Z* ddl+m,Z, ddl-m.Z. ddl/m0Z0 ddl1m2Z2 ddl3m4Z4m5Z5 ddl6m7Z7 ddl8m9Z9 e�r”ddl:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@ dhZAeeBdœdd„ZCeed dœdd„ZDeEeBdœdd„ZFe Gd g ¡ZHeEeBdœd!d"„ZIdveed$ d%eBeBeeJ eeJ eeJ eBdd&œ
d'd(„ZKeEe eLeeLd)f f eBd*œd+d,„ZMdwed$ d%eBeBeeJ eeJ eeJ eBdd-œ	d.d/„ZNG d0d1„ d1e4ƒZOeeef eePePePf d2œd3d4„ZQd5eePePePf d2œd6d7„ZRejSd8d9„ eeRe
eQed:d9„ ed;d9„ eTd<d9„ ed=d9„ eUd>d9„ eVd?d9„ e	d@d9„ eWdAd9„ eXdBd9„ edCd9„ iZYeeLeegeePePePf f f eZdD< eXeY [¡ ƒZ\eTejSeefZ]eeBdœdEdF„Z^eG dGdH„ dHƒƒZ_eG dIdJ„ dJƒƒZ`eeBdœdKdL„ZadxeeeJ eeJ eeJ e_dMœdNdO„ZbdPdQdddddRœeeJeJeeJ eeJ eeJ eBePdSœdTdU„Zcdd
dddddVœeed$ eBeeJ eeJ eeJ eBddWœdXdY„ZdeedZk�rG d[d\„ d\ƒZfd d]lmgZg G d^d_„ d_egƒZhe
eJƒZid`eida< ddbdcdddeh df£geUh dg£ƒe
eVdhg di¢iƒeg dj¢ƒdkehdldmdndodpdqgƒefƒ drœZjejda  kej¡ d dsllmmZm G dtdu„ duƒZnemeOenƒ ƒƒ dS )yé    N)Úarray)ÚCounterÚUserDictÚUserListÚdefaultdictÚdeque)Ú	dataclassÚfieldsÚis_dataclass)Úisclass)Úislice)ÚMappingProxyType)ÚTYPE_CHECKINGÚAnyÚCallableÚDefaultDictÚDictÚIterableÚListÚOptionalÚSequenceÚSetÚTupleÚUnion)ÚRichReprResultTFé   ©Úget_console)Ú	loop_last)Ú	pick_bool)ÚRichRenderable©Úcell_len)ÚReprHighlighter)ÚJupyterMixinÚJupyterRenderable)ÚMeasurement)ÚText)ÚConsoleÚConsoleOptionsÚHighlighterTypeÚJustifyMethodÚOverflowMethodÚRenderResultzmatplotlib.artist.Artist©ÚobjÚreturnc                 C   s   t ot t| ƒ¡S )z1Check if an object was created with attrs module.)Ú
_has_attrsÚ_attr_moduleÚhasÚtype©r/   © r6   úN/var/www/html/gsl.tools/lib/python3.9/site-packages/pip/_vendor/rich/pretty.pyÚ_is_attr_objectA   s    r8   z_attr_module.Attribute[Any]c                 C   s   t rt t| ƒ¡S g S )zGet fields for an attrs object.)r1   r2   r	   r4   r5   r6   r6   r7   Ú_get_attr_fieldsF   s    r9   c                 C   s,   z| j jjtjkW S  ty&   Y dS 0 dS )zÙCheck if an instance of a dataclass contains the default repr.

    Args:
        obj (object): A dataclass instance.

    Returns:
        bool: True if the default repr is used, False if there is a custom repr.
    FN)Ú__repr__Ú__code__Úco_filenameÚdataclassesÚ__file__Ú	Exceptionr5   r6   r6   r7   Ú_is_dataclass_reprK   s    r@   Ú_dummy_namedtuplec              	   C   s@   d}zt  | j¡}W n ttfy*   Y n0 t  tj¡}||kS )zÍCheck if an instance of namedtuple contains the default repr

    Args:
        obj (object): A namedtuple

    Returns:
        bool: True if the default repr is used, False if there's a custom repr.
    N)ÚinspectÚgetfiler:   ÚOSErrorÚ	TypeErrorrA   )r/   Úobj_fileÚdefault_repr_filer6   r6   r7   Ú_has_default_namedtuple_repr_   s    	rH   Úignorer(   r,   )
ÚvalueÚconsoleÚoverflowÚcropÚindent_guidesÚ
max_lengthÚ
max_stringÚ	max_depthÚ
expand_allr0   c	                 C   sì   ddl m}	 ddlm}
 t| tƒs*| d u r.d S |p6tƒ }|jr¤g d¢}|D ]J}t| |d ƒ}t	 
|¡rJz
|ƒ }W n ty„   Y qJY n0 |d urJ d S qJ|	| tƒr¤d S t| |
ƒr¶| ¡  |jt| tƒrÈ| nt| ||||||dd�|dd� d S )	Nr   )Úis_object_one_of_types)ÚConsoleRenderable)Ú_repr_html_Ú_repr_markdown_Ú_repr_json_Ú_repr_latex_Ú_repr_jpeg_Ú
_repr_png_Ú
_repr_svg_Ú_repr_mimebundle_é   )rL   rN   rO   rP   rQ   rR   ÚmarginT)rM   Únew_line_start)Ú_inspectrS   rK   rT   Ú_safe_isinstancer%   r   Ú
is_jupyterÚgetattrrB   Úismethodr?   ÚJUPYTER_CLASSES_TO_NOT_RENDERÚlineÚprintr    ÚPretty)rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   Úipython_repr_methodsÚrepr_methodÚmethodÚrepr_resultr6   r6   r7   Ú_ipy_display_hooks   sH    






ÿø
òrm   .)r/   Úclass_or_tupler0   c                 C   s&   zt | |ƒW S  ty    Y dS 0 dS )zFisinstance can fail in rare cases, for example types with no __class__FN)Ú
isinstancer?   )r/   rn   r6   r6   r7   ra   ¾   s    ra   )	rK   rL   rM   rN   rO   rP   rQ   rR   r0   c              	      sª   ddl m‰ ˆ pˆƒ ‰ ˆ dus"J ‚tddœ‡ ‡‡‡‡‡‡‡fdd„}zHtƒ }	ddlm}
 G ‡‡‡‡‡‡‡fdd	„d	|
ƒ}|ƒ }||	jjd
< W n ty¤   |t	_
Y n0 dS )aù  Install automatic pretty printing in the Python REPL.

    Args:
        console (Console, optional): Console instance or ``None`` to use global console. Defaults to None.
        overflow (Optional[OverflowMethod], optional): Overflow method. Defaults to "ignore".
        crop (Optional[bool], optional): Enable cropping of long lines. Defaults to False.
        indent_guides (bool, optional): Enable indentation guides. Defaults to False.
        max_length (int, optional): Maximum length of containers before abbreviating, or None for no abbreviation.
            Defaults to None.
        max_string (int, optional): Maximum length of string before truncating, or None to disable. Defaults to None.
        max_depth (int, optional): Maximum depth of nested data structures, or None for no maximum. Defaults to None.
        expand_all (bool, optional): Expand all containers. Defaults to False.
        max_frames (int): Maximum number of frames to show in a traceback, 0 for no maximum. Defaults to 100.
    r   r   N©rJ   r0   c              
      sR   | durNˆ dusJ ‚dt _ˆ jt| tƒr,| nt| ˆˆˆˆˆˆd�ˆd� | t _dS )z?Replacement sys.displayhook which prettifies objects with Rich.N)rL   rN   rO   rP   rQ   rR   )rM   )ÚbuiltinsÚ_rg   ra   r    rh   )rJ   )rK   rM   rR   rN   rQ   rO   rP   rL   r6   r7   Údisplay_hookå   s$    ÿù	ôzinstall.<locals>.display_hook)ÚBaseFormatterc                       s:   e Zd ZU dZeed< eedœ‡ ‡‡‡‡‡‡fdd„ZdS )zinstall.<locals>.RichFormatterTÚpprintrp   c              
      s,   | j r t|ˆƒ ˆˆˆˆˆˆ d�S t|ƒS d S )N)rK   rL   rN   rO   rP   rQ   rR   )ru   rm   Úrepr)ÚselfrJ   ©rR   r   rN   rQ   rO   rP   rL   r6   r7   Ú__call__  s    øz'install.<locals>.RichFormatter.__call__N)Ú__name__Ú
__module__Ú__qualname__ru   ÚboolÚ__annotations__r   ry   r6   rx   r6   r7   ÚRichFormatterþ   s   
r   z
text/plain)Úpip._vendor.richr   r   Úget_ipythonÚIPython.core.formattersrt   Údisplay_formatterÚ
formattersr?   ÚsysÚdisplayhook)rK   rL   rM   rN   rO   rP   rQ   rR   rs   Úiprt   r   Úrich_formatterr6   )	rK   rM   rR   r   rN   rQ   rO   rP   rL   r7   ÚinstallÈ   s    
" r‰   c                   @   s”   e Zd ZdZdddddddddddddœeed eed ed	 ee eee ee ee eeedd
œdd„Zddddœdd„Z	ddddœdd„Z
dS )rh   ak  A rich renderable that pretty prints an object.

    Args:
        _object (Any): An object to pretty print.
        highlighter (HighlighterType, optional): Highlighter object to apply to result, or None for ReprHighlighter. Defaults to None.
        indent_size (int, optional): Number of spaces in indent. Defaults to 4.
        justify (JustifyMethod, optional): Justify method, or None for default. Defaults to None.
        overflow (OverflowMethod, optional): Overflow method, or None for default. Defaults to None.
        no_wrap (Optional[bool], optional): Disable word wrapping. Defaults to False.
        indent_guides (bool, optional): Enable indentation guides. Defaults to False.
        max_length (int, optional): Maximum length of containers before abbreviating, or None for no abbreviation.
            Defaults to None.
        max_string (int, optional): Maximum length of string before truncating, or None to disable. Defaults to None.
        max_depth (int, optional): Maximum depth of nested data structures, or None for no maximum. Defaults to None.
        expand_all (bool, optional): Expand all containers. Defaults to False.
        margin (int, optional): Subtrace a margin from width to force containers to expand earlier. Defaults to 0.
        insert_line (bool, optional): Insert a new line if the output has multiple new lines. Defaults to False.
    Né   Fr   )Úindent_sizeÚjustifyrL   Úno_wraprN   rO   rP   rQ   rR   r^   Úinsert_liner*   r+   r,   )Ú_objectÚhighlighterr‹   rŒ   rL   r�   rN   rO   rP   rQ   rR   r^   rŽ   r0   c                C   sX   || _ |ptƒ | _|| _|| _|| _|| _|| _|| _|	| _	|
| _
|| _|| _|| _d S ©N)r�   r#   r�   r‹   rŒ   rL   r�   rN   rO   rP   rQ   rR   r^   rŽ   )rw   r�   r�   r‹   rŒ   rL   r�   rN   rO   rP   rQ   rR   r^   rŽ   r6   r6   r7   Ú__init__+  s    zPretty.__init__r(   r)   r-   )rK   Úoptionsr0   c              	   c   s¸   t | j|j| j | j| j| j| j| jd�}t	j
|| jp:|j| jpD|jt| j|jƒdd�}|rf|  |¡nt	t| jƒ› d�dd�}| jrš|jsš|j| jdd�}| jr®d|v r®d	V  |V  d S )
N©Ú	max_widthr‹   rO   rP   rQ   rR   Úpretty)rŒ   rL   r�   Ústylez.__repr__ returned empty stringz
dim italic)r—   zrepr.indentÚ
Ú )Úpretty_reprr�   r•   r^   r‹   rO   rP   rQ   rR   r'   Ú	from_ansirŒ   rL   r   r�   r�   r4   rN   Ú
ascii_onlyÚwith_indent_guidesrŽ   )rw   rK   r“   Ú
pretty_strÚpretty_textr6   r6   r7   Ú__rich_console__J  s<    
ù	

û	ÿþýÿzPretty.__rich_console__r&   c                 C   sH   t | j|j| j| j| j| jd�}|r:tdd„ | ¡ D ƒƒnd}t	||ƒS )N)r•   r‹   rO   rP   rR   c                 s   s   | ]}t |ƒV  qd S r‘   r!   ©Ú.0rf   r6   r6   r7   Ú	<genexpr>y  ó    z*Pretty.__rich_measure__.<locals>.<genexpr>r   )
rš   r�   r•   r‹   rO   rP   rR   ÚmaxÚ
splitlinesr&   )rw   rK   r“   rž   Ú
text_widthr6   r6   r7   Ú__rich_measure__m  s    ú	ÿzPretty.__rich_measure__)N)rz   r{   r|   Ú__doc__r   r   Úintr}   r’   r    r¨   r6   r6   r6   r7   rh     sH    ýñð þ$þrh   )r�   r0   c                 C   s   d| j ›d�dd| j ›d�fS )Nzdefaultdict(z, {ú})z, {}))Údefault_factory©r�   r6   r6   r7   Ú_get_braces_for_defaultdict~  s    ýr®   z
array[Any]c                 C   s   d| j ›d�dd| j ›d�fS )Nzarray(z, [ú])ú))Útypecoder­   r6   r6   r7   Ú_get_braces_for_array†  s    r²   c                 C   s   dS )N)z	environ({r«   zenviron({})r6   r­   r6   r6   r7   Ú<lambda>‹  r¤   r³   c                 C   s   dS )N)z	Counter({r«   z	Counter()r6   r­   r6   r6   r7   r³   Ž  r¤   c                 C   s   dS )N)zdeque([r¯   zdeque()r6   r­   r6   r6   r7   r³   �  r¤   c                 C   s   dS ©N)Ú{Ú}z{}r6   r­   r6   r6   r7   r³   �  r¤   c                 C   s   dS r´   r6   r­   r6   r6   r7   r³   ‘  r¤   c                 C   s   dS )N)zfrozenset({r«   zfrozenset()r6   r­   r6   r6   r7   r³   ’  r¤   c                 C   s   dS ©N)ú[ú]z[]r6   r­   r6   r6   r7   r³   “  r¤   c                 C   s   dS r·   r6   r­   r6   r6   r7   r³   ”  r¤   c                 C   s   dS )N)rµ   r¶   zset()r6   r­   r6   r6   r7   r³   •  r¤   c                 C   s   dS )N)ú(r°   ú()r6   r­   r6   r6   r7   r³   –  r¤   c                 C   s   dS )N)zmappingproxy({r«   zmappingproxy({})r6   r­   r6   r6   r7   r³   —  r¤   Ú_BRACESc                 C   s.   t | tƒs$t| ƒs$t| dƒs$t| ƒo,t| ƒ S )z3Check if an object may be expanded by pretty print.Ú__rich_repr__)ra   Ú_CONTAINERSr
   Úhasattrr8   r   r5   r6   r6   r7   Úis_expandable�  s    
ÿþüûrÀ   c                   @   sÞ   e Zd ZU dZdZeed< dZeed< dZeed< dZ	eed< dZ
eed< dZeed	< dZeed
< dZeed< dZeed   ed< dZdZeed< ee dœdd„Zeeedœdd„Zedœdd„Zdeeeedœdd„ZdS )ÚNodez4A node in a repr tree. May be atomic or a container.r™   Úkey_reprÚ
value_reprÚ
open_braceÚclose_braceÚemptyFÚlastÚis_tupleÚis_namedtupleNÚchildrenz: z, Ú	separator©r0   c                 c   s²   | j r| j V  | jV  | jr&| jV  nˆ| jdur®| jr¦| jV  | jrt| jstt| jƒdkrt| jd  ¡ E dH  dV  n(| jD ] }| ¡ E dH  |j	sz| j
V  qz| jV  n| jV  dS )zGenerate tokens for this node.Nr   r   ú,)rÂ   Úkey_separatorrÃ   rÊ   rÄ   rÈ   rÉ   ÚlenÚiter_tokensrÇ   rË   rÅ   rÆ   )rw   Úchildr6   r6   r7   rÐ   ·  s"    




zNode.iter_tokens)Ústart_lengthrO   r0   c                 C   s0   |}|   ¡ D ]}|t|ƒ7 }||kr dS qdS )a*  Check the length fits within a limit.

        Args:
            start_length (int): Starting length of the line (indent, prefix, suffix).
            max_length (int): Maximum length.

        Returns:
            bool: True if the node can be rendered within max length, otherwise False.
        FT)rÐ   r"   )rw   rÒ   rO   Útotal_lengthÚtokenr6   r6   r7   Úcheck_lengthÍ  s    
zNode.check_lengthc                 C   s   d  |  ¡ ¡}|S ©Nr™   )ÚjoinrÐ   )rw   Ú	repr_textr6   r6   r7   Ú__str__Þ  s    zNode.__str__éP   rŠ   )r•   r‹   rR   r0   c                 C   sx   t | dd�g}d}|t|ƒk r`|| }|jrV|jsV|s@| |¡sV| |¡|||d …< |d7 }qd dd„ |D ƒ¡}|S )al  Render the node to a pretty repr.

        Args:
            max_width (int, optional): Maximum width of the repr. Defaults to 80.
            indent_size (int, optional): Size of indents. Defaults to 4.
            expand_all (bool, optional): Expand all levels. Defaults to False.

        Returns:
            str: A repr string of the original object.
        T)ÚnodeÚis_rootr   r   r˜   c                 s   s   | ]}t |ƒV  qd S r‘   )Ústrr¡   r6   r6   r7   r£   ø  r¤   zNode.render.<locals>.<genexpr>)Ú_LinerÏ   Ú
expandableÚexpandedrÕ   Úexpandr×   )rw   r•   r‹   rR   ÚlinesÚline_norf   Úrepr_strr6   r6   r7   Úrenderâ  s    
zNode.render)rÚ   rŠ   F)rz   r{   r|   r©   rÂ   rÝ   r~   rÃ   rÄ   rÅ   rÆ   rÇ   r}   rÈ   rÉ   rÊ   r   r   rÎ   rË   r   rÐ   rª   rÕ   rÙ   rå   r6   r6   r6   r7   rÁ   §  s(   
 ÿþrÁ   c                   @   s¾   e Zd ZU dZdZed  ed< dZeed< dZ	ee
 ed< dZeed< dZeed	< dZeed
< dZeed< dZeed< eedœdd„ƒZeedœdd„Zeed  dœdd„Zedœdd„ZdS )rÞ   zA line in repr output.NÚparentFrÜ   rÛ   r™   ÚtextÚsuffixÚ
whitespacerà   rÇ   rÌ   c                 C   s   t | jduo| jjƒS )z"Check if the line may be expanded.N)r}   rÛ   rÊ   ©rw   r6   r6   r7   rß   	  s    z_Line.expandable)rO   r0   c                 C   s:   t | jƒt| jƒ t| jƒ }| jdus,J ‚| j ||¡S )z4Check this line fits within a given number of cells.N)rÏ   ré   r"   rç   rè   rÛ   rÕ   )rw   rO   rÒ   r6   r6   r7   rÕ     s    ÿz_Line.check_length)r‹   r0   c                 c   sØ   | j }|dusJ ‚| j}|js"J ‚|jrJt|j› |j› |j› �|d�V }nt|j|d�V }| jd|  }|jozt|jƒdk}t	|jƒD ]4\}}|r–dn|j
}	t||||	|o®| d�}
|
V  q†t|j|| j| jd�V  dS )z6Expand this line by adding children on their own line.N)rç   ré   ú r   rÍ   )ræ   rÛ   ré   rè   rÇ   )rç   ré   rè   rÇ   )rÛ   ré   rÊ   rÂ   rÞ   rÎ   rÄ   rÈ   rÏ   r   rË   rÅ   rè   rÇ   )rw   r‹   rÛ   ré   Únew_lineÚchild_whitespaceÚtuple_of_onerÇ   rÑ   rË   rf   r6   r6   r7   rá     s8    
þ
ûüz_Line.expandc                 C   sH   | j r | j› | j› | jpd› �S | j› | j› | jp4d› | j ¡ › �S d S rÖ   )rÇ   ré   rç   rÛ   rè   Úrstriprê   r6   r6   r7   rÙ   7  s    "ÿz_Line.__str__)rz   r{   r|   r©   ræ   r   r~   rÜ   r}   rÛ   rÁ   rç   rÝ   rè   ré   rà   rÇ   Úpropertyrß   rª   rÕ   r   rá   rÙ   r6   r6   r6   r7   rÞ   ü  s   
!rÞ   c                 C   s:   zt | ddƒ}W n ty$   Y dS 0 t| tƒo8t|tƒS )aX  Checks if an object is most likely a namedtuple. It is possible
    to craft an object that passes this check and isn't a namedtuple, but
    there is only a minuscule chance of this happening unintentionally.

    Args:
        obj (Any): The object to test

    Returns:
        bool: True if the object is a namedtuple. False otherwise.
    Ú_fieldsNF)rc   r?   ro   Útuple)r/   r	   r6   r6   r7   Ú_is_namedtuple@  s
    ró   )r�   rO   rP   rQ   r0   c              	      s\   t tdœ‡fdd„‰tƒ ‰ˆj‰ˆj‰dt tttdœ‡ ‡‡‡‡‡‡fdd„‰ ˆ | d	d
�}|S )a`  Traverse object and generate a tree.

    Args:
        _object (Any): Object to be traversed.
        max_length (int, optional): Maximum length of containers before abbreviating, or None for no abbreviation.
            Defaults to None.
        max_string (int, optional): Maximum length of string before truncating, or None to disable truncating.
            Defaults to None.
        max_depth (int, optional): Maximum depth of data structures, or None for no maximum.
            Defaults to None.

    Returns:
        Node: The root of a tree structure which can be used to render a pretty repr.
    r.   c              
      sŒ   ˆ durFt | ttfƒrFt| ƒˆ krFt| ƒˆ  }| dˆ … ›d|› �}nBzt| ƒ}W n4 ty† } zdt|ƒ›d�}W Y d}~n
d}~0 0 |S )z0Get repr string for an object, but catch errors.Nú+z<repr-error ú>)ra   ÚbytesrÝ   rÏ   rv   r?   )r/   Ú	truncatedÚobj_reprÚerror)rP   r6   r7   Úto_reprh  s    ÿþ
ý&ztraverse.<locals>.to_reprFr   )r/   ÚrootÚdepthr0   c           #         sº  t ˆƒ}|ˆv rtdd�S tˆƒ}tjjtjjf}ˆduo@|ˆk}ttt	tt
ttf f  dœdd„}ztˆdƒ}W n tyŠ   d}Y n0 d}	|sÆztˆd	ƒr°tˆƒs°ˆ ¡ }	W n tyÄ   Y n0 |	du�rˆ|ƒ tˆjd
dƒ}
t||	ƒƒ}ˆjj}|�règ }|j}|�r<|
�r*td|› d�d�}nt|› d�d�}nª|
�r^td|› d�d||dd�}nt|› d�d||d�}t|ƒD ]h\}}t|tƒ�rÄ|\}}ˆ||d d�}||_||_d|_||ƒ nˆ||d d�}||_||ƒ �q|n&t|
�rüd|› d�n|› d�g |d�}ˆ|ƒ �n†tˆƒ�r6|�s6ˆ|ƒ g }|j}tˆƒ‰ ˆ �r|�rftˆjj› d�d�}nªtˆjj› d�d||d�}tt
tttttgtf  f  dœ‡ ‡fdd„}t|ƒ ƒD ]T\}\}}}|�râtt||ƒƒd�}nˆ||d d�}||_||_d|_||ƒ �qºntˆjj› d�g |d�}ˆ|ƒ �njtˆƒ�rtˆtƒ�s|�st ˆƒ�sf|dk�rˆ|ƒ g }|j}|�r”tˆjj› d�d�}nptˆjj› d�d||d�}tdd„ t!ˆƒD ƒƒD ]>\}}ˆtˆ|j"ƒ|d d�}|j"|_||_d|_||ƒ �qÄˆ|ƒ �n�t#ˆƒ�rÈt$ˆƒ�rÈˆ|ƒ ˆjj}|�rLt|› d�d�}npg }|j}t|› d�d||› d�d�}tˆ %¡  &¡ ƒD ]8\}\}}ˆ||d d�}||_||_d|_||ƒ �q‚ˆ|ƒ �nØtˆt'ƒ�r�t'D ]}tˆ|ƒ�rØ|} �qö�qØˆ|ƒ t(| ˆƒ\}}}|�r.t|› d|› �d�}�nX|j)tˆƒj)k�rTtˆˆƒ|d �}�n2ˆ�rxg }t||||d�}|j}t*ˆƒ}|d }tˆt+ƒ�röt,ˆ &¡ ƒ} ˆdu�r°t-| ˆƒ} t.| ƒD ]:\}!\}}ˆ||d d�}ˆ|ƒ|_|!|k|_||ƒ �q¸nRt,ˆƒ}"ˆdu�rt-|"ˆƒ}"t.|"ƒD ],\}!}ˆ||d d�}|!|k|_||ƒ �qˆdu�r†|ˆk�r†|td!|ˆ › �d"d �ƒ nt|g |d#�}ˆ|ƒ ntˆˆƒ|d �}tˆtƒ|_/t#ˆƒ|_0|S )$zWalk the object depth first.z...)rÃ   N)Ú	rich_argsr0   c                 s   s‚   | D ]x}t |tƒrvt|ƒdkr>|\}}}||kr2q||fV  q|t|ƒdkr^|\}}||fV  q|t|ƒdkr||d V  q|V  qd S )Né   é   r   r   )ra   rò   rÏ   )rý   ÚargÚkeyrÑ   Údefaultr6   r6   r7   Úiter_rich_args‰  s    

z3traverse.<locals>._traverse.<locals>.iter_rich_argsÚ,awehoi234_wdfjwljet234_234wdfoijsdfmmnxpi492Fr½   Úangularú<z...>z(...)rë   rõ   )rÄ   rÅ   rÊ   rÇ   rË   rº   r°   )rÄ   rÅ   rÊ   rÇ   r   )rü   ú=r»   )rÃ   rÊ   rÇ   rÌ   c                  3   sv   ˆ D ]l} | j rztˆ| jƒ}W n2 tyP } z| j|dfV  W Y d}~qd}~0 0 | j|t| j ƒrh| j ndfV  qdS )z$Iterate over attr fields and values.N)rv   rc   Únamer?   Úcallable)ÚattrrJ   rù   ©Úattr_fieldsr/   r6   r7   Ú
iter_attrsë  s    $ýz/traverse.<locals>._traverse.<locals>.iter_attrs)rþ   é   c                 s   s   | ]}|j r|V  qd S r‘   )rv   )r¢   Úfieldr6   r6   r7   r£     s   z.traverse.<locals>._traverse.<locals>.<genexpr>)rÄ   rÅ   rÊ   rÆ   )rÃ   rÇ   z... +T)rÆ   rÊ   rÇ   )1ÚidrÁ   r4   r…   Úversion_infoÚmajorÚminorr   r   r   r   rÝ   r¿   r?   r   r½   rc   ÚlistÚ	__class__rz   Úappendr   ra   rò   rÇ   rÂ   rÎ   r8   r9   r   r   r
   r@   r	   r  ró   rH   Ú_asdictÚitemsr¾   r¼   r:   rÏ   Ú_MAPPING_CONTAINERSÚiterr   Ú	enumeraterÈ   rÉ   )#r/   rû   rü   Úobj_idÚobj_typeÚ
py_versionÚreached_max_depthr  Úfake_attributesÚrich_repr_resultr  ÚargsÚ
class_namerÊ   r  rÛ   rÇ   r   r  rÑ   Ú
child_noder  r  rJ   Úrepr_callabler  Úcontainer_typerÄ   rÅ   rÆ   Ú	num_itemsÚlast_item_indexÚ
iter_itemsÚindexÚiter_values)Ú	_traverserQ   rO   Úpop_visitedÚpush_visitedrú   Úvisited_idsr  r7   r,  |  s|   
$ÿ


ûü
ýüÿÿÿþýüüüÿÿü
ü








ztraverse.<locals>._traverseT)rû   )Fr   )r   rÝ   ÚsetÚaddÚremover}   rª   rÁ   )r�   rO   rP   rQ   rÛ   r6   )r,  rQ   rO   rP   r-  r.  rú   r/  r7   ÚtraverseS  s    & |r3  rÚ   rŠ   r”   )r�   r•   r‹   rO   rP   rQ   rR   r0   c          	      C   s4   t | tƒr| }nt| |||d�}|j|||d�}|S )a‡  Prettify repr string by expanding on to new lines to fit within a given width.

    Args:
        _object (Any): Object to repr.
        max_width (int, optional): Desired maximum width of repr string. Defaults to 80.
        indent_size (int, optional): Number of spaces to indent. Defaults to 4.
        max_length (int, optional): Maximum length of containers before abbreviating, or None for no abbreviation.
            Defaults to None.
        max_string (int, optional): Maximum length of string before truncating, or None to disable truncating.
            Defaults to None.
        max_depth (int, optional): Maximum depth of nested data structure, or None for no depth.
            Defaults to None.
        expand_all (bool, optional): Expand all containers regardless of available width. Defaults to False.

    Returns:
        str: A possibly multi-line representation of the object.
    )rO   rP   rQ   )r•   r‹   rR   )ra   rÁ   r3  rå   )	r�   r•   r‹   rO   rP   rQ   rR   rÛ   rä   r6   r6   r7   rš   {  s    
ÿÿrš   )rK   rN   rO   rP   rQ   rR   )r�   rK   rN   rO   rP   rQ   rR   r0   c             
   C   s6   |du rt ƒ n|}|jt| |||||dd�dd� dS )aó  A convenience function for pretty printing.

    Args:
        _object (Any): Object to pretty print.
        console (Console, optional): Console instance, or None to use default. Defaults to None.
        max_length (int, optional): Maximum length of containers before abbreviating, or None for no abbreviation.
            Defaults to None.
        max_string (int, optional): Maximum length of strings before truncating, or None to disable. Defaults to None.
        max_depth (int, optional): Maximum depth for nested data structures, or None for unlimited depth. Defaults to None.
        indent_guides (bool, optional): Enable indentation guides. Defaults to True.
        expand_all (bool, optional): Expand all containers. Defaults to False.
    NrI   )rO   rP   rQ   rN   rR   rL   T)Ú	soft_wrap)r   rg   rh   )r�   rK   rN   rO   rP   rQ   rR   Ú_consoler6   r6   r7   ru   £  s    ù	öru   Ú__main__c                   @   s   e Zd Zedœdd„ZdS )Ú
BrokenReprrÌ   c                 C   s   dd  dS )Nr   r   zthis will failr6   rê   r6   r6   r7   r:   Ë  s    zBrokenRepr.__repr__N©rz   r{   r|   rÝ   r:   r6   r6   r6   r7   r7  Ê  s   r7  )Ú
NamedTuplec                   @   s:   e Zd ZU eed< eed< eed< eed< ee ed< dS )ÚStockKeepingUnitr  ÚdescriptionZpriceÚcategoryZreviewsN)rz   r{   r|   rÝ   r~   Úfloatr   r6   r6   r6   r7   r:  Ñ  s
   
r:  é   ÚfoozHello World!gZd;ßY@gÁÊ¡E¶3t@g    cA>   r>  r  é   é   )r   rÿ   rþ   rŠ   >   r   rÿ   rþ   Zcrumble)ÚappleZrhubarbÚbutterZsugarZflour)rB  ZorangeÚpearÚkumquatrE  AX  duriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurian)FTNzSparkling British Spring WaterzCarbonated spring watergÍÌÌÌÌÌì?Zwaterzits amazing!zits terrible!)r?  Úbarr   ÚcounterZatomicÚ
namedtupleZBroken)rg   c                   @   s   e Zd Zedœdd„ZdS )ÚThingrÌ   c                 C   s   dS )NzHello[38;5;239m World!r6   rê   r6   r6   r7   r:     s    zThing.__repr__Nr8  r6   r6   r6   r7   rI    s   rI  )NrI   FFNNNF)NrI   FFNNNF)NNN)orq   Úcollectionsr=   rB   Úosr…   r   r   r   r   r   r   r   r	   r
   r   Ú	itertoolsr   Útypesr   Útypingr   r   r   r   r   r   r   r   r   r   r   r   Zpip._vendor.rich.reprr   r
  r2   r1   ÚImportErrorr™   r   Ú_loopr   Ú_pickr   Úabcr    Úcellsr"   r�   r#   Újupyterr$   r%   Úmeasurer&   rç   r'   rK   r(   r)   r*   r+   r,   r-   re   r}   r8   r9   Úobjectr@   rH  rA   rH   rª   rm   r4   ra   r‰   rh   rÝ   r®   r²   Ú_EnvironÚdictÚ	frozensetr  r0  rò   r¼   r~   Úkeysr¾   r  rÀ   rÁ   rÞ   ró   r3  rš   ru   rz   r7  r9  r:  ÚdÚdatar  r€   rg   rI  r6   r6   r6   r7   Ú<module>   sj  
8
 ý        ÷öLþ        ø÷Og"
ó(
TC   üû  -ø÷+ø÷%
ú
ÿÿ
ûá!