o
    RhL                     @  s   d dl mZ d dlZd dlmZ ddlmZ ddlmZm	Z	 e
dZdddZd d!ddZedkrbddlmZ eddZed ee	dd eddZe  ed e  ed dS dS )"    )annotationsN)Iterable   )	loop_last)cell_len
chop_cellsz	\s*\S+\s*textstrreturnIterable[tuple[int, int, str]]c                 c  sX    d}t | |}|dur*| \}}|d}|||fV  t | |}|dusdS dS )zYields 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   position
word_matchstartendword r   L/home/air/sanwanet/backup_V2/venv/lib/python3.10/site-packages/rich/_wrap.pywords   s   
r   Twidthintfoldbool	list[int]c                 C  s   g }|j }d}t}t| D ]\\}}}	||	 }
|| }||
k}|r)|||	7 }q|
|kr]|rRt|	|d}t|D ]\}}|rC|| |rJ||}q9|t|7 }q9q|rX|| ||	}q|ri|ri|| ||	}q|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   break_positionsr   cell_offset	_cell_lenr   _endr   word_lengthremaining_spaceword_fits_remaining_spacefolded_wordlastliner   r   r   divide_line   s8   
	
r+   __main__)Console
   r   z@12345 abcdefghijklmnopqrstuvwyxzABCDEFGHIJKLMNOPQRSTUVWXYZ 12345abcdefghijklmnopqrstuvwxyz   uR   TextualはPythonの高速アプリケーション開発フレームワークですu4   アプリケーションは1670万色を使用でき)r   r	   r
   r   )T)r   r	   r   r   r   r   r
   r   )
__future__r   retypingr   _loopr   cellsr   r   compiler   r   r+   __name__consoler-   printruler   r   r   r   <module>   s&    

7



