X7ROOT File Manager
Current Path:
/opt/alt/python38/lib/python3.8/site-packages/pip/_vendor/rich
opt
/
alt
/
python38
/
lib
/
python3.8
/
site-packages
/
pip
/
_vendor
/
rich
/
??
..
??
__init__.py
(5.8 KB)
??
__main__.py
(8.6 KB)
??
__pycache__
??
_cell_widths.py
(9.86 KB)
??
_emoji_codes.py
(136.95 KB)
??
_emoji_replace.py
(1.04 KB)
??
_export_format.py
(2.06 KB)
??
_extension.py
(265 B)
??
_inspect.py
(9.47 KB)
??
_log_render.py
(3.15 KB)
??
_loop.py
(1.21 KB)
??
_palettes.py
(6.9 KB)
??
_pick.py
(423 B)
??
_ratio.py
(5.34 KB)
??
_spinners.py
(19.45 KB)
??
_stack.py
(351 B)
??
_timer.py
(417 B)
??
_win32_console.py
(22.29 KB)
??
_windows.py
(1.88 KB)
??
_windows_renderer.py
(2.72 KB)
??
_wrap.py
(1.8 KB)
??
abc.py
(890 B)
??
align.py
(10.13 KB)
??
ansi.py
(6.66 KB)
??
bar.py
(3.19 KB)
??
box.py
(9.63 KB)
??
cells.py
(4.4 KB)
??
color.py
(17.54 KB)
??
color_triplet.py
(1.03 KB)
??
columns.py
(6.96 KB)
??
console.py
(93.64 KB)
??
constrain.py
(1.26 KB)
??
containers.py
(5.37 KB)
??
control.py
(6.47 KB)
??
default_styles.py
(7.77 KB)
??
diagnose.py
(972 B)
??
emoji.py
(2.44 KB)
??
errors.py
(642 B)
??
file_proxy.py
(1.58 KB)
??
filesize.py
(2.45 KB)
??
highlighter.py
(9.36 KB)
??
json.py
(4.93 KB)
??
jupyter.py
(3.18 KB)
??
layout.py
(13.74 KB)
??
live.py
(13.84 KB)
??
live_render.py
(3.58 KB)
??
logging.py
(11.2 KB)
??
markup.py
(8.01 KB)
??
measure.py
(5.18 KB)
??
padding.py
(4.85 KB)
??
pager.py
(828 B)
??
palette.py
(3.32 KB)
??
panel.py
(8.54 KB)
??
pretty.py
(35.72 KB)
??
progress.py
(58.35 KB)
??
progress_bar.py
(7.97 KB)
??
prompt.py
(11.04 KB)
??
protocol.py
(1.36 KB)
??
region.py
(166 B)
??
repr.py
(4.34 KB)
??
rule.py
(4.66 KB)
??
scope.py
(2.78 KB)
??
screen.py
(1.55 KB)
??
segment.py
(23.66 KB)
??
spinner.py
(4.27 KB)
??
status.py
(4.32 KB)
??
style.py
(25.63 KB)
??
styled.py
(1.23 KB)
??
syntax.py
(33.88 KB)
??
table.py
(38.59 KB)
??
terminal_theme.py
(3.29 KB)
??
text.py
(43.62 KB)
??
theme.py
(3.54 KB)
??
themes.py
(102 B)
??
traceback.py
(25.45 KB)
??
tree.py
(8.95 KB)
Editing: _wrap.py
import re from typing import Iterable, List, Tuple from ._loop import loop_last from .cells import cell_len, chop_cells re_word = re.compile(r"\s*\S+\s*") def words(text: str) -> Iterable[Tuple[int, int, str]]: position = 0 word_match = re_word.match(text, position) while word_match is not None: start, end = word_match.span() word = word_match.group(0) yield start, end, word word_match = re_word.match(text, end) def divide_line(text: str, width: int, fold: bool = True) -> List[int]: divides: List[int] = [] append = divides.append line_position = 0 _cell_len = cell_len for start, _end, word in words(text): word_length = _cell_len(word.rstrip()) if line_position + word_length > width: if word_length > width: if fold: chopped_words = chop_cells(word, max_size=width, position=0) for last, line in loop_last(chopped_words): if start: append(start) if last: line_position = _cell_len(line) else: start += len(line) else: if start: append(start) line_position = _cell_len(word) elif line_position and start: append(start) line_position = _cell_len(word) else: line_position += _cell_len(word) return divides if __name__ == "__main__": # pragma: no cover from .console import Console console = Console(width=10) console.print("12345 abcdefghijklmnopqrstuvwyxzABCDEFGHIJKLMNOPQRSTUVWXYZ 12345") print(chop_cells("abcdefghijklmnopqrstuvwxyz", 10, position=2))
Upload File
Create Folder