a
    hbòf<  ã                   @   sl  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  d d	l!m"Z" zd dl#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.m/Z/ d
dl0m1Z1 d
dl2m3Z3m4Z4 d
dl5m6Z6 d
dl7m8Z8 e�rŒd
dl9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z? ee@dœdd„ZAeed dœdd„ZBeCe@dœdd„ZDdceed d e@e@eeE eeE e@dd!œ	d"d#„ZFdded d e@e@eeE eeE e@dd$œd%d&„ZGG d'd(„ d(e3ƒZHeeef eeIeIeIf d)œd*d+„ZJd,eeIeIeIf d)œd-d.„ZKejLd/d0„ eeKeeJed1d0„ ed2d0„ eMd3d0„ e	d4d0„ eNd5d0„ eOd6d0„ e
d7d0„ ePd8d0„ eQd9d0„ ed:d0„ iZReeSeegeeIeIeIf f f eTd;< eQeR U¡ ƒZVeMejLee	fZWee@dœd<d=„ZXeG d>d?„ d?ƒƒZYeG d@dA„ dAƒƒZZdeeeeE eeE eeE eYdBœdCdD„Z[dEdFdddddGœeeEeEeeE eeE eeE e@eIdHœdIdJ„Z\ddKdddddLœeed e@eeE eeE eeE e@ddMœdNdO„Z]e^dPk�rhG dQdR„ dRƒZ_eeEƒZ`dSe`dT< d
dUdVdWdXh dY£geNh dZ£ƒeeOd[g d\¢iƒeg d]¢ƒd^e_ƒ d_œZaeadT  bea¡ d d`lcmdZd edeHeadKdadb�ƒ dS )fé    N)Úarray)ÚCounterÚUserDictÚUserListÚdefaultdictÚdeque)Ú	dataclassÚfieldsÚis_dataclass)Úisclass)Úislice)ÚMappingProxyType)ÚTYPE_CHECKINGÚAnyÚCallableÚDefaultDictÚDictÚIterableÚListÚOptionalÚSetÚTupleÚUnion)ÚRichReprResulté   ©Úget_console)Ú	loop_last)Ú	pick_bool)ÚRichRenderable©Úcell_len)ÚReprHighlighter)ÚJupyterMixinÚJupyterRenderable)ÚMeasurement)ÚText)ÚConsoleÚConsoleOptionsÚHighlighterTypeÚJustifyMethodÚOverflowMethodÚRenderResult©ÚobjÚreturnc                 C   s   t duot  t| ƒ¡S )z1Check if an object was created with attrs module.N)Ú_attr_moduleÚhasÚtype©r.   © r4   úT/home/httpd/docs/test/DocsMgr/lib/python3.9/site-packages/pip/_vendor/rich/pretty.pyÚ_is_attr_object8   s    r6   z_attr_module.Attribute[Any]c                 C   s   t durt  t| ƒ¡S g S )zGet fields for an attrs object.N)r0   r	   r2   r3   r4   r4   r5   Ú_get_attr_fields=   s    r7   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__Ú	Exceptionr3   r4   r4   r5   Ú_is_dataclass_reprB   s    r>   ÚignoreFr'   r+   )	ÚvalueÚconsoleÚoverflowÚcropÚindent_guidesÚ
max_lengthÚ
max_stringÚ
expand_allr/   c              
   C   sÐ   ddl m} t| tƒs| d u r"d S |p*tƒ }|jrŠg d¢}	|	D ]J}
t| |
d ƒ}t |¡r>z
|ƒ }W n t	yx   Y q>Y n0 |d ur> d S q>t| |ƒrœ| 
¡  |jt| tƒr®| nt| |||||dd�|dd� d S )Nr   )ÚConsoleRenderable)Ú_repr_html_Ú_repr_markdown_Ú_repr_json_Ú_repr_latex_Ú_repr_jpeg_Ú
_repr_png_Ú
_repr_svg_Ú_repr_mimebundle_é   )rB   rD   rE   rF   rG   ÚmarginT)rC   Únew_line_start)rA   rH   Ú
isinstancer$   r   Ú
is_jupyterÚgetattrÚinspectÚismethodr=   ÚlineÚprintr   ÚPretty)r@   rA   rB   rC   rD   rE   rF   rG   rH   Úipython_repr_methodsÚrepr_methodÚmethodÚrepr_resultr4   r4   r5   Ú_ipy_display_hookS   s@    






ÿù	ór`   )rA   rB   rC   rD   rE   rF   rG   r/   c                    s¦   ddl m‰ ˆ pˆƒ ‰ ˆ dus"J ‚tddœ‡ ‡‡‡‡‡‡fdd„}zFtƒ }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.
        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©r@   r/   c              	      sP   | durLˆ 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)rB   rD   rE   rF   rG   )rC   )ÚbuiltinsÚ_rZ   rT   r   r[   )r@   )rA   rC   rG   rD   rE   rF   rB   r4   r5   Údisplay_hook®   s"    ÿúõzinstall.<locals>.display_hook)ÚBaseFormatterc                       s8   e Zd ZU dZeed< eedœ‡ ‡‡‡‡‡fdd„ZdS )zinstall.<locals>.RichFormatterTÚpprintra   c              	      s*   | j rt|ˆƒ ˆˆˆˆˆ d�S t|ƒS d S )N)rA   rB   rD   rE   rF   rG   )rf   r`   Úrepr)Úselfr@   ©rG   r   rD   rE   rF   rB   r4   r5   Ú__call__É   s    ù
