HEX
Server: Apache/2.4.67 (Debian)
System: Linux vps-b2547eb4 6.1.0-41-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.158-1 (2025-11-09) x86_64
User: root (0)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/rich/__pycache__/cells.cpython-311.pyc
�

��c��
�6�ddlZddlmZddlmZmZddlmZejd��j	Z
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�Zedkrdeed����edd��D]
Zee���eddd��D]*Zeede��dz��edez���)dSdS) �N)�	lru_cache)�Callable�List�)�CELL_WIDTHSu^[ -o ˿Ͱ-҂]*$i�text�returnc�L��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�|]}�|��V��dS�N���.0�	character�	_get_sizes  ��,/usr/lib/python3/dist-packages/rich/cells.py�	<genexpr>z"cached_cell_len.<locals>.<genexpr>�-�����@�@�i�Y�Y�y�)�)�@�@�@�@�@�@�)�get_character_cell_size�sum)r�
total_sizers  @r�cached_cell_lenrs2���(�I��@�@�@�@�4�@�@�@�@�@�J��r�	_cell_lenc���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�|]}�|��V��dSrr
rs  �rrzcell_len.<locals>.<genexpr>)rr)�lenrr)rrrrs   @r�cell_lenrsO����4�y�y�3����y�����'�I��@�@�@�@�4�@�@�@�@�@�J��r)�maxsizerc�:�tt|����S)��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�N�3�3�3r�	codepointc���t}d}t|��dz
}||zdz}	||\}}}||kr|dz
}n||kr|dz}n
|dkrdn|S||krn	||zdz}�>dS)r!rr�T���)rr)r$�_table�lower_bound�upper_bound�index�start�end�widths        rr"r":s����F��K��f�+�+��/�K�
�;�
&�1�,�E�
1�"�5�M���s�E��u����!�)�K�K�
��_�_��!�)�K�K�����1�1��.���$�$���{�*�q�0��
1�
�1r�totalc���t|��r*t|��}||kr|d||z
zzS|d|�S|dkrdSt|��}||kr|S||kr|d||z
zzSd}t|��}	||zdz}|d|dz�}t|��}||dzkr&t|d��dkr
|dd�dzS||kr|S||kr|}n|}�g)	z?Set the length of a string to fit within given number of cells.� Nr�Tr&rr')�_is_single_cell_widthsrr)	rr/�size�	cell_sizer,r-�pos�before�
before_lens	         r�
set_cell_sizer9Ws8���d�#�#���4�y�y���%�<�<��#����.�.�.��F�U�F�|����z�z��r�����I��E������5����c�U�Y�.�/�/�/�
�E�

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