o
    Zh'                     @   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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!m"Z" d d	l#m$Z$ zd dl%Z&e'e&d
Z(W n e)y   dZ(Y nw ddl*m+Z+ ddl,m-Z- ddl.m/Z/ ddl0m1Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7m8Z8 ddl9m:Z: ddl;m<Z< erddl=m>Z>m?Z?m@Z@mAZAmBZBmCZC dedeDfddZEdeded fddZFdeGdeDfddZHeId g ZJdeGdeDfd!d"ZK		#						dd$ed%ed& d'd(d)eDd*eDd+eeL d,eeL d-eeL d.eDde"eMdf fd/d0ZNdeGd1e"eOe!eOd2f f deDfd3d4ZP		#						dd%ed& d'd(d)eDd*eDd+eeL d,eeL d-eeL d.eDddfd5d6ZQG d7d8 d8e7ZRd9eeef de!eMeMeMf fd:d;ZSd9ee de!eMeMeMf fd<d=ZTd9d>de!eMeMeMf fd?d@ZUejVdAdB eeUeeSedCdB eeTeWdDdB e	dEdB eXdFdB eYdGdB e
dHdB eZdIdB e[dJdB edKdB iZ\eeOeege!eMeMeMf f f e]dL< e[e\^ Z_eWejVee	fZ`dedeDfdMdNZaeG dOdP dPZbeG dQdR dRZcdedeDfdSdTZd			dd9ed+eeL d,eeL d-eeL debf
dUdVZedWdXdddddYd9edZeLd[eLd+eeL d,eeL d-eeL d.eDdeMfd\d]Zfdd^ddddd_d9ed%ed& d*eDd+eeL d,eeL d-eeL d.eDddfd`daZgehdbkrG dcdd ddZid delmjZj G dfdg dgejZkeeLZldheldi< ddjdkdldmh dngeXh doeeYdpg dqieg drdsekdtdudvdwdxdygei dzZmemdi nem d d{lompZp epeRemd^d|d} G d~d dZqepeReq  dS dS )    N)array)CounterUserDictUserListdefaultdictdeque)	dataclassfieldsis_dataclass)isclass)islice)MappingProxyType)TYPE_CHECKINGAnyCallableDefaultDictDequeDictIterableListOptionalSequenceSetTupleUnion)RichReprResultZibF   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 ott| S )z1Check if an object was created with attrs module.)
_has_attrs_attr_modulehastyper/    r6   F/var/www/auris/lib/python3.10/site-packages/pip/_vendor/rich/pretty.py_is_attr_object<   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_fieldsA   s   r9   c                 C   s.   z| j jjtjtjfv W S  ty   Y dS w )zCheck 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.
    F)__repr____code__co_filenamedataclasses__file__reprlib	Exceptionr5   r6   r6   r7   _is_dataclass_reprF   s   rA   _dummy_namedtuplec              	   C   s@   d}zt | j}W n ttfy   Y nw t tj}||kS )zCheck 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	TypeErrorrB   )r/   obj_filedefault_repr_filer6   r6   r7   _has_default_namedtuple_repr]   s   	rI   ignorevalueconsoler)   overflowr-   cropindent_guides
max_length
max_string	max_depth
expand_allc	                 C   s   ddl m}	 t| ts| d u rd S |pt }| +}
t| |	r$|  |jt| tr-| nt	| ||||||dd|ddd W d    n1 sHw   Y  |

 dS )	Nr   )ConsoleRenderable   )rM   rO   rP   rQ   rR   rS   marginT )rN   new_line_startend
)rL   rT   _safe_isinstancer&   r   capturelineprintr!   Prettygetrstrip)rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   r\   r6   r6   r7   _ipy_display_hookq   s4   


rb   class_or_tuple.c                 C   s"   zt | |W S  ty   Y dS w )zFisinstance can fail in rare cases, for example types with no __class__F)
isinstancer@   )r/   rc   r6   r6   r7   r[      s
   r[   c              	      s   ddl m  p
   dusJ dtddf fdd}zt }	W n ty5   |t_Y dS w ddlm}
 G fd	d
d
|
}| }||	j	j
d< 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   NrK   r0   c              
      sV   | dur) dus
J dt _ jt| tr| n
t| dd | t _dS dS )z?Replacement sys.displayhook which prettifies objects with Rich.N)rM   rO   rP   rQ   rR   rS   )rN   )builtins_r^   r[   r!   r_   )rK   )rL   rN   rS   rO   rR   rP   rQ   rM   r6   r7   display_hook   s&   

