\h ddlZddlmZddlmZmZddlmZejdjZ edde d e fd Z e fde d ee ge fd e fd Zed de d e fdZed de d e fdZde de d e fdZdde de de d ee fdZedk(rQeededdD] Zee edddD]Zeededzedez!yy) N) lru_cache)CallableList) CELL_WIDTHSu^[ -o ˿Ͱ-҂]*$itextreturnc<ttfd|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. c3.K|] }|ywN.0 character _get_sizes Y/root/niggaflix-v3/playground/venv/lib/python3.12/site-packages/pip/_vendor/rich/cells.py z"cached_cell_len..@iYy)@)get_character_cell_sizesum)r total_sizers @rcached_cell_lenr s (I@4@@J  _cell_lencht|dkr||Sttfd|D}|S)zGet 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. ic3.K|] }|ywr r rs rrzcell_len..)rr)lenrr)rrrrs @rcell_lenrs5 4y3'I@4@@J r)maxsizerc*tt|S)zGet 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_sizeord)rs rrr-s $C N 33r codepointct}d}t|dz }||zdz} ||\}}}||kr|dz }n||kDr|dz}n |dk(rdS|S||kr y||zdz}8)zGet 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)r$_table lower_bound upper_boundindexstartendwidths rr"r":sFKf+/K ; &1 ,E "5MsE u !)K _!)K 1 . .  $  {*q0 rtotalc`t|r t|}||kr |d||z zzS|d|S|dkryt|}||k(r|S||kr |d||z zzSd}t|} ||zdz}|d|dz}t|}||dzk(rt|ddk(r|dddzS||k(r|S||kDr|}n|}N)z?Set the length of a string to fit within given number of cells. Nrr&rr')_is_single_cell_widthsrr) rr/size cell_sizer,r-posbefore before_lens r set_cell_sizer9Wsd#4y %<#.. .FU| zIE 5cUY./// E d)C s{q iaf%  "xr ';q'@#2;$ $  M  CE rmax_sizepositioncNt}|Dcgc] }|||f}}|}gg}|dj}t|D]>\}} || z|kDr$|j|g|dj}| }2|| z }||@|D cgc]} dj| c} Scc}wcc} w)z[Break text in to equal (cell) length strings, returning the characters in reverse orderr'r2)rappendreversedjoin) rr:r;_get_character_cell_sizer charactersrlinesr=r4lines r chop_cellsrD|s 7JN=F,Y78JJ TE 2Y  F#J/ 4  x ' LL) %2Y%%FJ $ J 9 ', ,dBGGDM ,,! -s BB"__main__u😽u]这是对亚洲语言支持的测试。面对模棱两可的想法,拒绝猜测的诱惑。Pr'|x)r)re functoolsrtypingrr _cell_widthsrcompilematchr3strintrrrr"r9rD__name__printrCrangenr rrrVs !%$$QRXX 4##";J 3 8SE3J#7 c   4 4s 4s 4 4 4    8  C C J-S-C-3-tCy-. z !& )*~ABC d  2q"  mBCDGJJ K cAg r