Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.12/site-packages/pandas/io/formats/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.12/site-packages/pandas/io/formats/__pycache__/excel.cpython-312.pyc

�

Mٜg����dZddlmZddlmZmZmZmZddlZddl	Z	ddl
Z
ddlmZm
Z
mZmZddlZddlZddlmZddlmZddlmZdd	lmZdd
lmZmZddlmZm Z m!Z!m"Z"ddl#m$cm%Z&ddl'm(Z(dd
l)m*Z*ddl+m,Z,m-Z-ddl.m/Z/ddl0m1Z1erddl2m3Z3m4Z4m5Z5m6Z6ddlm7Z7Gd�d�Z8Gd�de8�Z9Gd�d�Z:Gd�d�Z;y)zC
Utilities for conversion to writer-agnostic Excel representation.
�)�annotations)�Hashable�Iterable�Mapping�SequenceN)�
TYPE_CHECKING�Any�Callable�cast)�is_list_like)�doc)�find_stack_level)�missing)�is_float�	is_scalar)�	DataFrame�Index�
MultiIndex�PeriodIndex)�_shared_docs)�CSS4_COLORS)�CSSResolver�
CSSWarning)�get_level_lengths)�pprint_thing)�FilePath�
IndexLabel�StorageOptions�WriteExcelBuffer��ExcelWriterc�6�eZdZdZeZ			d									dd�Zy)�	ExcelCell��row�col�val�style�
mergestart�mergeendNc�X�||_||_||_||_||_||_y�Nr$)�selfr%r&r'r(r)r*s       �B/usr/local/lib/python3.12/site-packages/pandas/io/formats/excel.py�__init__zExcelCell.__init__Cs.�������������
�$��� ��
�)NNN)
r%�intr&r1r)�
int | Noner*r2�return�None)�__name__�
__module__�__qualname__�
__fields__�	__slots__r/�r0r.r#r#?sL��I�J��I��!%�#�!�
�!��!��
!��!�
�!r0r#c�@��eZdZ																d�fd�Z�xZS)�CssExcelCellc	����|rK|rI|||fD�
�cic]\}
}|
j�|��}}
}t|j��}||�}t�
|�d|||d�|	��ycc}}
w)N�r%r&r'r(r:)�lower�	frozenset�items�superr/)r-r%r&r'r(�
css_styles�css_row�css_col�
css_converter�kwargs�prop�declaration_dict�unique_declarations�	__class__s             �r.r/zCssExcelCell.__init__Us�����-�4>�g�w�>N�3O� �3O�i�d�C��
�
��c�!�3O�
� �#,�,<�,B�,B�,D�"E��!�"5�6�E�
���J�S�c�s�%�J�6�J�� s�A$)r%r1r&r1r(�dict | NonerCz3dict[tuple[int, int], list[tuple[str, Any]]] | NonerDr1rEr1rF�Callable | Noner3r4)r5r6r7r/�
__classcell__)rKs@r.r<r<Tsf���K�
�K��K�
�K�H�
K��K��K�'�K�
�K�Kr0r<c���eZdZUdZeZddddddd�Zdddddddddddddd�
Zdddd	�Zd
ddd
d�Z	dD��cic]}|j�|��c}}Zded<d.d/d�Z
e�Z				d0d�Z				d0d�Zd1d�Zd2d�Zd3d�Zd4d�Z				d5d�Zd6d�Zd7d�Zd8d�Zd9d�Zd:d�Zd;d �Z				d<d!�Zd4d"�Zd4d#�Zd=d$�Z d>d%�Z!d4d&�Z"d=d'�Z#d?d(�Z$d@d)�Z%dAd*�Z&dBd+�Z'dCd,�Z(dBd-�Z)ycc}}w)D�CSSToExcelConverteraK
    A callable for converting CSS declarations to ExcelWriter styles

    Supports parts of CSS 2.2, with minimal CSS 3.0 support (e.g. text-shadow),
    focusing on font styling, backgrounds, borders and alignment.

    Operates by first computing CSS styles in a fairly generic
    way (see :meth:`compute_css`) then determining Excel style
    properties from CSS properties (see :meth:`build_xlstyle`).

    Parameters
    ----------
    inherited : str, optional
        CSS declarations understood to be the containing scope for the
        CSS processed by :meth:`__call__`.
    �top�center�bottom)rQztext-top�middle�baselinerSztext-bottomTF)
