Current File : //usr/lib/python3/dist-packages/pip/_vendor/rich/__pycache__/cells.cpython-312.pyc
�

/�g��
���ddlZddlmZddlmZmZddlmZejd�jZ
ed�ded	efd
��Z
e
fdedeegefd	efd�Zed�
�ded	efd��Zed�
�ded	efd��Zdeded	efd�Zddededed	eefd�Zedk(rQeed��edd�D]
Zee��eddd�D]Zeede�dz�edez��!yy) �N)�	lru_cache)�Callable�List�)�CELL_WIDTHSu^[ -o ˿Ͱ-҂]*$i�text�returnc�<��t�t�fd�|D��}|S)a/Get the number of cells required to display text.

    This method always caches, which may use up a lot of memory. It is recommended to use
    `cell_len` over this method.

    Args:
        text (str): Text to display.

    Returns:
        int: Get the number of cells required to display text.
    c3�.�K�|]}�|����y�w�N���.0�	character�	_get_sizes  ��8/usr/lib/python3/dist-packages/pip/_vendor/rich/cells.py�	<genexpr>z"cached_cell_len.<locals>.<genexpr>������@�i�Y�y�)�@���)�get_character_cell_size�sum)r�
total_sizers  @r�cached_cell_lenrs ���(�I��@�4�@�@�J����	_cell_lenc�h��t|�dkr||�St�t�fd�|D��}|S)z�Get the number of cells required to display text.

    Args:
        text (str): Text to display.

    Returns:
        int: Get the number of cells required to display text.
    ic3�.�K�|]}�|����y�wrr
rs  �rrzcell_len.<locals>.<genexpr>)rr)�lenrr)rrrrs   @r�cell_lenrs5����4�y�3������'�I��@�4�@�@�J��r)�maxsizerc�*�tt|��S)z�Get the cell size of a character.

    Args:
        character (str): A single character.

    Returns:
        int: Number of cells (0, 1 or 2) occupied by that character.
    )�_get_codepoint_cell_size�ord)rs rrr-s��$�C�	�N�3�3r�	codepointc��t}d}t|�dz
}||zdz}	||\}}}||kr|dz
}n||kDr|dz}n	|dk(rdS|S||kr	y||zdz}�8)z�Get the cell size of a character.

    Args:
        codepoint (int): Codepoint of a character.

    Returns:
        int: Number of cells (0, 1 or 2) occupied by that character.
    rr����)rr)r$�_table�lower_bound�upper_bound�index�start�end�widths        rr"r":s����F��K��f�+��/�K�
�;�
&�1�,�E�
�"�5�M���s�E��u���!�)�K�
��_��!�)�K����1�.��.���$����{�*�q�0��r�totalc�`�t|�r t|�}||kr|d||z
zzS|d|S|dkryt|�}||k(r|S||kr|d||z
zzSd}t|�}	||zdz}|d|dz}t|�}||dzk(rt|d�dk(r|dddzS||k(r|S||kDr|}n|}�N)z?Set the length of a string to fit within given number of cells.� Nr�r&rr')�_is_single_cell_widthsrr)	rr/�size�	cell_sizer,r-�pos�before�
before_lens	         r�
set_cell_sizer9Ws���d�#��4�y���%�<��#����.�.�.��F�U�|����z�����I��E�����5���c�U�Y�.�/�/�/�
�E�

�d�)�C���s�{�q� ���i��a�����f�%�
�����"�x��r�
�';�q�'@��#�2�;��$�$�����M�����C��E�r�max_size�positionc�N�t}|D�cgc]}|||�f��}}|}gg}|dj}t|�D]>\}}	||	z|kDr$|j|g�|dj}|	}�2||	z
}||��@|D�
cgc]}
dj|
���c}
Scc}wcc}
w)z[Break text in to equal (cell) length strings, returning the characters in reverse
    orderr'r2)r�append�reversed�join)rr:r;�_get_character_cell_sizer�
charactersr�linesr=r4�lines           r�
chop_cellsrD|s��� 7��JN��=F��,�Y�7�8��J���J� �T�E�
�2�Y�
�
�F�#�J�/���	�4����x�'��L�L�)��%��2�Y�%�%�F��J��$��J��9���',�,�d�B�G�G�D�M�,�,��!�� -s�B�B"�__main__u😽u]这是对亚洲语言支持的测试。面对模棱两可的想法,拒绝猜测的诱惑。��Pr'�|�x)r)�re�	functoolsr�typingrr�_cell_widthsr�compile�matchr3�str�intrrrr"r9rD�__name__�printrC�range�nr
rr�<module>rVs���	��!�%�$����$Q�R�X�X���4���#��#����";J�
�3�
�8�S�E�3�J�#7�
�c�
� �4��	4�s�	4�s�	4��	4��4��
��
��
��
�8 �� �C� �C� �J-�S�-�C�-�3�-�t�C�y�-�.�z��	�
!�&�
)�*��~�AB�C���
�d���
�2�q�"�
���
�m��BC�D�GJ�J�	K�
�c�A�g���r