Ë
    êñiPI  ã                  ó  — U d Z ddlmZ ddlmZmZmZmZ ddlZddl	m
Z
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 e
rdd
lmZ eeef   ee   z  Zded<    ed«      Z ed«      Zd d„Zd!d"d„Z	 d#	 	 	 	 	 	 	 	 	 d$d„Z	 d#	 	 	 	 	 	 	 	 	 d%d„Z 	 	 	 	 	 d&	 	 	 	 	 	 	 	 	 	 	 	 	 d'd„Z!	 d(	 	 	 	 	 	 	 d)d„Z"d*d„Z#d+d,d„Z$	 	 	 	 d-	 	 	 	 	 	 	 	 	 	 	 	 	 d.d„Z%	 	 	 	 	 	 d/d„Z& G d„ de'eef   «      Z( G d„ d«      Z) G d„ de)«      Z*d0d„Z+y)1z
Printing tools.
é    )Úannotations)ÚCallableÚIterableÚMappingÚSequenceN)ÚTYPE_CHECKINGÚAnyÚ	TypeAliasÚTypeVar)Úeast_asian_width)Ú
get_option)Úis_sequence)Úget_console_size)ÚListLiker
   ÚEscapeCharsÚ_KTÚ_VTc           	     ó   — |j                  dt        «      }|j                  dt        «      }g }|dd D �cg c]  }t        t	        ||«      «      | z   ‘Œ }}|j                  t        t	        t        |d   «      «      «       t        t	        t        |«      «      }t        |«      D ]?  \  }	}
 ||
||	   d¬«      }d||	   z  g|t        |
«      z
  z  |z   }|j                  |«       ŒA t        |dd	iŽ}d
j                  d„ |D «       «      S c c}w )a»  
    Glues together two sets of strings using the amount of space requested.
    The idea is to prettify.

    ----------
    space : int
        number of spaces for padding
    lists : str
        list of str which being joined
    strlen : callable
        function used to calculate the length of each str. Needed for unicode
        handling.
    justfunc : callable
        function used to justify str. Needed for unicode handling.
    ÚstrlenÚjustfuncNéÿÿÿÿÚleft)Úmodeú ÚstrictTú
c              3  ó>   K  — | ]  }d j                  |«      –— Œ y­w)Ú N)Újoin)Ú.0Úliness     ú\/var/www/pod-logistic/pod-ai/venv/lib/python3.12/site-packages/pandas/io/formats/printing.pyú	<genexpr>zadjoin.<locals>.<genexpr>@   s   è ø€ Ò8¨�R—W‘W˜U—^Ñ8ùs   ‚)	ÚpopÚlenÚ_adj_justifyÚmaxÚmapÚappendÚ	enumerateÚzipr   )ÚspaceÚlistsÚkwargsr   r   ÚnewListsÚxÚlengthsÚmaxLenÚiÚlstÚnlÚtoJoins                r"   Úadjoinr7   #   s  € ð  �Z‰Z˜¤#Ó&€FØ�z‰z˜*¤lÓ3€Hà€HØ49¸#¸2°JÖ?¨qŒs”3�v˜q“>Ó" UÓ*Ð?€GÐ?à‡N�N”3”sœ3  b¡	Ó*Ó+Ô,Ü””S˜%“Ó!€FÜ˜EÓ"ò ‰ˆˆ3Ù�c˜7 1™:¨FÔ3ˆØ�W˜Q‘ZÑÐ  F¬S°«XÑ$5Ñ6¸"Ñ<ˆØ�‰˜Õðô �(Ð( 4Ñ(€FØ�9‰9Ñ8°Ô8Ó8Ð8ùò @s   ¶Dc                óî   — |dk(  r| D �cg c]  }|j                  |«      ‘Œ c}S |dk(  r| D �cg c]  }|j                  |«      ‘Œ c}S | D �cg c]  }|j                  |«      ‘Œ c}S c c}w c c}w c c}w )zB
    Perform ljust, center, rjust against string or list-like
    r   Úcenter©Úljustr9   Úrjust)ÚtextsÚmax_lenr   r0   s       r"   r&   r&   C   sl   € ð ˆv‚~Ø*/Ö0 Q�—‘˜Õ Ò0Ð0Ø	�Ò	Ø+0Ö1 a�—‘˜Õ!Ò1Ð1à*/Ö0 Q�—‘˜Õ Ò0Ð0ùò	 1ùâ1ùâ0ó   ŠA(®A-ÁA2c                óì  — t        | t        «      rd}n#t        | t        «      rd}nt        | d«      rdnd}|du rd}n|xs t	        d«      xs t        | «      }t        | «      }g }d}t        |«      D ]1  \  }	}