z'install.<locals>.RichFormatter.__call__N)Ú__name__Ú
__module__Ú__qualname__rf   ÚboolÚ__annotations__r   rj   r4   ri   r4   r5   ÚRichFormatterÆ   s   
rp   z
text/plain)Úpip._vendor.richr   r   Úget_ipythonÚIPython.core.formattersre   Údisplay_formatterÚ
formattersr=   ÚsysÚdisplayhook)rA   rB   rC   rD   rE   rF   rG   rd   Úipre   rp   Úrich_formatterr4   )rA   rC   rG   r   rD   rE   rF   rB   r5   Úinstall“   s    
 rz   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 )r[   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ÚjustifyrB   Úno_wraprD   rE   rF   Ú	max_depthrG   rR   Úinsert_liner)   r*   r+   )Ú_objectÚhighlighterr|   r}   rB   r~   rD   rE   rF   r   rG   rR   r€   r/   c                C   sX   || _ |ptƒ | _|| _|| _|| _|| _|| _|| _|	| _	|
| _
|| _|| _|| _d S ©N)r�   r"   r‚   r|   r}   rB   r~   rD   rE   rF   r   rG   rR   r€   )rh   r�   r‚   r|   r}   rB   r~   rD   rE   rF   r   rG   rR   r€   r4   r4   r5   Ú__init__ò   s    zPretty.__init__r'   r(   r,   )rA   Úoptionsr/   c              	   c   s¶   t | j|j| j | j| j| j| j| jd�}t	|| j
p8|j
| jpB|jt| j|jƒdd�}|rd|  |¡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|   rE   rF   r   rG   Úpretty)r}   rB   r~   Ústylez.__repr__ returned empty stringz
dim italic)r‰   zrepr.indentÚ
Ú )Úpretty_reprr�   r‡   rR   r|   rE   rF   r   rG   r&   r}   rB   r   r~   r‚   r2   rD   Ú
ascii_onlyÚwith_indent_guidesr€   )rh   rA   r…   Ú
pretty_strÚpretty_textr4   r4   r5   Ú__rich_console__  s<    
ù	

û	ÿþýÿzPretty.__rich_console__r%   c                 C   sD   t | j|j| j| j| jd�}|r6tdd„ | ¡ D ƒƒnd}t||ƒS )N)r‡   r|   rE   rF   c                 s   s   | ]}t |ƒV  qd S rƒ   r    ©Ú.0rY   r4   r4   r5   Ú	<genexpr>?  ó    z*Pretty.__rich_measure__.<locals>.<genexpr>r   )	rŒ   r�   r‡   r|   rE   rF   ÚmaxÚ
splitlinesr%   )rh   rA   r…   r�   Ú
text_widthr4   r4   r5   Ú__rich_measure__4  s    ûÿzPretty.__rich_measure__)N)rk   rl   rm   Ú__doc__r   r   Úintrn   r„   r‘   r™   r4   r4   r4   r5   r[   Þ   sH    ýñð þ$þr[   )r�   r/   c                 C   s   d| j ›d�dd| j ›d�fS )Nzdefaultdict(z, {ú})z, {}))Údefault_factory©r�   r4   r4   r5   Ú_get_braces_for_defaultdictD  s    ýrŸ   z
array[Any]c                 C   s   d| j ›d�ddfS )Nzarray(z, [ú])zarray({_object.typecode!r}))Útypecoderž   r4   r4   r5   Ú_get_braces_for_arrayL  s    r¢   c                 C   s   dS )N)z	environ({rœ   zenviron({})r4   rž   r4   r4   r5   Ú<lambda>Q  r•   r£   c                 C   s   dS )N)z	Counter({rœ   z	Counter()r4   rž   r4   r4   r5   r£   T  r•   c                 C   s   dS )N)zdeque([r    zdeque()r4   rž   r4   r4   r5   r£   U  r•   c                 C   s   dS ©N)Ú{Ú}z{}r4   rž   r4   r4   r5   r£   V  r•   c                 C   s   dS r¤   r4   rž   r4   r4   r5   r£   W  r•   c                 C   s   dS )N)zfrozenset({rœ   zfrozenset()r4   rž   r4   r4   r5   r£   X  r•   c                 C   s   dS ©N)ú[ú]z[]r4   rž   r4   r4   r5   r£   Y  r•   c                 C   s   dS r§   r4   rž   r4   r4   r5   r£   Z  r•   c                 C   s   dS )N)r¥   r¦   zset()r4   rž   r4   r4   r5   r£   [  r•   c                 C   s   dS )N)ú(ú)ú()r4   rž   r4   r4   r5   r£   \  r•   c                 C   s   dS )N)zmappingproxy({rœ   zmappingproxy({})r4   rž   r4   r4   r5   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__)rT   Ú_CONTAINERSr
   Úhasattrr6   r   r3   r4   r4   r5   Úis_expandablec  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   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_tupleNÚchildrenz: z, Ú	separator©r/   c                 c   s¬   | j r| j V  | jV  | jr&| jV  n‚| jdur¨| jr | jV  | jrnt| jƒdkrn| jd  ¡ E dH  dV  n(| jD ] }| ¡ E dH  |jst| j	V  qt| j
