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__/css.cpython-312.pyc

�

Mٜg�1���dZddlmZddlZddlmZmZddlZddlm	Z	ddl
mZer
ddlm
Z
mZmZdd�Zd
dd	�ZGd
�d�Zy)zN
Utilities for interpreting CSS from Stylers for formatting non-HTML outputs.
�)�annotationsN)�
TYPE_CHECKING�Callable)�
CSSWarning)�find_stack_level)�	Generator�Iterable�Iteratorc���d�fd�}|S)a)
    Wrapper to expand shorthand property into top, right, bottom, left properties

    Parameters
    ----------
    side : str
        The border side to expand into properties

    Returns
    -------
        function: Return to call when a 'border(-{side}): {value}' string is encountered
    c3�@�K�|j�}	|jt|�}t|j|�D]\}}�j|�||f���y#t$r.t	j
d|�d|�d�tt���YywxYw�w)a<
        Expand shorthand property into side-specific property (top, right, bottom, left)

        Parameters
        ----------
            prop (str): CSS property name
            value (str): String token for property

        Yields
        ------
            Tuple (str, str): Expanded property, value
        zCould not expand "z: �"��
stacklevelN)�split�SIDE_SHORTHANDS�len�KeyError�warnings�warnrr�zip�SIDES�format)�self�prop�value�tokens�mapping�key�idx�prop_fmts       ��@/usr/local/lib/python3.12/site-packages/pandas/io/formats/css.py�expandz_side_expander.<locals>.expand&s�����������	��*�*�3�v�;�7�G��D�J�J��0�H�C���/�/�#�&��s��3�3�1���	��M�M�$�T�F�"�U�G�1�5��+�-�
�

�
	�s'�B�A$�7B�$4B�B�B�B�r�str�return�&Generator[tuple[str, str], None, None]�)r r"s` r!�_side_expanderr(s���4�4�M�c�(���dk7rd����d�fd�}|S)a.
    Wrapper to expand 'border' property into border color, style, and width properties

    Parameters
    ----------
    side : str
        The border side to expand into properties

    Returns
    -------
        function: Return to call when a 'border(-{side}): {value}' string is encountered
    ��-c3����K�|j�}t|�dk(st|�dkDr(tjd|�d�tt���d��d�dd��d	�d
d��d�di}|D]Y��j
�|jvr
�|d��d	�<�)t�fd
�|jD��r
�|d��d�<�Q�|d��d�<�[|j|j��Ed{���y7��w)aV
        Expand border into color, style, and width tuples

        Parameters
        ----------
            prop : str
                CSS property name passed to styler
            value : str
                Value passed to styler for property

        Yields
        ------
            Tuple (str, str): Expanded property, value
        r�zToo many tokens provided to "z" (expected 1-3)r�borderz-color�blackz-style�none�-width�mediumc3�B�K�|]}|�j�v���y�w�N)�lower)�.0�ratio�tokens  �r!�	<genexpr>z3_border_expander.<locals>.expand.<locals>.<genexpr>ss�����R�9Q��U�e�k�k�m�+�9Q�s�N)rrrrrrr6�
BORDER_STYLES�any�BORDER_WIDTH_RATIOS�atomize�items)rrrr�border_declarationsr9�sides     @�r!r"z _border_expander.<locals>.expandSs�����������v�;�!��s�6�{�Q���M�M�/��v�5E�F��+�-�
��T�F�&�!�7��T�F�&�!�6��T�F�&�!�8�
��
�E��{�{�}�� 2� 2�2�=B�#�f�T�F�&�$9�:��R��9Q�9Q�R�R�=B�#�f�T�F�&�$9�:�=B�#�f�T�F�&�$9�:�
��<�<� 3� 9� 9� ;�<�<�<�s�C)C5�-C3�.C5r#r')rAr"s` r!�_border_expanderrBCs$����r�z��4�&�z��'=�R�Mr)c��eZdZdZddddddddd	d
dd�Zej�Zejd
ddddddddddd��ej�Zejddi�ej�Z	e	jddddd��gd�Z
gd�gd �gd!�gd"�d#�Zd$Zid%D���cic]}|rd&|��nd't|���c}}}�d(D���cic]}d&|��td)|�����c}}}�ed*�ed+�d,��Z	d7					d8d.�Z						d9d/�Z						d9d0�Zd:d1�Zd;d2�Zd<d3�Zd-efd=d4�Zd>d5�Zd?d6�Zy-cc}}}wcc}}}w)@�CSSResolverzH
    A callable for parsing and resolving CSS to atomic properties.
    )�pt�)�emrF)rE�)rG��?)rEg�?)rE�H)�ingL&��d2�?)rKg
