File: //lib/python3/dist-packages/rich/__pycache__/cells.cpython-311.pyc
�
� �c� �
�6 � d dl Z d dlmZ d dlmZmZ ddlmZ e j d� � j Z
ed� � ded efd
�� � Z
e
fdedeegef d efd�Z ed�
� � ded efd�� � Z ed�
� � ded efd�� � Zdeded efd�Zddededed ee fd�Zedk rd e ed� � � � edd� � D ]
Z ee� � � eddd� � D ]*Z e ede� � dz � � edez � � �)dS dS ) � 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.
c 3 �. �K � | ]} �|� � V � �d S �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_sizer s @r �cached_cell_lenr s2 �� � (�I��@�@�@�@�4�@�@�@�@�@�J��r � _cell_lenc � �� t | � � dk r || � � S t �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.
i c 3 �. �K � | ]} �|� � V � �d S r r
r s �r r zcell_len.<locals>.<genexpr>) r r )�lenr r )r r r r s @r �cell_lenr sO �� � �4�y�y�3����y�����'�I��@�@�@�@�4�@�@�@�@�@�J��r )�maxsizer c �: � t t | � � � � 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)r s r r r - s � � $�C� �N�N�3�3�3r � codepointc �� � t }d}t |� � dz
}||z dz } || \ }}}| |k r|dz
}n| |k r|dz }n
|dk rdn|S ||k rn ||z dz }�>dS )r! r r � T���)r r )r$ �_table�lower_bound�upper_bound�index�start�end�widths r r"