�bold�bolder�600�700�800�900�normal�lighter�100�200�300�400�500)r\�italic�oblique����)�serifz
sans-serif�cursive�fantasy)
�dashed�
mediumDashDot�
dashDotDot�hair�dotted�mediumDashDotDot�double�dashDot�slantDashDot�mediumDashedzdict[str, str] | None�	inheritedNc��|�|j|�|_nd|_tj|j�|_yr,)�compute_cssrv�	functools�cache�_call_uncached�_call_cached)r-rvs  r.r/zCSSToExcelConverter.__init__�s:��� �!�-�-�i�8�D�N�!�D�N�&�O�O�D�,?�,?�@��r0c�$�|j|�S)a�
        Convert CSS declarations to ExcelWriter style.

        Parameters
        ----------
        declarations : str | frozenset[tuple[str, str]]
            CSS string or set of CSS declaration tuples.
            e.g. "font-weight: bold; background: blue" or
            {("font-weight", "bold"), ("background", "blue")}

        Returns
        -------
        xlstyle : dict
            A style as interpreted by ExcelWriter when found in
            ExcelCell.style.
        )r|)r-�declarationss  r.�__call__zCSSToExcelConverter.__call__�s��&� � ��.�.r0c�\�|j||j�}|j|�Sr,)rxrv�
build_xlstyle)r-r~�
propertiess   r.r{z"CSSToExcelConverter._call_uncached�s+���%�%�l�D�N�N�C�
��!�!�*�-�-r0c����|j|�|j|�|j|�|j|�|j	|�d�}d�fd���|�|S)N)�	alignment�border�fill�font�
number_formatc���t|j��D]*\}}|�||=�t|t�s��|�|r�(||=�,y)z4Remove key where value is None, through nested dictsN)�listrA�
isinstance�dict)�d�k�v�remove_nones   �r.r�z6CSSToExcelConverter.build_xlstyle.<locals>.remove_none�sB����Q�W�W�Y����1��9��!����4�(���N���a�D�
(r0)r��dict[str, str | None]r3r4)�build_alignment�build_border�
build_fill�
build_font�build_number_format)r-�props�outr�s   @r.r�z!CSSToExcelConverter.build_xlstyle�s`����-�-�e�4��'�'��.��O�O�E�*��O�O�E�*�!�5�5�e�<�
��	!�	�C���
r0c�h�|jd�|j|�|j|�d�S)Nz
text-align)�
horizontal�vertical�	wrap_text)�get�_get_vertical_alignment�_get_is_wrap_text�r-r�s  r.r�z#CSSToExcelConverter.build_alignment�s6�� �)�)�L�1��4�4�U�;��/�/��6�
�	
r0c�`�|jd�}|r|jj|�Sy)Nzvertical-align)r��VERTICAL_MAP)r-r��vertical_aligns   r.r�z+CSSToExcelConverter._get_vertical_alignments.�����#3�4����$�$�(�(��8�8�r0c�F�|jd��yt|ddv�S)Nzwhite-space)�nowrap�prezpre-line)r��boolr�s  r.r�z%CSSToExcelConverter._get_is_wrap_texts*���9�9�]�#�+���E�-�(�0M�M�N�Nr0c�*�dD�cic]�}||j|jd|�d��|jd|�d��|j|jd|�d����|j|jd|�d���d����c}Scc}w)N�rQ�rightrS�leftzborder-z-stylez-widthz-color)r(�color)�
_border_styler��color_to_excel)r-r��sides   r.r�z CSSToExcelConverter.build_borders���;�

�;��
��+�+��I�I���v�V�4�5��I�I���v�V�4�5��'�'��	�	�G�D�6��2H�(I�J��
�,�,�U�Y�Y����f�7M�-N�O�
�
�;�

�
	
��

s�BBc�,�|�|�|�y|�|�y|dvry|j|�}|�y|dvr|S|dk(ry|dk(r|dvryy|dk(r|dvryy	||jvr|j|Stjd
t	|���t
t
���y)N�none)r��hidden)N�groove�ridge�inset�outset�solidrrrp)ro�thinrqrlruzUnhandled border style format: ��
stacklevel)�_get_width_name�BORDER_STYLE_MAP�warnings�warn�reprrr)r-r(�widthr��
width_names     r.r�z!CSSToExcelConverter._border_styles����=�U�]�u�}���=�U�]���&�&���)�)�%�0�
�����I�I����H����H���-�-��%��H���-�-��!�
�d�+�+�
+��(�(��/�/��M�M�1�$�u�+��?��+�-�
�
r0c�J�|j|�}|dkry|dkry|dkryy)Ng�h㈵��>g�������?r�gffffff@�medium�thick)�_width_to_float)r-�width_inputr�s   r.r�z#CSSToExcelConverter._get_width_nameVs3���$�$�[�1���4�<��
�S�[��
�S�[��r0c�,�|�d}|j|�S)N�2pt)�_pt_to_float)r-r�s  r.r�z#CSSToExcelConverter._width_to_float`s���=��E�� � ��'�'r0c�\�|jd�sJ�t|jd��S)N�pt)�endswith�float�rstrip)r-�	pt_strings  r.r�z CSSToExcelConverter._pt_to_floates,���!�!�$�'�'�'��Y�%�%�d�+�,�,r0c�V�|jd�}|dvr|j|�dd�Sy)Nzbackground-color)N�transparentr�r�)�fgColor�patternType)r�r�)r-r��
fill_colors   r.r�zCSSToExcelConverter.build_fillis7���Y�Y�1�2�
��:�:�#�2�2�:�>�w�W�W�;r0c�t�|jd�}t|t�r|jdd�n|}d|iS)Nz
number-format�§�;�format_code)r�r��str�replace)r-r��fcs   r.r�z'CSSToExcelConverter.build_number_formatps6��
�Y�Y��
'��&0��S�&9�R�Z�Z��c�
"�r���r�"�"r0c�V�|j|�}|j|�}|r|dnd|j|�|j|�|j	|�|j|�d|vrdndd|vxsd|j
|jd��|j|�d�	S)Nr�	underline�singlezline-throughr�)	�name�family�sizerVrcr��striker��shadow)	�_get_font_names�_get_decoration�_select_font_family�_get_font_size�_get_is_bold�_get_is_italicr�r��_get_shadow)r-r��
font_names�
decorations    r.r�zCSSToExcelConverter.build_fontus����)�)�%�0�
��)�)�%�0�
�%/�J�q�M�T��.�.�z�:��'�'��.��%�%�e�,��)�)�%�0�&1�Z�&?�(�T�%��3�<���(�(����7�);�<��&�&�u�-�
�	
r0c�`�|jd�}|r|jj|�Sy)Nzfont-weight)r��BOLD_MAP)r-r��weights   r.r�z CSSToExcelConverter._get_is_bold�s+�����=�)����=�=�$�$�V�,�,�r0c�`�|jd�}|r|jj|�Sy)Nz
font-style)r��
ITALIC_MAP)r-r��
font_styles   r.r�z"CSSToExcelConverter._get_is_italic�s+���Y�Y�|�,�
���?�?�&�&�z�2�2�r0c�J�|jd�}|�|j�Sy)Nztext-decorationr:)r��split)r-r�r�s   r.r�z#CSSToExcelConverter._get_decoration�s)���Y�Y�0�1�
��!��#�#�%�%�r0c��d|vryy)Nr�r�r:)r-r�s  r.�_get_underlinez"CSSToExcelConverter._get_underline�s���*�$��r0c�P�d|vr"ttjd|d��Sy)Nztext-shadowz^[^#(]*[1-9])r��re�searchr�s  r.r�zCSSToExcelConverter._get_shadow�s(���E�!���	�	�.�%�
�2F�G�H�H�r0c�$�tjd|jdd��}g}|D]b}|dddk(r|ddjdd�}n.|dddk(r|ddjd	d�}n|j	�}|s�R|j|��d|S)
Nz�(?x)
            (
            "(?:[^"]|\\")+"
            |
            '(?:[^']|\\')+'
            |
            [^'",]+
            )(?=,|\s*$)
        zfont-family�re�"���z\"�'z\')r��findallr�r��strip�append)r-r��font_names_tmpr�r�s     r.r�z#CSSToExcelConverter._get_font_names�s������
�
�I�I�m�R�(�
���
�"�D��B�Q�x�3���A�b�z�)�)�%��5���b�q��S���A�b�z�)�)�%��5���z�z�|����!�!�$�'�#��r0c�N�|jd�}|�|S|j|�S)Nz	font-size)r�r�)r-r�r�s   r.r�z"CSSToExcelConverter._get_font_size�s+���y�y��%���<��K�� � ��&�&r0c�X�d}|D]"}|jj|�}|s�!|S|Sr,)�
FAMILY_MAPr�)r-r�r�r�s    r.r�z'CSSToExcelConverter._select_font_family�s7�����D��_�_�(�(��.�F����
��
�
r0c���|�y|j|�r|j|�S	|j|S#t$r3t	j
dt
|���tt���YywxYw)NzUnhandled color format: r�)	�
_is_hex_color�_convert_hex_to_excel�NAMED_COLORS�KeyErrorr�r�r�rr�r-r's  r.r�z"CSSToExcelConverter.color_to_excel�sv���;�����c�"��-�-�c�2�2�	��$�$�S�)�)���	��M�M�*�4��9�+�6��+�-�
�
�
	�s�6�9A2�1A2c�6�t|jd��S)N�#)r��
startswith)r-�color_strings  r.rz!CSSToExcelConverter._is_hex_color�s���L�+�+�C�0�1�1r0c��|jd�}|j|�r(|ddz|ddzz|ddzzj�S|j�S)Nr
rrfre)�lstrip�_is_shorthand_color�upper�r-r�codes   r.rz)CSSToExcelConverter._convert_hex_to_excel�s]���"�"�3�'���#�#�L�1���G�a�K�$�q�'�A�+�-��Q��!��;�B�B�D�D��:�:�<�r0c�|�|jd�}t|�dk(ryt|�dk(rytd|����)zcCheck if color code is shorthand.

        #FFF is a shorthand as opposed to full #FFFFFF.
        r
�T�FzUnexpected color )r�len�
ValueErrorrs   r.rz'CSSToExcelConverter._is_shorthand_color�sC��
�"�"�3�'���t�9��>��
��Y�!�^���0���?�@�@r0r,)rv�
str | Noner3r4)r~z str | frozenset[tuple[str, str]]r3�dict[str, dict[str, str]])r��Mapping[str, str]r3r)r�rr3zdict[str, bool | str | None])r�rr3r)r�rr3zbool | None)r�rr3z dict[str, dict[str, str | None]])r(rr�rr�r)r�rr3r)r�rr3r�)r�r�r3r�)r�r)r�rr3r�)r�rr3z$dict[str, bool | float | str | None])r�rr3�
Sequence[str])r�rr3r)r�rr3zfloat | None)r�rr3r2)r'rr3r)rr�r3r�)rr�r3r�)*r5r6r7�__doc__rr	r�r�r�rr?r��__annotations__r/rrxrr{r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr)�.0r(s00r.rPrPms����"�L�������
�L���������������H�"����J�����	�J�
��
�E�	���
�u��
���(%�$�A��-�K�/�<�/�	"�/�*.�<�.�	"�.��0
��O�


�&�

�	)�

�5�n�(�
-�X�#�

�&�
�	-�
�$����
�
�4'���"2� �A��A
s�CrPc��eZdZdZdZdZ									d																			dd�Zedd��Zd�Z	dd�Z
dd	�Zdd
�Zdd�Z
dd�Zdd
�Zedd��Zdd�Zdd�Zeed��							d																	dd��Zy)�ExcelFormattera9
    Class for formatting a DataFrame to a list of ExcelCells,

    Parameters
    ----------
    df : DataFrame or Styler
    na_rep: na representation
    float_format : str, default None
        Format string for floating point numbers
    cols : sequence, optional
        Columns to write
    header : bool or sequence of str, default True
        Write out column names. If a list of string is given it is
        assumed to be aliases for the column names
    index : bool, default True
        output row names (index)
    index_label : str or sequence, default None
        Column label for index column(s) if desired. If None is given, and
        `header` and `index` are True, then the index names are used. A
        sequence should be given if the DataFrame uses MultiIndex.
    merge_cells : bool, default False
        Format MultiIndex and Hierarchical Rows as merged cells.
    inf_rep : str, default `'inf'`
        representation for np.inf values (which aren't representable in Excel)
        A `'-'` sign will be added in front of -inf.
    style_converter : callable, optional
        This translates Styler styles (CSS) into ExcelWriter styles.
        Defaults to ``CSSToExcelConverter()``.
        It should have signature css_declarations string -> excel style.
        This is only called for body cells.
    ii@Nc��d|_||_t|t�sA||_|jj�|j}|