|�	|	|k\  rd	} n#|j                  t        |
|d
z   fd|i|¤Ž«       Œ3 dj                  |«      }|r|dz  }n#t        | t        «      rt        | «      d
k(  r|dz  }|j                  |¬«      S )z¶
    internal. pprinter for iterables. you should probably use pprint_thing()
    rather than calling this directly.

    bounds length of printed sequence, depending on options
    z
{{{body}}}zfrozenset({{{body}}})Ú__setitem__z[{body}]z({body})FNÚmax_seq_itemsTé   ú, ú, ...ú,)Úbody)Ú
isinstanceÚsetÚ	frozensetÚhasattrr   r%   Úiterr*   r)   Úpprint_thingr   ÚtupleÚformat)ÚseqÚ	_nest_lvlrB   ÚkwdsÚfmtÚ	max_itemsÚsÚrÚmax_items_reachedr3   ÚitemrG   s               r"   Ú_pprint_seqrY   g   s  € ô �#”sÔØ‰Ü	�CœÔ	#Ø%‰ä# C¨Ô7‰j¸Zˆà˜ÑØ‰	à!ÒL¤Z°Ó%@ÒLÄCÈÃHˆ	äˆS‹	€Aà
€AØÐÜ˜Q“<ò Y‰ˆˆ4ØÐ!¨¨YªØ $ÐÙØ	�‰”˜d I°¡MÑWÀÐWÐRVÑWÕXð	Yð
 �9‰9�Q‹<€DáØ�‰‰Ü	�CœÔ	¤C¨£H°¢MØ�‰ˆà�:‰:˜4ˆ:Ó Ð ó    c                óØ  — d}g }d}|du rt        | «      }n|xs t        d«      xs t        | «      }t        | j                  «       «      d| D ]G  \  }}	|j	                  |j                  t        ||dz   fd|i|¤Žt        |	|dz   fd|i|¤Ž¬«      «       ŒI |t        | «      k  r$|j                  dj                  |«      d	z   ¬
«      S |j                  dj                  |«      ¬
«      S )zy
    internal. pprinter for iterables. you should probably use pprint_thing()
    rather than calling this directly.
    z{{{things}}}z{key}: {val}FrB   NrC   )ÚkeyÚvalrD   rE   )Úthings)r%   r   ÚlistÚitemsr)   rO   rM   r   )
