a
    Oc                     @   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rd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 eBdd&	d'd(ZKeEe eLeeLd)f f eBd*d+d,ZMdwed$ d%eBeBe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rG 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 emeOejd
dtdu 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_moduleZhastyper/    r5   O/var/www/html/megastudio/lib/python3.9/site-packages/pip/_vendor/rich/pretty.py_is_attr_objectA   s    r7   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	   r3   r4   r5   r5   r6   _get_attr_fieldsF   s    r8   c                 C   s,   z| j jjtjkW S  ty&   Y dS 0 dS )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.
    FN)__repr____code__co_filenamedataclasses__file__	Exceptionr4   r5   r5   r6   _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 )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getfiler9   OSError	TypeErrorr@   )r/   Zobj_fileZdefault_repr_filer5   r5   r6   _has_default_namedtuple_repr_   s    	rE   ignorer(   r,   )	valueconsoleoverflowcropindent_guides
max_length
max_string
expand_allr0   c              
   C   s   ddl m} ddlm}	 t| ts*| d u r.d S |p6t }|jrg d}
|
D ]J}t| |d }t	
|rJz
| }W n ty   Y qJY n0 |d urJ d S qJ|| trd S t| |	r|  |jt| tr| nt| |||||dd|dd d S )	Nr   )is_object_one_of_types)ConsoleRenderable)Z_repr_html_Z_repr_markdown_Z_repr_json_Z_repr_latex_Z_repr_jpeg_Z
_repr_png_Z
_repr_svg__repr_mimebundle_   )rI   rK   rL   rM   rN   marginT)rJ   new_line_start)_inspectrO   rH   rP   _safe_isinstancer%   r   
is_jupytergetattrrA   ismethodr>   JUPYTER_CLASSES_TO_NOT_RENDERlineprintr    Pretty)rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   Zipython_repr_methodsZrepr_methodmethodZrepr_resultr5   r5   r6   _ipy_display_hooks   sF    






	r_   .)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/   r`   r5   r5   r6   rV      s    rV   )rH   rI   rJ   rK   rL   rM   rN   r0   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rG   r0   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)rI   rK   rL   rM   rN   )rJ   )builtins_r\   rV   r    r]   )rG   )rH   rJ   rN   rK   rL   rM   rI   r5   r6   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pprintrb   c              	      s*   | j rt|  dS t|S d S )N)rH   rI   rK   rL   rM   rN   )rg   r_   repr)selfrG   rN   r   rK   rL   rM   rI   r5   r6   __call__   s    
z'install.<locals>.RichFormatter.__call__N)__name__
__module____qualname__rg   bool__annotations__r   rk   r5   rj   r5   r6   RichFormatter   s   
rq   z
text/plain)pip._vendor.richr   r   get_ipythonZIPython.core.formattersrf   Zdisplay_formatterZ
formattersr>   sysdisplayhook)rH   rI   rJ   rK   rL   rM   rN   re   iprf   rq   Zrich_formatterr5   )rH   rJ   rN   r   rK   rL   rM   rI   r6   install   s    
 rw   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justifyrI   no_wraprK   rL   rM   	max_depthrN   rS   insert_liner*   r+   r,   )_objecthighlighterry   rz   rI   r{   rK   rL   rM   r|   rN   rS   r}   r0   c                C   sX   || _ |pt | _|| _|| _|| _|| _|| _|| _|	| _	|
| _
|| _|| _|| _d S N)r~   r#   r   ry   rz   rI   r{   rK   rL   rM   r|   rN   rS   r}   )ri   r~   r   ry   rz   rI   r{   rK   rL   rM   r|   rN   rS   r}   r5   r5   r6   __init__%  s    zPretty.__init__r(   r)   r-   )rH   optionsr0   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rd|v rd	V  |V  d S )
N	max_widthry   rL   rM   r|   rN   pretty)rz   rI   r{   stylez.__repr__ returned empty stringz
dim italic)r   zrepr.indent
 )pretty_reprr~   r   rS   ry   rL   rM   r|   rN   r'   rz   rI   r   r{   r   r3   rK   
ascii_onlywith_indent_guidesr}   )ri   rH   r   
pretty_strZpretty_textr5   r5   r6   __rich_console__D  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   ry   rL   rM   rN   c                 s   s   | ]}t |V  qd S r   r!   .0r[   r5   r5   r6   	<genexpr>s      z*Pretty.__rich_measure__.<locals>.<genexpr>r   )
r   r~   r   ry   rL   rM   rN   max
splitlinesr&   )ri   rH   r   r   
text_widthr5   r5   r6   __rich_measure__g  s    	zPretty.__rich_measure__)N)rl   rm   rn   __doc__r   r   intro   r   r   r   r5   r5   r5   r6   r]     sH     $r]   )r~   r0   c                 C   s   d| j ddd| j dfS )Nzdefaultdict(z, {})z, {}))default_factoryr~   r5   r5   r6   _get_braces_for_defaultdictx  s    r   z
array[Any]c                 C   s   d| j ddd| j dfS )Nzarray(z, [])))typecoder   r5   r5   r6   _get_braces_for_array  s    r   c                 C   s   dS )N)z	environ({r   zenviron({})r5   r   r5   r5   r6   <lambda>  r   r   c                 C   s   dS )N)z	Counter({r   z	Counter()r5   r   r5   r5   r6   r     r   c                 C   s   dS )N)zdeque([r   zdeque()r5   r   r5   r5   r6   r     r   c                 C   s   dS N){}z{}r5   r   r5   r5   r6   r     r   c                 C   s   dS r   r5   r   r5   r5   r6   r     r   c                 C   s   dS )N)zfrozenset({r   zfrozenset()r5   r   r5   r5   r6   r     r   c                 C   s   dS N)[]z[]r5   r   r5   r5   r6   r     r   c                 C   s   dS r   r5   r   r5   r5   r6   r     r   c                 C   s   dS )N)r   r   zset()r5   r   r5   r5   r6   r     r   c                 C   s   dS )N)(r   ()r5   r   r5   r5   r6   r     r   c                 C   s   dS )N)zmappingproxy({r   zmappingproxy({})r5   r   r5   r5   r6   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__)rV   _CONTAINERSr
   hasattrr7   r   r4   r5   r5   r6   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   )ri   childr5   r5   r6   r     s"    




zNode.iter_tokens)start_lengthrL   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"   )ri   r   rL   total_lengthtokenr5   r5   r6   check_length  s    
zNode.check_lengthc                 C   s   d |  }|S Nr   )joinr   )ri   Z	repr_textr5   r5   r6   __str__  s    zNode.__str__P   rx   )r   ry   rN   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   r5   r5   r6   r     r   zNode.render.<locals>.<genexpr>)_Liner   
expandableexpandedr   expandr   )ri   r   ry   rN   linesline_nor[   repr_strr5   r5   r6   render  s    
zNode.render)r   rx   F)rl   rm   rn   r   r   r   rp   r   r   r   r   r   ro   r   r   r   r   r   r   r   r   r   r   r   r   r   r5   r5   r5   r6   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)ro   r   r   ri   r5   r5   r6   r     s    z_Line.expandable)rL   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   )ri   rL   r   r5   r5   r6   r     s    z_Line.check_length)ry   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\}}|rdn|j
}	t||||	|o| d}
|
V  qt|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   )ri   ry   r   r   new_lineZchild_whitespaceZtuple_of_oner   r   r   r[   r5   r5   r6   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   r5   r5   r6   r   1  s    "z_Line.__str__)rl   rm   rn   r   r   r   rp   r   ro   r   r   r   r   r   r   r   r   propertyr   r   r   r   r   r   r5   r5   r5   r6   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)rX   r>   ra   tuple)r/   r	   r5   r5   r6   _is_namedtuple:  s
    r   )r~   rL   rM   r|   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 >)rV   bytesr   r   rh   r>   )r/   Z	truncatedobj_reprerror)rM   r5   r6   to_reprb  s    
&ztraverse.<locals>.to_reprFr   )r/   rootdepthr0   c           #         sd  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}|szt
drts }W n ty   Y n0 |durtjdd}	t||}
jj}|
rg }|j}|rt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|	rd| dn| dg |d}n|tr|sg }|j}t  r|rtd	d
}ntjj dd||d}ttt	ttttgt	f  f  d fdd}t| D ]T\}\}}}|rtt	||d
}n||d d}||_||_d|_|| q\ntjj dg |d}nztrtt s|sts |dkrt }|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| nt#r^t$r^|rtd	d
}nxg }jj}t| dd|| dd}|j}t% & D ]8\}\}}||d d}||_||_d|_|| q ntt'r:t'D ]}t|rn|} qqnt }|v rtd	d
S | t(| \}}}|rtd	|d}nX|j)t j)krt|d}n2r"g }t||||d}|j}t*}|d }tt+rt,& } durZt-| } t.| D ]:\}!\}}||d d}||_|!|k|_|| qbnRt,}"durt-|"}"t.|"D ],\}!}||d d}|!|k|_|| qĈdur0|kr0|td|  d d nt|g |d!}| nt|d}tt|_/t#|_0|S )"zWalk the object depth first.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   )rV   r   r   )r   argkeyr   defaultr5   r5   r6   iter_rich_args~  s    

z3traverse.<locals>._traverse.<locals>.iter_rich_argsZ,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)rh   rX   namer>   callable)attrrG   r   Zattr_fieldsr/   r5   r6   
iter_attrs  s    $z/traverse.<locals>._traverse.<locals>.iter_attrs)r      c                 s   s   | ]}|j r|V  qd S r   )rh   )r   fieldr5   r5   r6   r     s   z.traverse.<locals>._traverse.<locals>.<genexpr>)r   r   r   r   )r   r   z... +T)r   r   r   )1r3   rt   version_infomajorminorr   r   r   r   r   r   r>   r   r   rX   list	__class__rl   appendr   r   rV   r   r   r   r   r7   r8   r   r   r
   r?   idr	   r   r   rE   _asdictitemsr   r   r9   r   _MAPPING_CONTAINERSiterr   	enumerater   r   )#r/   r   r   Zobj_type
py_versionZreached_max_depthr   Zfake_attributesZrich_repr_resultr   args
class_namer   r   r   r   r   r   r   Z
child_noder   r   rG   Zrepr_callableZobj_idr   Zcontainer_typer   r   r   Z	num_itemsZlast_item_indexZ
iter_itemsindexiter_values)	_traverser|   rL   pop_visitedpush_visitedr   visited_idsr   r6   r  v  sn   $



















ztraverse.<locals>._traverseT)r   )Fr   )r   r   setaddremovero   r   r   )r~   rL   rM   r|   r   r5   )r  r|   rL   rM   r	  r
  r   r  r6   traverseM  s    & ur  r   rx   r   )r~   r   ry   rL   rM   r|   rN   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.
    )rL   rM   r|   )r   ry   rN   )rV   r   r  r   )	r~   r   ry   rL   rM   r|   rN   r   r   r5   r5   r6   r   n  s    
r   )rH   rK   rL   rM   r|   rN   )r~   rH   rK   rL   rM   r|   rN   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.
    NrF   )rL   rM   r|   rK   rN   rI   T)	soft_wrap)r   r\   r]   )r~   rH   rK   rL   rM   r|   rN   _consoler5   r5   r6   rg     s    	rg   __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 failr5   r   r5   r5   r6   r9     s    zBrokenRepr.__repr__N)rl   rm   rn   r   r9   r5   r5   r5   r6   r    s   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)rl   rm   rn   r   rp   floatr   r5   r5   r5   r6   r    s
   
r     foozHello World!gZd;Y@gʡE3t@g    cA>   r  r         )r   r   r   rx   >   r   r   r   Zcrumble)appleZrhubarbbutterZsugarZflour)r  Zorangepearkumquatr   AX  duriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurianduriandurian)FTNzSparkling British Spring WaterzCarbonated spring waterg?Zwaterzits amazing!zits terrible!)r  Zbarr   ZcounterZatomic
namedtupleZBroken)r\      )rK   rM   )NrF   FFNNF)NrF   FFNNF)NNN)nrc   collectionsr<   rA   osrt   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'   rH   r(   r)   r*   r+   r,   r-   rZ   ro   r7   r8   objectr?   r!  r@   rE   r   r_   r3   rV   rw   r]   r   r   r   _Environdict	frozensetr   r  r   r   rp   keysr   r   r   r   r   r   r  r   rg   rl   r  r  r  ddatar   rr   r\   r5   r5   r5   r6   <module>   s`  
8
        J       Kg"
(
TC     &+%


!