HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.7/site-packages/pip/_vendor/rich/__pycache__/cells.cpython-37.pyc
B

L��g��@s@ddlZddlmZddlmZmZddlmZe�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�r<eed��xedd�D]Zee�q�Wx4eddd �D]$Zeede�d!�ed"e��qWdS)$�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-hv55ucu3/pip/_vendor/rich/cells.py�	<genexpr>sz"cached_cell_len.<locals>.<genexpr>)�get_character_cell_size�sum)r�
total_sizer	)rr
�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|]}�|�VqdS)Nr	)r
r)rr	r
r)szcell_len.<locals>.<genexpr>)�lenrr)rrrr	)rr
�cell_lens
	r)�maxsize)rrcCs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)rr	r	r
r-s
r)�	codepointrcCs�t}d}t|�d}||d}x\||\}}}||krB|d}n"||krT|d}n|dkr`dS|S||krnP||d}q"WdS)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	r
r:s

r)r�totalrc	Cs�t|�r4t|�}||kr(|d||S|d|�S|dkr@dSt|�}||krT|S||krl|d||Sd}t|�}xr||d}|d|d�}t|�}||dkr�t|d�dkr�|dd�dS||kr�|S||kr�|}qz|}qzWdS)z?Set the length of a string to fit within given number of cells.� Nr�rrr)�_is_single_cell_widthsrr)	rr �sizeZ	cell_sizerr�pos�beforeZ
before_lenr	r	r
�
set_cell_sizeWs2r')r�max_size�positionrc	s�t��fdd�|D�}|}gg}|dj}xLt|�D]@\}}|||krd|�|g�|dj}|}q4||7}||�q4Wdd�|D�S)z[Break text in to equal (cell) length strings, returning the characters in reverse
    ordercsg|]}|�|�f�qSr	r	)r
r)�_get_character_cell_sizer	r
�
<listcomp>�szchop_cells.<locals>.<listcomp>rcSsg|]}d�|��qS)r")�join)r
�liner	r	r
r+�s)r�append�reversed)	rr(r)�
charactersr�linesr.rr$r	)r*r
�
chop_cells|s

r2�__main__u😽u]这是对亚洲语言支持的测试。面对模棱两可的想法,拒绝猜测的诱惑。��Pr�|�x)r)�re�	functoolsr�typingrrZ_cell_widthsr�compile�matchr#�str�intrrrrr'r2�__name__�printr-�range�nr	r	r	r
�<module>s( %