rP   rQ   rB   rR   rS   ÚpairsÚpfmtÚnitemsÚkÚvs
             r"   Ú_pprint_dictrf   �   s÷   € ð €CØ€Eà€Dà˜ÑÜ�S“‰àÒI¤*¨_Ó"=ÒIÄÀSÃˆä�S—Y‘Y“[Ó! ' 6Ð*ò 
‰ˆˆ1Ø�‰Ø�K‰KÜ   I°¡MÑWÀÐWÐRVÑWÜ   I°¡MÑWÀÐWÐRVÑWð ó õ	
ð
ð ”�C“ÒØ�z‰z §¡¨5Ó!1°GÑ!;ˆzÓ<Ð<à�z‰z §¡¨5Ó!1ˆzÓ2Ð2rZ   c                óT  ‡— |f	 	 	 	 	 dˆfd„}t        | d«      rt        | «      S t        | t        «      r|t	        d«      k  rt        | |d|¬«      }|S t        | «      r |t	        d«      k  rt        | ||||¬«      }|S t        | t        «      r|rd || «      › d�}|S  || «      }|S )	a3  
    This function is the sanctioned way of converting objects
    to a string representation and properly handles nested sequences.

    Parameters
    ----------
    thing : anything to be formatted
    _nest_lvl : internal use only. pprint_thing() is mutually-recursive
        with pprint_sequence, this argument is used to keep track of the
        current nesting level, and limit it.
    escape_chars : list[str] or Mapping[str, str], optional
        Characters to escape. If a Mapping is passed the values are the
        replacements
    default_escapes : bool, default False
        Whether the input escape characters replaces or adds to the defaults
    max_seq_items : int or None, default None
        Pass through to other pretty printers to limit sequence printing

    Returns
    -------
    str
    c                óð   •— dddddœ}t        |t        «      r0‰r|j                  |«       n|}t        |j	                  «       «      }n|xs d}t        | «      }|D ]  }|j                  |||   «      }Œ |S )Nz\tz\nz\rz\')ú	r   úú'© )rH   r   Úupdater_   ÚkeysÚstrÚreplace)ÚthingÚescape_charsÚ	translateÚresultÚcÚdefault_escapess        €r"   Úas_escaped_stringz'pprint_thing.<locals>.as_escaped_stringÍ   s�   ø€ ð !¨°UÀÑGˆ	Ü�l¤GÔ,ÙØ× Ñ  Õ.à(�	Ü × 1Ñ 1Ó 3Ó4‰Là'Ò-¨2ˆLä�U“ˆØò 	5ˆAØ—^‘^ A y°¡|Ó4‰Fð	5àˆrZ   Ú__next__zdisplay.pprint_nest_depthT)Úquote_stringsrB   ©rr   ry   rB   rk   )rq   r	   rr   úEscapeChars | NoneÚreturnro   )rK   ro   rH   r   r   rf   r   rY   )rq   rQ   rr   rv   ry   rB   rw   rt   s      `    r"   rM   rM   ®   sè   ø€ ð@ 8DðØðØ"4ðà	õô$ ˆu�jÔ!Ü�5‹zÐÜ	�Eœ7Ô	#¨	´JØ#ó5ò )ô Ø�9¨DÀô
ˆð& €Mô! 
�UÔ	 	¬JÐ7RÓ,SÒ SÜð ØØ%Ø'Ø'ô	
ˆð €Mô 
�Eœ3Ô	¡MØÑ& uÓ-Ð.¨aÐ0ˆð €Mñ # 5Ó)ˆà€MrZ   c                ó<   — t        | «      }|j                  ||«      S ©N)rM   Úencode)ÚobjectÚencodingÚerrorsÚvalues       r"   Úpprint_thing_encodedr„   ú   s   € ô ˜Ó €EØ�<‰<˜ &Ó)Ð)rZ   c                ó  ‡— dt         j                  vry ddlm}  |«       }|€y |j                  j
                  }d}| r2||vr#ddlm} ddlm	Š  G ˆfd„d|«      } |«       ||<   d	||   _
        y ||v rd
||   _
        y y )NÚIPythonr   )Úget_ipythonz!application/vnd.dataresource+json)ÚBaseFormatter©Ú
ObjectNamec                  ó&   •— e Zd Z W ° d«      ZefZy)ú<enable_data_resource_formatter.<locals>.TableSchemaFormatterÚ_repr_data_resource_N)Ú__name__Ú
__module__Ú__qualname__Úprint_methodÚdictÚ_return_typer‰   s   €r"   ÚTableSchemaFormatterrŒ     s   ø„ Ú)Ð*@ÓA�Ø $˜w‘rZ   r”   TF)ÚsysÚmodulesr†   r‡   Údisplay_formatterÚ
formattersÚIPython.core.formattersrˆ   Ú	traitletsrŠ   Úenabled)Úenabler‡   Úipr˜   Úmimetyperˆ   r”   rŠ   s          @r"   Úenable_data_resource_formatterrŸ     s�   ø€ ØœŸ™Ñ#àÝ#ñ 
‹€BØ	€zàà×%Ñ%×0Ñ0€JØ2€HáØ˜:Ñ%å=Ý,ö' }ô 'ñ
 $8Ó#9ˆJ�xÑ à'+ˆ
�8ÑÕ$à	�ZÑ	Ø',ˆ
�8ÑÕ$ð 
 rZ   c                ó    — t        | dd|¬«      S )N)ri   rj   r   Trz   ©rM   )rq   rB   s     r"   Údefault_pprintr¢   #  s   € ÜØØ'ØØ#ô	ð rZ   c                óH  ‡"— t        «       \  }}|€t        d«      xs d}|€t        | «      j                  }|r"t	        |«      }dd|dz   z  › �}	dd|dz   z  › �}
nd}	d}
t	        | «      }|rd	dt	        |«      z  z   }nd
}t        d«      xs |}||kD  }t        «       Š"	 	 	 	 	 	 	 	 	 	 	 	 dˆ"fd„}dˆ"fd„}d}|dk(  rd|› �}|S |dk(  r|s || d   «      }d|› d|› �}|S |dk(  r%|s# || d   «      } || d   «      }d|› d|› d|› �}|S |dk(  rg }| dd D �cg c]
  } ||«      ‘Œ }}n]||kD  rAt        |dz  d«      }| d| D �cg c]
  } ||«      ‘Œ }}| | d D �cg c]
  } ||«      ‘Œ }}ng }| D �cg c]
  } ||«      ‘Œ }}|r¢|rt        ||«      \  }}n�|s:t	        dj                  |«      «      |k  rt	        dj                  |«      «      |k  sTt         ||«       ||«      «      }|D �cg c]  }|j                  |«      ‘Œ }}|D �cg c]  }|j                  |«      ‘Œ }}|rŽ|t	        |
«      z
  }|d   }d}t        t        dt	        |«      dz   «      «      D ]!  }t        ||¬«      }t	        |«      |k  sŒ|} n |D �cg c]  }t        ||¬«      ‘Œ }}|D �cg c]  }t        ||¬«      ‘Œ }}d}|
}|D ]  }||z   dz   }  |||| ||
«      \  }}Œ |r||j                  «       |
z   dz   z  }|
}|dd D ]  }!|!|z   dz   }  |||| ||
«      \  }}Œ  ||||d   |dz
  |
«      \  }}||z  }d|j                  d«      z   }||z  }t	        |«      |kD  s|r||	z  }n|dz  }d|t	        |
«      d z   }|S c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w )aÛ  
    Return the formatted obj as a unicode string

    Parameters
    ----------
    obj : object
        must be iterable and support __getitem__
    formatter : callable
        string formatter for an element
    is_justify : bool
        should justify the display
    name : name, optional
        defaults to the class name of the obj
    indent_for_name : bool, default True
        Whether subsequent lines should be indented to
        align with the name.
    line_break_each_value : bool, default False
        If True, inserts a line break for each value of ``obj``.
        If False, only break lines when the a line of values gets wider
        than the display width.

    Returns
    -------
    summary string
    Nzdisplay.widthéP   r   r   rC   é   z
 z,
 rF   zdisplay.max_seq_itemsc                óÄ   •— ‰j                  |j                  «       «      ‰j                  |j                  «       «      z   |k\  r| |j                  «       z  } |}||z  }| |fS r~   )r%   Úrstrip)rU   Úlinerƒ   Údisplay_widthÚnext_line_prefixÚadjs        €r"   Ú_extend_linez+format_object_summary.<locals>._extend_linej  sW   ø€ ð �7‰7�4—;‘;“=Ó! C§G¡G¨E¯L©L«NÓ$;Ñ;¸}ÒLØ�—‘“ÑˆAØ#ˆDØ�‰ˆØ�$ˆwˆrZ   c                ó2   •— | rt        ˆfd„| D «       «      S y)Nc              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr~   ©r%   )r    r0   r«   s     €r"   r#   z:format_object_summary.<locals>.best_len.<locals>.<genexpr>u  s   øè ø€ Ò2 a�s—w‘w˜q—zÑ2ùs   ƒr   )r'   )Úvaluesr«   s    €r"   Úbest_lenz'format_object_summary.<locals>.best_lens  s   ø€ ÙÜÓ2¨6Ô2Ó2Ð2àrZ   rD   r   z[]ú[ú]r   é
   )rB   r   z...)rU   ro   r¨   ro   rƒ   ro   r©   Úintrª   ro   r|   ztuple[str, str])r°   ú	list[str]r|   rµ   )r   r   ÚtyperŽ   r%   Úget_adjustmentÚminÚ_justifyr   r'   r<   ÚreversedÚrangerY   r§   )#ÚobjÚ	formatterÚ
is_justifyÚnameÚindent_for_nameÚline_break_each_valuer©   Ú_Úname_lenÚspace1Úspace2ÚnÚseprB   Úis_truncatedr¬   r±   ÚcloseÚsummaryÚfirstÚlastÚheadr0   ÚtailÚ
max_lengthÚ	max_spacerƒ   rT   Ú	num_itemsÚpprinted_seqr¨   Ú
head_valueÚwordÚ	tail_itemr«   s#                                     @r"   Úformat_object_summaryr×   ,  s¿  ø€ ôB (Ó)Ñ€M�1ØÐÜ" ?Ó3Ò9°rˆØ€|Ü�C‹y×!Ñ!ˆáÜ�t“9ˆØ�s˜h¨™lÑ+Ð-Ð.ˆØ�s˜h¨™lÑ+Ð-Ð.‰àˆØˆäˆC‹€AÙð �sœS ›Y‘Ñ&‰àˆÜÐ6Ó7Ò<¸1€Mð �}Ñ$€Lô Ó
€CðØðØðØ"%ðØ69ðØMPðà	õõð €EàˆA‚vØ�u�g�,ˆðp €Nðo 
ˆaŠÑ-Ù˜#˜a™&Ó!ˆØ�e�W˜A˜e˜WÐ%ˆðj €Nði 
ˆaŠÑ-Ù˜#˜a™&Ó!ˆÙ˜˜R™Ó!ˆØ�e�W˜B˜t˜f A e WÐ-ˆðb €Nð_ ˜AÒàˆDØ*-¨b¨c¨(Ö3 Q‘I˜a•LÐ3ˆDÑ3Ø�ÒÜ�M QÑ&¨Ó+ˆAØ*-¨b¨q¨'Ö2 Q‘I˜a•LÐ2ˆDÐ2Ø*-¨q¨b¨c¨(Ö3 Q‘I˜a•LÐ3ˆDÑ3àˆDØ*-Ö. Q‘I˜a•LÐ.ˆDÐ.ñ Ù$ô & d¨DÓ1‘
�‘dÙÜ�D—I‘I˜d“OÓ$ }Ò4Ü˜Ÿ	™	 $›Ó(¨=Ò8ô !¡¨$£±¸$³Ó@�
Ø59Ö:°˜Ÿ™ 
Õ+Ð:�Ð:Ø59Ö:°˜Ÿ™ 
Õ+Ð:�Ð:ñ !ð
 &¬¨F«Ñ3ˆIØ˜‘GˆEØˆIÜ%¤e¨A¬s°5«z¸A©~Ó&>Ó?ò �	Ü*¨5À	ÔJ�Ü�|Ó$ yÓ0Ø )�IÙð	ð
 FJÖJÀ”K °Ö;ÐJˆDÐJØEIÖJÀ”K °Ö;ÐJˆDÐJàˆØˆàò 	UˆJØ Ñ# cÑ)ˆDÙ(¨°$¸¸mÈVÓT‰MˆG‘Tð	Uñ à�t—{‘{“} vÑ-°Ñ5Ñ5ˆGØˆDà˜c˜r˜ò 	UˆIØ˜s‘? SÑ(ˆDÙ(¨°$¸¸mÈVÓT‰MˆG‘Tð	Uñ
 % W¨d°D¸±H¸mÈaÑ>OÐQWÓX‰ˆ�Ø�4‰ˆð �e—l‘l 3Ó'Ñ'ˆØ�5Ñˆäˆw‹<˜=Ò)Ñ-BØ�vÑ‰Gà�s‰NˆGð ˜¤ F£ Ð.Ñ.ˆà€NùòY 4ùò 3ùÚ3ùò /ùò ;ùÚ:ùò" KùÚJs0   ÄM<ÅNÅNÅ6NÇ3NÈNÊNÊ%Nc                ó   — | |z   }dgt        |d   «      z  }|D ]D  }|D �cg c]  }t        |«      ‘Œ }}t        ||d¬«      D ��cg c]  \  }}t        ||«      ‘Œ }}}ŒF | D �	cg c]   }	t        d„ t        |	|d¬«      D «       «      ‘Œ" }
}	|D �	cg c]   }	t        d„ t        |	|d¬«      D «       «      ‘Œ" }}	|
|fS c c}w c c}}w c c}	w c c}	w )aà  
    Justify items in head and tail, so they are right-aligned when stacked.

    Parameters
    ----------
    head : list-like of list-likes of strings
    tail : list-like of list-likes of strings

    Returns
    -------
    tuple of list of tuples of strings
        Same as head and tail, but items are right aligned when stacked
        vertically.

    Examples
    --------
    >>> _justify([["a", "b"]], [["abc", "abcd"]])
    ([('  a', '   b')], [('abc', 'abcd')])
    r   T)r   c              3  óD   K  — | ]  \  }}|j                  |«      –— Œ y ­wr~   ©r<   ©r    r0   r>   s      r"   r#   z_justify.<locals>.<genexpr>ø  ó   è ø€ ÒS¡: 1 gˆa�g‰g�g×ÑSùó   ‚ c              3  óD   K  — | ]  \  }}|j                  |«      –— Œ y ­wr~   rÚ   rÛ   s      r"   r#   z_justify.<locals>.<genexpr>ü  rÜ   rÝ   )r%   r+   r'   rN   )rÎ   rÏ   ÚcombinedrÐ   Ú	inner_seqrX   Úlengthr0   ÚyrP   Úhead_tuplesÚtail_tupless               r"   rº   rº   ×  s÷   € ð, �d‰{€Hð �”s˜8 A™;Ó'Ñ'€JØò Rˆ	Ø(1Ö2 ”#�d•)Ð2ˆÐ2Ü,/°
¸FÈ4Ô,P×Q¡D A q”c˜!˜Q•iÐQˆ
ÒQðRð öàô 	ÑS´°S¸*ÈTÔ1RÔSÕSð€Kð ð öàô 	ÑS´°S¸*ÈTÔ1RÔSÕSð€Kð ð ˜Ð#Ð#ùò 3ùÛQùòùòs   ¡B;ÁC Á%%CÂ%Cc                  ó   — e Zd ZdZdd„Zy)Ú
PrettyDictz.Dict extension to support abbreviated __repr__c                ó   — t        | «      S r~   r¡   ©Úselfs    r"   Ú__repr__zPrettyDict.__repr__  s   € Ü˜DÓ!Ð!rZ   N)r|   ro   )rŽ   r�   r�   Ú__doc__rê   rl   rZ   r"   ræ   ræ     s
   „ Ù8ô"rZ   ræ   c                  ó.   — e Zd Zdd„Zdd„Zdd	d„Zd
d„Zy)Ú_TextAdjustmentc                ó$   — t        d«      | _        y )Nzdisplay.encoding)r   r�   rè   s    r"   Ú__init__z_TextAdjustment.__init__
  s   € Ü"Ð#5Ó6ˆ�rZ   c                ó   — t        |«      S r~   r¯   ©ré   Útexts     r"   r%   z_TextAdjustment.len  s   € Ü�4‹yÐrZ   c                óî   — |dk(  r|D �cg c]  }|j                  |«      ‘Œ c}S |dk(  r|D �cg c]  }|j                  |«      ‘Œ c}S |D �cg c]  }|j                  |«      ‘Œ c}S c c}w c c}w c c}w )zJ
        Perform ljust, center, rjust against string or list-like
        r   r9   r:   )ré   r=   r>   r   r0   s        r"   Újustifyz_TextAdjustment.justify  sl   € ð �6Š>Ø.3Ö4¨�A—G‘G˜GÕ$Ò4Ð4Ø�XÒØ/4Ö5¨!�A—H‘H˜WÕ%Ò5Ð5à.3Ö4¨�A—G‘G˜GÕ$Ò4Ð4ùò	 5ùâ5ùâ4r?   c                óN   — t        |g|¢­| j                  | j                  dœ|¤ŽS )N)r   r   )r7   r%   rô   )ré   r,   r-   r.   s       r"   r7   z_TextAdjustment.adjoin  s&   € Ü�eÐV˜eÑV¨D¯H©H¸t¿|¹|ÑVÈvÑVÐVrZ   N©r|   ÚNone©rò   ro   r|   rµ   ©Úright)r=   r	   r>   rµ   r   ro   r|   r¶   )r,   rµ   r-   r	   r.   r	   r|   ro   )rŽ   r�   r�   rï   r%   rô   r7   rl   rZ   r"   rí   rí   	  s   „ ó7óô	5ôWrZ   rí   c                  óB   ‡ — e Zd Zdˆ fd„Zdd„Z	 d	 	 	 	 	 	 	 dd„Zˆ xZS )Ú_EastAsianTextAdjustmentc                óp   •— t         ‰| �  «        t        d«      rd| _        nd| _        ddddddœ| _        y )Nz!display.unicode.ambiguous_as_wider¥   rC   )ÚNaÚNÚWÚFÚH)Úsuperrï   r   Úambiguous_widthÚ_EAW_MAP)ré   Ú	__class__s    €r"   rï   z!_EastAsianTextAdjustment.__init__   s;   ø€ Ü‰ÑÔÜÐ9Ô:Ø#$ˆDÕ à#$ˆDÔ ð
  ! q¨q°q¸qÑAˆ�rZ   c                ób   ‡ — t        |t        «      st        |«      S t        ˆ fd„|D «       «      S )zN
        Calculate display width considering unicode East Asian Width
        c              3  ó|   •K  — | ]3  }‰j                   j                  t        |«      ‰j                  «      –— Œ5 y ­wr~   )r  Úgetr   r  )r    ru   ré   s     €r"   r#   z/_EastAsianTextAdjustment.len.<locals>.<genexpr>3  s3   øè ø€ ò 