zinstall.<locals>.display_hook)BaseFormatterc                       s<   e Zd ZU dZeed< dedef fddZdS )zinstall.<locals>.RichFormatterTpprintrK   r0   c              
      s(   | j rt|  dS t|S )N)rL   rM   rO   rP   rQ   rR   rS   )ri   rb   repr)selfrK   rS   r   rO   rR   rP   rQ   rM   r6   r7   __call__   s   z'install.<locals>.RichFormatter.__call__N)__name__
__module____qualname__ri   bool__annotations__r   rm   r6   rl   r6   r7   RichFormatter   s   
 &rs   z
text/plain)pip._vendor.richr   r   get_ipython	NameErrorsysdisplayhookIPython.core.formattersrh   display_formatter
formatters)rL   rM   rN   rO   rP   rQ   rR   rS   rg   iprh   rs   rich_formatterr6   )	rL   rN   rS   r   rO   rR   rP   rQ   rM   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deded	 d
eded ded dee dedee dee dee dedededdfddZ						d%dd Z							!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justifyrM   no_wraprO   rP   rQ   rR   rS   rV   insert_line_objecthighlighterr+   r   r   r,   rM   r-   r   rO   rP   rQ   rR   rS   rV   r   r0   c                C   sX   || _ |pt | _|| _|| _|| _|| _|| _|| _|	| _	|
| _
|| _|| _|| _d S N)r   r$   r   r   r   rM   r   rO   rP   rQ   rR   rS   rV   r   )rk   r   r   r   r   rM   r   rO   rP   rQ   rR   rS   rV   r   r6   r6   r7   __init__  s   
zPretty.__init__rL   r)   optionsr*   r.   c              	   c   s    t | j|j| j | j| j| j| j| jd}t	j
|| jp|j| jp#|jt| j|jdd}|r4| |nt	t| j ddd}| jrN|jsN|j| jdd}| jrXd|v rXd	V  |V  d S )
N	max_widthr   rP   rQ   rR   rS   pretty)r   rM   r   stylez.__repr__ returned empty stringz
dim italic)r   zrepr.indentrZ   rW   )pretty_reprr   r   rV   r   rP   rQ   rR   rS   r(   	from_ansir   rM   r    r   r   r4   rO   
ascii_onlywith_indent_guidesr   )rk   rL   r   
pretty_strpretty_textr6   r6   r7   __rich_console__0  s>   
	

	
zPretty.__rich_console__r'   c              	   C   sL   t | j|j| j| j| j| j| jd}|rtdd |	 D nd}t
||S )Nr   c                 s       | ]}t |V  qd S r   r"   .0r]   r6   r6   r7   	<genexpr>`      z*Pretty.__rich_measure__.<locals>.<genexpr>r   )r   r   r   r   rP   rQ   rR   rS   max
splitlinesr'   )rk   rL   r   r   
text_widthr6   r6   r7   __rich_measure__S  s   

zPretty.__rich_measure__r   )rL   r)   r   r*   r0   r.   )rL   r)   r   r*   r0   r'   )rn   ro   rp   __doc__r   r   intrq   r   r   r   r6   r6   r6   r7   r_      st    	