V  n| jV  dS )zGenerate tokens for this node.Nr   r   ú,)r³   Úkey_separatorr´   rº   rµ   r¹   ÚlenÚiter_tokensr¸   r»   r¶   r·   )rh   Úchildr4   r4   r5   rÀ   |  s"    




zNode.iter_tokens)Ústart_lengthrE   r/   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!   )rh   rÂ   rE   Útotal_lengthÚtokenr4   r4   r5   Úcheck_length’  s    
zNode.check_lengthc                 C   s   d  |  ¡ ¡}|S ©Nr‹   )ÚjoinrÀ   )rh   Ú	repr_textr4   r4   r5   Ú__str__£  s    zNode.__str__éP   r{   )r‡   r|   rG   r/   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’   r4   r4   r5   r”   ½  r•   zNode.render.<locals>.<genexpr>)Ú_Liner¿   Ú
expandableÚexpandedrÅ   ÚexpandrÇ   )rh   r‡   r|   rG   ÚlinesÚline_norY   Úrepr_strr4   r4   r5   Úrender§  s    
zNode.render)rÊ   r{   F)rk   rl   rm   rš   r³   rÍ   ro   r´   rµ   r¶   r·   r¸   rn   r¹   rº   r   r   r¾   r»   r   rÀ   r›   rÅ   rÉ   rÕ   r4   r4   r4   r5   r²   m  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)rn   rË   rº   ©rh   r4   r4   r5   rÏ   Î  s    z_Line.expandable)rE   r/   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Å   )rh   rE   rÂ   r4   r4   r5   rÅ   Ó  s    ÿz_Line.check_length)r|   r/   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¸   )rh   r|   rË   rÙ   Únew_lineÚchild_whitespaceÚtuple_of_oner¸   rÁ   r»   rY   r4   r4   r5   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Ú   r4   r4   r5   rÉ   ü  s    "ÿz_Line.__str__)rk   rl   rm   rš   rÖ   r   ro   rÌ   rn   rË   r²   r×   rÍ   rØ   rÙ   rÐ   r¸   ÚpropertyrÏ   r›   rÅ   r   rÑ   rÉ   r4   r4   r4   r5   rÎ   Á  s   
!rÎ   )r�   rE   rF   r   r/   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 ú>)rT   ÚbytesrÍ   r¿   rg   r=   )r.   Ú	truncatedÚobj_reprÚerror)rF   r4   r5   Úto_repr  s    ÿþ
ý&ztraverse.<locals>.to_reprFr   )r.   ÚrootÚdepthr/   c           #         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yp   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ø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�}||_||ƒ �q8n&t|	�r¸d|› d�n|› d�g |d�}�nÚtˆƒ�rÐ|�sÐg }|j}tˆƒ‰ ˆ �r´|�rt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�}�nØtˆƒ�r¼tˆt ƒ�s¼|�s¼tˆƒ�s |dk�r¼t ˆƒ}|ˆv �rtd	d
�S ˆ|ƒ g }|j}|�r@td	d
�}nxtˆjj› d�d||d�}tdd„ t!ˆƒD ƒƒD ]>\}}ˆtˆ|j"ƒ|d d�}|j"|_||_d|_||ƒ �qpˆ|ƒ �nìtˆt#ƒ�r˜t#D ]}tˆ|ƒ�rÌ|} �qê�qÌt ˆƒ}|ˆv �rtd	d
�S ˆ|ƒ t$| ˆƒ\}}}|�r6td	|d�}�nX|j%t ˆƒj%k�r\tˆˆƒ|d�}�n2ˆ�r€g }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ƒ|_,|S )!zWalk the object depth first.N)Ú	rich_argsr/   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   )rT   Útupler¿   )rê   ÚargÚkeyrÁ   Údefaultr4   r4   r5   Úiter_rich_args6  s    