�B�P(�?)�mmg�?)rGr)rErG�rem�ex�px�pcrK�cmrL�q�	!!default)rGg{�G�z�?)rMrI)rMg�?)rMg�������?)rMrF)rMg�?)rMg�?)rM�)rGg�������?)rGg333333�?)�%zxx-smallzx-small�smallr3�largezx-largezxx-large�smaller�largerrSr1)rEr)rO�)rOrT)rOrF)r1�thickr3�thin)r1�hidden�dotted�dashed�solid�double�groove�ridge�inset�outset�
mediumdashdot�
dashdotdot�hair�mediumdashdotdot�dashdot�slantdashdot�mediumdashed)rrrr)rrFrrF)rrFrTrF)rrFrTr.)rFrTr.rZ)�top�right�bottom�left)r+rmrnrorp�border-r/)�color�style�widthzborder-{:s}-zmargin-{:s}zpadding-{:s})�margin�paddingNc���t|t�r|j|�}t|j	|��}|�i}|j||�}|j
||�}|j|�S)a�
        The given declarations to atomic properties.

        Parameters
        ----------
        declarations_str : str | Iterable[tuple[str, str]]
            A CSS string or set of CSS declaration tuples
            e.g. "font-weight: bold; background: blue" or
            {("font-weight", "bold"), ("background", "blue")}
        inherited : dict, optional
            Atomic properties indicating the inherited style context in which
            declarations_str is to be resolved. ``inherited`` should already
            be resolved, i.e. valid output of this method.

        Returns
        -------
        dict
            Atomic CSS 2.2 properties.

        Examples
        --------
        >>> resolve = CSSResolver()
        >>> inherited = {'font-family': 'serif', 'font-weight': 'bold'}
        >>> out = resolve('''
        ...               border-color: BLUE RED;
        ...               font-size: 1em;
        ...               font-size: 2em;
        ...               font-weight: normal;
        ...               font-weight: inherit;
        ...               ''', inherited)
        >>> sorted(out.items())  # doctest: +NORMALIZE_WHITESPACE
        [('border-bottom-color', 'blue'),
         ('border-left-color', 'red'),
         ('border-right-color', 'red'),
         ('border-top-color', 'blue'),
         ('font-family', 'serif'),
         ('font-size', '24pt'),
         ('font-weight', 'bold')]
        )�
isinstancer$�parse�dictr>�_update_initial�_update_font_size�_update_other_units)r�declarations�	inherited�propss    r!�__call__zCSSResolver.__call__�sp��X�l�C�(��:�:�l�3�L��T�\�\�,�/�0�����I��$�$�U�I�6���&�&�u�i�8���'�'��.�.r)c���|j�D]\}}||vs�|||<�|j�}|j�D])\}}|dk(r|j|d�}|dvr||=�%|||<�+|S)N�inherit�initial)r�N)r?�copy�get)rr�rr�val�	new_propss      r!r{zCSSResolver._update_initials���#���*�I�D�#��5� �!��d��+��J�J�L�	�����I�D�#��i���m�m�D�)�4���'�'��d�O�"%�	�$��'��r)c��|jd�r3|j|d|j|�|j��|d<|S)N�	font-size��conversions)r��
size_to_pt�_get_font_size�FONT_SIZE_RATIOS)rr�rs   r!r|zCSSResolver._update_font_size(sN���9�9�[�!�!%����k�"��#�#�I�.� �1�1�"1�"�E�+��
�r)c�R�|jd�r|d}|j|�Sy)Nr�)r��_get_float_font_size_from_pt)rr��font_size_strings   r!r�zCSSResolver._get_font_size6s.���9�9�[�!�$�[�1���4�4�5E�F�F�r)c�\�|jd�sJ�t|jd��S)NrE)�endswith�float�rstrip)rr�s  r!r�z(CSSResolver._get_float_font_size_from_pt<s-���(�(��.�.�.��%�,�,�T�2�3�3r)c��|j|�}|jD]h}d|�d�}||vr$|j||||j��||<d|��d|��fD]+}||vs�|j||||j��||<�-�j|S)Nrqr2)�em_ptr�zmargin-zpadding-)r�rr�r=�
MARGIN_RATIOS)rr��	font_sizerArs     r!r}zCSSResolver._update_other_units@s����'�'��.�	��J�J�D��T�F�&�)�D��u�}�"�o�o��$�K�#� $� 8� 8�.���d��#�4�&�)�X�d�V�+<�=���5�=�"&�/�/��d��'�$(�$6�$6�#2�#�E�$�K�>��"�r)c��������fd�}tjd��}|�|�S|j�\}}|dk(rd}n	t|�}|dk7r&|dk(r
|�d}n||z}d}�	�|\}}||z}|dk7r�&t
|d�}t|�|k(rt|�d	�d�}	|	S|d
�d�}	|	S#t$r
|�cYSwxYw#t
$r
|�cYSwxYw)Nc���tjdt����tt	����jd���S)NzUnhandled size: rz
1!!defaultr�)rr�reprrrr�)r��in_valrs���r!�_errorz&CSSResolver.size_to_pt.<locals>._errorWs;����M�M�"�4��<�.�1��+�-�
�
�?�?�<�[�?�I�Ir)z^(\S*?)([a-zA-Z%!].*)r+rFrErGrM��d�f)�re�match�groupsr��
ValueErrorr�round�int)
rr�r�r�r�r�r��unit�mul�size_fmts
`` `      r!r�zCSSResolver.size_to_ptVs���	J����1�6�:���=��8�O��L�L�N�	��T��"�9��C�
 ��C�j���d�l��t�|��=� �D��5�L�C��D��
 �'��-�	��c�
�3�J�C��d�l��C��m���s�8�s�?��c�(�1��R�(�H����a���|�H����/�
 ��x��
 ���
 ��x��
 �s$�B/�)C�/C�C�C�Cc#��K�|D][\}}|j�}|j�}||jvr"|j|}||||�Ed{����V||f���]y7��wr5)r6�CSS_EXPANSIONS)rr~rrr"s     r!r>zCSSResolver.atomize�si����'�K�D�%��:�:�<�D��K�K�M�E��t�*�*�*��,�,�T�2��!�$��e�4�4�4��E�k�!�(�
5�s�AA&�A$�A&c#�nK�|jd�D]�}|j�s�|jd�\}}}|j�j�}|j�j�}|r||f���nt	j
dt
|���tt�����y�w)z�
        Generates (prop, value) pairs from declarations.

        In a future version may generate parsed tokens from tinycss/tinycss2

        Parameters
        ----------
        declarations_str : str
        �;�:z-Ill-formatted attribute: expected a colon in rN)	r�strip�	partitionr6rrr�rr)r�declarations_str�declr�sepr�s      r!ryzCSSResolver.parse�s�����%�*�*�3�/�D��:�:�<��!�^�^�C�0�N�D�#�s��:�:�<�%�%�'�D��)�)�+�#�#�%�C���C�i���
�
�C�D��J�<�P��/�1��0�s�B3B5r5)r~zstr | Iterable[tuple[str, str]]rzdict[str, str] | Noner%�dict[str, str])r�r�rr�r%r�)r�r�r%zfloat | None)r�r$r%r�)r�r�r%r�)r%r$)r~r	r%r&)r�r$r%zIterator[tuple[str, str]])�__name__�
__module__�__qualname__�__doc__�UNIT_RATIOSr�r��updater�r=r;rrrBr(r�r�r{r|r�r�r}r�r>ry)r7rrBr(s0000r!rDrDs���
���������
��
�K�#�'�'�)������$�%�!� �#�#�"�&�!�"�	
��  �$�$�&�M����&�)�,�-�%�*�*�,���������		
���M�*����	�O�
/�E��?�
�>��"&�w�t�f�
�8�6F�t�6L�
L�>�
��4�
�3���d�V��n�~�d�V�-D�E�E�3�
��!��/�!�.�1��N� ,0�4/�5�4/�)�4/�
�	4/�l���"��
�	�,���"��
�	��4��,(,��+�Z"���{
��
s�'D7
�D>
rD)r r$r%r)r+)rAr$r%r)r��
__future__rr��typingrrr�
pandas.errorsr�pandas.util._exceptionsr�collections.abcrr	r
r(rBrDr'r)r!�<module>r�sG���#�	���$�4����(�V9�xf�fr)

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