�
t�}
|
|_nd|_d|_||_	|��tt|�j|j��std��tt|�j|j��tt|��k7rtd��|j!|��|_	|jj|_
||_||_||_||_||_|	|_y)Nrz,passes columns are not ALL present dataframez.Not all names specified in 'columns' are found)�columns)�
rowcounter�na_repr�r�styler�_compute�datarP�style_converter�dfrr�intersectionr%r
�set�reindex�float_format�index�index_label�header�merge_cells�inf_rep)r-r,r'r0�colsr3r1r2r4r5r+s           r.r/zExcelFormatter.__init__s���������"�i�(��D�K��K�K� � �"����B��&�"5�"7��4C�D� ��D�K�#'�D� �������u�T�{�/�/��
�
�;�<��M�N�N��5��;�+�+�B�J�J�7�8�C��D�	�N�J��O�P�P��j�j��j�.�D�G��w�w�����(�����
�&������&�����r0c�"�ddiddddd�ddd�d�S)	NrVTr�r�rRrQ)r�r�)r��bordersr�r:�r-s r.�header_stylezExcelFormatter.header_styleGs0���T�N��� ��	�)1�e�D�	
�		
r0c�|�t|�r"tj|�r
|j}nvt	|�rktj
|�r
|j}nItj|�rd|j��}n$|j�t|j|z�}t|dd��td��|S)N�-�tzinfoz{Excel does not support datetimes with timezones. Please ensure that datetimes are timezone unaware before writing to Excel.)rr�isnar'r�isposinf_scalarr5�isneginf_scalarr0r��getattrrrs  r.�
_format_valuezExcelFormatter._format_valueTs����S�>�g�l�l�3�/��+�+�C�
�c�]��&�&�s�+��l�l���(�(��-��$�,�,��(���"�"�.��D�-�-��3�4���3��$�'�3��@��
�
�
r0c#��K�|jjdkDr|jstd��|js
|j
sy|j}|j
|jd��}t|�}d}d}|jrIt|jjt�r%t|jjd�dz
}|jr�t|j�D] \}}t||||j �����"tt#||j$|j&��D]�\}\}}}	|j)|	�}
|j+�D]b\}}d\}
}|dkDr
|||z|z}}
t-|||zdz|
||j t/|j0dd�|||j2|
|�	�
���d��||_ytt#|��D]h\}}
d
j5t7t8|
��}t-|||zdz||j t/|j0dd�|||j2�����j||_y�w)Nrez]Writing to Excel with MultiIndex columns and no index ('index'=False) is not yet implemented.F��sparsify�
include_namesrr>�NN�ctx_columns�
r%r&r'r(rCrDrErFr)r*�.�r%r&r'r(rCrDrErF)r%�nlevelsr1�NotImplementedError�_has_aliasesr3�
_format_multir4rr�r,rr�	enumerate�namesr#r:�zip�levels�codes�takerAr<rAr(r+�join�maprr&)r-r%�
level_strs�
level_lengths�	coloffset�lnumr��spansrS�level_codes�values�i�span_valr)r*r�s                r.�_format_header_miz ExcelFormatter._format_header_mifsK�����<�<���!�#��:�:�)�D���
�!�!�T�[�[���,�,���*�*��%�%�U�+�
�
�*�*�5�
��	����:�:�*�T�W�W�]�]�J�?��D�G�G�M�M�!�,�-��1�I����'��
�
�6�
��d���!���+�+�	��7�7@��M�7�>�>�7�=�=�A�7�2��2�u�f�k� ���[�1��#(�;�;�=�K�A�x�+5�(�J���!�|�/3�Y��]�X�5M�H�
�&� �%��M�A�-�"�1�I�"�/�/�#*�4�;�;�
�t�#L� $� !�&*�&:�&:�#-�!)���	$1�	7�F���'�s�J�'7�8�	��6��H�H�S��v�6�7��"��!�A�
��)���+�+�&�t�{�{�M�4�H� ��"&�"6�"6�	�	�9����s�I#I%c#�K�|js
|j�rbd}|jrOd}t|jjt
�r)t
|jjj�}|j}|jr�tt|j�|_t
|j�t
|j�k7r8tdt
|j��dt
|j��d���|j}t|�D]P\}}t|j||z||jt!|j"dd�d||j$�����Ryy�w)NrrezWriting z cols but got z aliasesrHrK)rNr3r1r�r,rrrQr%rrrrPr<r&r:rAr(r+)r-rZ�colnames�colindex�colnames     r.�_format_header_regularz%ExcelFormatter._format_header_regular�s2�����������I��z�z��	��d�g�g�m�m�Z�8� #�D�G�G�M�M�$7�$7� 8�I��|�|�H�� � �"�8�T�[�[�9����t�{�{�#�s�4�<�<�'8�8�$�"�3�t�|�|�#4�"5�6#�#&�t�{�{�#3�"4�H�>��� �;�;��%.�x�%8�!��'�"���� �9�,���+�+�&�t�{�{�M�4�H��$�"&�"6�"6�	�	�&9�%!,�s�E=E?c���t�jt�r�j�}n�j	�}d}�j
jjr��j
jjD�cgc]}|�|nd��
c}dgt�j�zz}tjd�d�|D��r)�fd�t|�D�}�xjdz
c_tj||�Scc}w)Nr:r�c��|xr|Sr,r:)�x�ys  r.�<lambda>z/ExcelFormatter._format_header.<locals>.<lambda>�s
��Q�W�1�Wr0c3�&K�|]	}|dk7���y�w)r�Nr:)r!ris  r.�	<genexpr>z0ExcelFormatter._format_header.<locals>.<genexpr>�s����6L��1�q�B�w��s�c3�h�K�|])\}}t�j||�j����+y�wr,)r#r&r:)r!rdr'r-s   �r.rmz0ExcelFormatter._format_header.<locals>.<genexpr>�s2������)7�
��#��d�o�o�x��d�>O�>O�P�)7�s�/2re)r�r%rrarfr,r1rQrry�reducerPr&�	itertools�chain)r-�gen�gen2rir%s`    r.�_format_headerzExcelFormatter._format_header�s�����d�l�l�J�/��(�(�*�C��-�-�/�C�$&���7�7�=�=���7;�w�w�}�}�7J�7J�K�7J�!��
�1�2�-�7J�K��O��D�L�L�!�O"�"�C���� 4�6L��6L�M��)2�3�������1�$�����s�D�)�)��Ls�
Dc��t|jjt�r|j	�S|j�Sr,)r�r,r1r�_format_hierarchical_rows�_format_regular_rowsr9s r.�_format_bodyzExcelFormatter._format_body�s2���d�g�g�m�m�Z�0��1�1�3�3��,�,�.�.r0c#�PK�|js|jr|xjdz
c_|j�r�|jrDt|jtttjtf�r|jd}nV|jr't|jt�r
|j}n#|jjjd}t|jt�r|xjdz
c_|r5|jdur't!|jdz
d||j"���|jj}t|jjt$�r$|jjj'�}t)|�D]P\}}t+|j|zd||j"t-|j.dd�|d|j0�����Rd}nd}|j3|�Ed{���y7��w)NrerF�	ctx_indexrK)rNr3r&r1r2r�r��tuple�np�ndarrayrr�r,rQr%rr#r:r�to_timestamprPr<rAr(r+�_generate_body)r-r2�index_values�idx�idxvalrZs      r.rwz#ExcelFormatter._format_regular_rows�s������������O�O�q� �O��:�:����J�� � �4���
�
�E�"B�%�#�.�.�q�1���!�!�j��1A�1A�3�&G�"�.�.��"�g�g�m�m�1�1�!�4���$�,�,�
�3����1�$���t�{�{�%�7�����!� 3�Q��T�EV�EV�W�W� �7�7�=�=�L��$�'�'�-�-��5�#�w�w�}�}�9�9�;��(��6���V�"����#�-����+�+�&�t�{�{�K��F���"&�"6�"6�	�	� 7��I��I��&�&�y�1�1�1�s�HH&�H$�H&c#�TK�|js|jr|xjdz
c_d}|j�r�|jjj
}|jr@t|jtttjtf�r|j}t|jt�r!|jr|xjdz
c_t!j"|�rH|jdur:t%|�D],\}}t'|jdz
|||j(����.|j�r;|jjj+dd��}t-|�}t/||jjj0|jjj2�D]�\}}}	|j5|	|j6|j8��}
|j;�D]v\}}d\}
}|dkDr|j|z|zdz
}
|}t=|j|z||
||j(t?|j@dd�|||jB|
|�	�
���x|dz
}��n�t/|jj�D]e}t%|�D]P\}}t=|j|z|||j(t?|j@dd�|||jB�
����R|dz
}�g|jE|�Ed{���y7��w)NrerFTrD)�
allow_fill�
fill_valuerGrzrIrK)#rNr3r&r1r,rQr2r�r�r{r|r}rr%rr4�com�any_not_nonerPr#r:rOrrRrSrTrU�_can_hold_na�	_na_valuerAr<rAr(r+r)r-�gcolidx�index_labels�cidxr�rXrYr\rSr]r^r_r`r)r*�indexcolvalsr��indexcolvals                  r.rvz(ExcelFormatter._format_hierarchical_rowss������������O�O�q� �O����:�:��7�7�=�=�.�.�L����J�� � �4���
�
�E�"B�%� $�/�/���$�,�,�
�3��8H�8H����1�$������.�4�;�;�e�3K�"+�L�"9�J�D�$�#�D�O�O�a�$7��t�T�EV�EV�W�W�#:����!�W�W�]�]�8�8�!��9��
�!2�*� =�
�25�!�4�7�7�=�=�#7�#7������9L�9L�3�.�E�6�;�$�[�[�#�#)�#6�#6�#)�#3�#3�)��F�(-�{�{�}���8�/9�,�
�H�#�a�<�)-���1�)<�x�)G�!�)K�J�'.�H�*� $���!� 3� '� &�q�	�"&�"3�"3�'.�t�{�{�K��'N�$%�$+�*.�*>�*>�'1�%-���(5�"�q�L�G�53�<%(������$7�L�,5�l�,C�(��[�*� $���#� 5� '� +�"&�"3�"3�'.�t�{�{�K��'N�$'�$+�*.�*>�*>�	�	�-D��q�L�G�%8��&�&�w�/�/�/�s�LL(� L&�!L(c�,�t|j�S)z1Whether the aliases for column names are present.)rr3r9s r.rNzExcelFormatter._has_aliasescs���D�K�K�(�(r0c
#�:K�tt|j��D]v}|jjdd�|f}t|�D]I\}}t
|j|z||z|dt|jdd�|||j�����K�xy�w)N�ctxrK)�rangerr%r,�ilocrPr<r&rAr(r+)r-rZ�colidx�seriesr_r's      r.rzExcelFormatter._generate_bodyhs������C����-�.�F��W�W�\�\�!�V�)�,�F�#�F�+���3�"����!�+���*���&�t�{�{�E�4�@��"�"&�"6�"6�	�	�,�/�s�BBc#��K�tj|j�|j��D]&}|j	|j
�|_|���(y�wr,)rprqrtrxrBr')r-�cells  r.�get_formatted_cellsz"ExcelFormatter.get_formatted_cellsxsI�����O�O�D�$7�$7�$9�4�;L�;L�;N�O�D��)�)�$�(�(�3�D�H��J�P�s�AA�storage_options)r�c	
��ddlm}	|jj\}
}|
|jkDs||j
kDr+t
d|
�d|�d|j�d|j
����|�i}|j�}t||	�rd}
n|	||||��}d	}
	|j|||||�
�|
r|j�yy#|
r|j�wwxYw)ab
        writer : path-like, file-like, or ExcelWriter object
            File path or existing ExcelWriter
        sheet_name : str, default 'Sheet1'
            Name of sheet which will contain DataFrame
        startrow :
            upper left cell row to dump data frame
        startcol :
            upper left cell column to dump data frame
        freeze_panes : tuple of integer (length 2), default None
            Specifies the one-based bottommost row and rightmost column that
            is to be frozen
        engine : string, default None
            write engine to use if writer is a path - you can also set this
            via the options ``io.excel.xlsx.writer``,
            or ``io.excel.xlsm.writer``.

        {storage_options}

        engine_kwargs: dict, optional
            Arbitrary keyword arguments passed to excel engine.
        rr z-This sheet is too large! Your sheet size is: z, z Max sheet size is: NF)�enginer��
engine_kwargsT)�startrow�startcol�freeze_panes)�pandas.io.excelr!r,�shape�max_rows�max_colsrr�r��_write_cells�close)r-�writer�
sheet_namer�r�r�r�r�r�r!�num_rows�num_cols�formatted_cells�	need_saves              r.�writezExcelFormatter.write}s���D	0�!�W�W�]�]���(��d�m�m�#�x�$�-�-�'?��?��z��H�:�V&�&*�m�m�_�B�t�}�}�o�G��
�
� ��M��2�2�4���f�k�*��I� ��� /�+�	�F��I�	������!�!�)�
 �
��������y������s�C�C)	r�NNTTNF�infN)r'r�r0rr6zSequence[Hashable] | Noner3zSequence[Hashable] | boolr1r�r2zIndexLabel | Noner4r�r5r�r+rMr3r4)r3z dict[str, dict[str, str | bool]])r3�Iterable[ExcelCell])r3r�)rZr1r3r�)�Sheet1rrNNNN)r�z)FilePath | WriteExcelBuffer | ExcelWriterr�r�r�r1r�r1r�ztuple[int, int] | Noner�rr�zStorageOptions | Noner�rLr3r4)r5r6r7rr�r�r/�propertyr:rBrarfrtrxrwrvrNrr�r
rr�r:r0r.r#r#�s����@�H��H�
�#'�*.�,0��)-�!��+/�+��+�!�	+�
(�+�*�
+��+�'�+��+��+�)�+�
�+�Z�

��

��$C�J�>*�,/�,2�\M0�^�)��)�� �
	��&7�8�9�#���/3�!�15�%)�D�9�D��D��	D�
�D�-�
D��D�/�D�#�D�
�D�:�Dr0r#)<r�
__future__r�collections.abcrrrrryrpr��typingrr	r
rr��numpyr|�pandas._libs.libr�pandas.util._decoratorsr
�pandas.util._exceptionsr�pandas.core.dtypesr�pandas.core.dtypes.commonrr�pandasrrrr�pandas.core.common�core�commonr��pandas.core.shared_docsr�pandas.io.formats._color_datar�pandas.io.formats.cssrr�pandas.io.formats.formatr�pandas.io.formats.printingr�pandas._typingrrrrr!r#r<rPr#r:r0r.�<module>r�s����#�����	�����)�'�4�&��
��!� �0�5��7�3����#�!�!�*K�9�K�2FA�FA�RL�Lr0

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists