File: //opt/alt/python37/lib/python3.7/site-packages/rich/__pycache__/_wrap.cpython-37.pyc
B
��fL
� @ s� d dl mZ d dlZd dlmZ ddlmZ ddlmZm Z e�
d�Zdd d
�dd�Zdddddd�dd�Z
edkr�ddlmZ edd�Ze�d� ee dd�� edd�Ze�� e�d� e�� e�d� dS )� )�annotationsN)�Iterable� )� loop_last)�cell_len�
chop_cellsz \s*\S+\s*�strzIterable[tuple[int, int, str]])�text�returnc c sP d}t �| |�}x:|dk rJ|�� \}}|�d�}|||fV t �| |�}qW dS )z�Yields each word from the text as a tuple
containing (start_index, end_index, word). A "word" in this context may
include the actual word and any whitespace to the right.
r N)�re_word�match�span�group)r �positionZ
word_match�start�end�word� r �;/opt/alt/python37/lib/python3.7/site-packages/rich/_wrap.py�words s
r T�int�boolz list[int])r �width�foldr
c C s� g }|j }d}t}x�t| �D ]�\}}} || �� �}
|| }||
k}|rT||| �7 }q|
|kr�|r�t| |d�}
xPt|
�D ].\}}|r�||� |r�||�}qv|t|�7 }qvW q�|r�||� || �}q|r|r||� || �}qW |S )a� Given a string of text, and a width (measured in cells), return a list
of cell offsets which the string should be split at in order for it to fit
within the given width.
Args:
text: The text to examine.
width: The available cell width.
fold: If True, words longer than `width` will be folded onto a new line.
Returns:
A list of indices to break the line at.
r )r )�appendr r �rstripr r �len)r r r Zbreak_positionsr Zcell_offsetZ _cell_lenr Z_endr Zword_lengthZremaining_spaceZword_fits_remaining_spaceZfolded_word�last�liner r r �divide_line s4
r �__main__)�Console�
)r z@12345 abcdefghijklmnopqrstuvwyxzABCDEFGHIJKLMNOPQRSTUVWXYZ 12345�abcdefghijklmnopqrstuvwxyz� uR TextualはPythonの高速アプリケーション開発フレームワークですu4 アプリケーションは1670万色を使用でき)T)�
__future__r �re�typingr Z_loopr �cellsr r �compiler r r �__name__�consoler! �printZruler r r r �<module> s"