z3traverse.<locals>._traverse.<locals>.iter_rich_argsÚ,awehoi234_wdfjwljet234_234wdfoijsdfmmnxpi492Fr®   Úangularz...)r´   ú<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)rg   rV   Únamer=   Úcallable)Úattrr@   ræ   ©Úattr_fieldsr.   r4   r5   Ú
iter_attrs’  s    $ýz/traverse.<locals>._traverse.<locals>.iter_attrs)rë   é   c                 s   s   | ]}|j r|V  qd S rƒ   )rg   )r“   Úfieldr4   r4   r5   r”   Ê  s   z.traverse.<locals>._traverse.<locals>.<genexpr>)r´   r¸   z... +T)r·   rº   r¸   )-r2   rv   Úversion_infoÚmajorÚminorr   r   r   r   rÍ   r°   r=   r   r®   rV   ÚlistÚ	__class__rk   Úappendr²   r   rT   rí   r¸   r³   r¾   r6   r7   r   r   r
   r>   Úidr	   rö   r¯   r­   r8   r¿   Ú_MAPPING_CONTAINERSÚiterÚitemsr   Ú	enumerater¹   )#r.   rè   ré   Úobj_typeÚ
py_versionÚreached_max_depthrñ   Úfake_attributesÚrich_repr_resultró   ÚargsÚ
class_namerº   r  rË   r¸   rî   rï   rÁ   Ú
child_noderû   rö   r@   Úrepr_callableÚobj_idrý   Úcontainer_typerµ   r¶   r·   Ú	num_itemsÚlast_item_indexÚ
iter_itemsÚindexÚiter_values)Ú	_traverser   rE   Úpop_visitedÚpush_visitedrç   Úvisited_idsrù   r5   r  .  sH   $ÿ


ûü
ý
üÿÿ
ÿþýüü

üÿ


ü







ztraverse.<locals>._traverseT)rè   )Fr   )r   rÍ   ÚsetÚaddÚremovern   r›   r²   )r�   rE   rF   r   rË   r4   )r  r   rE   rF   r  r  rç   r  r5   Útraverse  s    & br   rÊ   r{   r†   )r�   r‡   r|   rE   rF   r   rG   r/   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.
    )rE   rF   r   )r‡   r|   rG   )rT   r²   r   rÕ   )	r�   r‡   r|   rE   rF   r   rG   rË   rÔ   r4   r4   r5   rŒ     s    
ÿÿrŒ   T)rA   rD   rE   rF   r   rG   )r�   rA   rD   rE   rF   r   rG   r/   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.
    Nr?   )rE   rF   r   rD   rG   rB   T)Ú	soft_wrap)r   rZ   r[   )r�   rA   rD   rE   rF   r   rG   Ú_consoler4   r4   r5   rf   ;  s    ù	örf   Ú__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 failr4   rÚ   r4   r4   r5   r8   c  s    zBrokenRepr.__repr__N)rk   rl   rm   rÍ   r8   r4   r4   r4   r5   r$  b  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)r)  ZorangeÚpearÚkumquatr,  AX  duriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurian)FTN)r&  Úbarr   ÚcounterZatomicZBroken)rZ   é   )rD   rF   )Nr?   FFNNF)Nr?   FFNNF)NNN)erb   r;   rW   ÚosÚrerv   r   Úcollectionsr   r   r   r   r   r   r	   r
   r   Ú	itertoolsr   Útypesr   Útypingr   r   r   r   r   r   r   r   r   r   r   Zpip._vendor.rich.reprr   rø   r0   ÚImportErrorr‹   r   Ú_loopr   Ú_pickr   Úabcr   Úcellsr!   r‚   r"   Újupyterr#   r$   Úmeasurer%   r×   r&   rA   r'   r(   r)   r*   r+   r,   rn   r6   r7   Úobjectr>   r›   r`   rz   r[   rÍ   rŸ   r¢   Ú_EnvironÚdictÚ	frozensetr  r  rí   r­   r2   ro   Úkeysr¯   r  r±   r²   rÎ   r   rŒ   rf   rk   r$  ÚdÚdatar  rq   rZ   r4   r4   r4   r5   Ú<module>   s<  
4
 
       ø÷A       ùøKf"
ó(
SE   üû  ø÷+ø÷%
ú
ÿÿ
è