#r_   r   c                 C      d| j ddd| j dfS )Nzdefaultdict(z, {})z, {}))default_factoryr   r6   r6   r7   _get_braces_for_defaultdicte  s   r   c                 C   s,   | j d u rdS dd| j  dd| j  dfS )N)deque([])zdeque()r   z
], maxlen=)zdeque(maxlen=)maxlenr   r6   r6   r7   _get_braces_for_dequem  s   
r   z
array[Any]c                 C   r   )Nzarray(z, [r   r   )typecoder   r6   r6   r7   _get_braces_for_arrayw  s   r   c                 C      dS )N)z	environ({r   zenviron({})r6   r   r6   r6   r7   <lambda>|      r   c                 C   r   )N)z	Counter({r   z	Counter()r6   r   r6   r6   r7   r     r   c                 C   r   N){}z{}r6   r   r6   r6   r7   r     r   c                 C   r   r   r6   r   r6   r6   r7   r     r   c                 C   r   )N)zfrozenset({r   zfrozenset()r6   r   r6   r6   r7   r     r   c                 C   r   N)[]z[]r6   r   r6   r6   r7   r     r   c                 C   r   r   r6   r   r6   r6   r7   r     r   c                 C   r   )N)r   r   zset()r6   r   r6   r6   r7   r     r   c                 C   r   )N)(r   ()r6   r   r6   r6   r7   r     r   c                 C   r   )N)zmappingproxy({r   zmappingproxy({})r6   r   r6   r6   r7   r     r   _BRACESc                 C   s.   t | tpt| pt| dpt| ot|  S )z3Check if an object may be expanded by pretty print.__rich_repr__)r[   _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eed< dZeed< dee fddZdededefddZdefddZ	d"dedededefd d!ZdS )#Nodez4A node in a repr tree. May be atomic or a container.rW   key_repr
value_repr
open_braceclose_braceemptyFlastis_tupleis_namedtupleNchildrenz: key_separatorz, 	separatorr0   c                 c   s    | j r| j V  | jV  | jr| jV  dS | jdur\| jrV| jV  | jr<| js<t| jdkr<| jd  E dH  dV  n| jD ]}| E dH  |j	sO| j
V  q?| jV  dS | jV  dS dS )zGenerate tokens for this node.Nr   r   ,)r   r   r   r   r   r   r   leniter_tokensr   r   r   r   )rk   childr6   r6   r7   r     s(   

zNode.iter_tokensstart_lengthrP   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#   )rk   r   rP   total_lengthtokenr6   r6   r7   check_length  s   
zNode.check_lengthc                 C   s   d |  }|S NrW   )joinr   )rk   	repr_textr6   r6   r7   __str__  s   zNode.__str__P   r   r   r   rS   c                 C   s   t | ddg}d}|t|k r5|| }|jr+|js+|s ||s+|||||d < |d7 }|t|k s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   rZ   c                 s   r   r   )strr   r6   r6   r7   r     r   zNode.render.<locals>.<genexpr>)_Liner   
expandableexpandedr   expandr   )rk   r   r   rS   linesline_nor]   repr_strr6   r6   r7   render  s   zNode.render)r   r   F)rn   ro   rp   r   r   r   rr   r   r   r   r   r   rq   r   r   r   r   r   r   r   r   r   r   r   r   r   r6   r6   r6   r7   r     s4   
 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defddZdedefddZdeded  fddZdefddZdS )r   zA line in repr output.NparentFr   r   rW   textsuffix
whitespacer   r   r0   c                 C   s   t | jduo	| jjS )z"Check if the line may be expanded.N)rq   r   r   rk   r6   r6   r7   r     s   z_Line.expandablerP   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   )rk   rP   r   r6   r6   r7   r     s   z_Line.check_lengthr   c                 c   s    | j }|dus
J | j}|jsJ |jr&t|j |j |j |dV }nt|j|dV }| jd|  }|jo>t|jdk}t	|jD ]\}}|rLdn|j
}	t||||	|oX| d}
|
V  qDt|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   )rk   r   r   r   new_linechild_whitespacetuple_of_oner   r   r   r]   r6   r6   r7   r     s:   

z_Line.expandc                 C   sD   | j r| j | j | jpd S | j | j | jpd | j  S r   )r   r   r   r   r   ra   r   r6   r6   r7   r   (  s   "z_Line.__str__)rn   ro   rp   r   r   r   rr   r   rq   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 w t| tot|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)getattrr@   rd   tuple)r/   r	   r6   r6   r7   _is_namedtuple1  s   r   c              	      sd   dt dtffddt jjddt dtdtdtf 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/   r0   c              
      s    dur$t | ttfr$t|  kr$t|   }| d  d| }|S zt| }W |S  tyF } zdt|d}W Y d}~|S d}~ww )z0Get repr string for an object, but catch errors.N+z<repr-error >)r[   bytesr   r   rj   r@   )r/   	truncatedobj_reprerror)rQ   r6   r7   to_reprY  s   
ztraverse.<locals>.to_reprFr   rootdepthc           "   	      s  t }|v rtddS t}duo|k}dtdttttttf f  fdd}ztd}W n t	y>   d	}Y nw d}|s\ztd
rQt
sQ }W n	 t	y[   Y nw |dur| tjdd	}	t||}
jj}|
rg }|j}|r|	rtd| dd}nnt| dd}ne|	rtd| dd||dd}nt| dd||d}t|
D ]2\}}t|tr|\}}||d d}||_||_d|_|| q||d d}||_|| qnt|	rd| dn| dg |d}| nBtr|s| g }|j}t  rz|r$tjj dd}nbtjj dd||d}dtttttttgtf  f  f fdd}t| D ]*\}\}}}|rbtt||d}n||d d}||_||_d|_|| qNntjj dg |d}| ntrtts|str| g }|j}|rtjj dd}n@tjj dd||jj dd}tfddtD D ]\}}t|j|d d}|j|_||_d|_|| qֈ| nDtrWt rW| jj}|rt| dd}n8g }|j}t| dd|| dd}t! " D ]\}\}}||d d}||_||_d|_|| q5| ntt#r8t#D ]}t|rk|} nq_| t$| \}}}|rt| d| d}n|j%tj%krt|d }nr,g }t||||d}|j}t&}|d }tt'rt(" }durt)|}t*|D ]\} \}}||d d}||_| |k|_|| qn)t(}!durt)|!}!t*|!D ]\} }||d d}| |k|_|| qdur+|kr+|td!|  d"d  nt|g |d#}| nt|d }ttk|_+t|_,|S )$zWalk the object depth first.z...)r   N	rich_argsr0   c                 s   s    | D ]<}t |tr<t|dkr |\}}}||krq||fV  qt|dkr0|\}}||fV  qt|dkr;|d V  q|V  qd S )N      r   r   )r[   r   r   )r   argkeyr   defaultr6   r6   r7   iter_rich_argsy  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   c                  3   sx     D ]6} | j r9zt| j}W n ty) } z| j|dfV  W Y d}~qd}~ww | j|t| j r5| j ndfV  qdS )z$Iterate over attr fields and values.N)rj   r   namer@   callable)attrrK   r   attr_fieldsr/   r6   r7   
iter_attrs  s   z/traverse.<locals>._traverse.<locals>.iter_attrs)r   r   r   r   r   c                 3   s&    | ]}|j rt |jr|V  qd S r   )rj   r   r  )r   fieldr5   r6   r7   r     s    

z.traverse.<locals>._traverse.<locals>.<genexpr>)r   r   r   r   )r   r   z... +T)r   r   r   )-idr   r4   r   r   r   r   r   r   r@   r   r   r   list	__class__rn   appendr   r[   r   r   r   r   r8   r9   r   r   r
   rA   r	   r  r   rI   _asdictitemsr   r   r:   r   _MAPPING_CONTAINERSiterr   	enumerater   r   )"r/   r   r   obj_idobj_typereached_max_depthr   fake_attributesrich_repr_resultr   args
class_namer   r  r   r   r   r   r   
child_noder  r  rK   repr_callabler  container_typer   r   r   	num_itemslast_item_index
iter_itemsindexiter_values)	_traverserR   rP   pop_visitedpush_visitedr   visited_idsr  r7   r   m  s  
&














ztraverse.<locals>._traverseT)r   N)Fr   )r   r   setaddremoverq   r   r   )r   rP   rQ   rR   r   r6   )r   rR   rP   rQ   r!  r"  r   r#  r7   traverseD  s   , ~r'  r   r   r   r   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.
    )rP   rQ   rR   )r   r   rS   )r[   r   r'  r   )	r   r   r   rP   rQ   rR   rS   r   r   r6   r6   r7   r   n  s   
r   T)rL   rO   rP   rQ   rR   rS   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.
    NrJ   )rP   rQ   rR   rO   rS   rM   T)	soft_wrap)r   r^   r_   )r   rL   rO   rP   rQ   rR   rS   _consoler6   r6   r7   ri     s   	
ri   __main__c                   @      e Zd ZdefddZdS )
BrokenReprr0   c                 C   s   dd  dS )Nr   r   zthis will failr6   r   r6   r6   r7   r:     s   zBrokenRepr.__repr__Nrn   ro   rp   r   r:   r6   r6   r6   r7   r,        r,  )
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)rn   ro   rp   r   rr   floatr   r6   r6   r6   r7   r0    s   
 r0     foozHello World!gZd;Y@gʡE3t@g    cA>   r4           )r   r   r   r   >   r   r   r   Zcrumble)appleZrhubarbbutterZsugarZflour)r9  Zorangepearkumquatr<  AX  duriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurian)FTNzSparkling British Spring WaterzCarbonated spring waterg?Zwaterzits amazing!zits terrible!)r5  barr   counterZatomic
namedtupleZBroken)r^      )rO   rQ   c                   @   r+  )Thingr0   c                 C   r   )NzHello[38;5;239m World!r6   r   r6   r6   r7   r:     s   zThing.__repr__Nr-  r6   r6   r6   r7   rA    r.  rA  )NrJ   FFNNNF)NNN)rre   collectionsr=   rC   osr?   rw   r   r   r   r   r   r   r   r	   r
   r   	itertoolsr   typesr   typingr   r   r   r   r   r   r   r   r   r   r   r   r   Zpip._vendor.rich.reprr   r  r2   r   r1   ImportErrorrW   r   _loopr   _pickr    abcr!   cellsr#   r   r$   jupyterr%   r&   measurer'   r   r(   rL   r)   r*   r+   r,   r-   r.   rq   r8   r9   objectrA   r?  rB   rI   r   r   rb   r4   r[   r~   r_   r   r   r   _Environdict	frozensetr	  r$  r   r   rr   keysr   r  r   r   r   r   r'  r   ri   rn   r,  r/  r0  ddatar  rt   r^   rA  r6   r6   r6   r7   <module>   s  
 < 
	


0
	
R$h 

(
TC
  /	
+	

%

!