hyb
2025-11-10 e0a856b5072c5a09f3f6de6da85abf90e00ee704
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
Ë
ñúh
ãóô—UddlmZddlmZddlmZddlmZgd¢Zde    d<e
eDcgc]\}}e e e ||dz««D]}|‘ŒŒ!c}}}«ZejZd    e    d
<ed «dd „«Zefdd „Zed ¬«dd„«Zdd„Z                        dd„Zedk(rQeed««edd«D]
Zee«Œ e ddd«D]Zeede«dz«edez«Œ!yycc}}}w) é)Ú annotations)Ú    lru_cache)ÚCallableé)Ú CELL_WIDTHS))é é~)é é¬)é®iÿ)ipi‚)i%iü%)i(iÿ(zlist[tuple[int, int]]Ú_SINGLE_CELL_UNICODE_RANGESzCallable[[str], bool]Ú_is_single_cell_widthsicó`—t|«r t|«Sttt|««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.
    )rÚlenÚsumÚmapÚget_character_cell_size)Útexts úIH:\Change_password\venv_build\Lib\site-packages\pip/_vendor/rich/cells.pyÚcached_cell_lenr!s)€ô˜dÔ#ܐ4‹yÐÜ ŒsÔ*¨DÓ1Ó 2Ð2ócóŒ—t|«dkr||«St|«r t|«Sttt|««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)rrrrr)rÚ    _cell_lens  rÚcell_lenr3s>€ô ˆ4ƒy3‚Ù˜‹ÐܘdÔ#ܐ4‹yÐÜ ŒsÔ*¨DÓ1Ó 2Ð2r)ÚmaxsizecóƗt|«}t}d}t|«dz
}||zdz}    ||\}}}||kr|dz
}n||kDr|dz}n    |dk(rdS|S||kr    y||zdz}Œ8)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.
    rrééÿÿÿÿ)Úordrr)    Ú    characterÚ    codepointÚ_tableÚ lower_boundÚ upper_boundÚindexÚstartÚendÚwidths             rrrCsœ€ôI“€IÜ €FØ€Kܐf“+ ‘/€KØ ˜;Ñ &¨1Ñ ,€EØ
Ø" 5™MшˆsEØ uÒ Ø !™)‰KØ ˜Š_Ø !™)‰Kà š 1Ð .¨Ð .Ø ˜Ò $Ø à ð˜{Ñ*¨qÑ0ˆð rcó`—t|«r t|«}||kr |d||z
zzS|d|S|dkryt|«}||k(r|S||kr |d||z
zzSd}t|«}    ||zdz}|d|dz}t|«}||dzk(rt|d«dk(r|dddzS||k(r|S||kDr|}n|}ŒN)z?Set the length of a string to fit within given number of cells.ú NrÚrrr)rrr)    rÚtotalÚsizeÚ    cell_sizer&r'ÚposÚbeforeÚ
before_lens             rÚ set_cell_sizer2`s€ô˜dÔ#ܐ4‹yˆØ %Š<ؘ# ¨¡Ñ.Ñ.Ð .ؐFUˆ|Ðà ‚zØÜ˜“€IؐEÒØˆ ؐ5ÒØc˜U YÑ.Ñ/Ñ/Ð/à €EÜ
ˆd‹)€Cð Øs‰{˜qÑ ˆØi˜˜a™ˆÜ˜fÓ%ˆ
Ø ˜ ™Ò "¤x°°r±
Ó';¸qÒ'@ؘ#˜2; Ñ$Ð $Ø ˜Ò ؈MØ ˜Ò ؉CàˆEð rcó—t}gg}|j}|dj}d}|D]<}||«}||z|kD}    |    r||g«|dj}|}Œ0||«||z }Œ>|D
cgc]}
dj|
«‘Œc}
Scc}
w)ahSplit text into lines such that each line fits within the available (cell) width.
 
    Args:
        text: The text to fold such that it fits in the given width.
        width: The width available (number of cells).
 
    Returns:
        A list of strings such that each string in the list has cell width
        less than or equal to the available width.
    rrr+)rÚappendÚjoin) rr(Ú_get_character_cell_sizeÚlinesÚappend_new_lineÚappend_to_last_lineÚ total_widthr Ú
cell_widthÚchar_doesnt_fitÚlines            rÚ
chop_cellsr>ƒs©€ô 7ÐØ ˜T€Eà—l‘l€OØ ™)×*Ñ*Ðà€Kàò
&ˆ    Ù-¨iÓ8ˆ
Ø%¨
Ñ2°UÑ:ˆá Ù ˜Y˜KÔ (Ø"'¨¡)×"2Ñ"2Ð Ø$‰Ká      Ô *Ø ˜:Ñ %‰Kð
&ð',Ö ,˜dˆBG‰GDMÒ ,Ð,ùÒ ,sÁ,BÚ__main__u😽u]这是对亚洲语言支持的测试。面对模棱两可的想法,拒绝猜测的诱惑。ééPrú|ÚxN)rÚstrÚreturnÚint)rrDrzCallable[[str], int]rErF)r rDrErF)rrDr,rFrErD)rrDr(rFrEz    list[str])Ú
__future__rÚ    functoolsrÚtypingrÚ _cell_widthsrr Ú__annotations__Ú    frozensetrÚchrÚrangeÚ _SINGLE_CELLSÚ
issupersetrrrrr2r>Ú__name__Úprintr=Ún)Ú_startÚ_endr s000rú<module>rVsðÞ"åÝå%ò6ÐÐ2óñð8÷ðá ˆFDÙ˜S¡%¨°°q±Ó"9Ó:òð ò    ðØôó€ ð1>×0HÑ0HÐÐ-ÓHñ ˆ4ƒò3óð3ð";Jô 3ñ  4Ôò óð ó8 ðF"-Ø
ð"-à ð"-ðó"-ðJ ˆzÒÙ    Ñ
! &Ó
)Ô*ÙÐ~ðABóCòˆÙ ˆd ðá 2q˜"Ó òˆÙ ‰mÐðBCóDðGJñJô    KÙ ˆcA‰gñð    ùôgs«$C3