ØMNˆD�M‰M×ÑÔ.¨qÓ1°4×3GÑ3G×Hñ
ùs   ƒ9<)rH   ro   r%   Úsumrñ   s   ` r"   r%   z_EastAsianTextAdjustment.len,  s3   ø€ ô ˜$¤Ô$Ü�t“9Ðäó 
ØRVô
ó 
ð 	
rZ   c                ó$  ‡ ‡— dˆˆ fd„}|dk(  r%|D �cg c]  }|j                   ||«      «      ‘Œ c}S |dk(  r%|D �cg c]  }|j                   ||«      «      ‘Œ c}S |D �cg c]  }|j                   ||«      «      ‘Œ c}S c c}w c c}w c c}w )Nc                óD   •— ‰‰j                  | «      z
  t        | «      z   S r~   r¯   )Útr>   ré   s    €€r"   Ú_get_padz2_EastAsianTextAdjustment.justify.<locals>._get_pad;  s   ø€ Ø˜TŸX™X a›[Ñ(¬3¨q«6Ñ1Ð1rZ   r   r9   )r  ro   r|   rµ   r:   )ré   r=   r>   r   r  r0   s   ` `   r"   rô   z _EastAsianTextAdjustment.justify7  s~   ù€ ö	2ð �6Š>Ø27Ö8¨Q�A—G‘G™H Q›KÕ(Ò8Ð8Ø�XÒØ38Ö9¨a�A—H‘H™X a›[Õ)Ò9Ð9à27Ö8¨Q�A—G‘G™H Q›KÕ(Ò8Ð8ùò	 9ùâ9ùâ8s   “B½BÁ"Brö   rø   rù   ©r=   zIterable[str]r>   rµ   r   ro   r|   r¶   )rŽ   r�   r�   rï   r%   rô   Ú__classcell__)r  s   @r"   rü   rü     s9   ø„ õ
Bó	
ð ?Fð9Ø"ð9Ø-0ð9Ø8;ð9à	÷9rZ   rü   c                 óD   — t        d«      } | r
t        «       S t        «       S )Nz display.unicode.east_asian_width)r   rü   rí   )Úuse_east_asian_widths    r"   r¸   r¸   F  s#   € Ü%Ð&HÓIÐÙÜ'Ó)Ð)äÓ Ð rZ   )r,   rµ   r-   r¶   r.   r	   r|   ro   rù   r  )r   N)
rP   r   rQ   rµ   rB   ú
int | NonerR   r	   r|   ro   )
rP   r   rQ   rµ   rB   r  rR   r	   r|   ro   )r   NFFN)rq   r€   rQ   rµ   rr   r{   rv   Úboolry   r  rB   r  r|   ro   )zutf-8rp   )r€   r€   r�   ro   r‚   ro   r|   Úbytes)rœ   r  r|   r÷   r~   )rq   r	   rB   r  r|   ro   )TNTF)r½   r   r¾   r   r¿   r  rÀ   z
str | NonerÁ   r  rÂ   r  r|   ro   )rÎ   úlist[Sequence[str]]rÏ   r  r|   z3tuple[list[tuple[str, ...]], list[tuple[str, ...]]])r|   rí   ),rë   Ú
__future__r   Úcollections.abcr   r   r   r   r•   Útypingr   r	   r
   r   Úunicodedatar   Úpandas._configr   Úpandas.core.dtypes.inferencer   Úpandas.io.formats.consoler   Úpandas._typingr   ro   r   Ú__annotations__r   r   r7   r&   rY   rf   rM   r„   rŸ   r¢   r×   rº   r’   ræ   rí   rü   r¸   rl   rZ   r"   ú<module>r      s%  ðòõ #÷ó ó ÷ó õ )å %å 4å 6áÝ'Ø   c Ñ*¨X°c©]Ñ:€ˆYÓ :Ùˆeƒn€Ùˆeƒn€ó9ô@	1ðJ DHð%!Ø	ð%!Ø!ð%!Ø6@ð%!ØQTð%!àó%!ðR CGð3Ø	ð3Ø ð3Ø5?ð3ØPSð3àó3ðB Ø'+Ø!ØØ $ðIØðIàðIð %ðIð ð	Ið
 ðIð ðIð 	óIðZ <Eð*Øð*Ø!ð*Ø58ð*à
ó*ó-ôDð ØØ Ø"'ðhØ	ðhàðhð ðhð ð	hð
 ðhð  ðhð 	óhðV($Ø
ð($Ø%8ð($à8ó($ôV"��c˜3�h‘ô "÷Wñ Wô,$9˜ô $9ôN!rZ   