HEX
Server: Apache
System: Linux p3plzcpnl506847.prod.phx3.secureserver.net 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: slfopp7cb1df (5698090)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/python38/lib/python3.8/site-packages/pip/_vendor/rich/__pycache__/cells.cpython-38.pyc
U

�{�e��@s8ddlZddlmZddlmZmZddlmZe�d�j	Z
ed�eed�d	d
��Z
e
feeegefed�dd
�Zedd�eed�dd��Zedd�eed�dd��Zeeed�dd�Zd#eeeeed�dd�Zedk�r4eed��edd�D]Zee�q�eddd �D]$Zeede�d!�ed"e��qdS)$�N)�	lru_cache)�Callable�List�)�CELL_WIDTHSu^[ -o ˿Ͱ-҂]*$i)�text�returncst�t�fdd�|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.
    c3s|]}�|�VqdS�N���.0�	character��	_get_sizer
�:/tmp/pip-unpacked-wheel-_0scjqea/pip/_vendor/rich/cells.py�	<genexpr>sz"cached_cell_len.<locals>.<genexpr>)�get_character_cell_size�sum)r�
total_sizer
rr�cached_cell_lens
r)r�	_cell_lenrcs2t|�dkr||�St�t�fdd�|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.
    ic3s|]}�|�VqdSr	r
rrr
rr)szcell_len.<locals>.<genexpr>)�lenrr)rrrr
rr�cell_lens
	r)�maxsize)r
rcCs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)r
r
r
rr-s
r)�	codepointrcCs~t}d}t|�d}||d}||\}}}||kr@|d}n"||krR|d}n|dkr^dS|S||krlqz||d}q dS)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)rZ_tableZlower_boundZupper_bound�index�start�end�widthr
r
rr:s

r)r�totalrc	Cs�t|�r4t|�}||kr(|d||S|d|�S|dkr@dSt|�}||krT|S||krl|d||Sd}t|�}||d}|d|d�}t|�}||dkr�t|d�dkr�|dd�dS||kr�|S||kr�|}qx|}qxdS)z?Set the length of a string to fit within given number of cells.� Nr�rrr)�_is_single_cell_widthsrr)	rr#�sizeZ	cell_sizer r!�pos�beforeZ
before_lenr
r
r�
set_cell_sizeWs0r*)r�max_size�positionrc	s�t��fdd�|D�}|}gg}|dj}t|�D]@\}}|||krb|�|g�|dj}|}q2||7}||�q2dd�|D�S)z[Break text in to equal (cell) length strings, returning the characters in reverse
    ordercsg|]}|�|�f�qSr
r
r�Z_get_character_cell_sizer
r�
<listcomp>�szchop_cells.<locals>.<listcomp>rcSsg|]}d�|��qS)r%)�join)r�liner
r
rr.�s)r�append�reversed)	rr+r,�
charactersr�linesr1r
r'r
r-r�
chop_cells|s
�


r5�__main__u😽u]这是对亚洲语言支持的测试。面对模棱两可的想法,拒绝猜测的诱惑。��Pr�|�x)r)�re�	functoolsr�typingrrZ_cell_widthsr�compile�matchr&�str�intrrrrr*r5�__name__�printr0�range�nr
r
r
r�<module>s( %