nanaj commited on
Commit
804a9ca
·
verified ·
1 Parent(s): 0bb5968

Upload folder using huggingface_hub (part 17)

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +44 -0
  2. venv/lib/python3.11/site-packages/rich-15.0.0.dist-info/INSTALLER +1 -0
  3. venv/lib/python3.11/site-packages/rich-15.0.0.dist-info/METADATA +479 -0
  4. venv/lib/python3.11/site-packages/rich-15.0.0.dist-info/RECORD +206 -0
  5. venv/lib/python3.11/site-packages/rich-15.0.0.dist-info/WHEEL +4 -0
  6. venv/lib/python3.11/site-packages/rich-15.0.0.dist-info/licenses/LICENSE +19 -0
  7. venv/lib/python3.11/site-packages/rich/__main__.py +245 -0
  8. venv/lib/python3.11/site-packages/rich/_emoji_codes.py +0 -0
  9. venv/lib/python3.11/site-packages/rich/_emoji_replace.py +31 -0
  10. venv/lib/python3.11/site-packages/rich/_export_format.py +76 -0
  11. venv/lib/python3.11/site-packages/rich/_extension.py +10 -0
  12. venv/lib/python3.11/site-packages/rich/_fileno.py +24 -0
  13. venv/lib/python3.11/site-packages/rich/_inspect.py +272 -0
  14. venv/lib/python3.11/site-packages/rich/_log_render.py +94 -0
  15. venv/lib/python3.11/site-packages/rich/_loop.py +43 -0
  16. venv/lib/python3.11/site-packages/rich/_null_file.py +69 -0
  17. venv/lib/python3.11/site-packages/rich/_palettes.py +309 -0
  18. venv/lib/python3.11/site-packages/rich/_pick.py +17 -0
  19. venv/lib/python3.11/site-packages/rich/_ratio.py +153 -0
  20. venv/lib/python3.11/site-packages/rich/_spinners.py +482 -0
  21. venv/lib/python3.11/site-packages/rich/_stack.py +16 -0
  22. venv/lib/python3.11/site-packages/rich/_timer.py +19 -0
  23. venv/lib/python3.11/site-packages/rich/_unicode_data/__init__.py +93 -0
  24. venv/lib/python3.11/site-packages/rich/_unicode_data/_versions.py +23 -0
  25. venv/lib/python3.11/site-packages/rich/_unicode_data/unicode10-0-0.py +611 -0
  26. venv/lib/python3.11/site-packages/rich/_unicode_data/unicode11-0-0.py +625 -0
  27. venv/lib/python3.11/site-packages/rich/_unicode_data/unicode12-0-0.py +637 -0
  28. venv/lib/python3.11/site-packages/rich/_unicode_data/unicode12-1-0.py +636 -0
  29. venv/lib/python3.11/site-packages/rich/_unicode_data/unicode13-0-0.py +648 -0
  30. venv/lib/python3.11/site-packages/rich/_unicode_data/unicode14-0-0.py +661 -0
  31. venv/lib/python3.11/site-packages/rich/_unicode_data/unicode15-0-0.py +671 -0
  32. venv/lib/python3.11/site-packages/rich/_unicode_data/unicode15-1-0.py +670 -0
  33. venv/lib/python3.11/site-packages/rich/_unicode_data/unicode16-0-0.py +683 -0
  34. venv/lib/python3.11/site-packages/rich/_unicode_data/unicode17-0-0.py +691 -0
  35. venv/lib/python3.11/site-packages/rich/_unicode_data/unicode4-1-0.py +425 -0
  36. venv/lib/python3.11/site-packages/rich/_unicode_data/unicode5-0-0.py +430 -0
  37. venv/lib/python3.11/site-packages/rich/_unicode_data/unicode5-1-0.py +433 -0
  38. venv/lib/python3.11/site-packages/rich/_unicode_data/unicode5-2-0.py +461 -0
  39. venv/lib/python3.11/site-packages/rich/_unicode_data/unicode6-0-0.py +469 -0
  40. venv/lib/python3.11/site-packages/rich/_unicode_data/unicode6-1-0.py +480 -0
  41. venv/lib/python3.11/site-packages/rich/_unicode_data/unicode6-2-0.py +480 -0
  42. venv/lib/python3.11/site-packages/rich/_unicode_data/unicode6-3-0.py +481 -0
  43. venv/lib/python3.11/site-packages/rich/_unicode_data/unicode7-0-0.py +507 -0
  44. venv/lib/python3.11/site-packages/rich/_unicode_data/unicode8-0-0.py +515 -0
  45. venv/lib/python3.11/site-packages/rich/_unicode_data/unicode9-0-0.py +598 -0
  46. venv/lib/python3.11/site-packages/rich/_win32_console.py +661 -0
  47. venv/lib/python3.11/site-packages/rich/_windows.py +71 -0
  48. venv/lib/python3.11/site-packages/rich/_windows_renderer.py +56 -0
  49. venv/lib/python3.11/site-packages/rich/_wrap.py +93 -0
  50. venv/lib/python3.11/site-packages/rich/abc.py +33 -0
.gitattributes CHANGED
@@ -347,3 +347,47 @@ venv/lib/python3.11/site-packages/pip/_vendor/distlib/w64.exe filter=lfs diff=lf
347
  venv/lib/python3.11/site-packages/psutil/_psutil_linux.abi3.so filter=lfs diff=lfs merge=lfs -text
348
  venv/lib/python3.11/site-packages/pydantic_core/_pydantic_core.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
349
  venv/lib/python3.11/site-packages/regex/_regex.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
347
  venv/lib/python3.11/site-packages/psutil/_psutil_linux.abi3.so filter=lfs diff=lfs merge=lfs -text
348
  venv/lib/python3.11/site-packages/pydantic_core/_pydantic_core.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
349
  venv/lib/python3.11/site-packages/regex/_regex.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
350
+ venv/lib/python3.11/site-packages/safetensors/_safetensors_rust.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
351
+ venv/lib/python3.11/site-packages/scipy/_cyutility.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
352
+ venv/lib/python3.11/site-packages/scipy/_lib/_uarray/_uarray.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
353
+ venv/lib/python3.11/site-packages/scipy/cluster/_hierarchy.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
354
+ venv/lib/python3.11/site-packages/scipy/cluster/_optimal_leaf_ordering.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
355
+ venv/lib/python3.11/site-packages/scipy/cluster/_vq.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
356
+ venv/lib/python3.11/site-packages/scipy/fft/_pocketfft/pypocketfft.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
357
+ venv/lib/python3.11/site-packages/scipy/fftpack/convolve.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
358
+ venv/lib/python3.11/site-packages/scipy/integrate/_odepack.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
359
+ venv/lib/python3.11/site-packages/scipy/integrate/_quadpack.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
360
+ venv/lib/python3.11/site-packages/scipy/integrate/_vode.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
361
+ venv/lib/python3.11/site-packages/scipy/interpolate/_dfitpack.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
362
+ venv/lib/python3.11/site-packages/scipy/interpolate/_dierckx.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
363
+ venv/lib/python3.11/site-packages/scipy/interpolate/_interpnd.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
364
+ venv/lib/python3.11/site-packages/scipy/interpolate/_ppoly.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
365
+ venv/lib/python3.11/site-packages/scipy/interpolate/_rbfinterp_pythran.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
366
+ venv/lib/python3.11/site-packages/scipy/interpolate/_rgi_cython.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
367
+ venv/lib/python3.11/site-packages/scipy/io/_fast_matrix_market/_fmm_core.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
368
+ venv/lib/python3.11/site-packages/scipy/io/matlab/_mio5_utils.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
369
+ venv/lib/python3.11/site-packages/scipy/io/matlab/_streams.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
370
+ venv/lib/python3.11/site-packages/scipy/linalg/_batched_linalg.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
371
+ venv/lib/python3.11/site-packages/scipy/linalg/_cythonized_array_utils.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
372
+ venv/lib/python3.11/site-packages/scipy/linalg/_decomp_interpolative.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
373
+ venv/lib/python3.11/site-packages/scipy/linalg/_decomp_lu_cython.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
374
+ venv/lib/python3.11/site-packages/scipy/linalg/_decomp_update.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
375
+ venv/lib/python3.11/site-packages/scipy/linalg/_fblas.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
376
+ venv/lib/python3.11/site-packages/scipy/linalg/_flapack.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
377
+ venv/lib/python3.11/site-packages/scipy/linalg/_linalg_pythran.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
378
+ venv/lib/python3.11/site-packages/scipy/linalg/_matfuncs_expm.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
379
+ venv/lib/python3.11/site-packages/scipy/linalg/_matfuncs_schur_sqrtm.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
380
+ venv/lib/python3.11/site-packages/scipy/linalg/_solve_toeplitz.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
381
+ venv/lib/python3.11/site-packages/scipy/linalg/cython_blas.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
382
+ venv/lib/python3.11/site-packages/scipy/linalg/cython_lapack.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
383
+ venv/lib/python3.11/site-packages/scipy/ndimage/_nd_image.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
384
+ venv/lib/python3.11/site-packages/scipy/ndimage/_ni_label.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
385
+ venv/lib/python3.11/site-packages/scipy/odr/__odrpack.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
386
+ venv/lib/python3.11/site-packages/scipy/optimize/_bglu_dense.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
387
+ venv/lib/python3.11/site-packages/scipy/optimize/_highspy/_core.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
388
+ venv/lib/python3.11/site-packages/scipy/optimize/_highspy/_highs_options.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
389
+ venv/lib/python3.11/site-packages/scipy/optimize/_lbfgsb.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
390
+ venv/lib/python3.11/site-packages/scipy/optimize/_moduleTNC.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
391
+ venv/lib/python3.11/site-packages/scipy/optimize/_pava_pybind.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
392
+ venv/lib/python3.11/site-packages/scipy/optimize/_slsqplib.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
393
+ venv/lib/python3.11/site-packages/scipy/optimize/_trlib/_trlib.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
venv/lib/python3.11/site-packages/rich-15.0.0.dist-info/INSTALLER ADDED
@@ -0,0 +1 @@
 
 
1
+ pip
venv/lib/python3.11/site-packages/rich-15.0.0.dist-info/METADATA ADDED
@@ -0,0 +1,479 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Metadata-Version: 2.4
2
+ Name: rich
3
+ Version: 15.0.0
4
+ Summary: Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal
5
+ License: MIT
6
+ License-File: LICENSE
7
+ Author: Will McGugan
8
+ Author-email: willmcgugan@gmail.com
9
+ Requires-Python: >=3.9.0
10
+ Classifier: Development Status :: 5 - Production/Stable
11
+ Classifier: Environment :: Console
12
+ Classifier: Framework :: IPython
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Operating System :: MacOS
16
+ Classifier: Operating System :: Microsoft :: Windows
17
+ Classifier: Operating System :: POSIX :: Linux
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.9
20
+ Classifier: Programming Language :: Python :: 3.10
21
+ Classifier: Programming Language :: Python :: 3.11
22
+ Classifier: Programming Language :: Python :: 3.12
23
+ Classifier: Programming Language :: Python :: 3.13
24
+ Classifier: Programming Language :: Python :: 3.14
25
+ Classifier: Typing :: Typed
26
+ Provides-Extra: jupyter
27
+ Requires-Dist: ipywidgets (>=7.5.1,<9) ; extra == "jupyter"
28
+ Requires-Dist: markdown-it-py (>=2.2.0)
29
+ Requires-Dist: pygments (>=2.13.0,<3.0.0)
30
+ Project-URL: Documentation, https://rich.readthedocs.io/en/latest/
31
+ Project-URL: Homepage, https://github.com/Textualize/rich
32
+ Description-Content-Type: text/markdown
33
+
34
+ [![Supported Python Versions](https://img.shields.io/pypi/pyversions/rich)](https://pypi.org/project/rich/) [![PyPI version](https://badge.fury.io/py/rich.svg)](https://badge.fury.io/py/rich)
35
+
36
+ [![Downloads](https://pepy.tech/badge/rich/month)](https://pepy.tech/project/rich)
37
+ [![codecov](https://img.shields.io/codecov/c/github/Textualize/rich?label=codecov&logo=codecov)](https://codecov.io/gh/Textualize/rich)
38
+ [![Rich blog](https://img.shields.io/badge/blog-rich%20news-yellowgreen)](https://www.willmcgugan.com/tag/rich/)
39
+ [![Twitter Follow](https://img.shields.io/twitter/follow/willmcgugan.svg?style=social)](https://twitter.com/willmcgugan)
40
+
41
+ ![Logo](https://github.com/textualize/rich/raw/master/imgs/logo.svg)
42
+
43
+ [English readme](https://github.com/textualize/rich/blob/master/README.md)
44
+ • [简体中文 readme](https://github.com/textualize/rich/blob/master/README.cn.md)
45
+ • [正體中文 readme](https://github.com/textualize/rich/blob/master/README.zh-tw.md)
46
+ • [Lengua española readme](https://github.com/textualize/rich/blob/master/README.es.md)
47
+ • [Deutsche readme](https://github.com/textualize/rich/blob/master/README.de.md)
48
+ • [Läs på svenska](https://github.com/textualize/rich/blob/master/README.sv.md)
49
+ • [日本語 readme](https://github.com/textualize/rich/blob/master/README.ja.md)
50
+ • [한국어 readme](https://github.com/textualize/rich/blob/master/README.kr.md)
51
+ • [Français readme](https://github.com/textualize/rich/blob/master/README.fr.md)
52
+ • [Schwizerdütsch readme](https://github.com/textualize/rich/blob/master/README.de-ch.md)
53
+ • [हिन्दी readme](https://github.com/textualize/rich/blob/master/README.hi.md)
54
+ • [Português brasileiro readme](https://github.com/textualize/rich/blob/master/README.pt-br.md)
55
+ • [Italian readme](https://github.com/textualize/rich/blob/master/README.it.md)
56
+ • [Русский readme](https://github.com/textualize/rich/blob/master/README.ru.md)
57
+ • [Indonesian readme](https://github.com/textualize/rich/blob/master/README.id.md)
58
+ • [فارسی readme](https://github.com/textualize/rich/blob/master/README.fa.md)
59
+ • [Türkçe readme](https://github.com/textualize/rich/blob/master/README.tr.md)
60
+ • [Polskie readme](https://github.com/textualize/rich/blob/master/README.pl.md)
61
+
62
+
63
+ Rich is a Python library for _rich_ text and beautiful formatting in the terminal.
64
+
65
+ The [Rich API](https://rich.readthedocs.io/en/latest/) makes it easy to add color and style to terminal output. Rich can also render pretty tables, progress bars, markdown, syntax highlighted source code, tracebacks, and more — out of the box.
66
+
67
+ ![Features](https://github.com/textualize/rich/raw/master/imgs/features.png)
68
+
69
+ For a video introduction to Rich see [calmcode.io](https://calmcode.io/rich/introduction.html) by [@fishnets88](https://twitter.com/fishnets88).
70
+
71
+ See what [people are saying about Rich](https://www.willmcgugan.com/blog/pages/post/rich-tweets/).
72
+
73
+ ## Compatibility
74
+
75
+ Rich works with Linux, macOS and Windows. True color / emoji works with new Windows Terminal, classic terminal is limited to 16 colors. Rich requires Python 3.8 or later.
76
+
77
+ Rich works with [Jupyter notebooks](https://jupyter.org/) with no additional configuration required.
78
+
79
+ ## Installing
80
+
81
+ Install with `pip` or your favorite PyPI package manager.
82
+
83
+ ```sh
84
+ python -m pip install rich
85
+ ```
86
+
87
+ Run the following to test Rich output on your terminal:
88
+
89
+ ```sh
90
+ python -m rich
91
+ ```
92
+
93
+ ## Rich Print
94
+
95
+ To effortlessly add rich output to your application, you can import the [rich print](https://rich.readthedocs.io/en/latest/introduction.html#quick-start) method, which has the same signature as the builtin Python function. Try this:
96
+
97
+ ```python
98
+ from rich import print
99
+
100
+ print("Hello, [bold magenta]World[/bold magenta]!", ":vampire:", locals())
101
+ ```
102
+
103
+ ![Hello World](https://github.com/textualize/rich/raw/master/imgs/print.png)
104
+
105
+ ## Rich REPL
106
+
107
+ Rich can be installed in the Python REPL, so that any data structures will be pretty printed and highlighted.
108
+
109
+ ```python
110
+ >>> from rich import pretty
111
+ >>> pretty.install()
112
+ ```
113
+
114
+ ![REPL](https://github.com/textualize/rich/raw/master/imgs/repl.png)
115
+
116
+ ## Using the Console
117
+
118
+ For more control over rich terminal content, import and construct a [Console](https://rich.readthedocs.io/en/latest/reference/console.html#rich.console.Console) object.
119
+
120
+ ```python
121
+ from rich.console import Console
122
+
123
+ console = Console()
124
+ ```
125
+
126
+ The Console object has a `print` method which has an intentionally similar interface to the builtin `print` function. Here's an example of use:
127
+
128
+ ```python
129
+ console.print("Hello", "World!")
130
+ ```
131
+
132
+ As you might expect, this will print `"Hello World!"` to the terminal. Note that unlike the builtin `print` function, Rich will word-wrap your text to fit within the terminal width.
133
+
134
+ There are a few ways of adding color and style to your output. You can set a style for the entire output by adding a `style` keyword argument. Here's an example:
135
+
136
+ ```python
137
+ console.print("Hello", "World!", style="bold red")
138
+ ```
139
+
140
+ The output will be something like the following:
141
+
142
+ ![Hello World](https://github.com/textualize/rich/raw/master/imgs/hello_world.png)
143
+
144
+ That's fine for styling a line of text at a time. For more finely grained styling, Rich renders a special markup which is similar in syntax to [bbcode](https://en.wikipedia.org/wiki/BBCode). Here's an example:
145
+
146
+ ```python
147
+ console.print("Where there is a [bold cyan]Will[/bold cyan] there [u]is[/u] a [i]way[/i].")
148
+ ```
149
+
150
+ ![Console Markup](https://github.com/textualize/rich/raw/master/imgs/where_there_is_a_will.png)
151
+
152
+ You can use a Console object to generate sophisticated output with minimal effort. See the [Console API](https://rich.readthedocs.io/en/latest/console.html) docs for details.
153
+
154
+ ## Rich Inspect
155
+
156
+ Rich has an [inspect](https://rich.readthedocs.io/en/latest/reference/init.html?highlight=inspect#rich.inspect) function which can produce a report on any Python object, such as class, instance, or builtin.
157
+
158
+ ```python
159
+ >>> my_list = ["foo", "bar"]
160
+ >>> from rich import inspect
161
+ >>> inspect(my_list, methods=True)
162
+ ```
163
+
164
+ ![Log](https://github.com/textualize/rich/raw/master/imgs/inspect.png)
165
+
166
+ See the [inspect docs](https://rich.readthedocs.io/en/latest/reference/init.html#rich.inspect) for details.
167
+
168
+ # Rich Library
169
+
170
+ Rich contains a number of builtin _renderables_ you can use to create elegant output in your CLI and help you debug your code.
171
+
172
+ Click the following headings for details:
173
+
174
+ <details>
175
+ <summary>Log</summary>
176
+
177
+ The Console object has a `log()` method which has a similar interface to `print()`, but also renders a column for the current time and the file and line which made the call. By default Rich will do syntax highlighting for Python structures and for repr strings. If you log a collection (i.e. a dict or a list) Rich will pretty print it so that it fits in the available space. Here's an example of some of these features.
178
+
179
+ ```python
180
+ from rich.console import Console
181
+ console = Console()
182
+
183
+ test_data = [
184
+ {"jsonrpc": "2.0", "method": "sum", "params": [None, 1, 2, 4, False, True], "id": "1",},
185
+ {"jsonrpc": "2.0", "method": "notify_hello", "params": [7]},
186
+ {"jsonrpc": "2.0", "method": "subtract", "params": [42, 23], "id": "2"},
187
+ ]
188
+
189
+ def test_log():
190
+ enabled = False
191
+ context = {
192
+ "foo": "bar",
193
+ }
194
+ movies = ["Deadpool", "Rise of the Skywalker"]
195
+ console.log("Hello from", console, "!")
196
+ console.log(test_data, log_locals=True)
197
+
198
+
199
+ test_log()
200
+ ```
201
+
202
+ The above produces the following output:
203
+
204
+ ![Log](https://github.com/textualize/rich/raw/master/imgs/log.png)
205
+
206
+ Note the `log_locals` argument, which outputs a table containing the local variables where the log method was called.
207
+
208
+ The log method could be used for logging to the terminal for long running applications such as servers, but is also a very nice debugging aid.
209
+
210
+ </details>
211
+ <details>
212
+ <summary>Logging Handler</summary>
213
+
214
+ You can also use the builtin [Handler class](https://rich.readthedocs.io/en/latest/logging.html) to format and colorize output from Python's logging module. Here's an example of the output:
215
+
216
+ ![Logging](https://github.com/textualize/rich/raw/master/imgs/logging.png)
217
+
218
+ </details>
219
+
220
+ <details>
221
+ <summary>Emoji</summary>
222
+
223
+ To insert an emoji in to console output place the name between two colons. Here's an example:
224
+
225
+ ```python
226
+ >>> console.print(":smiley: :vampire: :pile_of_poo: :thumbs_up: :raccoon:")
227
+ 😃 🧛 💩 👍 🦝
228
+ ```
229
+
230
+ Please use this feature wisely.
231
+
232
+ </details>
233
+
234
+ <details>
235
+ <summary>Tables</summary>
236
+
237
+ Rich can render flexible [tables](https://rich.readthedocs.io/en/latest/tables.html) with unicode box characters. There is a large variety of formatting options for borders, styles, cell alignment etc.
238
+
239
+ ![table movie](https://github.com/textualize/rich/raw/master/imgs/table_movie.gif)
240
+
241
+ The animation above was generated with [table_movie.py](https://github.com/textualize/rich/blob/master/examples/table_movie.py) in the examples directory.
242
+
243
+ Here's a simpler table example:
244
+
245
+ ```python
246
+ from rich.console import Console
247
+ from rich.table import Table
248
+
249
+ console = Console()
250
+
251
+ table = Table(show_header=True, header_style="bold magenta")
252
+ table.add_column("Date", style="dim", width=12)
253
+ table.add_column("Title")
254
+ table.add_column("Production Budget", justify="right")
255
+ table.add_column("Box Office", justify="right")
256
+ table.add_row(
257
+ "Dec 20, 2019", "Star Wars: The Rise of Skywalker", "$275,000,000", "$375,126,118"
258
+ )
259
+ table.add_row(
260
+ "May 25, 2018",
261
+ "[red]Solo[/red]: A Star Wars Story",
262
+ "$275,000,000",
263
+ "$393,151,347",
264
+ )
265
+ table.add_row(
266
+ "Dec 15, 2017",
267
+ "Star Wars Ep. VIII: The Last Jedi",
268
+ "$262,000,000",
269
+ "[bold]$1,332,539,889[/bold]",
270
+ )
271
+
272
+ console.print(table)
273
+ ```
274
+
275
+ This produces the following output:
276
+
277
+ ![table](https://github.com/textualize/rich/raw/master/imgs/table.png)
278
+
279
+ Note that console markup is rendered in the same way as `print()` and `log()`. In fact, anything that is renderable by Rich may be included in the headers / rows (even other tables).
280
+
281
+ The `Table` class is smart enough to resize columns to fit the available width of the terminal, wrapping text as required. Here's the same example, with the terminal made smaller than the table above:
282
+
283
+ ![table2](https://github.com/textualize/rich/raw/master/imgs/table2.png)
284
+
285
+ </details>
286
+
287
+ <details>
288
+ <summary>Progress Bars</summary>
289
+
290
+ Rich can render multiple flicker-free [progress](https://rich.readthedocs.io/en/latest/progress.html) bars to track long-running tasks.
291
+
292
+ For basic usage, wrap any sequence in the `track` function and iterate over the result. Here's an example:
293
+
294
+ ```python
295
+ from rich.progress import track
296
+
297
+ for step in track(range(100)):
298
+ do_step(step)
299
+ ```
300
+
301
+ It's not much harder to add multiple progress bars. Here's an example taken from the docs:
302
+
303
+ ![progress](https://github.com/textualize/rich/raw/master/imgs/progress.gif)
304
+
305
+ The columns may be configured to show any details you want. Built-in columns include percentage complete, file size, file speed, and time remaining. Here's another example showing a download in progress:
306
+
307
+ ![progress](https://github.com/textualize/rich/raw/master/imgs/downloader.gif)
308
+
309
+ To try this out yourself, see [examples/downloader.py](https://github.com/textualize/rich/blob/master/examples/downloader.py) which can download multiple URLs simultaneously while displaying progress.
310
+
311
+ </details>
312
+
313
+ <details>
314
+ <summary>Status</summary>
315
+
316
+ For situations where it is hard to calculate progress, you can use the [status](https://rich.readthedocs.io/en/latest/reference/console.html#rich.console.Console.status) method which will display a 'spinner' animation and message. The animation won't prevent you from using the console as normal. Here's an example:
317
+
318
+ ```python
319
+ from time import sleep
320
+ from rich.console import Console
321
+
322
+ console = Console()
323
+ tasks = [f"task {n}" for n in range(1, 11)]
324
+
325
+ with console.status("[bold green]Working on tasks...") as status:
326
+ while tasks:
327
+ task = tasks.pop(0)
328
+ sleep(1)
329
+ console.log(f"{task} complete")
330
+ ```
331
+
332
+ This generates the following output in the terminal.
333
+
334
+ ![status](https://github.com/textualize/rich/raw/master/imgs/status.gif)
335
+
336
+ The spinner animations were borrowed from [cli-spinners](https://www.npmjs.com/package/cli-spinners). You can select a spinner by specifying the `spinner` parameter. Run the following command to see the available values:
337
+
338
+ ```
339
+ python -m rich.spinner
340
+ ```
341
+
342
+ The above command generates the following output in the terminal:
343
+
344
+ ![spinners](https://github.com/textualize/rich/raw/master/imgs/spinners.gif)
345
+
346
+ </details>
347
+
348
+ <details>
349
+ <summary>Tree</summary>
350
+
351
+ Rich can render a [tree](https://rich.readthedocs.io/en/latest/tree.html) with guide lines. A tree is ideal for displaying a file structure, or any other hierarchical data.
352
+
353
+ The labels of the tree can be simple text or anything else Rich can render. Run the following for a demonstration:
354
+
355
+ ```
356
+ python -m rich.tree
357
+ ```
358
+
359
+ This generates the following output:
360
+
361
+ ![markdown](https://github.com/textualize/rich/raw/master/imgs/tree.png)
362
+
363
+ See the [tree.py](https://github.com/textualize/rich/blob/master/examples/tree.py) example for a script that displays a tree view of any directory, similar to the linux `tree` command.
364
+
365
+ </details>
366
+
367
+ <details>
368
+ <summary>Columns</summary>
369
+
370
+ Rich can render content in neat [columns](https://rich.readthedocs.io/en/latest/columns.html) with equal or optimal width. Here's a very basic clone of the (MacOS / Linux) `ls` command which displays a directory listing in columns:
371
+
372
+ ```python
373
+ import os
374
+ import sys
375
+
376
+ from rich import print
377
+ from rich.columns import Columns
378
+
379
+ directory = os.listdir(sys.argv[1])
380
+ print(Columns(directory))
381
+ ```
382
+
383
+ The following screenshot is the output from the [columns example](https://github.com/textualize/rich/blob/master/examples/columns.py) which displays data pulled from an API in columns:
384
+
385
+ ![columns](https://github.com/textualize/rich/raw/master/imgs/columns.png)
386
+
387
+ </details>
388
+
389
+ <details>
390
+ <summary>Markdown</summary>
391
+
392
+ Rich can render [markdown](https://rich.readthedocs.io/en/latest/markdown.html) and does a reasonable job of translating the formatting to the terminal.
393
+
394
+ To render markdown import the `Markdown` class and construct it with a string containing markdown code. Then print it to the console. Here's an example:
395
+
396
+ ```python
397
+ from rich.console import Console
398
+ from rich.markdown import Markdown
399
+
400
+ console = Console()
401
+ with open("README.md") as readme:
402
+ markdown = Markdown(readme.read())
403
+ console.print(markdown)
404
+ ```
405
+
406
+ This will produce output something like the following:
407
+
408
+ ![markdown](https://github.com/textualize/rich/raw/master/imgs/markdown.png)
409
+
410
+ </details>
411
+
412
+ <details>
413
+ <summary>Syntax Highlighting</summary>
414
+
415
+ Rich uses the [pygments](https://pygments.org/) library to implement [syntax highlighting](https://rich.readthedocs.io/en/latest/syntax.html). Usage is similar to rendering markdown; construct a `Syntax` object and print it to the console. Here's an example:
416
+
417
+ ```python
418
+ from rich.console import Console
419
+ from rich.syntax import Syntax
420
+
421
+ my_code = '''
422
+ def iter_first_last(values: Iterable[T]) -> Iterable[Tuple[bool, bool, T]]:
423
+ """Iterate and generate a tuple with a flag for first and last value."""
424
+ iter_values = iter(values)
425
+ try:
426
+ previous_value = next(iter_values)
427
+ except StopIteration:
428
+ return
429
+ first = True
430
+ for value in iter_values:
431
+ yield first, False, previous_value
432
+ first = False
433
+ previous_value = value
434
+ yield first, True, previous_value
435
+ '''
436
+ syntax = Syntax(my_code, "python", theme="monokai", line_numbers=True)
437
+ console = Console()
438
+ console.print(syntax)
439
+ ```
440
+
441
+ This will produce the following output:
442
+
443
+ ![syntax](https://github.com/textualize/rich/raw/master/imgs/syntax.png)
444
+
445
+ </details>
446
+
447
+ <details>
448
+ <summary>Tracebacks</summary>
449
+
450
+ Rich can render [beautiful tracebacks](https://rich.readthedocs.io/en/latest/traceback.html) which are easier to read and show more code than standard Python tracebacks. You can set Rich as the default traceback handler so all uncaught exceptions will be rendered by Rich.
451
+
452
+ Here's what it looks like on OSX (similar on Linux):
453
+
454
+ ![traceback](https://github.com/textualize/rich/raw/master/imgs/traceback.png)
455
+
456
+ </details>
457
+
458
+ All Rich renderables make use of the [Console Protocol](https://rich.readthedocs.io/en/latest/protocol.html), which you can also use to implement your own Rich content.
459
+
460
+ # Rich CLI
461
+
462
+
463
+ See also [Rich CLI](https://github.com/textualize/rich-cli) for a command line application powered by Rich. Syntax highlight code, render markdown, display CSVs in tables, and more, directly from the command prompt.
464
+
465
+
466
+ ![Rich CLI](https://raw.githubusercontent.com/Textualize/rich-cli/main/imgs/rich-cli-splash.jpg)
467
+
468
+ # Textual
469
+
470
+ See also Rich's sister project, [Textual](https://github.com/Textualize/textual), which you can use to build sophisticated User Interfaces in the terminal.
471
+
472
+ ![textual-splash](https://github.com/user-attachments/assets/4caeb77e-48c0-4cf7-b14d-c53ded855ffd)
473
+
474
+ # Toad
475
+
476
+ [Toad](https://github.com/batrachianai/toad) is a unified interface for agentic coding. Built with Rich and Textual.
477
+
478
+ ![toad](https://github.com/user-attachments/assets/6678b707-1aeb-420f-99ad-abfcd4356771)
479
+
venv/lib/python3.11/site-packages/rich-15.0.0.dist-info/RECORD ADDED
@@ -0,0 +1,206 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ rich-15.0.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
2
+ rich-15.0.0.dist-info/METADATA,sha256=-tNPxgP6xEgb-B-N1ilJL8MCwOwxkJyGZEdRUSr7Ljs,18445
3
+ rich-15.0.0.dist-info/RECORD,,
4
+ rich-15.0.0.dist-info/WHEEL,sha256=kJCRJT_g0adfAJzTx2GUMmS80rTJIVHRCfG0DQgLq3o,88
5
+ rich-15.0.0.dist-info/licenses/LICENSE,sha256=3u18F6QxgVgZCj6iOcyHmlpQJxzruYrnAl9I--WNyhU,1056
6
+ rich/__init__.py,sha256=j7AA9_z_PANQbmRTwTkWZc_DVdqtBBHxBqGrMsz21CI,6131
7
+ rich/__main__.py,sha256=kcy8BtBEUkYLCogRkwhCdJs0VNx6KF1n8kFU2g-7plg,7725
8
+ rich/__pycache__/__init__.cpython-311.pyc,,
9
+ rich/__pycache__/__main__.cpython-311.pyc,,
10
+ rich/__pycache__/_emoji_codes.cpython-311.pyc,,
11
+ rich/__pycache__/_emoji_replace.cpython-311.pyc,,
12
+ rich/__pycache__/_export_format.cpython-311.pyc,,
13
+ rich/__pycache__/_extension.cpython-311.pyc,,
14
+ rich/__pycache__/_fileno.cpython-311.pyc,,
15
+ rich/__pycache__/_inspect.cpython-311.pyc,,
16
+ rich/__pycache__/_log_render.cpython-311.pyc,,
17
+ rich/__pycache__/_loop.cpython-311.pyc,,
18
+ rich/__pycache__/_null_file.cpython-311.pyc,,
19
+ rich/__pycache__/_palettes.cpython-311.pyc,,
20
+ rich/__pycache__/_pick.cpython-311.pyc,,
21
+ rich/__pycache__/_ratio.cpython-311.pyc,,
22
+ rich/__pycache__/_spinners.cpython-311.pyc,,
23
+ rich/__pycache__/_stack.cpython-311.pyc,,
24
+ rich/__pycache__/_timer.cpython-311.pyc,,
25
+ rich/__pycache__/_win32_console.cpython-311.pyc,,
26
+ rich/__pycache__/_windows.cpython-311.pyc,,
27
+ rich/__pycache__/_windows_renderer.cpython-311.pyc,,
28
+ rich/__pycache__/_wrap.cpython-311.pyc,,
29
+ rich/__pycache__/abc.cpython-311.pyc,,
30
+ rich/__pycache__/align.cpython-311.pyc,,
31
+ rich/__pycache__/ansi.cpython-311.pyc,,
32
+ rich/__pycache__/bar.cpython-311.pyc,,
33
+ rich/__pycache__/box.cpython-311.pyc,,
34
+ rich/__pycache__/cells.cpython-311.pyc,,
35
+ rich/__pycache__/color.cpython-311.pyc,,
36
+ rich/__pycache__/color_triplet.cpython-311.pyc,,
37
+ rich/__pycache__/columns.cpython-311.pyc,,
38
+ rich/__pycache__/console.cpython-311.pyc,,
39
+ rich/__pycache__/constrain.cpython-311.pyc,,
40
+ rich/__pycache__/containers.cpython-311.pyc,,
41
+ rich/__pycache__/control.cpython-311.pyc,,
42
+ rich/__pycache__/default_styles.cpython-311.pyc,,
43
+ rich/__pycache__/diagnose.cpython-311.pyc,,
44
+ rich/__pycache__/emoji.cpython-311.pyc,,
45
+ rich/__pycache__/errors.cpython-311.pyc,,
46
+ rich/__pycache__/file_proxy.cpython-311.pyc,,
47
+ rich/__pycache__/filesize.cpython-311.pyc,,
48
+ rich/__pycache__/highlighter.cpython-311.pyc,,
49
+ rich/__pycache__/json.cpython-311.pyc,,
50
+ rich/__pycache__/jupyter.cpython-311.pyc,,
51
+ rich/__pycache__/layout.cpython-311.pyc,,
52
+ rich/__pycache__/live.cpython-311.pyc,,
53
+ rich/__pycache__/live_render.cpython-311.pyc,,
54
+ rich/__pycache__/logging.cpython-311.pyc,,
55
+ rich/__pycache__/markdown.cpython-311.pyc,,
56
+ rich/__pycache__/markup.cpython-311.pyc,,
57
+ rich/__pycache__/measure.cpython-311.pyc,,
58
+ rich/__pycache__/padding.cpython-311.pyc,,
59
+ rich/__pycache__/pager.cpython-311.pyc,,
60
+ rich/__pycache__/palette.cpython-311.pyc,,
61
+ rich/__pycache__/panel.cpython-311.pyc,,
62
+ rich/__pycache__/pretty.cpython-311.pyc,,
63
+ rich/__pycache__/progress.cpython-311.pyc,,
64
+ rich/__pycache__/progress_bar.cpython-311.pyc,,
65
+ rich/__pycache__/prompt.cpython-311.pyc,,
66
+ rich/__pycache__/protocol.cpython-311.pyc,,
67
+ rich/__pycache__/region.cpython-311.pyc,,
68
+ rich/__pycache__/repr.cpython-311.pyc,,
69
+ rich/__pycache__/rule.cpython-311.pyc,,
70
+ rich/__pycache__/scope.cpython-311.pyc,,
71
+ rich/__pycache__/screen.cpython-311.pyc,,
72
+ rich/__pycache__/segment.cpython-311.pyc,,
73
+ rich/__pycache__/spinner.cpython-311.pyc,,
74
+ rich/__pycache__/status.cpython-311.pyc,,
75
+ rich/__pycache__/style.cpython-311.pyc,,
76
+ rich/__pycache__/styled.cpython-311.pyc,,
77
+ rich/__pycache__/syntax.cpython-311.pyc,,
78
+ rich/__pycache__/table.cpython-311.pyc,,
79
+ rich/__pycache__/terminal_theme.cpython-311.pyc,,
80
+ rich/__pycache__/text.cpython-311.pyc,,
81
+ rich/__pycache__/theme.cpython-311.pyc,,
82
+ rich/__pycache__/themes.cpython-311.pyc,,
83
+ rich/__pycache__/traceback.cpython-311.pyc,,
84
+ rich/__pycache__/tree.cpython-311.pyc,,
85
+ rich/_emoji_codes.py,sha256=hu1VL9nbVdppJrVoijVshRlcRRe_v3dju3Mmd2sKZdY,140235
86
+ rich/_emoji_replace.py,sha256=ysSn8smSqQW22XEfCH0lJ80vogUYZKr9dPImfUG2e6Y,1067
87
+ rich/_export_format.py,sha256=RI08pSrm5tBSzPMvnbTqbD9WIalaOoN5d4M1RTmLq1Y,2128
88
+ rich/_extension.py,sha256=G66PkbH_QdTJh6jD-J228O76CmAnr2hLQv72CgPPuzE,241
89
+ rich/_fileno.py,sha256=HWZxP5C2ajMbHryvAQZseflVfQoGzsKOHzKGsLD8ynQ,799
90
+ rich/_inspect.py,sha256=5pUYCqveN4ekb_mgHOYCipyZCrMGEJZYZs3y5QqmCf0,9894
91
+ rich/_log_render.py,sha256=xBKCxqiO4FZk8eG56f8crFdrmJxFrJsQE3V3F-fFekc,3213
92
+ rich/_loop.py,sha256=hV_6CLdoPm0va22Wpw4zKqM0RYsz3TZxXj0PoS-9eDQ,1236
93
+ rich/_null_file.py,sha256=ADGKp1yt-k70FMKV6tnqCqecB-rSJzp-WQsD7LPL-kg,1394
94
+ rich/_palettes.py,sha256=cdev1JQKZ0JvlguV9ipHgznTdnvlIzUFDBb0It2PzjI,7063
95
+ rich/_pick.py,sha256=evDt8QN4lF5CiwrUIXlOJCntitBCOsI3ZLPEIAVRLJU,423
96
+ rich/_ratio.py,sha256=IOtl78sQCYZsmHyxhe45krkb68u9xVz7zFsXVJD-b2Y,5325
97
+ rich/_spinners.py,sha256=U2r1_g_1zSjsjiUdAESc2iAMc3i4ri_S8PYP6kQ5z1I,19919
98
+ rich/_stack.py,sha256=-C8OK7rxn3sIUdVwxZBBpeHhIzX0eI-VM3MemYfaXm0,351
99
+ rich/_timer.py,sha256=zelxbT6oPFZnNrwWPpc1ktUeAT-Vc4fuFcRZLQGLtMI,417
100
+ rich/_unicode_data/__init__.py,sha256=40PhAFp3b88yPnRtTG6i9g5xj-5w98CET3C4Ip1LJAI,2631
101
+ rich/_unicode_data/__pycache__/__init__.cpython-311.pyc,,
102
+ rich/_unicode_data/__pycache__/_versions.cpython-311.pyc,,
103
+ rich/_unicode_data/__pycache__/unicode10-0-0.cpython-311.pyc,,
104
+ rich/_unicode_data/__pycache__/unicode11-0-0.cpython-311.pyc,,
105
+ rich/_unicode_data/__pycache__/unicode12-0-0.cpython-311.pyc,,
106
+ rich/_unicode_data/__pycache__/unicode12-1-0.cpython-311.pyc,,
107
+ rich/_unicode_data/__pycache__/unicode13-0-0.cpython-311.pyc,,
108
+ rich/_unicode_data/__pycache__/unicode14-0-0.cpython-311.pyc,,
109
+ rich/_unicode_data/__pycache__/unicode15-0-0.cpython-311.pyc,,
110
+ rich/_unicode_data/__pycache__/unicode15-1-0.cpython-311.pyc,,
111
+ rich/_unicode_data/__pycache__/unicode16-0-0.cpython-311.pyc,,
112
+ rich/_unicode_data/__pycache__/unicode17-0-0.cpython-311.pyc,,
113
+ rich/_unicode_data/__pycache__/unicode4-1-0.cpython-311.pyc,,
114
+ rich/_unicode_data/__pycache__/unicode5-0-0.cpython-311.pyc,,
115
+ rich/_unicode_data/__pycache__/unicode5-1-0.cpython-311.pyc,,
116
+ rich/_unicode_data/__pycache__/unicode5-2-0.cpython-311.pyc,,
117
+ rich/_unicode_data/__pycache__/unicode6-0-0.cpython-311.pyc,,
118
+ rich/_unicode_data/__pycache__/unicode6-1-0.cpython-311.pyc,,
119
+ rich/_unicode_data/__pycache__/unicode6-2-0.cpython-311.pyc,,
120
+ rich/_unicode_data/__pycache__/unicode6-3-0.cpython-311.pyc,,
121
+ rich/_unicode_data/__pycache__/unicode7-0-0.cpython-311.pyc,,
122
+ rich/_unicode_data/__pycache__/unicode8-0-0.cpython-311.pyc,,
123
+ rich/_unicode_data/__pycache__/unicode9-0-0.cpython-311.pyc,,
124
+ rich/_unicode_data/_versions.py,sha256=ftILR3G5dqmlQmCJYNovuyXfFneJY2eH2RvpV19tyYE,298
125
+ rich/_unicode_data/unicode10-0-0.py,sha256=FUstYPZwDF15BEuAERqXHqIPvC1KY1SL20qLj999Fzo,14496
126
+ rich/_unicode_data/unicode11-0-0.py,sha256=jp8SRKFBlIaHMafxAfhLiU7FizwdcgPVvytR3kSFtZo,14874
127
+ rich/_unicode_data/unicode12-0-0.py,sha256=0XHXSjW5EXue6Qfgl_u0bK7NstiSdmqrR_F_Wqhs5bE,15216
128
+ rich/_unicode_data/unicode12-1-0.py,sha256=kWcRGh1UVwsmK9qflfGsO_aM8AuNhLthJcsyXAOQryI,15189
129
+ rich/_unicode_data/unicode13-0-0.py,sha256=DokduALtgaB-WvapW7X7PmM3kZFbgnCo9ifINWZtuDs,15519
130
+ rich/_unicode_data/unicode14-0-0.py,sha256=Ni-3JnGf5sB4kGl8ip-Iyqoum-awJjZV0RoSNuo0yu8,15884
131
+ rich/_unicode_data/unicode15-0-0.py,sha256=DBHkV5Si9vmtv_MiW6NmPQb8yUeP4N-9hNt2juZr4ZE,16156
132
+ rich/_unicode_data/unicode15-1-0.py,sha256=uyCZLYrg0q7wGt3-uBdsF0Ay_x8MTMvFqK6aMOkl9rA,16129
133
+ rich/_unicode_data/unicode16-0-0.py,sha256=5iGpbczVQ7BD2QGYb6k1h_OdILQXXuhcvI6dQFLKbMc,16480
134
+ rich/_unicode_data/unicode17-0-0.py,sha256=NXbjFsAaTYdj6TYgk5Q9disv40LZHbedFGRl_48_9Y0,16704
135
+ rich/_unicode_data/unicode4-1-0.py,sha256=yIApQGEG7VOFYY2FFfvOdPprE6VpDusjLlTlCy4G_Rw,9488
136
+ rich/_unicode_data/unicode5-0-0.py,sha256=PkEI1x4RGwXSmgqHiu88jyz14VQT8bWiOtBDrECaVZg,9613
137
+ rich/_unicode_data/unicode5-1-0.py,sha256=C0-PWziqpkVkf3PkPz2GWNwidCrjef5AHQGBpqTPkuY,9650
138
+ rich/_unicode_data/unicode5-2-0.py,sha256=gM88qri3_9b0I37DGK1-ah-0SUed2VmvxUddB5UZLto,10390
139
+ rich/_unicode_data/unicode6-0-0.py,sha256=hhcAipqKU81dZ4YbDXIlT7KEK9yNG_Lx-5GLgNTF75g,10604
140
+ rich/_unicode_data/unicode6-1-0.py,sha256=PtUJYxwtU5S2A44YY_69Ka_wTkq-c7QCa-yibmkHvJs,10899
141
+ rich/_unicode_data/unicode6-2-0.py,sha256=TdTOctGwO-OYVGif1DoRJvsaQISHw5EXHPt58fjB55g,10899
142
+ rich/_unicode_data/unicode6-3-0.py,sha256=G9l8chu2MJTwZ_d_0tmH7PBg8KYYHaeuJCJNCHGHkDc,10924
143
+ rich/_unicode_data/unicode7-0-0.py,sha256=po9GGYW7ilGU9MwGE6fny-OofqbDwelQrnOIm-IusjI,11630
144
+ rich/_unicode_data/unicode8-0-0.py,sha256=4PjyI-w2Uj9xtanNlZm1d_2khcetMQlIefaoU2joGkY,11864
145
+ rich/_unicode_data/unicode9-0-0.py,sha256=A-pQjvkTICUGXEDOiWNMqa6z6vv1E__HJffzu7zLi9c,14148
146
+ rich/_win32_console.py,sha256=o2QN_IRx10biGP3Ap1neaqX8FBGlUKSmWM6Kw4OSg-U,22719
147
+ rich/_windows.py,sha256=is3WpbHMj8WaTHYB11hc6lP2t4hlvt4TViTlHSmjsi0,1901
148
+ rich/_windows_renderer.py,sha256=d799xOnxLbCCCzGu9-U7YLmIQkxtxQIBFQQ6iu4veSc,2759
149
+ rich/_wrap.py,sha256=FlSsom5EX0LVkA3KWy34yHnCfLtqX-ZIepXKh-70rpc,3404
150
+ rich/abc.py,sha256=dALMOGfKVNeAbvqq66IpTQxQUerxD7AE4FKwqd0eQKk,878
151
+ rich/align.py,sha256=a8MbP-iJjoOFonxqgoP3YketKMWU3WFZaxjqAv2Qc5E,10726
152
+ rich/ansi.py,sha256=TQ7pdksq0b3XPcw_tSGvL_QthPxNLKOYQImPQYWp6pM,6947
153
+ rich/bar.py,sha256=ldbVHOzKJOnflVNuv1xS7g6dLX2E3wMnXkdPbpzJTcs,3263
154
+ rich/box.py,sha256=SSolg8_pzHzY9QvJQo-qp0tbPsnj8O_2W4hmi1l-Zo0,10650
155
+ rich/cells.py,sha256=fPRSnquYlCO4THgmUokOJOhNlcx8C4NZ2Xv9JM_7GbE,12335
156
+ rich/color.py,sha256=3HSULVDj7qQkXUdFWv78JOiSZzfy5y1nkcYhna296V0,18211
157
+ rich/color_triplet.py,sha256=3lhQkdJbvWPoLDO-AnYImAWmJvV5dlgYNCVZ97ORaN4,1054
158
+ rich/columns.py,sha256=HUX0KcMm9dsKNi11fTbiM_h2iDtl8ySCaVcxlalEzq8,7131
159
+ rich/console.py,sha256=RTP8ZpY2I6KiFEe1Adb1H4z-5-FHdReAk6Xm62HcE1o,101361
160
+ rich/constrain.py,sha256=1VIPuC8AgtKWrcncQrjBdYqA3JVWysu6jZo1rrh7c7Q,1288
161
+ rich/containers.py,sha256=c_56TxcedGYqDepHBMTuZdUIijitAQgnox-Qde0Z1qo,5502
162
+ rich/control.py,sha256=HnsraFTzBaUQDzKJWXsfPv-PPmgGypSgSv7oANackqs,6475
163
+ rich/default_styles.py,sha256=DqEUiGrj4N0eAcgDwjGeUSe8BLMxZw57L9RXnTCroTs,8401
164
+ rich/diagnose.py,sha256=1RWnQoppPXjC_49AB4vtV048DK3ksQSq671C83Y6f-g,977
165
+ rich/emoji.py,sha256=z7ABu0_61WJPWOM_dxhUHNaA0B6RQuZX3reljs1iWE8,2388
166
+ rich/errors.py,sha256=5pP3Kc5d4QJ_c0KFsxrfyhjiPVe7J1zOqSFbFAzcV-Y,642
167
+ rich/file_proxy.py,sha256=MvlB3tSsuVmH4qCWXK9SK3S_OohVRIczUw_Fufmsdt8,1750
168
+ rich/filesize.py,sha256=_iz9lIpRgvW7MNSeCZnLg-HwzbP4GETg543WqD8SFs0,2484
169
+ rich/highlighter.py,sha256=MIapWwjR8ahUcsDicgN4xLRbanbh5x_Qzh5kfdDrKKk,9729
170
+ rich/json.py,sha256=omC2WHTgURxEosna1ftoSJCne2EX7MDuQtCdswS3qsk,5019
171
+ rich/jupyter.py,sha256=G9pOJmR4ESIFYSd4MKGqmHqCtstx0oRWpyeTgv54-Xc,3228
172
+ rich/layout.py,sha256=WR8PCSroYnteIT3zawxQ3k3ad1sQO5wGG1SZOoeBuBM,13944
173
+ rich/live.py,sha256=UKvqLSuSzNHIBz5pxRrU7SPsnG48vJJx2TMHiaHlmnI,15317
174
+ rich/live_render.py,sha256=jQO3X_p2wemGI2bdCAY_e5j9xXNTwDxuujbpoSRsH6c,3803
175
+ rich/logging.py,sha256=7vhk7r_LhWTcwteyjLLM5Nfc839fwBuIiISvBZcGwzo,12622
176
+ rich/markdown.py,sha256=MmbNh8IhWgdGNQkeNTHWNR470KQVACt_9aJu6TMourA,26549
177
+ rich/markup.py,sha256=btpr271BLhiCR1jNglRnv2BpIzVcNefYwSMeW9teDbc,8427
178
+ rich/measure.py,sha256=HmrIJX8sWRTHbgh8MxEay_83VkqNW_70s8aKP5ZcYI8,5305
179
+ rich/padding.py,sha256=h8XnIivLrNtlxI3vQPKHXh4hAwjOJqZx0slM0z3g1_M,4896
180
+ rich/pager.py,sha256=SO_ETBFKbg3n_AgOzXm41Sv36YxXAyI3_R-KOY2_uSc,828
181
+ rich/palette.py,sha256=Ar6ZUrYHiFt6-Rr2k-k9F8V7hxgJYHNdqjk2vVXsLgc,3288
182
+ rich/panel.py,sha256=9sQl00hPIqH5G2gALQo4NepFwpP0k9wT-s_gOms5pIc,11157
183
+ rich/pretty.py,sha256=lxW_bhBfDTKe-grtzP1KQhQsqPZxfZN14th4JRVoLzQ,36349
184
+ rich/progress.py,sha256=Z6Yz6pYO26LFXx24cXKvk2bEX6FkjK2Z5e2fy0Bt78s,60393
185
+ rich/progress_bar.py,sha256=mZTPpJUwcfcdgQCTTz3kyY-fc79ddLwtx6Ghhxfo064,8162
186
+ rich/prompt.py,sha256=1SIuBEelovvwCG2wp22PZwskA3IkmAsOxf0ruFkOhOk,12448
187
+ rich/protocol.py,sha256=9OHzfZXAnidZqaZgSFsX5KsJg8JHHNUc8jk9dsxa1ik,1348
188
+ rich/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
189
+ rich/region.py,sha256=rNT9xZrVZTYIXZC0NYn41CJQwYNbR-KecPOxTgQvB8Y,166
190
+ rich/repr.py,sha256=mFexGTVledesZiMD3jBBBBoICoWh-XPFAUq3Hu7iX4U,4436
191
+ rich/rule.py,sha256=umO21Wjw0FcYAeTB3UumNLCsDWhejzxnjlf2VwiXiDI,4590
192
+ rich/scope.py,sha256=x-jkKIE-j7ZxA9I07lya5iVAuDAyUKM58HWtNZQUzRc,3239
193
+ rich/screen.py,sha256=rL_j2wX-4SeuIOI2oOlc418QP9EAvD59GInUmEAE6jQ,1579
194
+ rich/segment.py,sha256=17JAw4bmsV_LrJ8PnhI9XH2DaN-fOEPF-8mgx7joLDM,25740
195
+ rich/spinner.py,sha256=onIhpKlljRHppTZasxO8kXgtYyCHUkpSgKglRJ3o51g,4214
196
+ rich/status.py,sha256=kkPph3YeAZBo-X-4wPp8gTqZyU466NLwZBA4PZTTewo,4424
197
+ rich/style.py,sha256=yp4TsNKNPUxBytoFWfy7kzE2Gh_9TYA7fs2ULXfbm00,27068
198
+ rich/styled.py,sha256=wljVsVTXbABMMZvkzkO43ZEk_-irzEtvUiQ-sNnikQ8,1234
199
+ rich/syntax.py,sha256=ytgeGUt91fdr8LaHKOdkaNMewrPRxgoci5mMd3MPE4I,36305
200
+ rich/table.py,sha256=6yv7wMLXZgOsGgzEDpKXpecXQOwcLBHNOn-MYcbo1Zk,40033
201
+ rich/terminal_theme.py,sha256=1j5-ufJfnvlAo5Qsi_ACZiXDmwMXzqgmFByObT9-yJY,3370
202
+ rich/text.py,sha256=t2J8iMquwR0BUUggm-cVNp30Wxw5M8fIF_p0jioYRV0,47655
203
+ rich/theme.py,sha256=biYZWd_Wu1KW8VtT7UsTQDrDU89RxAK5_Vz1y3ztGYI,3780
204
+ rich/themes.py,sha256=0xgTLozfabebYtcJtDdC5QkX5IVUEaviqDUJJh4YVFk,102
205
+ rich/traceback.py,sha256=TT03eLKEj5XapXFp9kgf0bBwNupIFrHquKxZtwBhz_8,37535
206
+ rich/tree.py,sha256=QoOwg424FkdwGfR8K0tZ6Q7qtzWNAUP_m4sFaYuG6nw,9391
venv/lib/python3.11/site-packages/rich-15.0.0.dist-info/WHEEL ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ Wheel-Version: 1.0
2
+ Generator: poetry-core 2.3.1
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
venv/lib/python3.11/site-packages/rich-15.0.0.dist-info/licenses/LICENSE ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Copyright (c) 2020 Will McGugan
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in all
11
+ copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
+ SOFTWARE.
venv/lib/python3.11/site-packages/rich/__main__.py ADDED
@@ -0,0 +1,245 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import colorsys
2
+ import io
3
+ from time import process_time
4
+
5
+ from rich import box
6
+ from rich.color import Color
7
+ from rich.console import Console, ConsoleOptions, Group, RenderableType, RenderResult
8
+ from rich.markdown import Markdown
9
+ from rich.measure import Measurement
10
+ from rich.pretty import Pretty
11
+ from rich.segment import Segment
12
+ from rich.style import Style
13
+ from rich.syntax import Syntax
14
+ from rich.table import Table
15
+ from rich.text import Text
16
+
17
+
18
+ class ColorBox:
19
+ def __rich_console__(
20
+ self, console: Console, options: ConsoleOptions
21
+ ) -> RenderResult:
22
+ for y in range(0, 5):
23
+ for x in range(options.max_width):
24
+ h = x / options.max_width
25
+ l = 0.1 + ((y / 5) * 0.7)
26
+ r1, g1, b1 = colorsys.hls_to_rgb(h, l, 1.0)
27
+ r2, g2, b2 = colorsys.hls_to_rgb(h, l + 0.7 / 10, 1.0)
28
+ bgcolor = Color.from_rgb(r1 * 255, g1 * 255, b1 * 255)
29
+ color = Color.from_rgb(r2 * 255, g2 * 255, b2 * 255)
30
+ yield Segment("▄", Style(color=color, bgcolor=bgcolor))
31
+ yield Segment.line()
32
+
33
+ def __rich_measure__(
34
+ self, console: "Console", options: ConsoleOptions
35
+ ) -> Measurement:
36
+ return Measurement(1, options.max_width)
37
+
38
+
39
+ def make_test_card() -> Table:
40
+ """Get a renderable that demonstrates a number of features."""
41
+ table = Table.grid(padding=1, pad_edge=True)
42
+ table.title = "Rich features"
43
+ table.add_column("Feature", no_wrap=True, justify="center", style="bold red")
44
+ table.add_column("Demonstration")
45
+
46
+ color_table = Table(
47
+ box=None,
48
+ expand=False,
49
+ show_header=False,
50
+ show_edge=False,
51
+ pad_edge=False,
52
+ )
53
+ color_table.add_row(
54
+ (
55
+ "✓ [bold green]4-bit color[/]\n"
56
+ "✓ [bold blue]8-bit color[/]\n"
57
+ "✓ [bold magenta]Truecolor (16.7 million)[/]\n"
58
+ "✓ [bold yellow]Dumb terminals[/]\n"
59
+ "✓ [bold cyan]Automatic color conversion"
60
+ ),
61
+ ColorBox(),
62
+ )
63
+
64
+ table.add_row("Colors", color_table)
65
+
66
+ table.add_row(
67
+ "Styles",
68
+ "All ansi styles: [bold]bold[/], [dim]dim[/], [italic]italic[/italic], [underline]underline[/], [strike]strikethrough[/], [reverse]reverse[/], and even [blink]blink[/].",
69
+ )
70
+
71
+ lorem = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque in metus sed sapien ultricies pretium a at justo. Maecenas luctus velit et auctor maximus."
72
+ lorem_table = Table.grid(padding=1, collapse_padding=True)
73
+ lorem_table.pad_edge = False
74
+ lorem_table.add_row(
75
+ Text(lorem, justify="left", style="green"),
76
+ Text(lorem, justify="center", style="yellow"),
77
+ Text(lorem, justify="right", style="blue"),
78
+ Text(lorem, justify="full", style="red"),
79
+ )
80
+ table.add_row(
81
+ "Text",
82
+ Group(
83
+ Text.from_markup(
84
+ """Word wrap text. Justify [green]left[/], [yellow]center[/], [blue]right[/] or [red]full[/].\n"""
85
+ ),
86
+ lorem_table,
87
+ ),
88
+ )
89
+
90
+ def comparison(renderable1: RenderableType, renderable2: RenderableType) -> Table:
91
+ table = Table(show_header=False, pad_edge=False, box=None, expand=True)
92
+ table.add_column("1", ratio=1)
93
+ table.add_column("2", ratio=1)
94
+ table.add_row(renderable1, renderable2)
95
+ return table
96
+
97
+ table.add_row(
98
+ "Asian\nlanguage\nsupport",
99
+ ":flag_for_china: 该库支持中文,日文和韩文文本!\n:flag_for_japan: ライブラリは中国語、日本語、韓国語のテキストをサポートしています\n:flag_for_south_korea: 이 라이브러리는 중국어, 일본어 및 한국어 텍스트를 지원합니다",
100
+ )
101
+
102
+ markup_example = (
103
+ "[bold magenta]Rich[/] supports a simple [i]bbcode[/i]-like [b]markup[/b] for [yellow]color[/], [underline]style[/], and emoji! "
104
+ ":+1: :apple: :ant: :bear: :baguette_bread: :bus: "
105
+ )
106
+ table.add_row("Markup", markup_example)
107
+
108
+ example_table = Table(
109
+ show_edge=False,
110
+ show_header=True,
111
+ expand=False,
112
+ row_styles=["none", "dim"],
113
+ box=box.SIMPLE,
114
+ )
115
+ example_table.add_column("[green]Date", style="green", no_wrap=True)
116
+ example_table.add_column("[blue]Title", style="blue")
117
+ example_table.add_column(
118
+ "[cyan]Production Budget",
119
+ style="cyan",
120
+ justify="right",
121
+ no_wrap=True,
122
+ )
123
+ example_table.add_column(
124
+ "[magenta]Box Office",
125
+ style="magenta",
126
+ justify="right",
127
+ no_wrap=True,
128
+ )
129
+ example_table.add_row(
130
+ "Dec 20, 2019",
131
+ "Star Wars: The Rise of Skywalker",
132
+ "$275,000,000",
133
+ "$375,126,118",
134
+ )
135
+ example_table.add_row(
136
+ "May 25, 2018",
137
+ "[b]Solo[/]: A Star Wars Story",
138
+ "$275,000,000",
139
+ "$393,151,347",
140
+ )
141
+ example_table.add_row(
142
+ "Dec 15, 2017",
143
+ "Star Wars Ep. VIII: The Last Jedi",
144
+ "$262,000,000",
145
+ "[bold]$1,332,539,889[/bold]",
146
+ )
147
+ example_table.add_row(
148
+ "May 19, 1999",
149
+ "Star Wars Ep. [b]I[/b]: [i]The phantom Menace",
150
+ "$115,000,000",
151
+ "$1,027,044,677",
152
+ )
153
+
154
+ table.add_row("Tables", example_table)
155
+
156
+ code = '''\
157
+ def iter_last(values: Iterable[T]) -> Iterable[Tuple[bool, T]]:
158
+ """Iterate and generate a tuple with a flag for last value."""
159
+ iter_values = iter(values)
160
+ try:
161
+ previous_value = next(iter_values)
162
+ except StopIteration:
163
+ return
164
+ for value in iter_values:
165
+ yield False, previous_value
166
+ previous_value = value
167
+ yield True, previous_value'''
168
+
169
+ pretty_data = {
170
+ "foo": [
171
+ 3.1427,
172
+ (
173
+ "Paul Atreides",
174
+ "Vladimir Harkonnen",
175
+ "Thufir Hawat",
176
+ ),
177
+ ],
178
+ "atomic": (False, True, None),
179
+ }
180
+ table.add_row(
181
+ "Syntax\nhighlighting\n&\npretty\nprinting",
182
+ comparison(
183
+ Syntax(code, "python3", line_numbers=True, indent_guides=True),
184
+ Pretty(pretty_data, indent_guides=True),
185
+ ),
186
+ )
187
+
188
+ markdown_example = """\
189
+ # Markdown
190
+
191
+ Supports much of the *markdown* __syntax__!
192
+
193
+ - Headers
194
+ - Basic formatting: **bold**, *italic*, `code`
195
+ - Block quotes
196
+ - Lists, and more...
197
+ """
198
+ table.add_row(
199
+ "Markdown", comparison("[cyan]" + markdown_example, Markdown(markdown_example))
200
+ )
201
+
202
+ table.add_row(
203
+ "+more!",
204
+ """Progress bars, columns, styled logging handler, tracebacks, etc...""",
205
+ )
206
+ return table
207
+
208
+
209
+ if __name__ == "__main__": # pragma: no cover
210
+ from rich.panel import Panel
211
+
212
+ console = Console(
213
+ file=io.StringIO(),
214
+ force_terminal=True,
215
+ )
216
+ test_card = make_test_card()
217
+
218
+ # Print once to warm cache
219
+ start = process_time()
220
+ console.print(test_card)
221
+ pre_cache_taken = round((process_time() - start) * 1000.0, 1)
222
+
223
+ console.file = io.StringIO()
224
+
225
+ start = process_time()
226
+ console.print(test_card)
227
+ taken = round((process_time() - start) * 1000.0, 1)
228
+
229
+ c = Console(record=True)
230
+ c.print(test_card)
231
+
232
+ console = Console()
233
+ console.print(f"[dim]rendered in [not dim]{pre_cache_taken}ms[/] (cold cache)")
234
+ console.print(f"[dim]rendered in [not dim]{taken}ms[/] (warm cache)")
235
+ console.print()
236
+ console.print(
237
+ Panel(
238
+ "[b magenta]Hope you enjoy using Rich![/]\n\n"
239
+ "Consider sponsoring to ensure this project is maintained.\n\n"
240
+ "[cyan]https://github.com/sponsors/willmcgugan[/cyan]",
241
+ border_style="green",
242
+ title="Help ensure Rich is maintained",
243
+ padding=(1, 2),
244
+ )
245
+ )
venv/lib/python3.11/site-packages/rich/_emoji_codes.py ADDED
The diff for this file is too large to render. See raw diff
 
venv/lib/python3.11/site-packages/rich/_emoji_replace.py ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import re
2
+ from typing import Callable, Match, Optional
3
+
4
+ _ReStringMatch = Match[str] # regex match object
5
+ _ReSubCallable = Callable[[_ReStringMatch], str] # Callable invoked by re.sub
6
+ _EmojiSubMethod = Callable[[_ReSubCallable, str], str] # Sub method of a compiled re
7
+
8
+
9
+ def _emoji_replace(
10
+ text: str,
11
+ default_variant: Optional[str] = None,
12
+ _emoji_sub: _EmojiSubMethod = re.compile(r"(:(\S*?)(?:(?:\-)(emoji|text))?:)").sub,
13
+ ) -> str:
14
+ """Replace emoji code in text."""
15
+ from ._emoji_codes import EMOJI
16
+
17
+ get_emoji = EMOJI.__getitem__
18
+ variants = {"text": "\ufe0e", "emoji": "\ufe0f"}
19
+ get_variant = variants.get
20
+ default_variant_code = variants.get(default_variant, "") if default_variant else ""
21
+
22
+ def do_replace(match: Match[str]) -> str:
23
+ emoji_code, emoji_name, variant = match.groups()
24
+ try:
25
+ return get_emoji(emoji_name.lower()) + get_variant(
26
+ variant, default_variant_code
27
+ )
28
+ except KeyError:
29
+ return emoji_code
30
+
31
+ return _emoji_sub(do_replace, text)
venv/lib/python3.11/site-packages/rich/_export_format.py ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ CONSOLE_HTML_FORMAT = """\
2
+ <!DOCTYPE html>
3
+ <html>
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <style>
7
+ {stylesheet}
8
+ body {{
9
+ color: {foreground};
10
+ background-color: {background};
11
+ }}
12
+ </style>
13
+ </head>
14
+ <body>
15
+ <pre style="font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace"><code style="font-family:inherit">{code}</code></pre>
16
+ </body>
17
+ </html>
18
+ """
19
+
20
+ CONSOLE_SVG_FORMAT = """\
21
+ <svg class="rich-terminal" viewBox="0 0 {width} {height}" xmlns="http://www.w3.org/2000/svg">
22
+ <!-- Generated with Rich https://www.textualize.io -->
23
+ <style>
24
+
25
+ @font-face {{
26
+ font-family: "Fira Code";
27
+ src: local("FiraCode-Regular"),
28
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
29
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
30
+ font-style: normal;
31
+ font-weight: 400;
32
+ }}
33
+ @font-face {{
34
+ font-family: "Fira Code";
35
+ src: local("FiraCode-Bold"),
36
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
37
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
38
+ font-style: bold;
39
+ font-weight: 700;
40
+ }}
41
+
42
+ .{unique_id}-matrix {{
43
+ font-family: Fira Code, monospace;
44
+ font-size: {char_height}px;
45
+ line-height: {line_height}px;
46
+ font-variant-east-asian: full-width;
47
+ }}
48
+
49
+ .{unique_id}-title {{
50
+ font-size: 18px;
51
+ font-weight: bold;
52
+ font-family: arial;
53
+ }}
54
+
55
+ {styles}
56
+ </style>
57
+
58
+ <defs>
59
+ <clipPath id="{unique_id}-clip-terminal">
60
+ <rect x="0" y="0" width="{terminal_width}" height="{terminal_height}" />
61
+ </clipPath>
62
+ {lines}
63
+ </defs>
64
+
65
+ {chrome}
66
+ <g transform="translate({terminal_x}, {terminal_y})" clip-path="url(#{unique_id}-clip-terminal)">
67
+ {backgrounds}
68
+ <g class="{unique_id}-matrix">
69
+ {matrix}
70
+ </g>
71
+ </g>
72
+ </svg>
73
+ """
74
+
75
+ _SVG_FONT_FAMILY = "Rich Fira Code"
76
+ _SVG_CLASSES_PREFIX = "rich-svg"
venv/lib/python3.11/site-packages/rich/_extension.py ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ from typing import Any
2
+
3
+
4
+ def load_ipython_extension(ip: Any) -> None: # pragma: no cover
5
+ # prevent circular import
6
+ from rich.pretty import install
7
+ from rich.traceback import install as tr_install
8
+
9
+ install()
10
+ tr_install()
venv/lib/python3.11/site-packages/rich/_fileno.py ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from __future__ import annotations
2
+
3
+ from typing import IO, Callable
4
+
5
+
6
+ def get_fileno(file_like: IO[str]) -> int | None:
7
+ """Get fileno() from a file, accounting for poorly implemented file-like objects.
8
+
9
+ Args:
10
+ file_like (IO): A file-like object.
11
+
12
+ Returns:
13
+ int | None: The result of fileno if available, or None if operation failed.
14
+ """
15
+ fileno: Callable[[], int] | None = getattr(file_like, "fileno", None)
16
+ if fileno is not None:
17
+ try:
18
+ return fileno()
19
+ except Exception:
20
+ # `fileno` is documented as potentially raising a OSError
21
+ # Alas, from the issues, there are so many poorly implemented file-like objects,
22
+ # that `fileno()` can raise just about anything.
23
+ return None
24
+ return None
venv/lib/python3.11/site-packages/rich/_inspect.py ADDED
@@ -0,0 +1,272 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import inspect
2
+ from inspect import cleandoc, getdoc, getfile, isclass, ismodule, signature
3
+ from typing import Any, Collection, Iterable, Optional, Tuple, Type, Union
4
+
5
+ from .console import Group, RenderableType
6
+ from .control import escape_control_codes
7
+ from .highlighter import ReprHighlighter
8
+ from .jupyter import JupyterMixin
9
+ from .panel import Panel
10
+ from .pretty import Pretty
11
+ from .table import Table
12
+ from .text import Text, TextType
13
+
14
+
15
+ def _first_paragraph(doc: str) -> str:
16
+ """Get the first paragraph from a docstring."""
17
+ paragraph, _, _ = doc.partition("\n\n")
18
+ return paragraph
19
+
20
+
21
+ class Inspect(JupyterMixin):
22
+ """A renderable to inspect any Python Object.
23
+
24
+ Args:
25
+ obj (Any): An object to inspect.
26
+ title (str, optional): Title to display over inspect result, or None use type. Defaults to None.
27
+ help (bool, optional): Show full help text rather than just first paragraph. Defaults to False.
28
+ methods (bool, optional): Enable inspection of callables. Defaults to False.
29
+ docs (bool, optional): Also render doc strings. Defaults to True.
30
+ private (bool, optional): Show private attributes (beginning with underscore). Defaults to False.
31
+ dunder (bool, optional): Show attributes starting with double underscore. Defaults to False.
32
+ sort (bool, optional): Sort attributes alphabetically, callables at the top, leading and trailing underscores ignored. Defaults to True.
33
+ all (bool, optional): Show all attributes. Defaults to False.
34
+ value (bool, optional): Pretty print value of object. Defaults to True.
35
+ """
36
+
37
+ def __init__(
38
+ self,
39
+ obj: Any,
40
+ *,
41
+ title: Optional[TextType] = None,
42
+ help: bool = False,
43
+ methods: bool = False,
44
+ docs: bool = True,
45
+ private: bool = False,
46
+ dunder: bool = False,
47
+ sort: bool = True,
48
+ all: bool = True,
49
+ value: bool = True,
50
+ ) -> None:
51
+ self.highlighter = ReprHighlighter()
52
+ self.obj = obj
53
+ self.title = title or self._make_title(obj)
54
+ if all:
55
+ methods = private = dunder = True
56
+ self.help = help
57
+ self.methods = methods
58
+ self.docs = docs or help
59
+ self.private = private or dunder
60
+ self.dunder = dunder
61
+ self.sort = sort
62
+ self.value = value
63
+
64
+ def _make_title(self, obj: Any) -> Text:
65
+ """Make a default title."""
66
+ title_str = (
67
+ str(obj)
68
+ if (isclass(obj) or callable(obj) or ismodule(obj))
69
+ else str(type(obj))
70
+ )
71
+ title_text = self.highlighter(title_str)
72
+ return title_text
73
+
74
+ def __rich__(self) -> Panel:
75
+ return Panel.fit(
76
+ Group(*self._render()),
77
+ title=self.title,
78
+ border_style="scope.border",
79
+ padding=(0, 1),
80
+ )
81
+
82
+ def _get_signature(self, name: str, obj: Any) -> Optional[Text]:
83
+ """Get a signature for a callable."""
84
+ try:
85
+ _signature = str(signature(obj)) + ":"
86
+ except ValueError:
87
+ _signature = "(...)"
88
+ except TypeError:
89
+ return None
90
+
91
+ source_filename: Optional[str] = None
92
+ try:
93
+ source_filename = getfile(obj)
94
+ except (OSError, TypeError):
95
+ # OSError is raised if obj has no source file, e.g. when defined in REPL.
96
+ pass
97
+
98
+ callable_name = Text(name, style="inspect.callable")
99
+ if source_filename:
100
+ callable_name.stylize(f"link file://{source_filename}")
101
+ signature_text = self.highlighter(_signature)
102
+
103
+ qualname = name or getattr(obj, "__qualname__", name)
104
+ if not isinstance(qualname, str):
105
+ qualname = getattr(obj, "__name__", name)
106
+ if not isinstance(qualname, str):
107
+ qualname = name
108
+
109
+ # If obj is a module, there may be classes (which are callable) to display
110
+ if inspect.isclass(obj):
111
+ prefix = "class"
112
+ elif inspect.iscoroutinefunction(obj):
113
+ prefix = "async def"
114
+ else:
115
+ prefix = "def"
116
+
117
+ qual_signature = Text.assemble(
118
+ (f"{prefix} ", f"inspect.{prefix.replace(' ', '_')}"),
119
+ (qualname, "inspect.callable"),
120
+ signature_text,
121
+ )
122
+
123
+ return qual_signature
124
+
125
+ def _render(self) -> Iterable[RenderableType]:
126
+ """Render object."""
127
+
128
+ def sort_items(item: Tuple[str, Any]) -> Tuple[bool, str]:
129
+ key, (_error, value) = item
130
+ return (callable(value), key.strip("_").lower())
131
+
132
+ def safe_getattr(attr_name: str) -> Tuple[Any, Any]:
133
+ """Get attribute or any exception."""
134
+ try:
135
+ return (None, getattr(obj, attr_name))
136
+ except Exception as error:
137
+ return (error, None)
138
+
139
+ obj = self.obj
140
+ keys = dir(obj)
141
+ total_items = len(keys)
142
+ if not self.dunder:
143
+ keys = [key for key in keys if not key.startswith("__")]
144
+ if not self.private:
145
+ keys = [key for key in keys if not key.startswith("_")]
146
+ not_shown_count = total_items - len(keys)
147
+ items = [(key, safe_getattr(key)) for key in keys]
148
+ if self.sort:
149
+ items.sort(key=sort_items)
150
+
151
+ items_table = Table.grid(padding=(0, 1), expand=False)
152
+ items_table.add_column(justify="right")
153
+ add_row = items_table.add_row
154
+ highlighter = self.highlighter
155
+
156
+ if callable(obj):
157
+ signature = self._get_signature("", obj)
158
+ if signature is not None:
159
+ yield signature
160
+ yield ""
161
+
162
+ if self.docs:
163
+ _doc = self._get_formatted_doc(obj)
164
+ if _doc is not None:
165
+ doc_text = Text(_doc, style="inspect.help")
166
+ doc_text = highlighter(doc_text)
167
+ yield doc_text
168
+ yield ""
169
+
170
+ if self.value and not (isclass(obj) or callable(obj) or ismodule(obj)):
171
+ yield Panel(
172
+ Pretty(obj, indent_guides=True, max_length=10, max_string=60),
173
+ border_style="inspect.value.border",
174
+ )
175
+ yield ""
176
+
177
+ for key, (error, value) in items:
178
+ key_text = Text.assemble(
179
+ (
180
+ key,
181
+ "inspect.attr.dunder" if key.startswith("__") else "inspect.attr",
182
+ ),
183
+ (" =", "inspect.equals"),
184
+ )
185
+ if error is not None:
186
+ warning = key_text.copy()
187
+ warning.stylize("inspect.error")
188
+ add_row(warning, highlighter(repr(error)))
189
+ continue
190
+
191
+ if callable(value):
192
+ if not self.methods:
193
+ continue
194
+
195
+ _signature_text = self._get_signature(key, value)
196
+ if _signature_text is None:
197
+ add_row(key_text, Pretty(value, highlighter=highlighter))
198
+ else:
199
+ if self.docs:
200
+ docs = self._get_formatted_doc(value)
201
+ if docs is not None:
202
+ _signature_text.append("\n" if "\n" in docs else " ")
203
+ doc = highlighter(docs)
204
+ doc.stylize("inspect.doc")
205
+ _signature_text.append(doc)
206
+
207
+ add_row(key_text, _signature_text)
208
+ else:
209
+ add_row(key_text, Pretty(value, highlighter=highlighter))
210
+ if items_table.row_count:
211
+ yield items_table
212
+ elif not_shown_count:
213
+ yield Text.from_markup(
214
+ f"[b cyan]{not_shown_count}[/][i] attribute(s) not shown.[/i] "
215
+ f"Run [b][magenta]inspect[/]([not b]inspect[/])[/b] for options."
216
+ )
217
+
218
+ def _get_formatted_doc(self, object_: Any) -> Optional[str]:
219
+ """
220
+ Extract the docstring of an object, process it and returns it.
221
+ The processing consists in cleaning up the docstring's indentation,
222
+ taking only its 1st paragraph if `self.help` is not True,
223
+ and escape its control codes.
224
+
225
+ Args:
226
+ object_ (Any): the object to get the docstring from.
227
+
228
+ Returns:
229
+ Optional[str]: the processed docstring, or None if no docstring was found.
230
+ """
231
+ docs = getdoc(object_)
232
+ if docs is None:
233
+ return None
234
+ docs = cleandoc(docs).strip()
235
+ if not self.help:
236
+ docs = _first_paragraph(docs)
237
+ return escape_control_codes(docs)
238
+
239
+
240
+ def get_object_types_mro(obj: Union[object, Type[Any]]) -> Tuple[type, ...]:
241
+ """Returns the MRO of an object's class, or of the object itself if it's a class."""
242
+ if not hasattr(obj, "__mro__"):
243
+ # N.B. we cannot use `if type(obj) is type` here because it doesn't work with
244
+ # some types of classes, such as the ones that use abc.ABCMeta.
245
+ obj = type(obj)
246
+ return getattr(obj, "__mro__", ())
247
+
248
+
249
+ def get_object_types_mro_as_strings(obj: object) -> Collection[str]:
250
+ """
251
+ Returns the MRO of an object's class as full qualified names, or of the object itself if it's a class.
252
+
253
+ Examples:
254
+ `object_types_mro_as_strings(JSONDecoder)` will return `['json.decoder.JSONDecoder', 'builtins.object']`
255
+ """
256
+ return [
257
+ f'{getattr(type_, "__module__", "")}.{getattr(type_, "__qualname__", "")}'
258
+ for type_ in get_object_types_mro(obj)
259
+ ]
260
+
261
+
262
+ def is_object_one_of_types(
263
+ obj: object, fully_qualified_types_names: Collection[str]
264
+ ) -> bool:
265
+ """
266
+ Returns `True` if the given object's class (or the object itself, if it's a class) has one of the
267
+ fully qualified names in its MRO.
268
+ """
269
+ for type_name in get_object_types_mro_as_strings(obj):
270
+ if type_name in fully_qualified_types_names:
271
+ return True
272
+ return False
venv/lib/python3.11/site-packages/rich/_log_render.py ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from datetime import datetime
2
+ from typing import Iterable, List, Optional, TYPE_CHECKING, Union, Callable
3
+
4
+
5
+ from .text import Text, TextType
6
+
7
+ if TYPE_CHECKING:
8
+ from .console import Console, ConsoleRenderable, RenderableType
9
+ from .table import Table
10
+
11
+ FormatTimeCallable = Callable[[datetime], Text]
12
+
13
+
14
+ class LogRender:
15
+ def __init__(
16
+ self,
17
+ show_time: bool = True,
18
+ show_level: bool = False,
19
+ show_path: bool = True,
20
+ time_format: Union[str, FormatTimeCallable] = "[%x %X]",
21
+ omit_repeated_times: bool = True,
22
+ level_width: Optional[int] = 8,
23
+ ) -> None:
24
+ self.show_time = show_time
25
+ self.show_level = show_level
26
+ self.show_path = show_path
27
+ self.time_format = time_format
28
+ self.omit_repeated_times = omit_repeated_times
29
+ self.level_width = level_width
30
+ self._last_time: Optional[Text] = None
31
+
32
+ def __call__(
33
+ self,
34
+ console: "Console",
35
+ renderables: Iterable["ConsoleRenderable"],
36
+ log_time: Optional[datetime] = None,
37
+ time_format: Optional[Union[str, FormatTimeCallable]] = None,
38
+ level: TextType = "",
39
+ path: Optional[str] = None,
40
+ line_no: Optional[int] = None,
41
+ link_path: Optional[str] = None,
42
+ ) -> "Table":
43
+ from .containers import Renderables
44
+ from .table import Table
45
+
46
+ output = Table.grid(padding=(0, 1))
47
+ output.expand = True
48
+ if self.show_time:
49
+ output.add_column(style="log.time")
50
+ if self.show_level:
51
+ output.add_column(style="log.level", width=self.level_width)
52
+ output.add_column(ratio=1, style="log.message", overflow="fold")
53
+ if self.show_path and path:
54
+ output.add_column(style="log.path")
55
+ row: List["RenderableType"] = []
56
+ if self.show_time:
57
+ log_time = log_time or console.get_datetime()
58
+ time_format = time_format or self.time_format
59
+ if callable(time_format):
60
+ log_time_display = time_format(log_time)
61
+ else:
62
+ log_time_display = Text(log_time.strftime(time_format))
63
+ if log_time_display == self._last_time and self.omit_repeated_times:
64
+ row.append(Text(" " * len(log_time_display)))
65
+ else:
66
+ row.append(log_time_display)
67
+ self._last_time = log_time_display
68
+ if self.show_level:
69
+ row.append(level)
70
+
71
+ row.append(Renderables(renderables))
72
+ if self.show_path and path:
73
+ path_text = Text()
74
+ path_text.append(
75
+ path, style=f"link file://{link_path}" if link_path else ""
76
+ )
77
+ if line_no:
78
+ path_text.append(":")
79
+ path_text.append(
80
+ f"{line_no}",
81
+ style=f"link file://{link_path}#{line_no}" if link_path else "",
82
+ )
83
+ row.append(path_text)
84
+
85
+ output.add_row(*row)
86
+ return output
87
+
88
+
89
+ if __name__ == "__main__": # pragma: no cover
90
+ from rich.console import Console
91
+
92
+ c = Console()
93
+ c.print("[on blue]Hello", justify="right")
94
+ c.log("[on blue]hello", justify="right")
venv/lib/python3.11/site-packages/rich/_loop.py ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from typing import Iterable, Tuple, TypeVar
2
+
3
+ T = TypeVar("T")
4
+
5
+
6
+ def loop_first(values: Iterable[T]) -> Iterable[Tuple[bool, T]]:
7
+ """Iterate and generate a tuple with a flag for first value."""
8
+ iter_values = iter(values)
9
+ try:
10
+ value = next(iter_values)
11
+ except StopIteration:
12
+ return
13
+ yield True, value
14
+ for value in iter_values:
15
+ yield False, value
16
+
17
+
18
+ def loop_last(values: Iterable[T]) -> Iterable[Tuple[bool, T]]:
19
+ """Iterate and generate a tuple with a flag for last value."""
20
+ iter_values = iter(values)
21
+ try:
22
+ previous_value = next(iter_values)
23
+ except StopIteration:
24
+ return
25
+ for value in iter_values:
26
+ yield False, previous_value
27
+ previous_value = value
28
+ yield True, previous_value
29
+
30
+
31
+ def loop_first_last(values: Iterable[T]) -> Iterable[Tuple[bool, bool, T]]:
32
+ """Iterate and generate a tuple with a flag for first and last value."""
33
+ iter_values = iter(values)
34
+ try:
35
+ previous_value = next(iter_values)
36
+ except StopIteration:
37
+ return
38
+ first = True
39
+ for value in iter_values:
40
+ yield first, False, previous_value
41
+ first = False
42
+ previous_value = value
43
+ yield first, True, previous_value
venv/lib/python3.11/site-packages/rich/_null_file.py ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from types import TracebackType
2
+ from typing import IO, Iterable, Iterator, List, Optional, Type
3
+
4
+
5
+ class NullFile(IO[str]):
6
+ def close(self) -> None:
7
+ pass
8
+
9
+ def isatty(self) -> bool:
10
+ return False
11
+
12
+ def read(self, __n: int = 1) -> str:
13
+ return ""
14
+
15
+ def readable(self) -> bool:
16
+ return False
17
+
18
+ def readline(self, __limit: int = 1) -> str:
19
+ return ""
20
+
21
+ def readlines(self, __hint: int = 1) -> List[str]:
22
+ return []
23
+
24
+ def seek(self, __offset: int, __whence: int = 1) -> int:
25
+ return 0
26
+
27
+ def seekable(self) -> bool:
28
+ return False
29
+
30
+ def tell(self) -> int:
31
+ return 0
32
+
33
+ def truncate(self, __size: Optional[int] = 1) -> int:
34
+ return 0
35
+
36
+ def writable(self) -> bool:
37
+ return False
38
+
39
+ def writelines(self, __lines: Iterable[str]) -> None:
40
+ pass
41
+
42
+ def __next__(self) -> str:
43
+ return ""
44
+
45
+ def __iter__(self) -> Iterator[str]:
46
+ return iter([""])
47
+
48
+ def __enter__(self) -> IO[str]:
49
+ return self
50
+
51
+ def __exit__(
52
+ self,
53
+ __t: Optional[Type[BaseException]],
54
+ __value: Optional[BaseException],
55
+ __traceback: Optional[TracebackType],
56
+ ) -> None:
57
+ pass
58
+
59
+ def write(self, text: str) -> int:
60
+ return 0
61
+
62
+ def flush(self) -> None:
63
+ pass
64
+
65
+ def fileno(self) -> int:
66
+ return -1
67
+
68
+
69
+ NULL_FILE = NullFile()
venv/lib/python3.11/site-packages/rich/_palettes.py ADDED
@@ -0,0 +1,309 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from .palette import Palette
2
+
3
+
4
+ # Taken from https://en.wikipedia.org/wiki/ANSI_escape_code (Windows 10 column)
5
+ WINDOWS_PALETTE = Palette(
6
+ [
7
+ (12, 12, 12),
8
+ (197, 15, 31),
9
+ (19, 161, 14),
10
+ (193, 156, 0),
11
+ (0, 55, 218),
12
+ (136, 23, 152),
13
+ (58, 150, 221),
14
+ (204, 204, 204),
15
+ (118, 118, 118),
16
+ (231, 72, 86),
17
+ (22, 198, 12),
18
+ (249, 241, 165),
19
+ (59, 120, 255),
20
+ (180, 0, 158),
21
+ (97, 214, 214),
22
+ (242, 242, 242),
23
+ ]
24
+ )
25
+
26
+ # # The standard ansi colors (including bright variants)
27
+ STANDARD_PALETTE = Palette(
28
+ [
29
+ (0, 0, 0),
30
+ (170, 0, 0),
31
+ (0, 170, 0),
32
+ (170, 85, 0),
33
+ (0, 0, 170),
34
+ (170, 0, 170),
35
+ (0, 170, 170),
36
+ (170, 170, 170),
37
+ (85, 85, 85),
38
+ (255, 85, 85),
39
+ (85, 255, 85),
40
+ (255, 255, 85),
41
+ (85, 85, 255),
42
+ (255, 85, 255),
43
+ (85, 255, 255),
44
+ (255, 255, 255),
45
+ ]
46
+ )
47
+
48
+
49
+ # The 256 color palette
50
+ EIGHT_BIT_PALETTE = Palette(
51
+ [
52
+ (0, 0, 0),
53
+ (128, 0, 0),
54
+ (0, 128, 0),
55
+ (128, 128, 0),
56
+ (0, 0, 128),
57
+ (128, 0, 128),
58
+ (0, 128, 128),
59
+ (192, 192, 192),
60
+ (128, 128, 128),
61
+ (255, 0, 0),
62
+ (0, 255, 0),
63
+ (255, 255, 0),
64
+ (0, 0, 255),
65
+ (255, 0, 255),
66
+ (0, 255, 255),
67
+ (255, 255, 255),
68
+ (0, 0, 0),
69
+ (0, 0, 95),
70
+ (0, 0, 135),
71
+ (0, 0, 175),
72
+ (0, 0, 215),
73
+ (0, 0, 255),
74
+ (0, 95, 0),
75
+ (0, 95, 95),
76
+ (0, 95, 135),
77
+ (0, 95, 175),
78
+ (0, 95, 215),
79
+ (0, 95, 255),
80
+ (0, 135, 0),
81
+ (0, 135, 95),
82
+ (0, 135, 135),
83
+ (0, 135, 175),
84
+ (0, 135, 215),
85
+ (0, 135, 255),
86
+ (0, 175, 0),
87
+ (0, 175, 95),
88
+ (0, 175, 135),
89
+ (0, 175, 175),
90
+ (0, 175, 215),
91
+ (0, 175, 255),
92
+ (0, 215, 0),
93
+ (0, 215, 95),
94
+ (0, 215, 135),
95
+ (0, 215, 175),
96
+ (0, 215, 215),
97
+ (0, 215, 255),
98
+ (0, 255, 0),
99
+ (0, 255, 95),
100
+ (0, 255, 135),
101
+ (0, 255, 175),
102
+ (0, 255, 215),
103
+ (0, 255, 255),
104
+ (95, 0, 0),
105
+ (95, 0, 95),
106
+ (95, 0, 135),
107
+ (95, 0, 175),
108
+ (95, 0, 215),
109
+ (95, 0, 255),
110
+ (95, 95, 0),
111
+ (95, 95, 95),
112
+ (95, 95, 135),
113
+ (95, 95, 175),
114
+ (95, 95, 215),
115
+ (95, 95, 255),
116
+ (95, 135, 0),
117
+ (95, 135, 95),
118
+ (95, 135, 135),
119
+ (95, 135, 175),
120
+ (95, 135, 215),
121
+ (95, 135, 255),
122
+ (95, 175, 0),
123
+ (95, 175, 95),
124
+ (95, 175, 135),
125
+ (95, 175, 175),
126
+ (95, 175, 215),
127
+ (95, 175, 255),
128
+ (95, 215, 0),
129
+ (95, 215, 95),
130
+ (95, 215, 135),
131
+ (95, 215, 175),
132
+ (95, 215, 215),
133
+ (95, 215, 255),
134
+ (95, 255, 0),
135
+ (95, 255, 95),
136
+ (95, 255, 135),
137
+ (95, 255, 175),
138
+ (95, 255, 215),
139
+ (95, 255, 255),
140
+ (135, 0, 0),
141
+ (135, 0, 95),
142
+ (135, 0, 135),
143
+ (135, 0, 175),
144
+ (135, 0, 215),
145
+ (135, 0, 255),
146
+ (135, 95, 0),
147
+ (135, 95, 95),
148
+ (135, 95, 135),
149
+ (135, 95, 175),
150
+ (135, 95, 215),
151
+ (135, 95, 255),
152
+ (135, 135, 0),
153
+ (135, 135, 95),
154
+ (135, 135, 135),
155
+ (135, 135, 175),
156
+ (135, 135, 215),
157
+ (135, 135, 255),
158
+ (135, 175, 0),
159
+ (135, 175, 95),
160
+ (135, 175, 135),
161
+ (135, 175, 175),
162
+ (135, 175, 215),
163
+ (135, 175, 255),
164
+ (135, 215, 0),
165
+ (135, 215, 95),
166
+ (135, 215, 135),
167
+ (135, 215, 175),
168
+ (135, 215, 215),
169
+ (135, 215, 255),
170
+ (135, 255, 0),
171
+ (135, 255, 95),
172
+ (135, 255, 135),
173
+ (135, 255, 175),
174
+ (135, 255, 215),
175
+ (135, 255, 255),
176
+ (175, 0, 0),
177
+ (175, 0, 95),
178
+ (175, 0, 135),
179
+ (175, 0, 175),
180
+ (175, 0, 215),
181
+ (175, 0, 255),
182
+ (175, 95, 0),
183
+ (175, 95, 95),
184
+ (175, 95, 135),
185
+ (175, 95, 175),
186
+ (175, 95, 215),
187
+ (175, 95, 255),
188
+ (175, 135, 0),
189
+ (175, 135, 95),
190
+ (175, 135, 135),
191
+ (175, 135, 175),
192
+ (175, 135, 215),
193
+ (175, 135, 255),
194
+ (175, 175, 0),
195
+ (175, 175, 95),
196
+ (175, 175, 135),
197
+ (175, 175, 175),
198
+ (175, 175, 215),
199
+ (175, 175, 255),
200
+ (175, 215, 0),
201
+ (175, 215, 95),
202
+ (175, 215, 135),
203
+ (175, 215, 175),
204
+ (175, 215, 215),
205
+ (175, 215, 255),
206
+ (175, 255, 0),
207
+ (175, 255, 95),
208
+ (175, 255, 135),
209
+ (175, 255, 175),
210
+ (175, 255, 215),
211
+ (175, 255, 255),
212
+ (215, 0, 0),
213
+ (215, 0, 95),
214
+ (215, 0, 135),
215
+ (215, 0, 175),
216
+ (215, 0, 215),
217
+ (215, 0, 255),
218
+ (215, 95, 0),
219
+ (215, 95, 95),
220
+ (215, 95, 135),
221
+ (215, 95, 175),
222
+ (215, 95, 215),
223
+ (215, 95, 255),
224
+ (215, 135, 0),
225
+ (215, 135, 95),
226
+ (215, 135, 135),
227
+ (215, 135, 175),
228
+ (215, 135, 215),
229
+ (215, 135, 255),
230
+ (215, 175, 0),
231
+ (215, 175, 95),
232
+ (215, 175, 135),
233
+ (215, 175, 175),
234
+ (215, 175, 215),
235
+ (215, 175, 255),
236
+ (215, 215, 0),
237
+ (215, 215, 95),
238
+ (215, 215, 135),
239
+ (215, 215, 175),
240
+ (215, 215, 215),
241
+ (215, 215, 255),
242
+ (215, 255, 0),
243
+ (215, 255, 95),
244
+ (215, 255, 135),
245
+ (215, 255, 175),
246
+ (215, 255, 215),
247
+ (215, 255, 255),
248
+ (255, 0, 0),
249
+ (255, 0, 95),
250
+ (255, 0, 135),
251
+ (255, 0, 175),
252
+ (255, 0, 215),
253
+ (255, 0, 255),
254
+ (255, 95, 0),
255
+ (255, 95, 95),
256
+ (255, 95, 135),
257
+ (255, 95, 175),
258
+ (255, 95, 215),
259
+ (255, 95, 255),
260
+ (255, 135, 0),
261
+ (255, 135, 95),
262
+ (255, 135, 135),
263
+ (255, 135, 175),
264
+ (255, 135, 215),
265
+ (255, 135, 255),
266
+ (255, 175, 0),
267
+ (255, 175, 95),
268
+ (255, 175, 135),
269
+ (255, 175, 175),
270
+ (255, 175, 215),
271
+ (255, 175, 255),
272
+ (255, 215, 0),
273
+ (255, 215, 95),
274
+ (255, 215, 135),
275
+ (255, 215, 175),
276
+ (255, 215, 215),
277
+ (255, 215, 255),
278
+ (255, 255, 0),
279
+ (255, 255, 95),
280
+ (255, 255, 135),
281
+ (255, 255, 175),
282
+ (255, 255, 215),
283
+ (255, 255, 255),
284
+ (8, 8, 8),
285
+ (18, 18, 18),
286
+ (28, 28, 28),
287
+ (38, 38, 38),
288
+ (48, 48, 48),
289
+ (58, 58, 58),
290
+ (68, 68, 68),
291
+ (78, 78, 78),
292
+ (88, 88, 88),
293
+ (98, 98, 98),
294
+ (108, 108, 108),
295
+ (118, 118, 118),
296
+ (128, 128, 128),
297
+ (138, 138, 138),
298
+ (148, 148, 148),
299
+ (158, 158, 158),
300
+ (168, 168, 168),
301
+ (178, 178, 178),
302
+ (188, 188, 188),
303
+ (198, 198, 198),
304
+ (208, 208, 208),
305
+ (218, 218, 218),
306
+ (228, 228, 228),
307
+ (238, 238, 238),
308
+ ]
309
+ )
venv/lib/python3.11/site-packages/rich/_pick.py ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from typing import Optional
2
+
3
+
4
+ def pick_bool(*values: Optional[bool]) -> bool:
5
+ """Pick the first non-none bool or return the last value.
6
+
7
+ Args:
8
+ *values (bool): Any number of boolean or None values.
9
+
10
+ Returns:
11
+ bool: First non-none boolean.
12
+ """
13
+ assert values, "1 or more values required"
14
+ for value in values:
15
+ if value is not None:
16
+ return value
17
+ return bool(value)
venv/lib/python3.11/site-packages/rich/_ratio.py ADDED
@@ -0,0 +1,153 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fractions import Fraction
2
+ from math import ceil
3
+ from typing import cast, List, Optional, Sequence, Protocol
4
+
5
+
6
+ class Edge(Protocol):
7
+ """Any object that defines an edge (such as Layout)."""
8
+
9
+ size: Optional[int] = None
10
+ ratio: int = 1
11
+ minimum_size: int = 1
12
+
13
+
14
+ def ratio_resolve(total: int, edges: Sequence[Edge]) -> List[int]:
15
+ """Divide total space to satisfy size, ratio, and minimum_size, constraints.
16
+
17
+ The returned list of integers should add up to total in most cases, unless it is
18
+ impossible to satisfy all the constraints. For instance, if there are two edges
19
+ with a minimum size of 20 each and `total` is 30 then the returned list will be
20
+ greater than total. In practice, this would mean that a Layout object would
21
+ clip the rows that would overflow the screen height.
22
+
23
+ Args:
24
+ total (int): Total number of characters.
25
+ edges (List[Edge]): Edges within total space.
26
+
27
+ Returns:
28
+ List[int]: Number of characters for each edge.
29
+ """
30
+ # Size of edge or None for yet to be determined
31
+ sizes = [(edge.size or None) for edge in edges]
32
+
33
+ _Fraction = Fraction
34
+
35
+ # While any edges haven't been calculated
36
+ while None in sizes:
37
+ # Get flexible edges and index to map these back on to sizes list
38
+ flexible_edges = [
39
+ (index, edge)
40
+ for index, (size, edge) in enumerate(zip(sizes, edges))
41
+ if size is None
42
+ ]
43
+ # Remaining space in total
44
+ remaining = total - sum(size or 0 for size in sizes)
45
+ if remaining <= 0:
46
+ # No room for flexible edges
47
+ return [
48
+ ((edge.minimum_size or 1) if size is None else size)
49
+ for size, edge in zip(sizes, edges)
50
+ ]
51
+ # Calculate number of characters in a ratio portion
52
+ portion = _Fraction(
53
+ remaining, sum((edge.ratio or 1) for _, edge in flexible_edges)
54
+ )
55
+
56
+ # If any edges will be less than their minimum, replace size with the minimum
57
+ for index, edge in flexible_edges:
58
+ if portion * edge.ratio <= edge.minimum_size:
59
+ sizes[index] = edge.minimum_size
60
+ # New fixed size will invalidate calculations, so we need to repeat the process
61
+ break
62
+ else:
63
+ # Distribute flexible space and compensate for rounding error
64
+ # Since edge sizes can only be integers we need to add the remainder
65
+ # to the following line
66
+ remainder = _Fraction(0)
67
+ for index, edge in flexible_edges:
68
+ size, remainder = divmod(portion * edge.ratio + remainder, 1)
69
+ sizes[index] = size
70
+ break
71
+ # Sizes now contains integers only
72
+ return cast(List[int], sizes)
73
+
74
+
75
+ def ratio_reduce(
76
+ total: int, ratios: List[int], maximums: List[int], values: List[int]
77
+ ) -> List[int]:
78
+ """Divide an integer total in to parts based on ratios.
79
+
80
+ Args:
81
+ total (int): The total to divide.
82
+ ratios (List[int]): A list of integer ratios.
83
+ maximums (List[int]): List of maximums values for each slot.
84
+ values (List[int]): List of values
85
+
86
+ Returns:
87
+ List[int]: A list of integers guaranteed to sum to total.
88
+ """
89
+ ratios = [ratio if _max else 0 for ratio, _max in zip(ratios, maximums)]
90
+ total_ratio = sum(ratios)
91
+ if not total_ratio:
92
+ return values[:]
93
+ total_remaining = total
94
+ result: List[int] = []
95
+ append = result.append
96
+ for ratio, maximum, value in zip(ratios, maximums, values):
97
+ if ratio and total_ratio > 0:
98
+ distributed = min(maximum, round(ratio * total_remaining / total_ratio))
99
+ append(value - distributed)
100
+ total_remaining -= distributed
101
+ total_ratio -= ratio
102
+ else:
103
+ append(value)
104
+ return result
105
+
106
+
107
+ def ratio_distribute(
108
+ total: int, ratios: List[int], minimums: Optional[List[int]] = None
109
+ ) -> List[int]:
110
+ """Distribute an integer total in to parts based on ratios.
111
+
112
+ Args:
113
+ total (int): The total to divide.
114
+ ratios (List[int]): A list of integer ratios.
115
+ minimums (List[int]): List of minimum values for each slot.
116
+
117
+ Returns:
118
+ List[int]: A list of integers guaranteed to sum to total.
119
+ """
120
+ if minimums:
121
+ ratios = [ratio if _min else 0 for ratio, _min in zip(ratios, minimums)]
122
+ total_ratio = sum(ratios)
123
+ assert total_ratio > 0, "Sum of ratios must be > 0"
124
+
125
+ total_remaining = total
126
+ distributed_total: List[int] = []
127
+ append = distributed_total.append
128
+ if minimums is None:
129
+ _minimums = [0] * len(ratios)
130
+ else:
131
+ _minimums = minimums
132
+ for ratio, minimum in zip(ratios, _minimums):
133
+ if total_ratio > 0:
134
+ distributed = max(minimum, ceil(ratio * total_remaining / total_ratio))
135
+ else:
136
+ distributed = total_remaining
137
+ append(distributed)
138
+ total_ratio -= ratio
139
+ total_remaining -= distributed
140
+ return distributed_total
141
+
142
+
143
+ if __name__ == "__main__":
144
+ from dataclasses import dataclass
145
+
146
+ @dataclass
147
+ class E:
148
+ size: Optional[int] = None
149
+ ratio: int = 1
150
+ minimum_size: int = 1
151
+
152
+ resolved = ratio_resolve(110, [E(None, 1, 1), E(None, 1, 1), E(None, 1, 1)])
153
+ print(sum(resolved))
venv/lib/python3.11/site-packages/rich/_spinners.py ADDED
@@ -0,0 +1,482 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ Spinners are from:
3
+ * cli-spinners:
4
+ MIT License
5
+ Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights to
9
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
10
+ the Software, and to permit persons to whom the Software is furnished to do so,
11
+ subject to the following conditions:
12
+ The above copyright notice and this permission notice shall be included
13
+ in all copies or substantial portions of the Software.
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
15
+ INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
16
+ PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
17
+ FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
18
+ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
19
+ IN THE SOFTWARE.
20
+ """
21
+
22
+ SPINNERS = {
23
+ "dots": {
24
+ "interval": 80,
25
+ "frames": "⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏",
26
+ },
27
+ "dots2": {"interval": 80, "frames": "⣾⣽⣻⢿⡿⣟⣯⣷"},
28
+ "dots3": {
29
+ "interval": 80,
30
+ "frames": "⠋⠙⠚⠞⠖⠦⠴⠲⠳⠓",
31
+ },
32
+ "dots4": {
33
+ "interval": 80,
34
+ "frames": "⠄⠆⠇⠋⠙⠸⠰⠠⠰⠸⠙⠋⠇⠆",
35
+ },
36
+ "dots5": {
37
+ "interval": 80,
38
+ "frames": "⠋⠙⠚⠒⠂⠂⠒⠲⠴⠦⠖⠒⠐⠐⠒⠓⠋",
39
+ },
40
+ "dots6": {
41
+ "interval": 80,
42
+ "frames": "⠁⠉⠙⠚⠒⠂⠂⠒⠲⠴⠤⠄⠄⠤⠴⠲⠒⠂⠂⠒⠚⠙⠉⠁",
43
+ },
44
+ "dots7": {
45
+ "interval": 80,
46
+ "frames": "⠈⠉⠋⠓⠒⠐⠐⠒⠖⠦⠤⠠⠠⠤⠦⠖⠒⠐⠐⠒⠓⠋⠉⠈",
47
+ },
48
+ "dots8": {
49
+ "interval": 80,
50
+ "frames": "⠁⠁⠉⠙⠚⠒⠂⠂⠒⠲⠴⠤⠄⠄⠤⠠⠠⠤⠦⠖⠒⠐⠐⠒⠓⠋⠉⠈⠈",
51
+ },
52
+ "dots9": {"interval": 80, "frames": "⢹⢺⢼⣸⣇⡧⡗⡏"},
53
+ "dots10": {"interval": 80, "frames": "⢄⢂⢁⡁⡈⡐⡠"},
54
+ "dots11": {"interval": 100, "frames": "⠁⠂⠄⡀⢀⠠⠐⠈"},
55
+ "dots12": {
56
+ "interval": 80,
57
+ "frames": [
58
+ "⢀⠀",
59
+ "⡀⠀",
60
+ "⠄⠀",
61
+ "⢂⠀",
62
+ "⡂⠀",
63
+ "⠅⠀",
64
+ "⢃⠀",
65
+ "⡃⠀",
66
+ "⠍⠀",
67
+ "⢋⠀",
68
+ "⡋⠀",
69
+ "⠍⠁",
70
+ "⢋⠁",
71
+ "⡋⠁",
72
+ "⠍⠉",
73
+ "⠋⠉",
74
+ "⠋⠉",
75
+ "⠉⠙",
76
+ "⠉⠙",
77
+ "⠉⠩",
78
+ "⠈⢙",
79
+ "⠈⡙",
80
+ "⢈⠩",
81
+ "⡀⢙",
82
+ "⠄⡙",
83
+ "⢂⠩",
84
+ "⡂⢘",
85
+ "⠅⡘",
86
+ "⢃⠨",
87
+ "⡃⢐",
88
+ "⠍⡐",
89
+ "⢋⠠",
90
+ "⡋⢀",
91
+ "⠍⡁",
92
+ "⢋⠁",
93
+ "⡋⠁",
94
+ "⠍⠉",
95
+ "⠋⠉",
96
+ "⠋⠉",
97
+ "⠉⠙",
98
+ "⠉⠙",
99
+ "⠉⠩",
100
+ "⠈⢙",
101
+ "⠈⡙",
102
+ "⠈⠩",
103
+ "⠀⢙",
104
+ "⠀⡙",
105
+ "⠀⠩",
106
+ "⠀⢘",
107
+ "⠀⡘",
108
+ "⠀⠨",
109
+ "⠀⢐",
110
+ "⠀⡐",
111
+ "⠀⠠",
112
+ "⠀⢀",
113
+ "⠀⡀",
114
+ ],
115
+ },
116
+ "dots8Bit": {
117
+ "interval": 80,
118
+ "frames": "⠀⠁⠂⠃⠄⠅⠆⠇⡀⡁⡂⡃⡄⡅⡆⡇⠈⠉⠊⠋⠌⠍⠎⠏⡈⡉⡊⡋⡌⡍⡎⡏⠐⠑⠒⠓⠔⠕⠖⠗⡐⡑⡒⡓⡔⡕⡖⡗⠘⠙⠚⠛⠜⠝⠞⠟⡘⡙"
119
+ "⡚⡛⡜⡝⡞⡟⠠⠡⠢⠣⠤⠥⠦⠧⡠⡡⡢⡣⡤⡥⡦⡧⠨⠩⠪⠫⠬⠭⠮⠯⡨⡩⡪⡫⡬⡭⡮⡯⠰⠱⠲⠳⠴⠵⠶⠷⡰⡱⡲⡳⡴⡵⡶⡷⠸⠹⠺⠻"
120
+ "⠼⠽⠾⠿⡸⡹⡺⡻⡼⡽⡾⡿⢀⢁⢂⢃⢄⢅⢆⢇⣀⣁⣂⣃⣄⣅⣆⣇⢈⢉⢊⢋⢌⢍⢎⢏⣈⣉⣊⣋⣌⣍⣎⣏⢐⢑⢒⢓⢔⢕⢖⢗⣐⣑⣒⣓⣔⣕"
121
+ "⣖⣗⢘⢙⢚⢛⢜⢝⢞⢟⣘⣙⣚⣛⣜⣝⣞⣟⢠⢡⢢⢣⢤⢥⢦⢧⣠⣡⣢⣣⣤⣥⣦⣧⢨⢩⢪⢫⢬⢭⢮⢯⣨⣩⣪⣫⣬⣭⣮⣯⢰⢱⢲⢳⢴⢵⢶⢷"
122
+ "⣰⣱⣲⣳⣴⣵⣶⣷⢸⢹⢺⢻⢼⢽⢾⢿⣸⣹⣺⣻⣼⣽⣾⣿",
123
+ },
124
+ "line": {"interval": 130, "frames": ["-", "\\", "|", "/"]},
125
+ "line2": {"interval": 100, "frames": "⠂-–—–-"},
126
+ "pipe": {"interval": 100, "frames": "┤┘┴└├┌┬┐"},
127
+ "simpleDots": {"interval": 400, "frames": [". ", ".. ", "...", " "]},
128
+ "simpleDotsScrolling": {
129
+ "interval": 200,
130
+ "frames": [". ", ".. ", "...", " ..", " .", " "],
131
+ },
132
+ "star": {"interval": 70, "frames": "✶✸✹✺✹✷"},
133
+ "star2": {"interval": 80, "frames": "+x*"},
134
+ "flip": {
135
+ "interval": 70,
136
+ "frames": "___-``'´-___",
137
+ },
138
+ "hamburger": {"interval": 100, "frames": "☱☲☴"},
139
+ "growVertical": {
140
+ "interval": 120,
141
+ "frames": "▁▃▄▅▆▇▆▅▄▃",
142
+ },
143
+ "growHorizontal": {
144
+ "interval": 120,
145
+ "frames": "▏▎▍▌▋▊▉▊▋▌▍▎",
146
+ },
147
+ "balloon": {"interval": 140, "frames": " .oO@* "},
148
+ "balloon2": {"interval": 120, "frames": ".oO°Oo."},
149
+ "noise": {"interval": 100, "frames": "▓▒░"},
150
+ "bounce": {"interval": 120, "frames": "⠁⠂⠄⠂"},
151
+ "boxBounce": {"interval": 120, "frames": "▖▘▝▗"},
152
+ "boxBounce2": {"interval": 100, "frames": "▌▀▐▄"},
153
+ "triangle": {"interval": 50, "frames": "◢◣◤◥"},
154
+ "arc": {"interval": 100, "frames": "◜◠◝◞◡◟"},
155
+ "circle": {"interval": 120, "frames": "◡⊙◠"},
156
+ "squareCorners": {"interval": 180, "frames": "◰◳◲◱"},
157
+ "circleQuarters": {"interval": 120, "frames": "◴◷◶◵"},
158
+ "circleHalves": {"interval": 50, "frames": "◐◓◑◒"},
159
+ "squish": {"interval": 100, "frames": "╫╪"},
160
+ "toggle": {"interval": 250, "frames": "⊶⊷"},
161
+ "toggle2": {"interval": 80, "frames": "▫▪"},
162
+ "toggle3": {"interval": 120, "frames": "□■"},
163
+ "toggle4": {"interval": 100, "frames": "■□▪▫"},
164
+ "toggle5": {"interval": 100, "frames": "▮▯"},
165
+ "toggle6": {"interval": 300, "frames": "ဝ၀"},
166
+ "toggle7": {"interval": 80, "frames": "⦾⦿"},
167
+ "toggle8": {"interval": 100, "frames": "◍◌"},
168
+ "toggle9": {"interval": 100, "frames": "◉◎"},
169
+ "toggle10": {"interval": 100, "frames": "㊂㊀㊁"},
170
+ "toggle11": {"interval": 50, "frames": "⧇⧆"},
171
+ "toggle12": {"interval": 120, "frames": "☗☖"},
172
+ "toggle13": {"interval": 80, "frames": "=*-"},
173
+ "arrow": {"interval": 100, "frames": "←↖↑↗→↘↓↙"},
174
+ "arrow2": {
175
+ "interval": 80,
176
+ "frames": ["⬆️ ", "↗️ ", "➡️ ", "↘️ ", "⬇️ ", "↙️ ", "⬅️ ", "↖️ "],
177
+ },
178
+ "arrow3": {
179
+ "interval": 120,
180
+ "frames": ["▹▹▹▹▹", "▸▹▹▹▹", "▹▸▹▹▹", "▹▹▸▹▹", "▹▹▹▸▹", "▹▹▹▹▸"],
181
+ },
182
+ "bouncingBar": {
183
+ "interval": 80,
184
+ "frames": [
185
+ "[ ]",
186
+ "[= ]",
187
+ "[== ]",
188
+ "[=== ]",
189
+ "[ ===]",
190
+ "[ ==]",
191
+ "[ =]",
192
+ "[ ]",
193
+ "[ =]",
194
+ "[ ==]",
195
+ "[ ===]",
196
+ "[====]",
197
+ "[=== ]",
198
+ "[== ]",
199
+ "[= ]",
200
+ ],
201
+ },
202
+ "bouncingBall": {
203
+ "interval": 80,
204
+ "frames": [
205
+ "( ● )",
206
+ "( ● )",
207
+ "( ● )",
208
+ "( ● )",
209
+ "( ●)",
210
+ "( ● )",
211
+ "( ● )",
212
+ "( ● )",
213
+ "( ● )",
214
+ "(● )",
215
+ ],
216
+ },
217
+ "smiley": {"interval": 200, "frames": ["😄 ", "😝 "]},
218
+ "monkey": {"interval": 300, "frames": ["🙈 ", "🙈 ", "🙉 ", "🙊 "]},
219
+ "hearts": {"interval": 100, "frames": ["💛 ", "💙 ", "💜 ", "💚 ", "❤️ "]},
220
+ "clock": {
221
+ "interval": 100,
222
+ "frames": [
223
+ "🕛 ",
224
+ "🕐 ",
225
+ "🕑 ",
226
+ "🕒 ",
227
+ "🕓 ",
228
+ "🕔 ",
229
+ "🕕 ",
230
+ "🕖 ",
231
+ "🕗 ",
232
+ "🕘 ",
233
+ "🕙 ",
234
+ "🕚 ",
235
+ ],
236
+ },
237
+ "earth": {"interval": 180, "frames": ["🌍 ", "🌎 ", "🌏 "]},
238
+ "material": {
239
+ "interval": 17,
240
+ "frames": [
241
+ "█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
242
+ "██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
243
+ "███▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
244
+ "████▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
245
+ "██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
246
+ "██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
247
+ "███████▁▁▁▁▁▁▁▁▁▁▁▁▁",
248
+ "████████▁▁▁▁▁▁▁▁▁▁▁▁",
249
+ "█████████▁▁▁▁▁▁▁▁▁▁▁",
250
+ "█████████▁▁▁▁▁▁▁▁▁▁▁",
251
+ "██████████▁▁▁▁▁▁▁▁▁▁",
252
+ "███████████▁▁▁▁▁▁▁▁▁",
253
+ "█████████████▁▁▁▁▁▁▁",
254
+ "██████████████▁▁▁▁▁▁",
255
+ "██████████████▁▁▁▁▁▁",
256
+ "▁██████████████▁▁▁▁▁",
257
+ "▁██████████████▁▁▁▁▁",
258
+ "▁██████████████▁▁▁▁▁",
259
+ "▁▁██████████████▁▁▁▁",
260
+ "▁▁▁██████████████▁▁▁",
261
+ "▁▁▁▁█████████████▁▁▁",
262
+ "▁▁▁▁██████████████▁▁",
263
+ "▁▁▁▁██████████████▁▁",
264
+ "▁▁▁▁▁██████████████▁",
265
+ "▁▁▁▁▁██████████████▁",
266
+ "▁▁▁▁▁██████████████▁",
267
+ "▁▁▁▁▁▁██████████████",
268
+ "▁▁▁▁▁▁██████████████",
269
+ "▁▁▁▁▁▁▁█████████████",
270
+ "▁▁▁▁▁▁▁█████████████",
271
+ "▁▁▁▁▁▁▁▁████████████",
272
+ "▁▁▁▁▁▁▁▁████████████",
273
+ "▁▁▁▁▁▁▁▁▁███████████",
274
+ "▁▁▁▁▁▁▁▁▁███████████",
275
+ "▁▁▁▁▁▁▁▁▁▁██████████",
276
+ "▁▁▁▁▁▁▁▁▁▁██████████",
277
+ "▁▁▁▁▁▁▁▁▁▁▁▁████████",
278
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁███████",
279
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁██████",
280
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████",
281
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████",
282
+ "█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████",
283
+ "██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
284
+ "██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
285
+ "███▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
286
+ "████▁▁▁▁▁▁▁▁▁▁▁▁▁▁██",
287
+ "█████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
288
+ "█████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
289
+ "██████▁▁▁▁▁▁▁▁▁▁▁▁▁█",
290
+ "████████▁▁▁▁▁▁▁▁▁▁▁▁",
291
+ "█████████▁▁▁▁▁▁▁▁▁▁▁",
292
+ "█████████▁▁▁▁▁▁▁▁▁▁▁",
293
+ "█████████▁▁▁▁▁▁▁▁▁▁▁",
294
+ "█████████▁▁▁▁▁▁▁▁▁▁▁",
295
+ "███████████▁▁▁▁▁▁▁▁▁",
296
+ "████████████▁▁▁▁▁▁▁▁",
297
+ "████████████▁▁▁▁▁▁▁▁",
298
+ "██████████████▁▁▁▁▁▁",
299
+ "██████████████▁▁▁▁▁▁",
300
+ "▁██████████████▁▁▁▁▁",
301
+ "▁██████████████▁▁▁▁▁",
302
+ "▁▁▁█████████████▁▁▁▁",
303
+ "▁▁▁▁▁████████████▁▁▁",
304
+ "▁▁▁▁▁████████████▁▁▁",
305
+ "▁▁▁▁▁▁███████████▁▁▁",
306
+ "▁▁▁▁▁▁▁▁█████████▁▁▁",
307
+ "▁▁▁▁▁▁▁▁█████████▁▁▁",
308
+ "▁▁▁▁▁▁▁▁▁█████████▁▁",
309
+ "▁▁▁▁▁▁▁▁▁█████████▁▁",
310
+ "▁▁▁▁▁▁▁▁▁▁█████████▁",
311
+ "▁▁▁▁▁▁▁▁▁▁▁████████▁",
312
+ "▁▁▁▁▁▁▁▁▁▁▁████████▁",
313
+ "▁▁▁▁▁▁▁▁▁▁▁▁███████▁",
314
+ "▁▁▁▁▁▁▁▁▁▁▁▁███████▁",
315
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁███████",
316
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁███████",
317
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████",
318
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████",
319
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████",
320
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████",
321
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
322
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
323
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██",
324
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██",
325
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██",
326
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
327
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
328
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
329
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
330
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
331
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
332
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
333
+ ],
334
+ },
335
+ "moon": {
336
+ "interval": 80,
337
+ "frames": ["🌑 ", "🌒 ", "🌓 ", "🌔 ", "🌕 ", "🌖 ", "🌗 ", "🌘 "],
338
+ },
339
+ "runner": {"interval": 140, "frames": ["🚶 ", "🏃 "]},
340
+ "pong": {
341
+ "interval": 80,
342
+ "frames": [
343
+ "▐⠂ ▌",
344
+ "▐⠈ ▌",
345
+ "▐ ⠂ ▌",
346
+ "▐ ⠠ ▌",
347
+ "▐ ⡀ ▌",
348
+ "▐ ⠠ ▌",
349
+ "▐ ⠂ ▌",
350
+ "▐ ⠈ ▌",
351
+ "▐ ⠂ ▌",
352
+ "▐ ⠠ ▌",
353
+ "▐ ⡀ ▌",
354
+ "▐ ⠠ ▌",
355
+ "▐ ⠂ ▌",
356
+ "▐ ⠈ ▌",
357
+ "▐ ⠂▌",
358
+ "▐ ⠠▌",
359
+ "▐ ⡀▌",
360
+ "▐ ⠠ ▌",
361
+ "▐ ⠂ ▌",
362
+ "▐ ⠈ ▌",
363
+ "▐ ⠂ ▌",
364
+ "▐ ⠠ ▌",
365
+ "▐ ⡀ ▌",
366
+ "▐ ⠠ ▌",
367
+ "▐ ⠂ ▌",
368
+ "▐ ⠈ ▌",
369
+ "▐ ⠂ ▌",
370
+ "▐ ⠠ ▌",
371
+ "▐ ⡀ ▌",
372
+ "▐⠠ ▌",
373
+ ],
374
+ },
375
+ "shark": {
376
+ "interval": 120,
377
+ "frames": [
378
+ "▐|\\____________▌",
379
+ "▐_|\\___________▌",
380
+ "▐__|\\__________▌",
381
+ "▐___|\\_________▌",
382
+ "▐____|\\________▌",
383
+ "▐_____|\\_______▌",
384
+ "▐______|\\______▌",
385
+ "▐_______|\\_____▌",
386
+ "▐________|\\____▌",
387
+ "▐_________|\\___▌",
388
+ "▐__________|\\__▌",
389
+ "▐___________|\\_▌",
390
+ "▐____________|\\▌",
391
+ "▐____________/|▌",
392
+ "▐___________/|_▌",
393
+ "▐__________/|__▌",
394
+ "▐_________/|___▌",
395
+ "▐________/|____▌",
396
+ "▐_______/|_____▌",
397
+ "▐______/|______▌",
398
+ "▐_____/|_______▌",
399
+ "▐____/|________▌",
400
+ "▐___/|_________▌",
401
+ "▐__/|__________▌",
402
+ "▐_/|___________▌",
403
+ "▐/|____________▌",
404
+ ],
405
+ },
406
+ "dqpb": {"interval": 100, "frames": "dqpb"},
407
+ "weather": {
408
+ "interval": 100,
409
+ "frames": [
410
+ "☀️ ",
411
+ "☀️ ",
412
+ "☀️ ",
413
+ "🌤 ",
414
+ "⛅️ ",
415
+ "🌥 ",
416
+ "☁️ ",
417
+ "🌧 ",
418
+ "🌨 ",
419
+ "🌧 ",
420
+ "🌨 ",
421
+ "🌧 ",
422
+ "🌨 ",
423
+ "⛈ ",
424
+ "🌨 ",
425
+ "🌧 ",
426
+ "🌨 ",
427
+ "☁️ ",
428
+ "🌥 ",
429
+ "⛅️ ",
430
+ "🌤 ",
431
+ "☀️ ",
432
+ "☀️ ",
433
+ ],
434
+ },
435
+ "christmas": {"interval": 400, "frames": "🌲🎄"},
436
+ "grenade": {
437
+ "interval": 80,
438
+ "frames": [
439
+ "، ",
440
+ "′ ",
441
+ " ´ ",
442
+ " ‾ ",
443
+ " ⸌",
444
+ " ⸊",
445
+ " |",
446
+ " ⁎",
447
+ " ⁕",
448
+ " ෴ ",
449
+ " ⁓",
450
+ " ",
451
+ " ",
452
+ " ",
453
+ ],
454
+ },
455
+ "point": {"interval": 125, "frames": ["∙∙∙", "●∙∙", "∙●∙", "∙∙●", "∙∙∙"]},
456
+ "layer": {"interval": 150, "frames": "-=≡"},
457
+ "betaWave": {
458
+ "interval": 80,
459
+ "frames": [
460
+ "ρββββββ",
461
+ "βρβββββ",
462
+ "ββρββββ",
463
+ "βββρβββ",
464
+ "ββββρββ",
465
+ "βββββρβ",
466
+ "ββββββρ",
467
+ ],
468
+ },
469
+ "aesthetic": {
470
+ "interval": 80,
471
+ "frames": [
472
+ "▰▱▱▱▱▱▱",
473
+ "▰▰▱▱▱▱▱",
474
+ "▰▰▰▱▱▱▱",
475
+ "▰▰▰▰▱▱▱",
476
+ "▰▰▰▰▰▱▱",
477
+ "▰▰▰▰▰▰▱",
478
+ "▰▰▰▰▰▰▰",
479
+ "▰▱▱▱▱▱▱",
480
+ ],
481
+ },
482
+ }
venv/lib/python3.11/site-packages/rich/_stack.py ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from typing import List, TypeVar
2
+
3
+ T = TypeVar("T")
4
+
5
+
6
+ class Stack(List[T]):
7
+ """A small shim over builtin list."""
8
+
9
+ @property
10
+ def top(self) -> T:
11
+ """Get top of stack."""
12
+ return self[-1]
13
+
14
+ def push(self, item: T) -> None:
15
+ """Push an item on to the stack (append in stack nomenclature)."""
16
+ self.append(item)
venv/lib/python3.11/site-packages/rich/_timer.py ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ Timer context manager, only used in debug.
3
+
4
+ """
5
+
6
+ from time import time
7
+
8
+ import contextlib
9
+ from typing import Generator
10
+
11
+
12
+ @contextlib.contextmanager
13
+ def timer(subject: str = "time") -> Generator[None, None, None]:
14
+ """print the elapsed time. (only used in debugging)"""
15
+ start = time()
16
+ yield
17
+ elapsed = time() - start
18
+ elapsed_ms = elapsed * 1000
19
+ print(f"{subject} elapsed {elapsed_ms:.1f}ms")
venv/lib/python3.11/site-packages/rich/_unicode_data/__init__.py ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from __future__ import annotations
2
+
3
+ import bisect
4
+ import os
5
+ import sys
6
+
7
+ if sys.version_info[:2] >= (3, 9):
8
+ from functools import cache
9
+ else:
10
+ from functools import lru_cache as cache # pragma: no cover
11
+
12
+ from importlib import import_module
13
+ from typing import TYPE_CHECKING, cast
14
+
15
+ from rich._unicode_data._versions import VERSIONS
16
+
17
+ if TYPE_CHECKING:
18
+ from rich.cells import CellTable
19
+
20
+ VERSION_ORDER = sorted(
21
+ [
22
+ tuple(
23
+ map(int, version.split(".")),
24
+ )
25
+ for version in VERSIONS
26
+ ]
27
+ )
28
+ VERSION_SET = frozenset(VERSIONS)
29
+
30
+
31
+ def _parse_version(version: str) -> tuple[int, int, int]:
32
+ """Parse a version string into a tuple of 3 integers.
33
+
34
+ Args:
35
+ version: A version string.
36
+
37
+ Raises:
38
+ ValueError: If the version string is invalid.
39
+
40
+ Returns:
41
+ A tuple of 3 integers.
42
+ """
43
+ version_integers: tuple[int, ...]
44
+ try:
45
+ version_integers = tuple(
46
+ map(int, version.split(".")),
47
+ )
48
+ except ValueError:
49
+ raise ValueError(
50
+ f"unicode version string {version!r} is badly formatted"
51
+ ) from None
52
+ while len(version_integers) < 3:
53
+ version_integers = version_integers + (0,)
54
+ triple = cast("tuple[int, int, int]", version_integers[:3])
55
+ return triple
56
+
57
+
58
+ @cache
59
+ def load(unicode_version: str = "auto") -> CellTable:
60
+ """Load a cell table for the given unicode version.
61
+
62
+ Args:
63
+ unicode_version: Unicode version, or `None` to auto-detect.
64
+
65
+ """
66
+ if unicode_version == "auto":
67
+ unicode_version = os.environ.get("UNICODE_VERSION", "latest")
68
+ try:
69
+ _parse_version(unicode_version)
70
+ except ValueError:
71
+ # The environment variable is invalid
72
+ # Fallback to using the latest version seems reasonable
73
+ unicode_version = "latest"
74
+
75
+ if unicode_version == "latest":
76
+ version = VERSIONS[-1]
77
+ else:
78
+ try:
79
+ version_numbers = _parse_version(unicode_version)
80
+ except ValueError:
81
+ version_numbers = _parse_version(VERSIONS[-1])
82
+ major, minor, patch = version_numbers
83
+ version = f"{major}.{minor}.{patch}"
84
+ if version not in VERSION_SET:
85
+ insert_position = bisect.bisect_left(VERSION_ORDER, version_numbers)
86
+ version = VERSIONS[max(0, insert_position - 1)]
87
+
88
+ version_path_component = version.replace(".", "-")
89
+ module_name = f".unicode{version_path_component}"
90
+ module = import_module(module_name, "rich._unicode_data")
91
+ if TYPE_CHECKING:
92
+ assert isinstance(module.cell_table, CellTable)
93
+ return module.cell_table
venv/lib/python3.11/site-packages/rich/_unicode_data/_versions.py ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ VERSIONS = (
2
+ "4.1.0",
3
+ "5.0.0",
4
+ "5.1.0",
5
+ "5.2.0",
6
+ "6.0.0",
7
+ "6.1.0",
8
+ "6.2.0",
9
+ "6.3.0",
10
+ "7.0.0",
11
+ "8.0.0",
12
+ "9.0.0",
13
+ "10.0.0",
14
+ "11.0.0",
15
+ "12.0.0",
16
+ "12.1.0",
17
+ "13.0.0",
18
+ "14.0.0",
19
+ "15.0.0",
20
+ "15.1.0",
21
+ "16.0.0",
22
+ "17.0.0",
23
+ )
venv/lib/python3.11/site-packages/rich/_unicode_data/unicode10-0-0.py ADDED
@@ -0,0 +1,611 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Auto generated by tools/make_width_tables.py
2
+ # Data from wcwidth project (https://github.com/jquast/wcwidth)
3
+
4
+ from rich.cells import CellTable
5
+
6
+ cell_table = CellTable(
7
+ "10.0.0",
8
+ [
9
+ (0, 0, 0),
10
+ (768, 879, 0),
11
+ (1155, 1161, 0),
12
+ (1425, 1469, 0),
13
+ (1471, 1471, 0),
14
+ (1473, 1474, 0),
15
+ (1476, 1477, 0),
16
+ (1479, 1479, 0),
17
+ (1552, 1562, 0),
18
+ (1564, 1564, 0),
19
+ (1611, 1631, 0),
20
+ (1648, 1648, 0),
21
+ (1750, 1756, 0),
22
+ (1759, 1764, 0),
23
+ (1767, 1768, 0),
24
+ (1770, 1773, 0),
25
+ (1809, 1809, 0),
26
+ (1840, 1866, 0),
27
+ (1958, 1968, 0),
28
+ (2027, 2035, 0),
29
+ (2070, 2073, 0),
30
+ (2075, 2083, 0),
31
+ (2085, 2087, 0),
32
+ (2089, 2093, 0),
33
+ (2137, 2139, 0),
34
+ (2260, 2273, 0),
35
+ (2275, 2307, 0),
36
+ (2362, 2364, 0),
37
+ (2366, 2383, 0),
38
+ (2385, 2391, 0),
39
+ (2402, 2403, 0),
40
+ (2433, 2435, 0),
41
+ (2492, 2492, 0),
42
+ (2494, 2500, 0),
43
+ (2503, 2504, 0),
44
+ (2507, 2509, 0),
45
+ (2519, 2519, 0),
46
+ (2530, 2531, 0),
47
+ (2561, 2563, 0),
48
+ (2620, 2620, 0),
49
+ (2622, 2626, 0),
50
+ (2631, 2632, 0),
51
+ (2635, 2637, 0),
52
+ (2641, 2641, 0),
53
+ (2672, 2673, 0),
54
+ (2677, 2677, 0),
55
+ (2689, 2691, 0),
56
+ (2748, 2748, 0),
57
+ (2750, 2757, 0),
58
+ (2759, 2761, 0),
59
+ (2763, 2765, 0),
60
+ (2786, 2787, 0),
61
+ (2810, 2815, 0),
62
+ (2817, 2819, 0),
63
+ (2876, 2876, 0),
64
+ (2878, 2884, 0),
65
+ (2887, 2888, 0),
66
+ (2891, 2893, 0),
67
+ (2902, 2903, 0),
68
+ (2914, 2915, 0),
69
+ (2946, 2946, 0),
70
+ (3006, 3010, 0),
71
+ (3014, 3016, 0),
72
+ (3018, 3021, 0),
73
+ (3031, 3031, 0),
74
+ (3072, 3075, 0),
75
+ (3134, 3140, 0),
76
+ (3142, 3144, 0),
77
+ (3146, 3149, 0),
78
+ (3157, 3158, 0),
79
+ (3170, 3171, 0),
80
+ (3201, 3203, 0),
81
+ (3260, 3260, 0),
82
+ (3262, 3268, 0),
83
+ (3270, 3272, 0),
84
+ (3274, 3277, 0),
85
+ (3285, 3286, 0),
86
+ (3298, 3299, 0),
87
+ (3328, 3331, 0),
88
+ (3387, 3388, 0),
89
+ (3390, 3396, 0),
90
+ (3398, 3400, 0),
91
+ (3402, 3405, 0),
92
+ (3415, 3415, 0),
93
+ (3426, 3427, 0),
94
+ (3458, 3459, 0),
95
+ (3530, 3530, 0),
96
+ (3535, 3540, 0),
97
+ (3542, 3542, 0),
98
+ (3544, 3551, 0),
99
+ (3570, 3571, 0),
100
+ (3633, 3633, 0),
101
+ (3636, 3642, 0),
102
+ (3655, 3662, 0),
103
+ (3761, 3761, 0),
104
+ (3764, 3769, 0),
105
+ (3771, 3772, 0),
106
+ (3784, 3789, 0),
107
+ (3864, 3865, 0),
108
+ (3893, 3893, 0),
109
+ (3895, 3895, 0),
110
+ (3897, 3897, 0),
111
+ (3902, 3903, 0),
112
+ (3953, 3972, 0),
113
+ (3974, 3975, 0),
114
+ (3981, 3991, 0),
115
+ (3993, 4028, 0),
116
+ (4038, 4038, 0),
117
+ (4139, 4158, 0),
118
+ (4182, 4185, 0),
119
+ (4190, 4192, 0),
120
+ (4194, 4196, 0),
121
+ (4199, 4205, 0),
122
+ (4209, 4212, 0),
123
+ (4226, 4237, 0),
124
+ (4239, 4239, 0),
125
+ (4250, 4253, 0),
126
+ (4352, 4447, 2),
127
+ (4448, 4607, 0),
128
+ (4957, 4959, 0),
129
+ (5906, 5908, 0),
130
+ (5938, 5940, 0),
131
+ (5970, 5971, 0),
132
+ (6002, 6003, 0),
133
+ (6068, 6099, 0),
134
+ (6109, 6109, 0),
135
+ (6155, 6158, 0),
136
+ (6277, 6278, 0),
137
+ (6313, 6313, 0),
138
+ (6432, 6443, 0),
139
+ (6448, 6459, 0),
140
+ (6679, 6683, 0),
141
+ (6741, 6750, 0),
142
+ (6752, 6780, 0),
143
+ (6783, 6783, 0),
144
+ (6832, 6846, 0),
145
+ (6912, 6916, 0),
146
+ (6964, 6980, 0),
147
+ (7019, 7027, 0),
148
+ (7040, 7042, 0),
149
+ (7073, 7085, 0),
150
+ (7142, 7155, 0),
151
+ (7204, 7223, 0),
152
+ (7376, 7378, 0),
153
+ (7380, 7400, 0),
154
+ (7405, 7405, 0),
155
+ (7410, 7412, 0),
156
+ (7415, 7417, 0),
157
+ (7616, 7673, 0),
158
+ (7675, 7679, 0),
159
+ (8203, 8207, 0),
160
+ (8232, 8238, 0),
161
+ (8288, 8303, 0),
162
+ (8400, 8432, 0),
163
+ (8986, 8987, 2),
164
+ (9001, 9002, 2),
165
+ (9193, 9196, 2),
166
+ (9200, 9200, 2),
167
+ (9203, 9203, 2),
168
+ (9725, 9726, 2),
169
+ (9748, 9749, 2),
170
+ (9800, 9811, 2),
171
+ (9855, 9855, 2),
172
+ (9875, 9875, 2),
173
+ (9889, 9889, 2),
174
+ (9898, 9899, 2),
175
+ (9917, 9918, 2),
176
+ (9924, 9925, 2),
177
+ (9934, 9934, 2),
178
+ (9940, 9940, 2),
179
+ (9962, 9962, 2),
180
+ (9970, 9971, 2),
181
+ (9973, 9973, 2),
182
+ (9978, 9978, 2),
183
+ (9981, 9981, 2),
184
+ (9989, 9989, 2),
185
+ (9994, 9995, 2),
186
+ (10024, 10024, 2),
187
+ (10060, 10060, 2),
188
+ (10062, 10062, 2),
189
+ (10067, 10069, 2),
190
+ (10071, 10071, 2),
191
+ (10133, 10135, 2),
192
+ (10160, 10160, 2),
193
+ (10175, 10175, 2),
194
+ (11035, 11036, 2),
195
+ (11088, 11088, 2),
196
+ (11093, 11093, 2),
197
+ (11503, 11505, 0),
198
+ (11647, 11647, 0),
199
+ (11744, 11775, 0),
200
+ (11904, 11929, 2),
201
+ (11931, 12019, 2),
202
+ (12032, 12245, 2),
203
+ (12272, 12283, 2),
204
+ (12288, 12329, 2),
205
+ (12330, 12335, 0),
206
+ (12336, 12350, 2),
207
+ (12353, 12438, 2),
208
+ (12441, 12442, 0),
209
+ (12443, 12543, 2),
210
+ (12549, 12590, 2),
211
+ (12593, 12643, 2),
212
+ (12644, 12644, 0),
213
+ (12645, 12686, 2),
214
+ (12688, 12730, 2),
215
+ (12736, 12771, 2),
216
+ (12784, 12830, 2),
217
+ (12832, 12871, 2),
218
+ (12880, 13054, 2),
219
+ (13056, 19903, 2),
220
+ (19968, 42124, 2),
221
+ (42128, 42182, 2),
222
+ (42607, 42610, 0),
223
+ (42612, 42621, 0),
224
+ (42654, 42655, 0),
225
+ (42736, 42737, 0),
226
+ (43010, 43010, 0),
227
+ (43014, 43014, 0),
228
+ (43019, 43019, 0),
229
+ (43043, 43047, 0),
230
+ (43136, 43137, 0),
231
+ (43188, 43205, 0),
232
+ (43232, 43249, 0),
233
+ (43302, 43309, 0),
234
+ (43335, 43347, 0),
235
+ (43360, 43388, 2),
236
+ (43392, 43395, 0),
237
+ (43443, 43456, 0),
238
+ (43493, 43493, 0),
239
+ (43561, 43574, 0),
240
+ (43587, 43587, 0),
241
+ (43596, 43597, 0),
242
+ (43643, 43645, 0),
243
+ (43696, 43696, 0),
244
+ (43698, 43700, 0),
245
+ (43703, 43704, 0),
246
+ (43710, 43711, 0),
247
+ (43713, 43713, 0),
248
+ (43755, 43759, 0),
249
+ (43765, 43766, 0),
250
+ (44003, 44010, 0),
251
+ (44012, 44013, 0),
252
+ (44032, 55203, 2),
253
+ (55216, 55295, 0),
254
+ (63744, 64255, 2),
255
+ (64286, 64286, 0),
256
+ (65024, 65039, 0),
257
+ (65040, 65049, 2),
258
+ (65056, 65071, 0),
259
+ (65072, 65106, 2),
260
+ (65108, 65126, 2),
261
+ (65128, 65131, 2),
262
+ (65279, 65279, 0),
263
+ (65281, 65376, 2),
264
+ (65440, 65440, 0),
265
+ (65504, 65510, 2),
266
+ (65520, 65531, 0),
267
+ (66045, 66045, 0),
268
+ (66272, 66272, 0),
269
+ (66422, 66426, 0),
270
+ (68097, 68099, 0),
271
+ (68101, 68102, 0),
272
+ (68108, 68111, 0),
273
+ (68152, 68154, 0),
274
+ (68159, 68159, 0),
275
+ (68325, 68326, 0),
276
+ (69632, 69634, 0),
277
+ (69688, 69702, 0),
278
+ (69759, 69762, 0),
279
+ (69808, 69818, 0),
280
+ (69888, 69890, 0),
281
+ (69927, 69940, 0),
282
+ (70003, 70003, 0),
283
+ (70016, 70018, 0),
284
+ (70067, 70080, 0),
285
+ (70090, 70092, 0),
286
+ (70188, 70199, 0),
287
+ (70206, 70206, 0),
288
+ (70367, 70378, 0),
289
+ (70400, 70403, 0),
290
+ (70460, 70460, 0),
291
+ (70462, 70468, 0),
292
+ (70471, 70472, 0),
293
+ (70475, 70477, 0),
294
+ (70487, 70487, 0),
295
+ (70498, 70499, 0),
296
+ (70502, 70508, 0),
297
+ (70512, 70516, 0),
298
+ (70709, 70726, 0),
299
+ (70832, 70851, 0),
300
+ (71087, 71093, 0),
301
+ (71096, 71104, 0),
302
+ (71132, 71133, 0),
303
+ (71216, 71232, 0),
304
+ (71339, 71351, 0),
305
+ (71453, 71467, 0),
306
+ (72193, 72202, 0),
307
+ (72243, 72249, 0),
308
+ (72251, 72254, 0),
309
+ (72263, 72263, 0),
310
+ (72273, 72283, 0),
311
+ (72330, 72345, 0),
312
+ (72751, 72758, 0),
313
+ (72760, 72767, 0),
314
+ (72850, 72871, 0),
315
+ (72873, 72886, 0),
316
+ (73009, 73014, 0),
317
+ (73018, 73018, 0),
318
+ (73020, 73021, 0),
319
+ (73023, 73029, 0),
320
+ (73031, 73031, 0),
321
+ (92912, 92916, 0),
322
+ (92976, 92982, 0),
323
+ (94033, 94078, 0),
324
+ (94095, 94098, 0),
325
+ (94176, 94177, 2),
326
+ (94208, 100332, 2),
327
+ (100352, 101106, 2),
328
+ (110592, 110878, 2),
329
+ (110960, 111355, 2),
330
+ (113821, 113822, 0),
331
+ (113824, 113827, 0),
332
+ (119141, 119145, 0),
333
+ (119149, 119170, 0),
334
+ (119173, 119179, 0),
335
+ (119210, 119213, 0),
336
+ (119362, 119364, 0),
337
+ (121344, 121398, 0),
338
+ (121403, 121452, 0),
339
+ (121461, 121461, 0),
340
+ (121476, 121476, 0),
341
+ (121499, 121503, 0),
342
+ (121505, 121519, 0),
343
+ (122880, 122886, 0),
344
+ (122888, 122904, 0),
345
+ (122907, 122913, 0),
346
+ (122915, 122916, 0),
347
+ (122918, 122922, 0),
348
+ (125136, 125142, 0),
349
+ (125252, 125258, 0),
350
+ (126980, 126980, 2),
351
+ (127183, 127183, 2),
352
+ (127374, 127374, 2),
353
+ (127377, 127386, 2),
354
+ (127488, 127490, 2),
355
+ (127504, 127547, 2),
356
+ (127552, 127560, 2),
357
+ (127568, 127569, 2),
358
+ (127584, 127589, 2),
359
+ (127744, 127776, 2),
360
+ (127789, 127797, 2),
361
+ (127799, 127868, 2),
362
+ (127870, 127891, 2),
363
+ (127904, 127946, 2),
364
+ (127951, 127955, 2),
365
+ (127968, 127984, 2),
366
+ (127988, 127988, 2),
367
+ (127992, 127994, 2),
368
+ (127995, 127999, 0),
369
+ (128000, 128062, 2),
370
+ (128064, 128064, 2),
371
+ (128066, 128252, 2),
372
+ (128255, 128317, 2),
373
+ (128331, 128334, 2),
374
+ (128336, 128359, 2),
375
+ (128378, 128378, 2),
376
+ (128405, 128406, 2),
377
+ (128420, 128420, 2),
378
+ (128507, 128591, 2),
379
+ (128640, 128709, 2),
380
+ (128716, 128716, 2),
381
+ (128720, 128722, 2),
382
+ (128747, 128748, 2),
383
+ (128756, 128760, 2),
384
+ (129296, 129342, 2),
385
+ (129344, 129356, 2),
386
+ (129360, 129387, 2),
387
+ (129408, 129431, 2),
388
+ (129472, 129472, 2),
389
+ (129488, 129510, 2),
390
+ (131072, 196605, 2),
391
+ (196608, 262141, 2),
392
+ (917504, 921599, 0),
393
+ ],
394
+ frozenset(
395
+ [
396
+ "#",
397
+ "*",
398
+ "0",
399
+ "1",
400
+ "2",
401
+ "3",
402
+ "4",
403
+ "5",
404
+ "6",
405
+ "7",
406
+ "8",
407
+ "9",
408
+ "©",
409
+ "®",
410
+ "‼",
411
+ "⁉",
412
+ "™",
413
+ "ℹ",
414
+ "↔",
415
+ "↕",
416
+ "↖",
417
+ "↗",
418
+ "↘",
419
+ "↙",
420
+ "↩",
421
+ "↪",
422
+ "⌨",
423
+ "⏏",
424
+ "⏭",
425
+ "⏮",
426
+ "⏯",
427
+ "⏱",
428
+ "⏲",
429
+ "⏸",
430
+ "⏹",
431
+ "⏺",
432
+ "Ⓜ",
433
+ "▪",
434
+ "▫",
435
+ "▶",
436
+ "◀",
437
+ "◻",
438
+ "◼",
439
+ "☀",
440
+ "☁",
441
+ "☂",
442
+ "☃",
443
+ "☄",
444
+ "☎",
445
+ "☑",
446
+ "☘",
447
+ "☝",
448
+ "☠",
449
+ "☢",
450
+ "☣",
451
+ "☦",
452
+ "☪",
453
+ "☮",
454
+ "☯",
455
+ "☸",
456
+ "☹",
457
+ "☺",
458
+ "♀",
459
+ "♂",
460
+ "♟",
461
+ "♠",
462
+ "♣",
463
+ "♥",
464
+ "♦",
465
+ "♨",
466
+ "♻",
467
+ "♾",
468
+ "⚒",
469
+ "⚔",
470
+ "⚕",
471
+ "⚖",
472
+ "⚗",
473
+ "⚙",
474
+ "⚛",
475
+ "⚜",
476
+ "⚠",
477
+ "⚧",
478
+ "⚰",
479
+ "⚱",
480
+ "⛈",
481
+ "⛏",
482
+ "⛑",
483
+ "⛓",
484
+ "⛩",
485
+ "⛰",
486
+ "⛱",
487
+ "⛴",
488
+ "⛷",
489
+ "⛸",
490
+ "⛹",
491
+ "✂",
492
+ "✈",
493
+ "✉",
494
+ "✌",
495
+ "✍",
496
+ "✏",
497
+ "✒",
498
+ "✔",
499
+ "✖",
500
+ "✝",
501
+ "✡",
502
+ "✳",
503
+ "✴",
504
+ "❄",
505
+ "❇",
506
+ "❣",
507
+ "❤",
508
+ "➡",
509
+ "⤴",
510
+ "⤵",
511
+ "⬅",
512
+ "⬆",
513
+ "⬇",
514
+ "🅰",
515
+ "🅱",
516
+ "🅾",
517
+ "🅿",
518
+ "🌡",
519
+ "🌤",
520
+ "🌥",
521
+ "🌦",
522
+ "🌧",
523
+ "🌨",
524
+ "🌩",
525
+ "🌪",
526
+ "🌫",
527
+ "🌬",
528
+ "🌶",
529
+ "🍽",
530
+ "🎖",
531
+ "🎗",
532
+ "🎙",
533
+ "🎚",
534
+ "🎛",
535
+ "🎞",
536
+ "🎟",
537
+ "🏋",
538
+ "🏌",
539
+ "🏍",
540
+ "🏎",
541
+ "🏔",
542
+ "🏕",
543
+ "🏖",
544
+ "🏗",
545
+ "🏘",
546
+ "🏙",
547
+ "🏚",
548
+ "🏛",
549
+ "🏜",
550
+ "🏝",
551
+ "🏞",
552
+ "🏟",
553
+ "🏳",
554
+ "🏵",
555
+ "🏷",
556
+ "🐿",
557
+ "👁",
558
+ "📽",
559
+ "🕉",
560
+ "🕊",
561
+ "🕯",
562
+ "🕰",
563
+ "🕳",
564
+ "🕴",
565
+ "🕵",
566
+ "🕶",
567
+ "🕷",
568
+ "🕸",
569
+ "🕹",
570
+ "🖇",
571
+ "🖊",
572
+ "🖋",
573
+ "🖌",
574
+ "🖍",
575
+ "🖐",
576
+ "🖥",
577
+ "🖨",
578
+ "🖱",
579
+ "🖲",
580
+ "🖼",
581
+ "🗂",
582
+ "🗃",
583
+ "🗄",
584
+ "🗑",
585
+ "🗒",
586
+ "🗓",
587
+ "🗜",
588
+ "🗝",
589
+ "🗞",
590
+ "🗡",
591
+ "🗣",
592
+ "🗨",
593
+ "🗯",
594
+ "🗳",
595
+ "🗺",
596
+ "🛋",
597
+ "🛍",
598
+ "🛎",
599
+ "🛏",
600
+ "🛠",
601
+ "🛡",
602
+ "🛢",
603
+ "🛣",
604
+ "🛤",
605
+ "🛥",
606
+ "🛩",
607
+ "🛰",
608
+ "🛳",
609
+ ]
610
+ ),
611
+ )
venv/lib/python3.11/site-packages/rich/_unicode_data/unicode11-0-0.py ADDED
@@ -0,0 +1,625 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Auto generated by tools/make_width_tables.py
2
+ # Data from wcwidth project (https://github.com/jquast/wcwidth)
3
+
4
+ from rich.cells import CellTable
5
+
6
+ cell_table = CellTable(
7
+ "11.0.0",
8
+ [
9
+ (0, 0, 0),
10
+ (768, 879, 0),
11
+ (1155, 1161, 0),
12
+ (1425, 1469, 0),
13
+ (1471, 1471, 0),
14
+ (1473, 1474, 0),
15
+ (1476, 1477, 0),
16
+ (1479, 1479, 0),
17
+ (1552, 1562, 0),
18
+ (1564, 1564, 0),
19
+ (1611, 1631, 0),
20
+ (1648, 1648, 0),
21
+ (1750, 1756, 0),
22
+ (1759, 1764, 0),
23
+ (1767, 1768, 0),
24
+ (1770, 1773, 0),
25
+ (1809, 1809, 0),
26
+ (1840, 1866, 0),
27
+ (1958, 1968, 0),
28
+ (2027, 2035, 0),
29
+ (2045, 2045, 0),
30
+ (2070, 2073, 0),
31
+ (2075, 2083, 0),
32
+ (2085, 2087, 0),
33
+ (2089, 2093, 0),
34
+ (2137, 2139, 0),
35
+ (2259, 2273, 0),
36
+ (2275, 2307, 0),
37
+ (2362, 2364, 0),
38
+ (2366, 2383, 0),
39
+ (2385, 2391, 0),
40
+ (2402, 2403, 0),
41
+ (2433, 2435, 0),
42
+ (2492, 2492, 0),
43
+ (2494, 2500, 0),
44
+ (2503, 2504, 0),
45
+ (2507, 2509, 0),
46
+ (2519, 2519, 0),
47
+ (2530, 2531, 0),
48
+ (2558, 2558, 0),
49
+ (2561, 2563, 0),
50
+ (2620, 2620, 0),
51
+ (2622, 2626, 0),
52
+ (2631, 2632, 0),
53
+ (2635, 2637, 0),
54
+ (2641, 2641, 0),
55
+ (2672, 2673, 0),
56
+ (2677, 2677, 0),
57
+ (2689, 2691, 0),
58
+ (2748, 2748, 0),
59
+ (2750, 2757, 0),
60
+ (2759, 2761, 0),
61
+ (2763, 2765, 0),
62
+ (2786, 2787, 0),
63
+ (2810, 2815, 0),
64
+ (2817, 2819, 0),
65
+ (2876, 2876, 0),
66
+ (2878, 2884, 0),
67
+ (2887, 2888, 0),
68
+ (2891, 2893, 0),
69
+ (2902, 2903, 0),
70
+ (2914, 2915, 0),
71
+ (2946, 2946, 0),
72
+ (3006, 3010, 0),
73
+ (3014, 3016, 0),
74
+ (3018, 3021, 0),
75
+ (3031, 3031, 0),
76
+ (3072, 3076, 0),
77
+ (3134, 3140, 0),
78
+ (3142, 3144, 0),
79
+ (3146, 3149, 0),
80
+ (3157, 3158, 0),
81
+ (3170, 3171, 0),
82
+ (3201, 3203, 0),
83
+ (3260, 3260, 0),
84
+ (3262, 3268, 0),
85
+ (3270, 3272, 0),
86
+ (3274, 3277, 0),
87
+ (3285, 3286, 0),
88
+ (3298, 3299, 0),
89
+ (3328, 3331, 0),
90
+ (3387, 3388, 0),
91
+ (3390, 3396, 0),
92
+ (3398, 3400, 0),
93
+ (3402, 3405, 0),
94
+ (3415, 3415, 0),
95
+ (3426, 3427, 0),
96
+ (3458, 3459, 0),
97
+ (3530, 3530, 0),
98
+ (3535, 3540, 0),
99
+ (3542, 3542, 0),
100
+ (3544, 3551, 0),
101
+ (3570, 3571, 0),
102
+ (3633, 3633, 0),
103
+ (3636, 3642, 0),
104
+ (3655, 3662, 0),
105
+ (3761, 3761, 0),
106
+ (3764, 3769, 0),
107
+ (3771, 3772, 0),
108
+ (3784, 3789, 0),
109
+ (3864, 3865, 0),
110
+ (3893, 3893, 0),
111
+ (3895, 3895, 0),
112
+ (3897, 3897, 0),
113
+ (3902, 3903, 0),
114
+ (3953, 3972, 0),
115
+ (3974, 3975, 0),
116
+ (3981, 3991, 0),
117
+ (3993, 4028, 0),
118
+ (4038, 4038, 0),
119
+ (4139, 4158, 0),
120
+ (4182, 4185, 0),
121
+ (4190, 4192, 0),
122
+ (4194, 4196, 0),
123
+ (4199, 4205, 0),
124
+ (4209, 4212, 0),
125
+ (4226, 4237, 0),
126
+ (4239, 4239, 0),
127
+ (4250, 4253, 0),
128
+ (4352, 4447, 2),
129
+ (4448, 4607, 0),
130
+ (4957, 4959, 0),
131
+ (5906, 5908, 0),
132
+ (5938, 5940, 0),
133
+ (5970, 5971, 0),
134
+ (6002, 6003, 0),
135
+ (6068, 6099, 0),
136
+ (6109, 6109, 0),
137
+ (6155, 6158, 0),
138
+ (6277, 6278, 0),
139
+ (6313, 6313, 0),
140
+ (6432, 6443, 0),
141
+ (6448, 6459, 0),
142
+ (6679, 6683, 0),
143
+ (6741, 6750, 0),
144
+ (6752, 6780, 0),
145
+ (6783, 6783, 0),
146
+ (6832, 6846, 0),
147
+ (6912, 6916, 0),
148
+ (6964, 6980, 0),
149
+ (7019, 7027, 0),
150
+ (7040, 7042, 0),
151
+ (7073, 7085, 0),
152
+ (7142, 7155, 0),
153
+ (7204, 7223, 0),
154
+ (7376, 7378, 0),
155
+ (7380, 7400, 0),
156
+ (7405, 7405, 0),
157
+ (7410, 7412, 0),
158
+ (7415, 7417, 0),
159
+ (7616, 7673, 0),
160
+ (7675, 7679, 0),
161
+ (8203, 8207, 0),
162
+ (8232, 8238, 0),
163
+ (8288, 8303, 0),
164
+ (8400, 8432, 0),
165
+ (8986, 8987, 2),
166
+ (9001, 9002, 2),
167
+ (9193, 9196, 2),
168
+ (9200, 9200, 2),
169
+ (9203, 9203, 2),
170
+ (9725, 9726, 2),
171
+ (9748, 9749, 2),
172
+ (9800, 9811, 2),
173
+ (9855, 9855, 2),
174
+ (9875, 9875, 2),
175
+ (9889, 9889, 2),
176
+ (9898, 9899, 2),
177
+ (9917, 9918, 2),
178
+ (9924, 9925, 2),
179
+ (9934, 9934, 2),
180
+ (9940, 9940, 2),
181
+ (9962, 9962, 2),
182
+ (9970, 9971, 2),
183
+ (9973, 9973, 2),
184
+ (9978, 9978, 2),
185
+ (9981, 9981, 2),
186
+ (9989, 9989, 2),
187
+ (9994, 9995, 2),
188
+ (10024, 10024, 2),
189
+ (10060, 10060, 2),
190
+ (10062, 10062, 2),
191
+ (10067, 10069, 2),
192
+ (10071, 10071, 2),
193
+ (10133, 10135, 2),
194
+ (10160, 10160, 2),
195
+ (10175, 10175, 2),
196
+ (11035, 11036, 2),
197
+ (11088, 11088, 2),
198
+ (11093, 11093, 2),
199
+ (11503, 11505, 0),
200
+ (11647, 11647, 0),
201
+ (11744, 11775, 0),
202
+ (11904, 11929, 2),
203
+ (11931, 12019, 2),
204
+ (12032, 12245, 2),
205
+ (12272, 12283, 2),
206
+ (12288, 12329, 2),
207
+ (12330, 12335, 0),
208
+ (12336, 12350, 2),
209
+ (12353, 12438, 2),
210
+ (12441, 12442, 0),
211
+ (12443, 12543, 2),
212
+ (12549, 12591, 2),
213
+ (12593, 12643, 2),
214
+ (12644, 12644, 0),
215
+ (12645, 12686, 2),
216
+ (12688, 12730, 2),
217
+ (12736, 12771, 2),
218
+ (12784, 12830, 2),
219
+ (12832, 12871, 2),
220
+ (12880, 13054, 2),
221
+ (13056, 19903, 2),
222
+ (19968, 42124, 2),
223
+ (42128, 42182, 2),
224
+ (42607, 42610, 0),
225
+ (42612, 42621, 0),
226
+ (42654, 42655, 0),
227
+ (42736, 42737, 0),
228
+ (43010, 43010, 0),
229
+ (43014, 43014, 0),
230
+ (43019, 43019, 0),
231
+ (43043, 43047, 0),
232
+ (43136, 43137, 0),
233
+ (43188, 43205, 0),
234
+ (43232, 43249, 0),
235
+ (43263, 43263, 0),
236
+ (43302, 43309, 0),
237
+ (43335, 43347, 0),
238
+ (43360, 43388, 2),
239
+ (43392, 43395, 0),
240
+ (43443, 43456, 0),
241
+ (43493, 43493, 0),
242
+ (43561, 43574, 0),
243
+ (43587, 43587, 0),
244
+ (43596, 43597, 0),
245
+ (43643, 43645, 0),
246
+ (43696, 43696, 0),
247
+ (43698, 43700, 0),
248
+ (43703, 43704, 0),
249
+ (43710, 43711, 0),
250
+ (43713, 43713, 0),
251
+ (43755, 43759, 0),
252
+ (43765, 43766, 0),
253
+ (44003, 44010, 0),
254
+ (44012, 44013, 0),
255
+ (44032, 55203, 2),
256
+ (55216, 55295, 0),
257
+ (63744, 64255, 2),
258
+ (64286, 64286, 0),
259
+ (65024, 65039, 0),
260
+ (65040, 65049, 2),
261
+ (65056, 65071, 0),
262
+ (65072, 65106, 2),
263
+ (65108, 65126, 2),
264
+ (65128, 65131, 2),
265
+ (65279, 65279, 0),
266
+ (65281, 65376, 2),
267
+ (65440, 65440, 0),
268
+ (65504, 65510, 2),
269
+ (65520, 65531, 0),
270
+ (66045, 66045, 0),
271
+ (66272, 66272, 0),
272
+ (66422, 66426, 0),
273
+ (68097, 68099, 0),
274
+ (68101, 68102, 0),
275
+ (68108, 68111, 0),
276
+ (68152, 68154, 0),
277
+ (68159, 68159, 0),
278
+ (68325, 68326, 0),
279
+ (68900, 68903, 0),
280
+ (69446, 69456, 0),
281
+ (69632, 69634, 0),
282
+ (69688, 69702, 0),
283
+ (69759, 69762, 0),
284
+ (69808, 69818, 0),
285
+ (69888, 69890, 0),
286
+ (69927, 69940, 0),
287
+ (69957, 69958, 0),
288
+ (70003, 70003, 0),
289
+ (70016, 70018, 0),
290
+ (70067, 70080, 0),
291
+ (70089, 70092, 0),
292
+ (70188, 70199, 0),
293
+ (70206, 70206, 0),
294
+ (70367, 70378, 0),
295
+ (70400, 70403, 0),
296
+ (70459, 70460, 0),
297
+ (70462, 70468, 0),
298
+ (70471, 70472, 0),
299
+ (70475, 70477, 0),
300
+ (70487, 70487, 0),
301
+ (70498, 70499, 0),
302
+ (70502, 70508, 0),
303
+ (70512, 70516, 0),
304
+ (70709, 70726, 0),
305
+ (70750, 70750, 0),
306
+ (70832, 70851, 0),
307
+ (71087, 71093, 0),
308
+ (71096, 71104, 0),
309
+ (71132, 71133, 0),
310
+ (71216, 71232, 0),
311
+ (71339, 71351, 0),
312
+ (71453, 71467, 0),
313
+ (71724, 71738, 0),
314
+ (72193, 72202, 0),
315
+ (72243, 72249, 0),
316
+ (72251, 72254, 0),
317
+ (72263, 72263, 0),
318
+ (72273, 72283, 0),
319
+ (72330, 72345, 0),
320
+ (72751, 72758, 0),
321
+ (72760, 72767, 0),
322
+ (72850, 72871, 0),
323
+ (72873, 72886, 0),
324
+ (73009, 73014, 0),
325
+ (73018, 73018, 0),
326
+ (73020, 73021, 0),
327
+ (73023, 73029, 0),
328
+ (73031, 73031, 0),
329
+ (73098, 73102, 0),
330
+ (73104, 73105, 0),
331
+ (73107, 73111, 0),
332
+ (73459, 73462, 0),
333
+ (92912, 92916, 0),
334
+ (92976, 92982, 0),
335
+ (94033, 94078, 0),
336
+ (94095, 94098, 0),
337
+ (94176, 94177, 2),
338
+ (94208, 100337, 2),
339
+ (100352, 101106, 2),
340
+ (110592, 110878, 2),
341
+ (110960, 111355, 2),
342
+ (113821, 113822, 0),
343
+ (113824, 113827, 0),
344
+ (119141, 119145, 0),
345
+ (119149, 119170, 0),
346
+ (119173, 119179, 0),
347
+ (119210, 119213, 0),
348
+ (119362, 119364, 0),
349
+ (121344, 121398, 0),
350
+ (121403, 121452, 0),
351
+ (121461, 121461, 0),
352
+ (121476, 121476, 0),
353
+ (121499, 121503, 0),
354
+ (121505, 121519, 0),
355
+ (122880, 122886, 0),
356
+ (122888, 122904, 0),
357
+ (122907, 122913, 0),
358
+ (122915, 122916, 0),
359
+ (122918, 122922, 0),
360
+ (125136, 125142, 0),
361
+ (125252, 125258, 0),
362
+ (126980, 126980, 2),
363
+ (127183, 127183, 2),
364
+ (127374, 127374, 2),
365
+ (127377, 127386, 2),
366
+ (127488, 127490, 2),
367
+ (127504, 127547, 2),
368
+ (127552, 127560, 2),
369
+ (127568, 127569, 2),
370
+ (127584, 127589, 2),
371
+ (127744, 127776, 2),
372
+ (127789, 127797, 2),
373
+ (127799, 127868, 2),
374
+ (127870, 127891, 2),
375
+ (127904, 127946, 2),
376
+ (127951, 127955, 2),
377
+ (127968, 127984, 2),
378
+ (127988, 127988, 2),
379
+ (127992, 127994, 2),
380
+ (127995, 127999, 0),
381
+ (128000, 128062, 2),
382
+ (128064, 128064, 2),
383
+ (128066, 128252, 2),
384
+ (128255, 128317, 2),
385
+ (128331, 128334, 2),
386
+ (128336, 128359, 2),
387
+ (128378, 128378, 2),
388
+ (128405, 128406, 2),
389
+ (128420, 128420, 2),
390
+ (128507, 128591, 2),
391
+ (128640, 128709, 2),
392
+ (128716, 128716, 2),
393
+ (128720, 128722, 2),
394
+ (128747, 128748, 2),
395
+ (128756, 128761, 2),
396
+ (129296, 129342, 2),
397
+ (129344, 129392, 2),
398
+ (129395, 129398, 2),
399
+ (129402, 129402, 2),
400
+ (129404, 129442, 2),
401
+ (129456, 129465, 2),
402
+ (129472, 129474, 2),
403
+ (129488, 129535, 2),
404
+ (131072, 196605, 2),
405
+ (196608, 262141, 2),
406
+ (917504, 921599, 0),
407
+ ],
408
+ frozenset(
409
+ [
410
+ "#",
411
+ "*",
412
+ "0",
413
+ "1",
414
+ "2",
415
+ "3",
416
+ "4",
417
+ "5",
418
+ "6",
419
+ "7",
420
+ "8",
421
+ "9",
422
+ "©",
423
+ "®",
424
+ "‼",
425
+ "⁉",
426
+ "™",
427
+ "ℹ",
428
+ "↔",
429
+ "↕",
430
+ "↖",
431
+ "↗",
432
+ "↘",
433
+ "↙",
434
+ "↩",
435
+ "↪",
436
+ "⌨",
437
+ "⏏",
438
+ "⏭",
439
+ "⏮",
440
+ "⏯",
441
+ "⏱",
442
+ "⏲",
443
+ "⏸",
444
+ "⏹",
445
+ "⏺",
446
+ "Ⓜ",
447
+ "▪",
448
+ "▫",
449
+ "▶",
450
+ "◀",
451
+ "◻",
452
+ "◼",
453
+ "☀",
454
+ "☁",
455
+ "☂",
456
+ "☃",
457
+ "☄",
458
+ "☎",
459
+ "☑",
460
+ "☘",
461
+ "☝",
462
+ "☠",
463
+ "☢",
464
+ "☣",
465
+ "☦",
466
+ "☪",
467
+ "☮",
468
+ "☯",
469
+ "☸",
470
+ "☹",
471
+ "☺",
472
+ "♀",
473
+ "♂",
474
+ "♟",
475
+ "♠",
476
+ "♣",
477
+ "♥",
478
+ "♦",
479
+ "♨",
480
+ "♻",
481
+ "♾",
482
+ "⚒",
483
+ "⚔",
484
+ "⚕",
485
+ "⚖",
486
+ "⚗",
487
+ "⚙",
488
+ "⚛",
489
+ "⚜",
490
+ "⚠",
491
+ "⚧",
492
+ "⚰",
493
+ "⚱",
494
+ "⛈",
495
+ "⛏",
496
+ "⛑",
497
+ "⛓",
498
+ "⛩",
499
+ "⛰",
500
+ "⛱",
501
+ "⛴",
502
+ "⛷",
503
+ "⛸",
504
+ "⛹",
505
+ "✂",
506
+ "✈",
507
+ "✉",
508
+ "✌",
509
+ "✍",
510
+ "✏",
511
+ "✒",
512
+ "✔",
513
+ "✖",
514
+ "✝",
515
+ "✡",
516
+ "✳",
517
+ "✴",
518
+ "❄",
519
+ "❇",
520
+ "❣",
521
+ "❤",
522
+ "➡",
523
+ "⤴",
524
+ "⤵",
525
+ "⬅",
526
+ "⬆",
527
+ "⬇",
528
+ "🅰",
529
+ "🅱",
530
+ "🅾",
531
+ "🅿",
532
+ "🌡",
533
+ "🌤",
534
+ "🌥",
535
+ "🌦",
536
+ "🌧",
537
+ "🌨",
538
+ "🌩",
539
+ "🌪",
540
+ "🌫",
541
+ "🌬",
542
+ "🌶",
543
+ "🍽",
544
+ "🎖",
545
+ "🎗",
546
+ "🎙",
547
+ "🎚",
548
+ "🎛",
549
+ "🎞",
550
+ "🎟",
551
+ "🏋",
552
+ "🏌",
553
+ "🏍",
554
+ "🏎",
555
+ "🏔",
556
+ "🏕",
557
+ "🏖",
558
+ "🏗",
559
+ "🏘",
560
+ "🏙",
561
+ "🏚",
562
+ "🏛",
563
+ "🏜",
564
+ "🏝",
565
+ "🏞",
566
+ "🏟",
567
+ "🏳",
568
+ "🏵",
569
+ "🏷",
570
+ "🐿",
571
+ "👁",
572
+ "📽",
573
+ "🕉",
574
+ "🕊",
575
+ "🕯",
576
+ "🕰",
577
+ "🕳",
578
+ "🕴",
579
+ "🕵",
580
+ "🕶",
581
+ "🕷",
582
+ "🕸",
583
+ "🕹",
584
+ "🖇",
585
+ "🖊",
586
+ "🖋",
587
+ "🖌",
588
+ "🖍",
589
+ "🖐",
590
+ "🖥",
591
+ "🖨",
592
+ "🖱",
593
+ "🖲",
594
+ "🖼",
595
+ "🗂",
596
+ "🗃",
597
+ "🗄",
598
+ "🗑",
599
+ "🗒",
600
+ "🗓",
601
+ "🗜",
602
+ "🗝",
603
+ "🗞",
604
+ "🗡",
605
+ "🗣",
606
+ "🗨",
607
+ "🗯",
608
+ "🗳",
609
+ "🗺",
610
+ "🛋",
611
+ "🛍",
612
+ "🛎",
613
+ "🛏",
614
+ "🛠",
615
+ "🛡",
616
+ "🛢",
617
+ "🛣",
618
+ "🛤",
619
+ "🛥",
620
+ "🛩",
621
+ "🛰",
622
+ "🛳",
623
+ ]
624
+ ),
625
+ )
venv/lib/python3.11/site-packages/rich/_unicode_data/unicode12-0-0.py ADDED
@@ -0,0 +1,637 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Auto generated by tools/make_width_tables.py
2
+ # Data from wcwidth project (https://github.com/jquast/wcwidth)
3
+
4
+ from rich.cells import CellTable
5
+
6
+ cell_table = CellTable(
7
+ "12.0.0",
8
+ [
9
+ (0, 0, 0),
10
+ (768, 879, 0),
11
+ (1155, 1161, 0),
12
+ (1425, 1469, 0),
13
+ (1471, 1471, 0),
14
+ (1473, 1474, 0),
15
+ (1476, 1477, 0),
16
+ (1479, 1479, 0),
17
+ (1552, 1562, 0),
18
+ (1564, 1564, 0),
19
+ (1611, 1631, 0),
20
+ (1648, 1648, 0),
21
+ (1750, 1756, 0),
22
+ (1759, 1764, 0),
23
+ (1767, 1768, 0),
24
+ (1770, 1773, 0),
25
+ (1809, 1809, 0),
26
+ (1840, 1866, 0),
27
+ (1958, 1968, 0),
28
+ (2027, 2035, 0),
29
+ (2045, 2045, 0),
30
+ (2070, 2073, 0),
31
+ (2075, 2083, 0),
32
+ (2085, 2087, 0),
33
+ (2089, 2093, 0),
34
+ (2137, 2139, 0),
35
+ (2259, 2273, 0),
36
+ (2275, 2307, 0),
37
+ (2362, 2364, 0),
38
+ (2366, 2383, 0),
39
+ (2385, 2391, 0),
40
+ (2402, 2403, 0),
41
+ (2433, 2435, 0),
42
+ (2492, 2492, 0),
43
+ (2494, 2500, 0),
44
+ (2503, 2504, 0),
45
+ (2507, 2509, 0),
46
+ (2519, 2519, 0),
47
+ (2530, 2531, 0),
48
+ (2558, 2558, 0),
49
+ (2561, 2563, 0),
50
+ (2620, 2620, 0),
51
+ (2622, 2626, 0),
52
+ (2631, 2632, 0),
53
+ (2635, 2637, 0),
54
+ (2641, 2641, 0),
55
+ (2672, 2673, 0),
56
+ (2677, 2677, 0),
57
+ (2689, 2691, 0),
58
+ (2748, 2748, 0),
59
+ (2750, 2757, 0),
60
+ (2759, 2761, 0),
61
+ (2763, 2765, 0),
62
+ (2786, 2787, 0),
63
+ (2810, 2815, 0),
64
+ (2817, 2819, 0),
65
+ (2876, 2876, 0),
66
+ (2878, 2884, 0),
67
+ (2887, 2888, 0),
68
+ (2891, 2893, 0),
69
+ (2902, 2903, 0),
70
+ (2914, 2915, 0),
71
+ (2946, 2946, 0),
72
+ (3006, 3010, 0),
73
+ (3014, 3016, 0),
74
+ (3018, 3021, 0),
75
+ (3031, 3031, 0),
76
+ (3072, 3076, 0),
77
+ (3134, 3140, 0),
78
+ (3142, 3144, 0),
79
+ (3146, 3149, 0),
80
+ (3157, 3158, 0),
81
+ (3170, 3171, 0),
82
+ (3201, 3203, 0),
83
+ (3260, 3260, 0),
84
+ (3262, 3268, 0),
85
+ (3270, 3272, 0),
86
+ (3274, 3277, 0),
87
+ (3285, 3286, 0),
88
+ (3298, 3299, 0),
89
+ (3328, 3331, 0),
90
+ (3387, 3388, 0),
91
+ (3390, 3396, 0),
92
+ (3398, 3400, 0),
93
+ (3402, 3405, 0),
94
+ (3415, 3415, 0),
95
+ (3426, 3427, 0),
96
+ (3458, 3459, 0),
97
+ (3530, 3530, 0),
98
+ (3535, 3540, 0),
99
+ (3542, 3542, 0),
100
+ (3544, 3551, 0),
101
+ (3570, 3571, 0),
102
+ (3633, 3633, 0),
103
+ (3636, 3642, 0),
104
+ (3655, 3662, 0),
105
+ (3761, 3761, 0),
106
+ (3764, 3772, 0),
107
+ (3784, 3789, 0),
108
+ (3864, 3865, 0),
109
+ (3893, 3893, 0),
110
+ (3895, 3895, 0),
111
+ (3897, 3897, 0),
112
+ (3902, 3903, 0),
113
+ (3953, 3972, 0),
114
+ (3974, 3975, 0),
115
+ (3981, 3991, 0),
116
+ (3993, 4028, 0),
117
+ (4038, 4038, 0),
118
+ (4139, 4158, 0),
119
+ (4182, 4185, 0),
120
+ (4190, 4192, 0),
121
+ (4194, 4196, 0),
122
+ (4199, 4205, 0),
123
+ (4209, 4212, 0),
124
+ (4226, 4237, 0),
125
+ (4239, 4239, 0),
126
+ (4250, 4253, 0),
127
+ (4352, 4447, 2),
128
+ (4448, 4607, 0),
129
+ (4957, 4959, 0),
130
+ (5906, 5908, 0),
131
+ (5938, 5940, 0),
132
+ (5970, 5971, 0),
133
+ (6002, 6003, 0),
134
+ (6068, 6099, 0),
135
+ (6109, 6109, 0),
136
+ (6155, 6158, 0),
137
+ (6277, 6278, 0),
138
+ (6313, 6313, 0),
139
+ (6432, 6443, 0),
140
+ (6448, 6459, 0),
141
+ (6679, 6683, 0),
142
+ (6741, 6750, 0),
143
+ (6752, 6780, 0),
144
+ (6783, 6783, 0),
145
+ (6832, 6846, 0),
146
+ (6912, 6916, 0),
147
+ (6964, 6980, 0),
148
+ (7019, 7027, 0),
149
+ (7040, 7042, 0),
150
+ (7073, 7085, 0),
151
+ (7142, 7155, 0),
152
+ (7204, 7223, 0),
153
+ (7376, 7378, 0),
154
+ (7380, 7400, 0),
155
+ (7405, 7405, 0),
156
+ (7412, 7412, 0),
157
+ (7415, 7417, 0),
158
+ (7616, 7673, 0),
159
+ (7675, 7679, 0),
160
+ (8203, 8207, 0),
161
+ (8232, 8238, 0),
162
+ (8288, 8303, 0),
163
+ (8400, 8432, 0),
164
+ (8986, 8987, 2),
165
+ (9001, 9002, 2),
166
+ (9193, 9196, 2),
167
+ (9200, 9200, 2),
168
+ (9203, 9203, 2),
169
+ (9725, 9726, 2),
170
+ (9748, 9749, 2),
171
+ (9800, 9811, 2),
172
+ (9855, 9855, 2),
173
+ (9875, 9875, 2),
174
+ (9889, 9889, 2),
175
+ (9898, 9899, 2),
176
+ (9917, 9918, 2),
177
+ (9924, 9925, 2),
178
+ (9934, 9934, 2),
179
+ (9940, 9940, 2),
180
+ (9962, 9962, 2),
181
+ (9970, 9971, 2),
182
+ (9973, 9973, 2),
183
+ (9978, 9978, 2),
184
+ (9981, 9981, 2),
185
+ (9989, 9989, 2),
186
+ (9994, 9995, 2),
187
+ (10024, 10024, 2),
188
+ (10060, 10060, 2),
189
+ (10062, 10062, 2),
190
+ (10067, 10069, 2),
191
+ (10071, 10071, 2),
192
+ (10133, 10135, 2),
193
+ (10160, 10160, 2),
194
+ (10175, 10175, 2),
195
+ (11035, 11036, 2),
196
+ (11088, 11088, 2),
197
+ (11093, 11093, 2),
198
+ (11503, 11505, 0),
199
+ (11647, 11647, 0),
200
+ (11744, 11775, 0),
201
+ (11904, 11929, 2),
202
+ (11931, 12019, 2),
203
+ (12032, 12245, 2),
204
+ (12272, 12283, 2),
205
+ (12288, 12329, 2),
206
+ (12330, 12335, 0),
207
+ (12336, 12350, 2),
208
+ (12353, 12438, 2),
209
+ (12441, 12442, 0),
210
+ (12443, 12543, 2),
211
+ (12549, 12591, 2),
212
+ (12593, 12643, 2),
213
+ (12644, 12644, 0),
214
+ (12645, 12686, 2),
215
+ (12688, 12730, 2),
216
+ (12736, 12771, 2),
217
+ (12784, 12830, 2),
218
+ (12832, 12871, 2),
219
+ (12880, 13054, 2),
220
+ (13056, 19903, 2),
221
+ (19968, 42124, 2),
222
+ (42128, 42182, 2),
223
+ (42607, 42610, 0),
224
+ (42612, 42621, 0),
225
+ (42654, 42655, 0),
226
+ (42736, 42737, 0),
227
+ (43010, 43010, 0),
228
+ (43014, 43014, 0),
229
+ (43019, 43019, 0),
230
+ (43043, 43047, 0),
231
+ (43136, 43137, 0),
232
+ (43188, 43205, 0),
233
+ (43232, 43249, 0),
234
+ (43263, 43263, 0),
235
+ (43302, 43309, 0),
236
+ (43335, 43347, 0),
237
+ (43360, 43388, 2),
238
+ (43392, 43395, 0),
239
+ (43443, 43456, 0),
240
+ (43493, 43493, 0),
241
+ (43561, 43574, 0),
242
+ (43587, 43587, 0),
243
+ (43596, 43597, 0),
244
+ (43643, 43645, 0),
245
+ (43696, 43696, 0),
246
+ (43698, 43700, 0),
247
+ (43703, 43704, 0),
248
+ (43710, 43711, 0),
249
+ (43713, 43713, 0),
250
+ (43755, 43759, 0),
251
+ (43765, 43766, 0),
252
+ (44003, 44010, 0),
253
+ (44012, 44013, 0),
254
+ (44032, 55203, 2),
255
+ (55216, 55295, 0),
256
+ (63744, 64255, 2),
257
+ (64286, 64286, 0),
258
+ (65024, 65039, 0),
259
+ (65040, 65049, 2),
260
+ (65056, 65071, 0),
261
+ (65072, 65106, 2),
262
+ (65108, 65126, 2),
263
+ (65128, 65131, 2),
264
+ (65279, 65279, 0),
265
+ (65281, 65376, 2),
266
+ (65440, 65440, 0),
267
+ (65504, 65510, 2),
268
+ (65520, 65531, 0),
269
+ (66045, 66045, 0),
270
+ (66272, 66272, 0),
271
+ (66422, 66426, 0),
272
+ (68097, 68099, 0),
273
+ (68101, 68102, 0),
274
+ (68108, 68111, 0),
275
+ (68152, 68154, 0),
276
+ (68159, 68159, 0),
277
+ (68325, 68326, 0),
278
+ (68900, 68903, 0),
279
+ (69446, 69456, 0),
280
+ (69632, 69634, 0),
281
+ (69688, 69702, 0),
282
+ (69759, 69762, 0),
283
+ (69808, 69818, 0),
284
+ (69888, 69890, 0),
285
+ (69927, 69940, 0),
286
+ (69957, 69958, 0),
287
+ (70003, 70003, 0),
288
+ (70016, 70018, 0),
289
+ (70067, 70080, 0),
290
+ (70089, 70092, 0),
291
+ (70188, 70199, 0),
292
+ (70206, 70206, 0),
293
+ (70367, 70378, 0),
294
+ (70400, 70403, 0),
295
+ (70459, 70460, 0),
296
+ (70462, 70468, 0),
297
+ (70471, 70472, 0),
298
+ (70475, 70477, 0),
299
+ (70487, 70487, 0),
300
+ (70498, 70499, 0),
301
+ (70502, 70508, 0),
302
+ (70512, 70516, 0),
303
+ (70709, 70726, 0),
304
+ (70750, 70750, 0),
305
+ (70832, 70851, 0),
306
+ (71087, 71093, 0),
307
+ (71096, 71104, 0),
308
+ (71132, 71133, 0),
309
+ (71216, 71232, 0),
310
+ (71339, 71351, 0),
311
+ (71453, 71467, 0),
312
+ (71724, 71738, 0),
313
+ (72145, 72151, 0),
314
+ (72154, 72160, 0),
315
+ (72164, 72164, 0),
316
+ (72193, 72202, 0),
317
+ (72243, 72249, 0),
318
+ (72251, 72254, 0),
319
+ (72263, 72263, 0),
320
+ (72273, 72283, 0),
321
+ (72330, 72345, 0),
322
+ (72751, 72758, 0),
323
+ (72760, 72767, 0),
324
+ (72850, 72871, 0),
325
+ (72873, 72886, 0),
326
+ (73009, 73014, 0),
327
+ (73018, 73018, 0),
328
+ (73020, 73021, 0),
329
+ (73023, 73029, 0),
330
+ (73031, 73031, 0),
331
+ (73098, 73102, 0),
332
+ (73104, 73105, 0),
333
+ (73107, 73111, 0),
334
+ (73459, 73462, 0),
335
+ (78896, 78904, 0),
336
+ (92912, 92916, 0),
337
+ (92976, 92982, 0),
338
+ (94031, 94031, 0),
339
+ (94033, 94087, 0),
340
+ (94095, 94098, 0),
341
+ (94176, 94179, 2),
342
+ (94208, 100343, 2),
343
+ (100352, 101106, 2),
344
+ (110592, 110878, 2),
345
+ (110928, 110930, 2),
346
+ (110948, 110951, 2),
347
+ (110960, 111355, 2),
348
+ (113821, 113822, 0),
349
+ (113824, 113827, 0),
350
+ (119141, 119145, 0),
351
+ (119149, 119170, 0),
352
+ (119173, 119179, 0),
353
+ (119210, 119213, 0),
354
+ (119362, 119364, 0),
355
+ (121344, 121398, 0),
356
+ (121403, 121452, 0),
357
+ (121461, 121461, 0),
358
+ (121476, 121476, 0),
359
+ (121499, 121503, 0),
360
+ (121505, 121519, 0),
361
+ (122880, 122886, 0),
362
+ (122888, 122904, 0),
363
+ (122907, 122913, 0),
364
+ (122915, 122916, 0),
365
+ (122918, 122922, 0),
366
+ (123184, 123190, 0),
367
+ (123628, 123631, 0),
368
+ (125136, 125142, 0),
369
+ (125252, 125258, 0),
370
+ (126980, 126980, 2),
371
+ (127183, 127183, 2),
372
+ (127374, 127374, 2),
373
+ (127377, 127386, 2),
374
+ (127488, 127490, 2),
375
+ (127504, 127547, 2),
376
+ (127552, 127560, 2),
377
+ (127568, 127569, 2),
378
+ (127584, 127589, 2),
379
+ (127744, 127776, 2),
380
+ (127789, 127797, 2),
381
+ (127799, 127868, 2),
382
+ (127870, 127891, 2),
383
+ (127904, 127946, 2),
384
+ (127951, 127955, 2),
385
+ (127968, 127984, 2),
386
+ (127988, 127988, 2),
387
+ (127992, 127994, 2),
388
+ (127995, 127999, 0),
389
+ (128000, 128062, 2),
390
+ (128064, 128064, 2),
391
+ (128066, 128252, 2),
392
+ (128255, 128317, 2),
393
+ (128331, 128334, 2),
394
+ (128336, 128359, 2),
395
+ (128378, 128378, 2),
396
+ (128405, 128406, 2),
397
+ (128420, 128420, 2),
398
+ (128507, 128591, 2),
399
+ (128640, 128709, 2),
400
+ (128716, 128716, 2),
401
+ (128720, 128722, 2),
402
+ (128725, 128725, 2),
403
+ (128747, 128748, 2),
404
+ (128756, 128762, 2),
405
+ (128992, 129003, 2),
406
+ (129293, 129393, 2),
407
+ (129395, 129398, 2),
408
+ (129402, 129442, 2),
409
+ (129445, 129450, 2),
410
+ (129454, 129482, 2),
411
+ (129485, 129535, 2),
412
+ (129648, 129651, 2),
413
+ (129656, 129658, 2),
414
+ (129664, 129666, 2),
415
+ (129680, 129685, 2),
416
+ (131072, 196605, 2),
417
+ (196608, 262141, 2),
418
+ (917504, 921599, 0),
419
+ ],
420
+ frozenset(
421
+ [
422
+ "#",
423
+ "*",
424
+ "0",
425
+ "1",
426
+ "2",
427
+ "3",
428
+ "4",
429
+ "5",
430
+ "6",
431
+ "7",
432
+ "8",
433
+ "9",
434
+ "©",
435
+ "®",
436
+ "‼",
437
+ "⁉",
438
+ "™",
439
+ "ℹ",
440
+ "↔",
441
+ "↕",
442
+ "↖",
443
+ "↗",
444
+ "↘",
445
+ "↙",
446
+ "↩",
447
+ "↪",
448
+ "⌨",
449
+ "⏏",
450
+ "⏭",
451
+ "⏮",
452
+ "⏯",
453
+ "⏱",
454
+ "⏲",
455
+ "⏸",
456
+ "⏹",
457
+ "⏺",
458
+ "Ⓜ",
459
+ "▪",
460
+ "▫",
461
+ "▶",
462
+ "◀",
463
+ "◻",
464
+ "◼",
465
+ "☀",
466
+ "☁",
467
+ "☂",
468
+ "☃",
469
+ "☄",
470
+ "☎",
471
+ "☑",
472
+ "☘",
473
+ "☝",
474
+ "☠",
475
+ "☢",
476
+ "☣",
477
+ "☦",
478
+ "☪",
479
+ "☮",
480
+ "☯",
481
+ "☸",
482
+ "☹",
483
+ "☺",
484
+ "♀",
485
+ "♂",
486
+ "♟",
487
+ "♠",
488
+ "♣",
489
+ "♥",
490
+ "♦",
491
+ "♨",
492
+ "♻",
493
+ "♾",
494
+ "⚒",
495
+ "⚔",
496
+ "⚕",
497
+ "⚖",
498
+ "⚗",
499
+ "⚙",
500
+ "⚛",
501
+ "⚜",
502
+ "⚠",
503
+ "⚧",
504
+ "⚰",
505
+ "⚱",
506
+ "⛈",
507
+ "⛏",
508
+ "⛑",
509
+ "⛓",
510
+ "⛩",
511
+ "⛰",
512
+ "⛱",
513
+ "⛴",
514
+ "⛷",
515
+ "⛸",
516
+ "⛹",
517
+ "✂",
518
+ "✈",
519
+ "✉",
520
+ "✌",
521
+ "✍",
522
+ "✏",
523
+ "✒",
524
+ "✔",
525
+ "✖",
526
+ "✝",
527
+ "✡",
528
+ "✳",
529
+ "✴",
530
+ "❄",
531
+ "❇",
532
+ "❣",
533
+ "❤",
534
+ "➡",
535
+ "⤴",
536
+ "⤵",
537
+ "⬅",
538
+ "⬆",
539
+ "⬇",
540
+ "🅰",
541
+ "🅱",
542
+ "🅾",
543
+ "🅿",
544
+ "🌡",
545
+ "🌤",
546
+ "🌥",
547
+ "🌦",
548
+ "🌧",
549
+ "🌨",
550
+ "🌩",
551
+ "🌪",
552
+ "🌫",
553
+ "🌬",
554
+ "🌶",
555
+ "🍽",
556
+ "🎖",
557
+ "🎗",
558
+ "🎙",
559
+ "🎚",
560
+ "🎛",
561
+ "🎞",
562
+ "🎟",
563
+ "🏋",
564
+ "🏌",
565
+ "🏍",
566
+ "🏎",
567
+ "🏔",
568
+ "🏕",
569
+ "🏖",
570
+ "🏗",
571
+ "🏘",
572
+ "🏙",
573
+ "🏚",
574
+ "🏛",
575
+ "🏜",
576
+ "🏝",
577
+ "🏞",
578
+ "🏟",
579
+ "🏳",
580
+ "🏵",
581
+ "🏷",
582
+ "🐿",
583
+ "👁",
584
+ "📽",
585
+ "🕉",
586
+ "🕊",
587
+ "🕯",
588
+ "🕰",
589
+ "🕳",
590
+ "🕴",
591
+ "🕵",
592
+ "🕶",
593
+ "🕷",
594
+ "🕸",
595
+ "🕹",
596
+ "🖇",
597
+ "🖊",
598
+ "🖋",
599
+ "🖌",
600
+ "🖍",
601
+ "🖐",
602
+ "🖥",
603
+ "🖨",
604
+ "🖱",
605
+ "🖲",
606
+ "🖼",
607
+ "🗂",
608
+ "🗃",
609
+ "🗄",
610
+ "🗑",
611
+ "����",
612
+ "🗓",
613
+ "🗜",
614
+ "🗝",
615
+ "🗞",
616
+ "🗡",
617
+ "🗣",
618
+ "🗨",
619
+ "🗯",
620
+ "🗳",
621
+ "🗺",
622
+ "🛋",
623
+ "🛍",
624
+ "🛎",
625
+ "🛏",
626
+ "🛠",
627
+ "🛡",
628
+ "🛢",
629
+ "🛣",
630
+ "🛤",
631
+ "🛥",
632
+ "🛩",
633
+ "🛰",
634
+ "🛳",
635
+ ]
636
+ ),
637
+ )
venv/lib/python3.11/site-packages/rich/_unicode_data/unicode12-1-0.py ADDED
@@ -0,0 +1,636 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Auto generated by tools/make_width_tables.py
2
+ # Data from wcwidth project (https://github.com/jquast/wcwidth)
3
+
4
+ from rich.cells import CellTable
5
+
6
+ cell_table = CellTable(
7
+ "12.1.0",
8
+ [
9
+ (0, 0, 0),
10
+ (768, 879, 0),
11
+ (1155, 1161, 0),
12
+ (1425, 1469, 0),
13
+ (1471, 1471, 0),
14
+ (1473, 1474, 0),
15
+ (1476, 1477, 0),
16
+ (1479, 1479, 0),
17
+ (1552, 1562, 0),
18
+ (1564, 1564, 0),
19
+ (1611, 1631, 0),
20
+ (1648, 1648, 0),
21
+ (1750, 1756, 0),
22
+ (1759, 1764, 0),
23
+ (1767, 1768, 0),
24
+ (1770, 1773, 0),
25
+ (1809, 1809, 0),
26
+ (1840, 1866, 0),
27
+ (1958, 1968, 0),
28
+ (2027, 2035, 0),
29
+ (2045, 2045, 0),
30
+ (2070, 2073, 0),
31
+ (2075, 2083, 0),
32
+ (2085, 2087, 0),
33
+ (2089, 2093, 0),
34
+ (2137, 2139, 0),
35
+ (2259, 2273, 0),
36
+ (2275, 2307, 0),
37
+ (2362, 2364, 0),
38
+ (2366, 2383, 0),
39
+ (2385, 2391, 0),
40
+ (2402, 2403, 0),
41
+ (2433, 2435, 0),
42
+ (2492, 2492, 0),
43
+ (2494, 2500, 0),
44
+ (2503, 2504, 0),
45
+ (2507, 2509, 0),
46
+ (2519, 2519, 0),
47
+ (2530, 2531, 0),
48
+ (2558, 2558, 0),
49
+ (2561, 2563, 0),
50
+ (2620, 2620, 0),
51
+ (2622, 2626, 0),
52
+ (2631, 2632, 0),
53
+ (2635, 2637, 0),
54
+ (2641, 2641, 0),
55
+ (2672, 2673, 0),
56
+ (2677, 2677, 0),
57
+ (2689, 2691, 0),
58
+ (2748, 2748, 0),
59
+ (2750, 2757, 0),
60
+ (2759, 2761, 0),
61
+ (2763, 2765, 0),
62
+ (2786, 2787, 0),
63
+ (2810, 2815, 0),
64
+ (2817, 2819, 0),
65
+ (2876, 2876, 0),
66
+ (2878, 2884, 0),
67
+ (2887, 2888, 0),
68
+ (2891, 2893, 0),
69
+ (2902, 2903, 0),
70
+ (2914, 2915, 0),
71
+ (2946, 2946, 0),
72
+ (3006, 3010, 0),
73
+ (3014, 3016, 0),
74
+ (3018, 3021, 0),
75
+ (3031, 3031, 0),
76
+ (3072, 3076, 0),
77
+ (3134, 3140, 0),
78
+ (3142, 3144, 0),
79
+ (3146, 3149, 0),
80
+ (3157, 3158, 0),
81
+ (3170, 3171, 0),
82
+ (3201, 3203, 0),
83
+ (3260, 3260, 0),
84
+ (3262, 3268, 0),
85
+ (3270, 3272, 0),
86
+ (3274, 3277, 0),
87
+ (3285, 3286, 0),
88
+ (3298, 3299, 0),
89
+ (3328, 3331, 0),
90
+ (3387, 3388, 0),
91
+ (3390, 3396, 0),
92
+ (3398, 3400, 0),
93
+ (3402, 3405, 0),
94
+ (3415, 3415, 0),
95
+ (3426, 3427, 0),
96
+ (3458, 3459, 0),
97
+ (3530, 3530, 0),
98
+ (3535, 3540, 0),
99
+ (3542, 3542, 0),
100
+ (3544, 3551, 0),
101
+ (3570, 3571, 0),
102
+ (3633, 3633, 0),
103
+ (3636, 3642, 0),
104
+ (3655, 3662, 0),
105
+ (3761, 3761, 0),
106
+ (3764, 3772, 0),
107
+ (3784, 3789, 0),
108
+ (3864, 3865, 0),
109
+ (3893, 3893, 0),
110
+ (3895, 3895, 0),
111
+ (3897, 3897, 0),
112
+ (3902, 3903, 0),
113
+ (3953, 3972, 0),
114
+ (3974, 3975, 0),
115
+ (3981, 3991, 0),
116
+ (3993, 4028, 0),
117
+ (4038, 4038, 0),
118
+ (4139, 4158, 0),
119
+ (4182, 4185, 0),
120
+ (4190, 4192, 0),
121
+ (4194, 4196, 0),
122
+ (4199, 4205, 0),
123
+ (4209, 4212, 0),
124
+ (4226, 4237, 0),
125
+ (4239, 4239, 0),
126
+ (4250, 4253, 0),
127
+ (4352, 4447, 2),
128
+ (4448, 4607, 0),
129
+ (4957, 4959, 0),
130
+ (5906, 5908, 0),
131
+ (5938, 5940, 0),
132
+ (5970, 5971, 0),
133
+ (6002, 6003, 0),
134
+ (6068, 6099, 0),
135
+ (6109, 6109, 0),
136
+ (6155, 6158, 0),
137
+ (6277, 6278, 0),
138
+ (6313, 6313, 0),
139
+ (6432, 6443, 0),
140
+ (6448, 6459, 0),
141
+ (6679, 6683, 0),
142
+ (6741, 6750, 0),
143
+ (6752, 6780, 0),
144
+ (6783, 6783, 0),
145
+ (6832, 6846, 0),
146
+ (6912, 6916, 0),
147
+ (6964, 6980, 0),
148
+ (7019, 7027, 0),
149
+ (7040, 7042, 0),
150
+ (7073, 7085, 0),
151
+ (7142, 7155, 0),
152
+ (7204, 7223, 0),
153
+ (7376, 7378, 0),
154
+ (7380, 7400, 0),
155
+ (7405, 7405, 0),
156
+ (7412, 7412, 0),
157
+ (7415, 7417, 0),
158
+ (7616, 7673, 0),
159
+ (7675, 7679, 0),
160
+ (8203, 8207, 0),
161
+ (8232, 8238, 0),
162
+ (8288, 8303, 0),
163
+ (8400, 8432, 0),
164
+ (8986, 8987, 2),
165
+ (9001, 9002, 2),
166
+ (9193, 9196, 2),
167
+ (9200, 9200, 2),
168
+ (9203, 9203, 2),
169
+ (9725, 9726, 2),
170
+ (9748, 9749, 2),
171
+ (9800, 9811, 2),
172
+ (9855, 9855, 2),
173
+ (9875, 9875, 2),
174
+ (9889, 9889, 2),
175
+ (9898, 9899, 2),
176
+ (9917, 9918, 2),
177
+ (9924, 9925, 2),
178
+ (9934, 9934, 2),
179
+ (9940, 9940, 2),
180
+ (9962, 9962, 2),
181
+ (9970, 9971, 2),
182
+ (9973, 9973, 2),
183
+ (9978, 9978, 2),
184
+ (9981, 9981, 2),
185
+ (9989, 9989, 2),
186
+ (9994, 9995, 2),
187
+ (10024, 10024, 2),
188
+ (10060, 10060, 2),
189
+ (10062, 10062, 2),
190
+ (10067, 10069, 2),
191
+ (10071, 10071, 2),
192
+ (10133, 10135, 2),
193
+ (10160, 10160, 2),
194
+ (10175, 10175, 2),
195
+ (11035, 11036, 2),
196
+ (11088, 11088, 2),
197
+ (11093, 11093, 2),
198
+ (11503, 11505, 0),
199
+ (11647, 11647, 0),
200
+ (11744, 11775, 0),
201
+ (11904, 11929, 2),
202
+ (11931, 12019, 2),
203
+ (12032, 12245, 2),
204
+ (12272, 12283, 2),
205
+ (12288, 12329, 2),
206
+ (12330, 12335, 0),
207
+ (12336, 12350, 2),
208
+ (12353, 12438, 2),
209
+ (12441, 12442, 0),
210
+ (12443, 12543, 2),
211
+ (12549, 12591, 2),
212
+ (12593, 12643, 2),
213
+ (12644, 12644, 0),
214
+ (12645, 12686, 2),
215
+ (12688, 12730, 2),
216
+ (12736, 12771, 2),
217
+ (12784, 12830, 2),
218
+ (12832, 12871, 2),
219
+ (12880, 19903, 2),
220
+ (19968, 42124, 2),
221
+ (42128, 42182, 2),
222
+ (42607, 42610, 0),
223
+ (42612, 42621, 0),
224
+ (42654, 42655, 0),
225
+ (42736, 42737, 0),
226
+ (43010, 43010, 0),
227
+ (43014, 43014, 0),
228
+ (43019, 43019, 0),
229
+ (43043, 43047, 0),
230
+ (43136, 43137, 0),
231
+ (43188, 43205, 0),
232
+ (43232, 43249, 0),
233
+ (43263, 43263, 0),
234
+ (43302, 43309, 0),
235
+ (43335, 43347, 0),
236
+ (43360, 43388, 2),
237
+ (43392, 43395, 0),
238
+ (43443, 43456, 0),
239
+ (43493, 43493, 0),
240
+ (43561, 43574, 0),
241
+ (43587, 43587, 0),
242
+ (43596, 43597, 0),
243
+ (43643, 43645, 0),
244
+ (43696, 43696, 0),
245
+ (43698, 43700, 0),
246
+ (43703, 43704, 0),
247
+ (43710, 43711, 0),
248
+ (43713, 43713, 0),
249
+ (43755, 43759, 0),
250
+ (43765, 43766, 0),
251
+ (44003, 44010, 0),
252
+ (44012, 44013, 0),
253
+ (44032, 55203, 2),
254
+ (55216, 55295, 0),
255
+ (63744, 64255, 2),
256
+ (64286, 64286, 0),
257
+ (65024, 65039, 0),
258
+ (65040, 65049, 2),
259
+ (65056, 65071, 0),
260
+ (65072, 65106, 2),
261
+ (65108, 65126, 2),
262
+ (65128, 65131, 2),
263
+ (65279, 65279, 0),
264
+ (65281, 65376, 2),
265
+ (65440, 65440, 0),
266
+ (65504, 65510, 2),
267
+ (65520, 65531, 0),
268
+ (66045, 66045, 0),
269
+ (66272, 66272, 0),
270
+ (66422, 66426, 0),
271
+ (68097, 68099, 0),
272
+ (68101, 68102, 0),
273
+ (68108, 68111, 0),
274
+ (68152, 68154, 0),
275
+ (68159, 68159, 0),
276
+ (68325, 68326, 0),
277
+ (68900, 68903, 0),
278
+ (69446, 69456, 0),
279
+ (69632, 69634, 0),
280
+ (69688, 69702, 0),
281
+ (69759, 69762, 0),
282
+ (69808, 69818, 0),
283
+ (69888, 69890, 0),
284
+ (69927, 69940, 0),
285
+ (69957, 69958, 0),
286
+ (70003, 70003, 0),
287
+ (70016, 70018, 0),
288
+ (70067, 70080, 0),
289
+ (70089, 70092, 0),
290
+ (70188, 70199, 0),
291
+ (70206, 70206, 0),
292
+ (70367, 70378, 0),
293
+ (70400, 70403, 0),
294
+ (70459, 70460, 0),
295
+ (70462, 70468, 0),
296
+ (70471, 70472, 0),
297
+ (70475, 70477, 0),
298
+ (70487, 70487, 0),
299
+ (70498, 70499, 0),
300
+ (70502, 70508, 0),
301
+ (70512, 70516, 0),
302
+ (70709, 70726, 0),
303
+ (70750, 70750, 0),
304
+ (70832, 70851, 0),
305
+ (71087, 71093, 0),
306
+ (71096, 71104, 0),
307
+ (71132, 71133, 0),
308
+ (71216, 71232, 0),
309
+ (71339, 71351, 0),
310
+ (71453, 71467, 0),
311
+ (71724, 71738, 0),
312
+ (72145, 72151, 0),
313
+ (72154, 72160, 0),
314
+ (72164, 72164, 0),
315
+ (72193, 72202, 0),
316
+ (72243, 72249, 0),
317
+ (72251, 72254, 0),
318
+ (72263, 72263, 0),
319
+ (72273, 72283, 0),
320
+ (72330, 72345, 0),
321
+ (72751, 72758, 0),
322
+ (72760, 72767, 0),
323
+ (72850, 72871, 0),
324
+ (72873, 72886, 0),
325
+ (73009, 73014, 0),
326
+ (73018, 73018, 0),
327
+ (73020, 73021, 0),
328
+ (73023, 73029, 0),
329
+ (73031, 73031, 0),
330
+ (73098, 73102, 0),
331
+ (73104, 73105, 0),
332
+ (73107, 73111, 0),
333
+ (73459, 73462, 0),
334
+ (78896, 78904, 0),
335
+ (92912, 92916, 0),
336
+ (92976, 92982, 0),
337
+ (94031, 94031, 0),
338
+ (94033, 94087, 0),
339
+ (94095, 94098, 0),
340
+ (94176, 94179, 2),
341
+ (94208, 100343, 2),
342
+ (100352, 101106, 2),
343
+ (110592, 110878, 2),
344
+ (110928, 110930, 2),
345
+ (110948, 110951, 2),
346
+ (110960, 111355, 2),
347
+ (113821, 113822, 0),
348
+ (113824, 113827, 0),
349
+ (119141, 119145, 0),
350
+ (119149, 119170, 0),
351
+ (119173, 119179, 0),
352
+ (119210, 119213, 0),
353
+ (119362, 119364, 0),
354
+ (121344, 121398, 0),
355
+ (121403, 121452, 0),
356
+ (121461, 121461, 0),
357
+ (121476, 121476, 0),
358
+ (121499, 121503, 0),
359
+ (121505, 121519, 0),
360
+ (122880, 122886, 0),
361
+ (122888, 122904, 0),
362
+ (122907, 122913, 0),
363
+ (122915, 122916, 0),
364
+ (122918, 122922, 0),
365
+ (123184, 123190, 0),
366
+ (123628, 123631, 0),
367
+ (125136, 125142, 0),
368
+ (125252, 125258, 0),
369
+ (126980, 126980, 2),
370
+ (127183, 127183, 2),
371
+ (127374, 127374, 2),
372
+ (127377, 127386, 2),
373
+ (127488, 127490, 2),
374
+ (127504, 127547, 2),
375
+ (127552, 127560, 2),
376
+ (127568, 127569, 2),
377
+ (127584, 127589, 2),
378
+ (127744, 127776, 2),
379
+ (127789, 127797, 2),
380
+ (127799, 127868, 2),
381
+ (127870, 127891, 2),
382
+ (127904, 127946, 2),
383
+ (127951, 127955, 2),
384
+ (127968, 127984, 2),
385
+ (127988, 127988, 2),
386
+ (127992, 127994, 2),
387
+ (127995, 127999, 0),
388
+ (128000, 128062, 2),
389
+ (128064, 128064, 2),
390
+ (128066, 128252, 2),
391
+ (128255, 128317, 2),
392
+ (128331, 128334, 2),
393
+ (128336, 128359, 2),
394
+ (128378, 128378, 2),
395
+ (128405, 128406, 2),
396
+ (128420, 128420, 2),
397
+ (128507, 128591, 2),
398
+ (128640, 128709, 2),
399
+ (128716, 128716, 2),
400
+ (128720, 128722, 2),
401
+ (128725, 128725, 2),
402
+ (128747, 128748, 2),
403
+ (128756, 128762, 2),
404
+ (128992, 129003, 2),
405
+ (129293, 129393, 2),
406
+ (129395, 129398, 2),
407
+ (129402, 129442, 2),
408
+ (129445, 129450, 2),
409
+ (129454, 129482, 2),
410
+ (129485, 129535, 2),
411
+ (129648, 129651, 2),
412
+ (129656, 129658, 2),
413
+ (129664, 129666, 2),
414
+ (129680, 129685, 2),
415
+ (131072, 196605, 2),
416
+ (196608, 262141, 2),
417
+ (917504, 921599, 0),
418
+ ],
419
+ frozenset(
420
+ [
421
+ "#",
422
+ "*",
423
+ "0",
424
+ "1",
425
+ "2",
426
+ "3",
427
+ "4",
428
+ "5",
429
+ "6",
430
+ "7",
431
+ "8",
432
+ "9",
433
+ "©",
434
+ "®",
435
+ "‼",
436
+ "⁉",
437
+ "™",
438
+ "ℹ",
439
+ "↔",
440
+ "↕",
441
+ "↖",
442
+ "↗",
443
+ "↘",
444
+ "↙",
445
+ "↩",
446
+ "↪",
447
+ "⌨",
448
+ "⏏",
449
+ "⏭",
450
+ "⏮",
451
+ "⏯",
452
+ "⏱",
453
+ "⏲",
454
+ "⏸",
455
+ "⏹",
456
+ "⏺",
457
+ "Ⓜ",
458
+ "▪",
459
+ "▫",
460
+ "▶",
461
+ "◀",
462
+ "◻",
463
+ "◼",
464
+ "☀",
465
+ "☁",
466
+ "☂",
467
+ "☃",
468
+ "☄",
469
+ "☎",
470
+ "☑",
471
+ "☘",
472
+ "☝",
473
+ "☠",
474
+ "☢",
475
+ "☣",
476
+ "☦",
477
+ "☪",
478
+ "☮",
479
+ "☯",
480
+ "☸",
481
+ "☹",
482
+ "☺",
483
+ "♀",
484
+ "♂",
485
+ "♟",
486
+ "♠",
487
+ "♣",
488
+ "♥",
489
+ "♦",
490
+ "♨",
491
+ "♻",
492
+ "♾",
493
+ "⚒",
494
+ "⚔",
495
+ "⚕",
496
+ "⚖",
497
+ "⚗",
498
+ "⚙",
499
+ "⚛",
500
+ "⚜",
501
+ "⚠",
502
+ "⚧",
503
+ "⚰",
504
+ "⚱",
505
+ "⛈",
506
+ "⛏",
507
+ "⛑",
508
+ "⛓",
509
+ "⛩",
510
+ "⛰",
511
+ "⛱",
512
+ "⛴",
513
+ "⛷",
514
+ "⛸",
515
+ "⛹",
516
+ "✂",
517
+ "✈",
518
+ "✉",
519
+ "✌",
520
+ "✍",
521
+ "✏",
522
+ "✒",
523
+ "✔",
524
+ "✖",
525
+ "✝",
526
+ "✡",
527
+ "✳",
528
+ "✴",
529
+ "❄",
530
+ "❇",
531
+ "❣",
532
+ "❤",
533
+ "➡",
534
+ "⤴",
535
+ "⤵",
536
+ "⬅",
537
+ "⬆",
538
+ "⬇",
539
+ "🅰",
540
+ "🅱",
541
+ "🅾",
542
+ "🅿",
543
+ "🌡",
544
+ "🌤",
545
+ "🌥",
546
+ "🌦",
547
+ "🌧",
548
+ "🌨",
549
+ "🌩",
550
+ "🌪",
551
+ "🌫",
552
+ "🌬",
553
+ "🌶",
554
+ "🍽",
555
+ "🎖",
556
+ "🎗",
557
+ "🎙",
558
+ "🎚",
559
+ "🎛",
560
+ "🎞",
561
+ "🎟",
562
+ "🏋",
563
+ "🏌",
564
+ "🏍",
565
+ "🏎",
566
+ "🏔",
567
+ "🏕",
568
+ "🏖",
569
+ "🏗",
570
+ "🏘",
571
+ "🏙",
572
+ "🏚",
573
+ "🏛",
574
+ "🏜",
575
+ "🏝",
576
+ "🏞",
577
+ "🏟",
578
+ "🏳",
579
+ "🏵",
580
+ "🏷",
581
+ "🐿",
582
+ "👁",
583
+ "📽",
584
+ "🕉",
585
+ "🕊",
586
+ "🕯",
587
+ "🕰",
588
+ "🕳",
589
+ "🕴",
590
+ "🕵",
591
+ "🕶",
592
+ "🕷",
593
+ "🕸",
594
+ "🕹",
595
+ "🖇",
596
+ "🖊",
597
+ "🖋",
598
+ "🖌",
599
+ "🖍",
600
+ "🖐",
601
+ "🖥",
602
+ "🖨",
603
+ "🖱",
604
+ "🖲",
605
+ "🖼",
606
+ "🗂",
607
+ "🗃",
608
+ "🗄",
609
+ "🗑",
610
+ "🗒",
611
+ "🗓",
612
+ "🗜",
613
+ "🗝",
614
+ "🗞",
615
+ "🗡",
616
+ "🗣",
617
+ "🗨",
618
+ "🗯",
619
+ "🗳",
620
+ "🗺",
621
+ "🛋",
622
+ "🛍",
623
+ "🛎",
624
+ "🛏",
625
+ "🛠",
626
+ "🛡",
627
+ "🛢",
628
+ "🛣",
629
+ "🛤",
630
+ "🛥",
631
+ "🛩",
632
+ "🛰",
633
+ "🛳",
634
+ ]
635
+ ),
636
+ )
venv/lib/python3.11/site-packages/rich/_unicode_data/unicode13-0-0.py ADDED
@@ -0,0 +1,648 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Auto generated by tools/make_width_tables.py
2
+ # Data from wcwidth project (https://github.com/jquast/wcwidth)
3
+
4
+ from rich.cells import CellTable
5
+
6
+ cell_table = CellTable(
7
+ "13.0.0",
8
+ [
9
+ (0, 0, 0),
10
+ (768, 879, 0),
11
+ (1155, 1161, 0),
12
+ (1425, 1469, 0),
13
+ (1471, 1471, 0),
14
+ (1473, 1474, 0),
15
+ (1476, 1477, 0),
16
+ (1479, 1479, 0),
17
+ (1552, 1562, 0),
18
+ (1564, 1564, 0),
19
+ (1611, 1631, 0),
20
+ (1648, 1648, 0),
21
+ (1750, 1756, 0),
22
+ (1759, 1764, 0),
23
+ (1767, 1768, 0),
24
+ (1770, 1773, 0),
25
+ (1809, 1809, 0),
26
+ (1840, 1866, 0),
27
+ (1958, 1968, 0),
28
+ (2027, 2035, 0),
29
+ (2045, 2045, 0),
30
+ (2070, 2073, 0),
31
+ (2075, 2083, 0),
32
+ (2085, 2087, 0),
33
+ (2089, 2093, 0),
34
+ (2137, 2139, 0),
35
+ (2259, 2273, 0),
36
+ (2275, 2307, 0),
37
+ (2362, 2364, 0),
38
+ (2366, 2383, 0),
39
+ (2385, 2391, 0),
40
+ (2402, 2403, 0),
41
+ (2433, 2435, 0),
42
+ (2492, 2492, 0),
43
+ (2494, 2500, 0),
44
+ (2503, 2504, 0),
45
+ (2507, 2509, 0),
46
+ (2519, 2519, 0),
47
+ (2530, 2531, 0),
48
+ (2558, 2558, 0),
49
+ (2561, 2563, 0),
50
+ (2620, 2620, 0),
51
+ (2622, 2626, 0),
52
+ (2631, 2632, 0),
53
+ (2635, 2637, 0),
54
+ (2641, 2641, 0),
55
+ (2672, 2673, 0),
56
+ (2677, 2677, 0),
57
+ (2689, 2691, 0),
58
+ (2748, 2748, 0),
59
+ (2750, 2757, 0),
60
+ (2759, 2761, 0),
61
+ (2763, 2765, 0),
62
+ (2786, 2787, 0),
63
+ (2810, 2815, 0),
64
+ (2817, 2819, 0),
65
+ (2876, 2876, 0),
66
+ (2878, 2884, 0),
67
+ (2887, 2888, 0),
68
+ (2891, 2893, 0),
69
+ (2901, 2903, 0),
70
+ (2914, 2915, 0),
71
+ (2946, 2946, 0),
72
+ (3006, 3010, 0),
73
+ (3014, 3016, 0),
74
+ (3018, 3021, 0),
75
+ (3031, 3031, 0),
76
+ (3072, 3076, 0),
77
+ (3134, 3140, 0),
78
+ (3142, 3144, 0),
79
+ (3146, 3149, 0),
80
+ (3157, 3158, 0),
81
+ (3170, 3171, 0),
82
+ (3201, 3203, 0),
83
+ (3260, 3260, 0),
84
+ (3262, 3268, 0),
85
+ (3270, 3272, 0),
86
+ (3274, 3277, 0),
87
+ (3285, 3286, 0),
88
+ (3298, 3299, 0),
89
+ (3328, 3331, 0),
90
+ (3387, 3388, 0),
91
+ (3390, 3396, 0),
92
+ (3398, 3400, 0),
93
+ (3402, 3405, 0),
94
+ (3415, 3415, 0),
95
+ (3426, 3427, 0),
96
+ (3457, 3459, 0),
97
+ (3530, 3530, 0),
98
+ (3535, 3540, 0),
99
+ (3542, 3542, 0),
100
+ (3544, 3551, 0),
101
+ (3570, 3571, 0),
102
+ (3633, 3633, 0),
103
+ (3636, 3642, 0),
104
+ (3655, 3662, 0),
105
+ (3761, 3761, 0),
106
+ (3764, 3772, 0),
107
+ (3784, 3789, 0),
108
+ (3864, 3865, 0),
109
+ (3893, 3893, 0),
110
+ (3895, 3895, 0),
111
+ (3897, 3897, 0),
112
+ (3902, 3903, 0),
113
+ (3953, 3972, 0),
114
+ (3974, 3975, 0),
115
+ (3981, 3991, 0),
116
+ (3993, 4028, 0),
117
+ (4038, 4038, 0),
118
+ (4139, 4158, 0),
119
+ (4182, 4185, 0),
120
+ (4190, 4192, 0),
121
+ (4194, 4196, 0),
122
+ (4199, 4205, 0),
123
+ (4209, 4212, 0),
124
+ (4226, 4237, 0),
125
+ (4239, 4239, 0),
126
+ (4250, 4253, 0),
127
+ (4352, 4447, 2),
128
+ (4448, 4607, 0),
129
+ (4957, 4959, 0),
130
+ (5906, 5908, 0),
131
+ (5938, 5940, 0),
132
+ (5970, 5971, 0),
133
+ (6002, 6003, 0),
134
+ (6068, 6099, 0),
135
+ (6109, 6109, 0),
136
+ (6155, 6158, 0),
137
+ (6277, 6278, 0),
138
+ (6313, 6313, 0),
139
+ (6432, 6443, 0),
140
+ (6448, 6459, 0),
141
+ (6679, 6683, 0),
142
+ (6741, 6750, 0),
143
+ (6752, 6780, 0),
144
+ (6783, 6783, 0),
145
+ (6832, 6848, 0),
146
+ (6912, 6916, 0),
147
+ (6964, 6980, 0),
148
+ (7019, 7027, 0),
149
+ (7040, 7042, 0),
150
+ (7073, 7085, 0),
151
+ (7142, 7155, 0),
152
+ (7204, 7223, 0),
153
+ (7376, 7378, 0),
154
+ (7380, 7400, 0),
155
+ (7405, 7405, 0),
156
+ (7412, 7412, 0),
157
+ (7415, 7417, 0),
158
+ (7616, 7673, 0),
159
+ (7675, 7679, 0),
160
+ (8203, 8207, 0),
161
+ (8232, 8238, 0),
162
+ (8288, 8303, 0),
163
+ (8400, 8432, 0),
164
+ (8986, 8987, 2),
165
+ (9001, 9002, 2),
166
+ (9193, 9196, 2),
167
+ (9200, 9200, 2),
168
+ (9203, 9203, 2),
169
+ (9725, 9726, 2),
170
+ (9748, 9749, 2),
171
+ (9800, 9811, 2),
172
+ (9855, 9855, 2),
173
+ (9875, 9875, 2),
174
+ (9889, 9889, 2),
175
+ (9898, 9899, 2),
176
+ (9917, 9918, 2),
177
+ (9924, 9925, 2),
178
+ (9934, 9934, 2),
179
+ (9940, 9940, 2),
180
+ (9962, 9962, 2),
181
+ (9970, 9971, 2),
182
+ (9973, 9973, 2),
183
+ (9978, 9978, 2),
184
+ (9981, 9981, 2),
185
+ (9989, 9989, 2),
186
+ (9994, 9995, 2),
187
+ (10024, 10024, 2),
188
+ (10060, 10060, 2),
189
+ (10062, 10062, 2),
190
+ (10067, 10069, 2),
191
+ (10071, 10071, 2),
192
+ (10133, 10135, 2),
193
+ (10160, 10160, 2),
194
+ (10175, 10175, 2),
195
+ (11035, 11036, 2),
196
+ (11088, 11088, 2),
197
+ (11093, 11093, 2),
198
+ (11503, 11505, 0),
199
+ (11647, 11647, 0),
200
+ (11744, 11775, 0),
201
+ (11904, 11929, 2),
202
+ (11931, 12019, 2),
203
+ (12032, 12245, 2),
204
+ (12272, 12283, 2),
205
+ (12288, 12329, 2),
206
+ (12330, 12335, 0),
207
+ (12336, 12350, 2),
208
+ (12353, 12438, 2),
209
+ (12441, 12442, 0),
210
+ (12443, 12543, 2),
211
+ (12549, 12591, 2),
212
+ (12593, 12643, 2),
213
+ (12644, 12644, 0),
214
+ (12645, 12686, 2),
215
+ (12688, 12771, 2),
216
+ (12784, 12830, 2),
217
+ (12832, 12871, 2),
218
+ (12880, 19903, 2),
219
+ (19968, 42124, 2),
220
+ (42128, 42182, 2),
221
+ (42607, 42610, 0),
222
+ (42612, 42621, 0),
223
+ (42654, 42655, 0),
224
+ (42736, 42737, 0),
225
+ (43010, 43010, 0),
226
+ (43014, 43014, 0),
227
+ (43019, 43019, 0),
228
+ (43043, 43047, 0),
229
+ (43052, 43052, 0),
230
+ (43136, 43137, 0),
231
+ (43188, 43205, 0),
232
+ (43232, 43249, 0),
233
+ (43263, 43263, 0),
234
+ (43302, 43309, 0),
235
+ (43335, 43347, 0),
236
+ (43360, 43388, 2),
237
+ (43392, 43395, 0),
238
+ (43443, 43456, 0),
239
+ (43493, 43493, 0),
240
+ (43561, 43574, 0),
241
+ (43587, 43587, 0),
242
+ (43596, 43597, 0),
243
+ (43643, 43645, 0),
244
+ (43696, 43696, 0),
245
+ (43698, 43700, 0),
246
+ (43703, 43704, 0),
247
+ (43710, 43711, 0),
248
+ (43713, 43713, 0),
249
+ (43755, 43759, 0),
250
+ (43765, 43766, 0),
251
+ (44003, 44010, 0),
252
+ (44012, 44013, 0),
253
+ (44032, 55203, 2),
254
+ (55216, 55295, 0),
255
+ (63744, 64255, 2),
256
+ (64286, 64286, 0),
257
+ (65024, 65039, 0),
258
+ (65040, 65049, 2),
259
+ (65056, 65071, 0),
260
+ (65072, 65106, 2),
261
+ (65108, 65126, 2),
262
+ (65128, 65131, 2),
263
+ (65279, 65279, 0),
264
+ (65281, 65376, 2),
265
+ (65440, 65440, 0),
266
+ (65504, 65510, 2),
267
+ (65520, 65531, 0),
268
+ (66045, 66045, 0),
269
+ (66272, 66272, 0),
270
+ (66422, 66426, 0),
271
+ (68097, 68099, 0),
272
+ (68101, 68102, 0),
273
+ (68108, 68111, 0),
274
+ (68152, 68154, 0),
275
+ (68159, 68159, 0),
276
+ (68325, 68326, 0),
277
+ (68900, 68903, 0),
278
+ (69291, 69292, 0),
279
+ (69446, 69456, 0),
280
+ (69632, 69634, 0),
281
+ (69688, 69702, 0),
282
+ (69759, 69762, 0),
283
+ (69808, 69818, 0),
284
+ (69888, 69890, 0),
285
+ (69927, 69940, 0),
286
+ (69957, 69958, 0),
287
+ (70003, 70003, 0),
288
+ (70016, 70018, 0),
289
+ (70067, 70080, 0),
290
+ (70089, 70092, 0),
291
+ (70094, 70095, 0),
292
+ (70188, 70199, 0),
293
+ (70206, 70206, 0),
294
+ (70367, 70378, 0),
295
+ (70400, 70403, 0),
296
+ (70459, 70460, 0),
297
+ (70462, 70468, 0),
298
+ (70471, 70472, 0),
299
+ (70475, 70477, 0),
300
+ (70487, 70487, 0),
301
+ (70498, 70499, 0),
302
+ (70502, 70508, 0),
303
+ (70512, 70516, 0),
304
+ (70709, 70726, 0),
305
+ (70750, 70750, 0),
306
+ (70832, 70851, 0),
307
+ (71087, 71093, 0),
308
+ (71096, 71104, 0),
309
+ (71132, 71133, 0),
310
+ (71216, 71232, 0),
311
+ (71339, 71351, 0),
312
+ (71453, 71467, 0),
313
+ (71724, 71738, 0),
314
+ (71984, 71989, 0),
315
+ (71991, 71992, 0),
316
+ (71995, 71998, 0),
317
+ (72000, 72000, 0),
318
+ (72002, 72003, 0),
319
+ (72145, 72151, 0),
320
+ (72154, 72160, 0),
321
+ (72164, 72164, 0),
322
+ (72193, 72202, 0),
323
+ (72243, 72249, 0),
324
+ (72251, 72254, 0),
325
+ (72263, 72263, 0),
326
+ (72273, 72283, 0),
327
+ (72330, 72345, 0),
328
+ (72751, 72758, 0),
329
+ (72760, 72767, 0),
330
+ (72850, 72871, 0),
331
+ (72873, 72886, 0),
332
+ (73009, 73014, 0),
333
+ (73018, 73018, 0),
334
+ (73020, 73021, 0),
335
+ (73023, 73029, 0),
336
+ (73031, 73031, 0),
337
+ (73098, 73102, 0),
338
+ (73104, 73105, 0),
339
+ (73107, 73111, 0),
340
+ (73459, 73462, 0),
341
+ (78896, 78904, 0),
342
+ (92912, 92916, 0),
343
+ (92976, 92982, 0),
344
+ (94031, 94031, 0),
345
+ (94033, 94087, 0),
346
+ (94095, 94098, 0),
347
+ (94176, 94179, 2),
348
+ (94180, 94180, 0),
349
+ (94192, 94193, 0),
350
+ (94208, 100343, 2),
351
+ (100352, 101589, 2),
352
+ (101632, 101640, 2),
353
+ (110592, 110878, 2),
354
+ (110928, 110930, 2),
355
+ (110948, 110951, 2),
356
+ (110960, 111355, 2),
357
+ (113821, 113822, 0),
358
+ (113824, 113827, 0),
359
+ (119141, 119145, 0),
360
+ (119149, 119170, 0),
361
+ (119173, 119179, 0),
362
+ (119210, 119213, 0),
363
+ (119362, 119364, 0),
364
+ (121344, 121398, 0),
365
+ (121403, 121452, 0),
366
+ (121461, 121461, 0),
367
+ (121476, 121476, 0),
368
+ (121499, 121503, 0),
369
+ (121505, 121519, 0),
370
+ (122880, 122886, 0),
371
+ (122888, 122904, 0),
372
+ (122907, 122913, 0),
373
+ (122915, 122916, 0),
374
+ (122918, 122922, 0),
375
+ (123184, 123190, 0),
376
+ (123628, 123631, 0),
377
+ (125136, 125142, 0),
378
+ (125252, 125258, 0),
379
+ (126980, 126980, 2),
380
+ (127183, 127183, 2),
381
+ (127374, 127374, 2),
382
+ (127377, 127386, 2),
383
+ (127488, 127490, 2),
384
+ (127504, 127547, 2),
385
+ (127552, 127560, 2),
386
+ (127568, 127569, 2),
387
+ (127584, 127589, 2),
388
+ (127744, 127776, 2),
389
+ (127789, 127797, 2),
390
+ (127799, 127868, 2),
391
+ (127870, 127891, 2),
392
+ (127904, 127946, 2),
393
+ (127951, 127955, 2),
394
+ (127968, 127984, 2),
395
+ (127988, 127988, 2),
396
+ (127992, 127994, 2),
397
+ (127995, 127999, 0),
398
+ (128000, 128062, 2),
399
+ (128064, 128064, 2),
400
+ (128066, 128252, 2),
401
+ (128255, 128317, 2),
402
+ (128331, 128334, 2),
403
+ (128336, 128359, 2),
404
+ (128378, 128378, 2),
405
+ (128405, 128406, 2),
406
+ (128420, 128420, 2),
407
+ (128507, 128591, 2),
408
+ (128640, 128709, 2),
409
+ (128716, 128716, 2),
410
+ (128720, 128722, 2),
411
+ (128725, 128727, 2),
412
+ (128747, 128748, 2),
413
+ (128756, 128764, 2),
414
+ (128992, 129003, 2),
415
+ (129292, 129338, 2),
416
+ (129340, 129349, 2),
417
+ (129351, 129400, 2),
418
+ (129402, 129483, 2),
419
+ (129485, 129535, 2),
420
+ (129648, 129652, 2),
421
+ (129656, 129658, 2),
422
+ (129664, 129670, 2),
423
+ (129680, 129704, 2),
424
+ (129712, 129718, 2),
425
+ (129728, 129730, 2),
426
+ (129744, 129750, 2),
427
+ (131072, 196605, 2),
428
+ (196608, 262141, 2),
429
+ (917504, 921599, 0),
430
+ ],
431
+ frozenset(
432
+ [
433
+ "#",
434
+ "*",
435
+ "0",
436
+ "1",
437
+ "2",
438
+ "3",
439
+ "4",
440
+ "5",
441
+ "6",
442
+ "7",
443
+ "8",
444
+ "9",
445
+ "©",
446
+ "®",
447
+ "‼",
448
+ "⁉",
449
+ "™",
450
+ "ℹ",
451
+ "↔",
452
+ "↕",
453
+ "↖",
454
+ "↗",
455
+ "↘",
456
+ "↙",
457
+ "↩",
458
+ "↪",
459
+ "⌨",
460
+ "⏏",
461
+ "⏭",
462
+ "⏮",
463
+ "⏯",
464
+ "⏱",
465
+ "⏲",
466
+ "⏸",
467
+ "⏹",
468
+ "⏺",
469
+ "Ⓜ",
470
+ "▪",
471
+ "▫",
472
+ "▶",
473
+ "◀",
474
+ "◻",
475
+ "◼",
476
+ "☀",
477
+ "☁",
478
+ "☂",
479
+ "☃",
480
+ "☄",
481
+ "☎",
482
+ "☑",
483
+ "☘",
484
+ "☝",
485
+ "☠",
486
+ "☢",
487
+ "☣",
488
+ "☦",
489
+ "☪",
490
+ "☮",
491
+ "☯",
492
+ "☸",
493
+ "☹",
494
+ "☺",
495
+ "♀",
496
+ "♂",
497
+ "♟",
498
+ "♠",
499
+ "♣",
500
+ "♥",
501
+ "♦",
502
+ "♨",
503
+ "♻",
504
+ "♾",
505
+ "⚒",
506
+ "⚔",
507
+ "⚕",
508
+ "⚖",
509
+ "⚗",
510
+ "⚙",
511
+ "⚛",
512
+ "⚜",
513
+ "⚠",
514
+ "⚧",
515
+ "⚰",
516
+ "⚱",
517
+ "⛈",
518
+ "⛏",
519
+ "⛑",
520
+ "⛓",
521
+ "⛩",
522
+ "⛰",
523
+ "⛱",
524
+ "⛴",
525
+ "⛷",
526
+ "⛸",
527
+ "⛹",
528
+ "✂",
529
+ "✈",
530
+ "✉",
531
+ "✌",
532
+ "✍",
533
+ "✏",
534
+ "✒",
535
+ "✔",
536
+ "✖",
537
+ "✝",
538
+ "✡",
539
+ "✳",
540
+ "✴",
541
+ "❄",
542
+ "❇",
543
+ "❣",
544
+ "❤",
545
+ "➡",
546
+ "⤴",
547
+ "⤵",
548
+ "⬅",
549
+ "⬆",
550
+ "⬇",
551
+ "🅰",
552
+ "🅱",
553
+ "🅾",
554
+ "🅿",
555
+ "🌡",
556
+ "🌤",
557
+ "🌥",
558
+ "🌦",
559
+ "🌧",
560
+ "🌨",
561
+ "🌩",
562
+ "🌪",
563
+ "🌫",
564
+ "🌬",
565
+ "🌶",
566
+ "🍽",
567
+ "🎖",
568
+ "🎗",
569
+ "🎙",
570
+ "🎚",
571
+ "🎛",
572
+ "🎞",
573
+ "🎟",
574
+ "🏋",
575
+ "🏌",
576
+ "🏍",
577
+ "🏎",
578
+ "🏔",
579
+ "🏕",
580
+ "🏖",
581
+ "🏗",
582
+ "🏘",
583
+ "🏙",
584
+ "🏚",
585
+ "🏛",
586
+ "🏜",
587
+ "🏝",
588
+ "🏞",
589
+ "🏟",
590
+ "🏳",
591
+ "🏵",
592
+ "🏷",
593
+ "🐿",
594
+ "👁",
595
+ "📽",
596
+ "🕉",
597
+ "🕊",
598
+ "🕯",
599
+ "🕰",
600
+ "🕳",
601
+ "🕴",
602
+ "🕵",
603
+ "🕶",
604
+ "🕷",
605
+ "🕸",
606
+ "🕹",
607
+ "���",
608
+ "🖊",
609
+ "🖋",
610
+ "🖌",
611
+ "🖍",
612
+ "🖐",
613
+ "🖥",
614
+ "🖨",
615
+ "🖱",
616
+ "🖲",
617
+ "🖼",
618
+ "🗂",
619
+ "🗃",
620
+ "🗄",
621
+ "🗑",
622
+ "🗒",
623
+ "🗓",
624
+ "🗜",
625
+ "🗝",
626
+ "🗞",
627
+ "🗡",
628
+ "🗣",
629
+ "🗨",
630
+ "🗯",
631
+ "🗳",
632
+ "🗺",
633
+ "🛋",
634
+ "🛍",
635
+ "🛎",
636
+ "🛏",
637
+ "🛠",
638
+ "🛡",
639
+ "🛢",
640
+ "🛣",
641
+ "🛤",
642
+ "🛥",
643
+ "🛩",
644
+ "🛰",
645
+ "🛳",
646
+ ]
647
+ ),
648
+ )
venv/lib/python3.11/site-packages/rich/_unicode_data/unicode14-0-0.py ADDED
@@ -0,0 +1,661 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Auto generated by tools/make_width_tables.py
2
+ # Data from wcwidth project (https://github.com/jquast/wcwidth)
3
+
4
+ from rich.cells import CellTable
5
+
6
+ cell_table = CellTable(
7
+ "14.0.0",
8
+ [
9
+ (0, 0, 0),
10
+ (768, 879, 0),
11
+ (1155, 1161, 0),
12
+ (1425, 1469, 0),
13
+ (1471, 1471, 0),
14
+ (1473, 1474, 0),
15
+ (1476, 1477, 0),
16
+ (1479, 1479, 0),
17
+ (1552, 1562, 0),
18
+ (1564, 1564, 0),
19
+ (1611, 1631, 0),
20
+ (1648, 1648, 0),
21
+ (1750, 1756, 0),
22
+ (1759, 1764, 0),
23
+ (1767, 1768, 0),
24
+ (1770, 1773, 0),
25
+ (1809, 1809, 0),
26
+ (1840, 1866, 0),
27
+ (1958, 1968, 0),
28
+ (2027, 2035, 0),
29
+ (2045, 2045, 0),
30
+ (2070, 2073, 0),
31
+ (2075, 2083, 0),
32
+ (2085, 2087, 0),
33
+ (2089, 2093, 0),
34
+ (2137, 2139, 0),
35
+ (2200, 2207, 0),
36
+ (2250, 2273, 0),
37
+ (2275, 2307, 0),
38
+ (2362, 2364, 0),
39
+ (2366, 2383, 0),
40
+ (2385, 2391, 0),
41
+ (2402, 2403, 0),
42
+ (2433, 2435, 0),
43
+ (2492, 2492, 0),
44
+ (2494, 2500, 0),
45
+ (2503, 2504, 0),
46
+ (2507, 2509, 0),
47
+ (2519, 2519, 0),
48
+ (2530, 2531, 0),
49
+ (2558, 2558, 0),
50
+ (2561, 2563, 0),
51
+ (2620, 2620, 0),
52
+ (2622, 2626, 0),
53
+ (2631, 2632, 0),
54
+ (2635, 2637, 0),
55
+ (2641, 2641, 0),
56
+ (2672, 2673, 0),
57
+ (2677, 2677, 0),
58
+ (2689, 2691, 0),
59
+ (2748, 2748, 0),
60
+ (2750, 2757, 0),
61
+ (2759, 2761, 0),
62
+ (2763, 2765, 0),
63
+ (2786, 2787, 0),
64
+ (2810, 2815, 0),
65
+ (2817, 2819, 0),
66
+ (2876, 2876, 0),
67
+ (2878, 2884, 0),
68
+ (2887, 2888, 0),
69
+ (2891, 2893, 0),
70
+ (2901, 2903, 0),
71
+ (2914, 2915, 0),
72
+ (2946, 2946, 0),
73
+ (3006, 3010, 0),
74
+ (3014, 3016, 0),
75
+ (3018, 3021, 0),
76
+ (3031, 3031, 0),
77
+ (3072, 3076, 0),
78
+ (3132, 3132, 0),
79
+ (3134, 3140, 0),
80
+ (3142, 3144, 0),
81
+ (3146, 3149, 0),
82
+ (3157, 3158, 0),
83
+ (3170, 3171, 0),
84
+ (3201, 3203, 0),
85
+ (3260, 3260, 0),
86
+ (3262, 3268, 0),
87
+ (3270, 3272, 0),
88
+ (3274, 3277, 0),
89
+ (3285, 3286, 0),
90
+ (3298, 3299, 0),
91
+ (3328, 3331, 0),
92
+ (3387, 3388, 0),
93
+ (3390, 3396, 0),
94
+ (3398, 3400, 0),
95
+ (3402, 3405, 0),
96
+ (3415, 3415, 0),
97
+ (3426, 3427, 0),
98
+ (3457, 3459, 0),
99
+ (3530, 3530, 0),
100
+ (3535, 3540, 0),
101
+ (3542, 3542, 0),
102
+ (3544, 3551, 0),
103
+ (3570, 3571, 0),
104
+ (3633, 3633, 0),
105
+ (3636, 3642, 0),
106
+ (3655, 3662, 0),
107
+ (3761, 3761, 0),
108
+ (3764, 3772, 0),
109
+ (3784, 3789, 0),
110
+ (3864, 3865, 0),
111
+ (3893, 3893, 0),
112
+ (3895, 3895, 0),
113
+ (3897, 3897, 0),
114
+ (3902, 3903, 0),
115
+ (3953, 3972, 0),
116
+ (3974, 3975, 0),
117
+ (3981, 3991, 0),
118
+ (3993, 4028, 0),
119
+ (4038, 4038, 0),
120
+ (4139, 4158, 0),
121
+ (4182, 4185, 0),
122
+ (4190, 4192, 0),
123
+ (4194, 4196, 0),
124
+ (4199, 4205, 0),
125
+ (4209, 4212, 0),
126
+ (4226, 4237, 0),
127
+ (4239, 4239, 0),
128
+ (4250, 4253, 0),
129
+ (4352, 4447, 2),
130
+ (4448, 4607, 0),
131
+ (4957, 4959, 0),
132
+ (5906, 5909, 0),
133
+ (5938, 5940, 0),
134
+ (5970, 5971, 0),
135
+ (6002, 6003, 0),
136
+ (6068, 6099, 0),
137
+ (6109, 6109, 0),
138
+ (6155, 6159, 0),
139
+ (6277, 6278, 0),
140
+ (6313, 6313, 0),
141
+ (6432, 6443, 0),
142
+ (6448, 6459, 0),
143
+ (6679, 6683, 0),
144
+ (6741, 6750, 0),
145
+ (6752, 6780, 0),
146
+ (6783, 6783, 0),
147
+ (6832, 6862, 0),
148
+ (6912, 6916, 0),
149
+ (6964, 6980, 0),
150
+ (7019, 7027, 0),
151
+ (7040, 7042, 0),
152
+ (7073, 7085, 0),
153
+ (7142, 7155, 0),
154
+ (7204, 7223, 0),
155
+ (7376, 7378, 0),
156
+ (7380, 7400, 0),
157
+ (7405, 7405, 0),
158
+ (7412, 7412, 0),
159
+ (7415, 7417, 0),
160
+ (7616, 7679, 0),
161
+ (8203, 8207, 0),
162
+ (8232, 8238, 0),
163
+ (8288, 8303, 0),
164
+ (8400, 8432, 0),
165
+ (8986, 8987, 2),
166
+ (9001, 9002, 2),
167
+ (9193, 9196, 2),
168
+ (9200, 9200, 2),
169
+ (9203, 9203, 2),
170
+ (9725, 9726, 2),
171
+ (9748, 9749, 2),
172
+ (9800, 9811, 2),
173
+ (9855, 9855, 2),
174
+ (9875, 9875, 2),
175
+ (9889, 9889, 2),
176
+ (9898, 9899, 2),
177
+ (9917, 9918, 2),
178
+ (9924, 9925, 2),
179
+ (9934, 9934, 2),
180
+ (9940, 9940, 2),
181
+ (9962, 9962, 2),
182
+ (9970, 9971, 2),
183
+ (9973, 9973, 2),
184
+ (9978, 9978, 2),
185
+ (9981, 9981, 2),
186
+ (9989, 9989, 2),
187
+ (9994, 9995, 2),
188
+ (10024, 10024, 2),
189
+ (10060, 10060, 2),
190
+ (10062, 10062, 2),
191
+ (10067, 10069, 2),
192
+ (10071, 10071, 2),
193
+ (10133, 10135, 2),
194
+ (10160, 10160, 2),
195
+ (10175, 10175, 2),
196
+ (11035, 11036, 2),
197
+ (11088, 11088, 2),
198
+ (11093, 11093, 2),
199
+ (11503, 11505, 0),
200
+ (11647, 11647, 0),
201
+ (11744, 11775, 0),
202
+ (11904, 11929, 2),
203
+ (11931, 12019, 2),
204
+ (12032, 12245, 2),
205
+ (12272, 12283, 2),
206
+ (12288, 12329, 2),
207
+ (12330, 12335, 0),
208
+ (12336, 12350, 2),
209
+ (12353, 12438, 2),
210
+ (12441, 12442, 0),
211
+ (12443, 12543, 2),
212
+ (12549, 12591, 2),
213
+ (12593, 12643, 2),
214
+ (12644, 12644, 0),
215
+ (12645, 12686, 2),
216
+ (12688, 12771, 2),
217
+ (12784, 12830, 2),
218
+ (12832, 12871, 2),
219
+ (12880, 19903, 2),
220
+ (19968, 42124, 2),
221
+ (42128, 42182, 2),
222
+ (42607, 42610, 0),
223
+ (42612, 42621, 0),
224
+ (42654, 42655, 0),
225
+ (42736, 42737, 0),
226
+ (43010, 43010, 0),
227
+ (43014, 43014, 0),
228
+ (43019, 43019, 0),
229
+ (43043, 43047, 0),
230
+ (43052, 43052, 0),
231
+ (43136, 43137, 0),
232
+ (43188, 43205, 0),
233
+ (43232, 43249, 0),
234
+ (43263, 43263, 0),
235
+ (43302, 43309, 0),
236
+ (43335, 43347, 0),
237
+ (43360, 43388, 2),
238
+ (43392, 43395, 0),
239
+ (43443, 43456, 0),
240
+ (43493, 43493, 0),
241
+ (43561, 43574, 0),
242
+ (43587, 43587, 0),
243
+ (43596, 43597, 0),
244
+ (43643, 43645, 0),
245
+ (43696, 43696, 0),
246
+ (43698, 43700, 0),
247
+ (43703, 43704, 0),
248
+ (43710, 43711, 0),
249
+ (43713, 43713, 0),
250
+ (43755, 43759, 0),
251
+ (43765, 43766, 0),
252
+ (44003, 44010, 0),
253
+ (44012, 44013, 0),
254
+ (44032, 55203, 2),
255
+ (55216, 55295, 0),
256
+ (63744, 64255, 2),
257
+ (64286, 64286, 0),
258
+ (65024, 65039, 0),
259
+ (65040, 65049, 2),
260
+ (65056, 65071, 0),
261
+ (65072, 65106, 2),
262
+ (65108, 65126, 2),
263
+ (65128, 65131, 2),
264
+ (65279, 65279, 0),
265
+ (65281, 65376, 2),
266
+ (65440, 65440, 0),
267
+ (65504, 65510, 2),
268
+ (65520, 65531, 0),
269
+ (66045, 66045, 0),
270
+ (66272, 66272, 0),
271
+ (66422, 66426, 0),
272
+ (68097, 68099, 0),
273
+ (68101, 68102, 0),
274
+ (68108, 68111, 0),
275
+ (68152, 68154, 0),
276
+ (68159, 68159, 0),
277
+ (68325, 68326, 0),
278
+ (68900, 68903, 0),
279
+ (69291, 69292, 0),
280
+ (69446, 69456, 0),
281
+ (69506, 69509, 0),
282
+ (69632, 69634, 0),
283
+ (69688, 69702, 0),
284
+ (69744, 69744, 0),
285
+ (69747, 69748, 0),
286
+ (69759, 69762, 0),
287
+ (69808, 69818, 0),
288
+ (69826, 69826, 0),
289
+ (69888, 69890, 0),
290
+ (69927, 69940, 0),
291
+ (69957, 69958, 0),
292
+ (70003, 70003, 0),
293
+ (70016, 70018, 0),
294
+ (70067, 70080, 0),
295
+ (70089, 70092, 0),
296
+ (70094, 70095, 0),
297
+ (70188, 70199, 0),
298
+ (70206, 70206, 0),
299
+ (70367, 70378, 0),
300
+ (70400, 70403, 0),
301
+ (70459, 70460, 0),
302
+ (70462, 70468, 0),
303
+ (70471, 70472, 0),
304
+ (70475, 70477, 0),
305
+ (70487, 70487, 0),
306
+ (70498, 70499, 0),
307
+ (70502, 70508, 0),
308
+ (70512, 70516, 0),
309
+ (70709, 70726, 0),
310
+ (70750, 70750, 0),
311
+ (70832, 70851, 0),
312
+ (71087, 71093, 0),
313
+ (71096, 71104, 0),
314
+ (71132, 71133, 0),
315
+ (71216, 71232, 0),
316
+ (71339, 71351, 0),
317
+ (71453, 71467, 0),
318
+ (71724, 71738, 0),
319
+ (71984, 71989, 0),
320
+ (71991, 71992, 0),
321
+ (71995, 71998, 0),
322
+ (72000, 72000, 0),
323
+ (72002, 72003, 0),
324
+ (72145, 72151, 0),
325
+ (72154, 72160, 0),
326
+ (72164, 72164, 0),
327
+ (72193, 72202, 0),
328
+ (72243, 72249, 0),
329
+ (72251, 72254, 0),
330
+ (72263, 72263, 0),
331
+ (72273, 72283, 0),
332
+ (72330, 72345, 0),
333
+ (72751, 72758, 0),
334
+ (72760, 72767, 0),
335
+ (72850, 72871, 0),
336
+ (72873, 72886, 0),
337
+ (73009, 73014, 0),
338
+ (73018, 73018, 0),
339
+ (73020, 73021, 0),
340
+ (73023, 73029, 0),
341
+ (73031, 73031, 0),
342
+ (73098, 73102, 0),
343
+ (73104, 73105, 0),
344
+ (73107, 73111, 0),
345
+ (73459, 73462, 0),
346
+ (78896, 78904, 0),
347
+ (92912, 92916, 0),
348
+ (92976, 92982, 0),
349
+ (94031, 94031, 0),
350
+ (94033, 94087, 0),
351
+ (94095, 94098, 0),
352
+ (94176, 94179, 2),
353
+ (94180, 94180, 0),
354
+ (94192, 94193, 0),
355
+ (94208, 100343, 2),
356
+ (100352, 101589, 2),
357
+ (101632, 101640, 2),
358
+ (110576, 110579, 2),
359
+ (110581, 110587, 2),
360
+ (110589, 110590, 2),
361
+ (110592, 110882, 2),
362
+ (110928, 110930, 2),
363
+ (110948, 110951, 2),
364
+ (110960, 111355, 2),
365
+ (113821, 113822, 0),
366
+ (113824, 113827, 0),
367
+ (118528, 118573, 0),
368
+ (118576, 118598, 0),
369
+ (119141, 119145, 0),
370
+ (119149, 119170, 0),
371
+ (119173, 119179, 0),
372
+ (119210, 119213, 0),
373
+ (119362, 119364, 0),
374
+ (121344, 121398, 0),
375
+ (121403, 121452, 0),
376
+ (121461, 121461, 0),
377
+ (121476, 121476, 0),
378
+ (121499, 121503, 0),
379
+ (121505, 121519, 0),
380
+ (122880, 122886, 0),
381
+ (122888, 122904, 0),
382
+ (122907, 122913, 0),
383
+ (122915, 122916, 0),
384
+ (122918, 122922, 0),
385
+ (123184, 123190, 0),
386
+ (123566, 123566, 0),
387
+ (123628, 123631, 0),
388
+ (125136, 125142, 0),
389
+ (125252, 125258, 0),
390
+ (126980, 126980, 2),
391
+ (127183, 127183, 2),
392
+ (127374, 127374, 2),
393
+ (127377, 127386, 2),
394
+ (127488, 127490, 2),
395
+ (127504, 127547, 2),
396
+ (127552, 127560, 2),
397
+ (127568, 127569, 2),
398
+ (127584, 127589, 2),
399
+ (127744, 127776, 2),
400
+ (127789, 127797, 2),
401
+ (127799, 127868, 2),
402
+ (127870, 127891, 2),
403
+ (127904, 127946, 2),
404
+ (127951, 127955, 2),
405
+ (127968, 127984, 2),
406
+ (127988, 127988, 2),
407
+ (127992, 127994, 2),
408
+ (127995, 127999, 0),
409
+ (128000, 128062, 2),
410
+ (128064, 128064, 2),
411
+ (128066, 128252, 2),
412
+ (128255, 128317, 2),
413
+ (128331, 128334, 2),
414
+ (128336, 128359, 2),
415
+ (128378, 128378, 2),
416
+ (128405, 128406, 2),
417
+ (128420, 128420, 2),
418
+ (128507, 128591, 2),
419
+ (128640, 128709, 2),
420
+ (128716, 128716, 2),
421
+ (128720, 128722, 2),
422
+ (128725, 128727, 2),
423
+ (128733, 128735, 2),
424
+ (128747, 128748, 2),
425
+ (128756, 128764, 2),
426
+ (128992, 129003, 2),
427
+ (129008, 129008, 2),
428
+ (129292, 129338, 2),
429
+ (129340, 129349, 2),
430
+ (129351, 129535, 2),
431
+ (129648, 129652, 2),
432
+ (129656, 129660, 2),
433
+ (129664, 129670, 2),
434
+ (129680, 129708, 2),
435
+ (129712, 129722, 2),
436
+ (129728, 129733, 2),
437
+ (129744, 129753, 2),
438
+ (129760, 129767, 2),
439
+ (129776, 129782, 2),
440
+ (131072, 196605, 2),
441
+ (196608, 262141, 2),
442
+ (917504, 921599, 0),
443
+ ],
444
+ frozenset(
445
+ [
446
+ "#",
447
+ "*",
448
+ "0",
449
+ "1",
450
+ "2",
451
+ "3",
452
+ "4",
453
+ "5",
454
+ "6",
455
+ "7",
456
+ "8",
457
+ "9",
458
+ "©",
459
+ "®",
460
+ "‼",
461
+ "⁉",
462
+ "™",
463
+ "ℹ",
464
+ "↔",
465
+ "↕",
466
+ "↖",
467
+ "↗",
468
+ "↘",
469
+ "↙",
470
+ "↩",
471
+ "↪",
472
+ "⌨",
473
+ "⏏",
474
+ "⏭",
475
+ "⏮",
476
+ "⏯",
477
+ "⏱",
478
+ "⏲",
479
+ "⏸",
480
+ "⏹",
481
+ "⏺",
482
+ "Ⓜ",
483
+ "▪",
484
+ "▫",
485
+ "▶",
486
+ "◀",
487
+ "◻",
488
+ "◼",
489
+ "☀",
490
+ "☁",
491
+ "☂",
492
+ "☃",
493
+ "☄",
494
+ "☎",
495
+ "☑",
496
+ "☘",
497
+ "☝",
498
+ "☠",
499
+ "☢",
500
+ "☣",
501
+ "☦",
502
+ "☪",
503
+ "☮",
504
+ "☯",
505
+ "☸",
506
+ "☹",
507
+ "☺",
508
+ "♀",
509
+ "♂",
510
+ "♟",
511
+ "♠",
512
+ "♣",
513
+ "♥",
514
+ "♦",
515
+ "♨",
516
+ "♻",
517
+ "♾",
518
+ "⚒",
519
+ "⚔",
520
+ "⚕",
521
+ "⚖",
522
+ "⚗",
523
+ "⚙",
524
+ "⚛",
525
+ "⚜",
526
+ "⚠",
527
+ "⚧",
528
+ "⚰",
529
+ "⚱",
530
+ "⛈",
531
+ "⛏",
532
+ "⛑",
533
+ "⛓",
534
+ "⛩",
535
+ "⛰",
536
+ "⛱",
537
+ "⛴",
538
+ "⛷",
539
+ "⛸",
540
+ "⛹",
541
+ "✂",
542
+ "✈",
543
+ "✉",
544
+ "✌",
545
+ "✍",
546
+ "✏",
547
+ "✒",
548
+ "✔",
549
+ "✖",
550
+ "✝",
551
+ "✡",
552
+ "✳",
553
+ "✴",
554
+ "❄",
555
+ "❇",
556
+ "❣",
557
+ "❤",
558
+ "➡",
559
+ "⤴",
560
+ "⤵",
561
+ "⬅",
562
+ "⬆",
563
+ "⬇",
564
+ "🅰",
565
+ "🅱",
566
+ "🅾",
567
+ "🅿",
568
+ "🌡",
569
+ "🌤",
570
+ "🌥",
571
+ "🌦",
572
+ "🌧",
573
+ "🌨",
574
+ "🌩",
575
+ "🌪",
576
+ "🌫",
577
+ "🌬",
578
+ "🌶",
579
+ "🍽",
580
+ "🎖",
581
+ "🎗",
582
+ "🎙",
583
+ "🎚",
584
+ "🎛",
585
+ "🎞",
586
+ "🎟",
587
+ "🏋",
588
+ "🏌",
589
+ "🏍",
590
+ "🏎",
591
+ "🏔",
592
+ "🏕",
593
+ "🏖",
594
+ "🏗",
595
+ "🏘",
596
+ "🏙",
597
+ "🏚",
598
+ "🏛",
599
+ "🏜",
600
+ "🏝",
601
+ "🏞",
602
+ "���",
603
+ "🏳",
604
+ "🏵",
605
+ "🏷",
606
+ "🐿",
607
+ "👁",
608
+ "📽",
609
+ "🕉",
610
+ "🕊",
611
+ "🕯",
612
+ "🕰",
613
+ "🕳",
614
+ "🕴",
615
+ "🕵",
616
+ "🕶",
617
+ "🕷",
618
+ "🕸",
619
+ "🕹",
620
+ "🖇",
621
+ "🖊",
622
+ "🖋",
623
+ "🖌",
624
+ "🖍",
625
+ "🖐",
626
+ "🖥",
627
+ "🖨",
628
+ "🖱",
629
+ "🖲",
630
+ "🖼",
631
+ "🗂",
632
+ "🗃",
633
+ "🗄",
634
+ "🗑",
635
+ "🗒",
636
+ "🗓",
637
+ "🗜",
638
+ "🗝",
639
+ "🗞",
640
+ "🗡",
641
+ "🗣",
642
+ "🗨",
643
+ "🗯",
644
+ "🗳",
645
+ "🗺",
646
+ "🛋",
647
+ "🛍",
648
+ "🛎",
649
+ "🛏",
650
+ "🛠",
651
+ "🛡",
652
+ "🛢",
653
+ "🛣",
654
+ "🛤",
655
+ "🛥",
656
+ "🛩",
657
+ "🛰",
658
+ "🛳",
659
+ ]
660
+ ),
661
+ )
venv/lib/python3.11/site-packages/rich/_unicode_data/unicode15-0-0.py ADDED
@@ -0,0 +1,671 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Auto generated by tools/make_width_tables.py
2
+ # Data from wcwidth project (https://github.com/jquast/wcwidth)
3
+
4
+ from rich.cells import CellTable
5
+
6
+ cell_table = CellTable(
7
+ "15.0.0",
8
+ [
9
+ (0, 0, 0),
10
+ (768, 879, 0),
11
+ (1155, 1161, 0),
12
+ (1425, 1469, 0),
13
+ (1471, 1471, 0),
14
+ (1473, 1474, 0),
15
+ (1476, 1477, 0),
16
+ (1479, 1479, 0),
17
+ (1552, 1562, 0),
18
+ (1564, 1564, 0),
19
+ (1611, 1631, 0),
20
+ (1648, 1648, 0),
21
+ (1750, 1756, 0),
22
+ (1759, 1764, 0),
23
+ (1767, 1768, 0),
24
+ (1770, 1773, 0),
25
+ (1809, 1809, 0),
26
+ (1840, 1866, 0),
27
+ (1958, 1968, 0),
28
+ (2027, 2035, 0),
29
+ (2045, 2045, 0),
30
+ (2070, 2073, 0),
31
+ (2075, 2083, 0),
32
+ (2085, 2087, 0),
33
+ (2089, 2093, 0),
34
+ (2137, 2139, 0),
35
+ (2200, 2207, 0),
36
+ (2250, 2273, 0),
37
+ (2275, 2307, 0),
38
+ (2362, 2364, 0),
39
+ (2366, 2383, 0),
40
+ (2385, 2391, 0),
41
+ (2402, 2403, 0),
42
+ (2433, 2435, 0),
43
+ (2492, 2492, 0),
44
+ (2494, 2500, 0),
45
+ (2503, 2504, 0),
46
+ (2507, 2509, 0),
47
+ (2519, 2519, 0),
48
+ (2530, 2531, 0),
49
+ (2558, 2558, 0),
50
+ (2561, 2563, 0),
51
+ (2620, 2620, 0),
52
+ (2622, 2626, 0),
53
+ (2631, 2632, 0),
54
+ (2635, 2637, 0),
55
+ (2641, 2641, 0),
56
+ (2672, 2673, 0),
57
+ (2677, 2677, 0),
58
+ (2689, 2691, 0),
59
+ (2748, 2748, 0),
60
+ (2750, 2757, 0),
61
+ (2759, 2761, 0),
62
+ (2763, 2765, 0),
63
+ (2786, 2787, 0),
64
+ (2810, 2815, 0),
65
+ (2817, 2819, 0),
66
+ (2876, 2876, 0),
67
+ (2878, 2884, 0),
68
+ (2887, 2888, 0),
69
+ (2891, 2893, 0),
70
+ (2901, 2903, 0),
71
+ (2914, 2915, 0),
72
+ (2946, 2946, 0),
73
+ (3006, 3010, 0),
74
+ (3014, 3016, 0),
75
+ (3018, 3021, 0),
76
+ (3031, 3031, 0),
77
+ (3072, 3076, 0),
78
+ (3132, 3132, 0),
79
+ (3134, 3140, 0),
80
+ (3142, 3144, 0),
81
+ (3146, 3149, 0),
82
+ (3157, 3158, 0),
83
+ (3170, 3171, 0),
84
+ (3201, 3203, 0),
85
+ (3260, 3260, 0),
86
+ (3262, 3268, 0),
87
+ (3270, 3272, 0),
88
+ (3274, 3277, 0),
89
+ (3285, 3286, 0),
90
+ (3298, 3299, 0),
91
+ (3315, 3315, 0),
92
+ (3328, 3331, 0),
93
+ (3387, 3388, 0),
94
+ (3390, 3396, 0),
95
+ (3398, 3400, 0),
96
+ (3402, 3405, 0),
97
+ (3415, 3415, 0),
98
+ (3426, 3427, 0),
99
+ (3457, 3459, 0),
100
+ (3530, 3530, 0),
101
+ (3535, 3540, 0),
102
+ (3542, 3542, 0),
103
+ (3544, 3551, 0),
104
+ (3570, 3571, 0),
105
+ (3633, 3633, 0),
106
+ (3636, 3642, 0),
107
+ (3655, 3662, 0),
108
+ (3761, 3761, 0),
109
+ (3764, 3772, 0),
110
+ (3784, 3790, 0),
111
+ (3864, 3865, 0),
112
+ (3893, 3893, 0),
113
+ (3895, 3895, 0),
114
+ (3897, 3897, 0),
115
+ (3902, 3903, 0),
116
+ (3953, 3972, 0),
117
+ (3974, 3975, 0),
118
+ (3981, 3991, 0),
119
+ (3993, 4028, 0),
120
+ (4038, 4038, 0),
121
+ (4139, 4158, 0),
122
+ (4182, 4185, 0),
123
+ (4190, 4192, 0),
124
+ (4194, 4196, 0),
125
+ (4199, 4205, 0),
126
+ (4209, 4212, 0),
127
+ (4226, 4237, 0),
128
+ (4239, 4239, 0),
129
+ (4250, 4253, 0),
130
+ (4352, 4447, 2),
131
+ (4448, 4607, 0),
132
+ (4957, 4959, 0),
133
+ (5906, 5909, 0),
134
+ (5938, 5940, 0),
135
+ (5970, 5971, 0),
136
+ (6002, 6003, 0),
137
+ (6068, 6099, 0),
138
+ (6109, 6109, 0),
139
+ (6155, 6159, 0),
140
+ (6277, 6278, 0),
141
+ (6313, 6313, 0),
142
+ (6432, 6443, 0),
143
+ (6448, 6459, 0),
144
+ (6679, 6683, 0),
145
+ (6741, 6750, 0),
146
+ (6752, 6780, 0),
147
+ (6783, 6783, 0),
148
+ (6832, 6862, 0),
149
+ (6912, 6916, 0),
150
+ (6964, 6980, 0),
151
+ (7019, 7027, 0),
152
+ (7040, 7042, 0),
153
+ (7073, 7085, 0),
154
+ (7142, 7155, 0),
155
+ (7204, 7223, 0),
156
+ (7376, 7378, 0),
157
+ (7380, 7400, 0),
158
+ (7405, 7405, 0),
159
+ (7412, 7412, 0),
160
+ (7415, 7417, 0),
161
+ (7616, 7679, 0),
162
+ (8203, 8207, 0),
163
+ (8232, 8238, 0),
164
+ (8288, 8303, 0),
165
+ (8400, 8432, 0),
166
+ (8986, 8987, 2),
167
+ (9001, 9002, 2),
168
+ (9193, 9196, 2),
169
+ (9200, 9200, 2),
170
+ (9203, 9203, 2),
171
+ (9725, 9726, 2),
172
+ (9748, 9749, 2),
173
+ (9800, 9811, 2),
174
+ (9855, 9855, 2),
175
+ (9875, 9875, 2),
176
+ (9889, 9889, 2),
177
+ (9898, 9899, 2),
178
+ (9917, 9918, 2),
179
+ (9924, 9925, 2),
180
+ (9934, 9934, 2),
181
+ (9940, 9940, 2),
182
+ (9962, 9962, 2),
183
+ (9970, 9971, 2),
184
+ (9973, 9973, 2),
185
+ (9978, 9978, 2),
186
+ (9981, 9981, 2),
187
+ (9989, 9989, 2),
188
+ (9994, 9995, 2),
189
+ (10024, 10024, 2),
190
+ (10060, 10060, 2),
191
+ (10062, 10062, 2),
192
+ (10067, 10069, 2),
193
+ (10071, 10071, 2),
194
+ (10133, 10135, 2),
195
+ (10160, 10160, 2),
196
+ (10175, 10175, 2),
197
+ (11035, 11036, 2),
198
+ (11088, 11088, 2),
199
+ (11093, 11093, 2),
200
+ (11503, 11505, 0),
201
+ (11647, 11647, 0),
202
+ (11744, 11775, 0),
203
+ (11904, 11929, 2),
204
+ (11931, 12019, 2),
205
+ (12032, 12245, 2),
206
+ (12272, 12283, 2),
207
+ (12288, 12329, 2),
208
+ (12330, 12335, 0),
209
+ (12336, 12350, 2),
210
+ (12353, 12438, 2),
211
+ (12441, 12442, 0),
212
+ (12443, 12543, 2),
213
+ (12549, 12591, 2),
214
+ (12593, 12643, 2),
215
+ (12644, 12644, 0),
216
+ (12645, 12686, 2),
217
+ (12688, 12771, 2),
218
+ (12784, 12830, 2),
219
+ (12832, 12871, 2),
220
+ (12880, 19903, 2),
221
+ (19968, 42124, 2),
222
+ (42128, 42182, 2),
223
+ (42607, 42610, 0),
224
+ (42612, 42621, 0),
225
+ (42654, 42655, 0),
226
+ (42736, 42737, 0),
227
+ (43010, 43010, 0),
228
+ (43014, 43014, 0),
229
+ (43019, 43019, 0),
230
+ (43043, 43047, 0),
231
+ (43052, 43052, 0),
232
+ (43136, 43137, 0),
233
+ (43188, 43205, 0),
234
+ (43232, 43249, 0),
235
+ (43263, 43263, 0),
236
+ (43302, 43309, 0),
237
+ (43335, 43347, 0),
238
+ (43360, 43388, 2),
239
+ (43392, 43395, 0),
240
+ (43443, 43456, 0),
241
+ (43493, 43493, 0),
242
+ (43561, 43574, 0),
243
+ (43587, 43587, 0),
244
+ (43596, 43597, 0),
245
+ (43643, 43645, 0),
246
+ (43696, 43696, 0),
247
+ (43698, 43700, 0),
248
+ (43703, 43704, 0),
249
+ (43710, 43711, 0),
250
+ (43713, 43713, 0),
251
+ (43755, 43759, 0),
252
+ (43765, 43766, 0),
253
+ (44003, 44010, 0),
254
+ (44012, 44013, 0),
255
+ (44032, 55203, 2),
256
+ (55216, 55295, 0),
257
+ (63744, 64255, 2),
258
+ (64286, 64286, 0),
259
+ (65024, 65039, 0),
260
+ (65040, 65049, 2),
261
+ (65056, 65071, 0),
262
+ (65072, 65106, 2),
263
+ (65108, 65126, 2),
264
+ (65128, 65131, 2),
265
+ (65279, 65279, 0),
266
+ (65281, 65376, 2),
267
+ (65440, 65440, 0),
268
+ (65504, 65510, 2),
269
+ (65520, 65531, 0),
270
+ (66045, 66045, 0),
271
+ (66272, 66272, 0),
272
+ (66422, 66426, 0),
273
+ (68097, 68099, 0),
274
+ (68101, 68102, 0),
275
+ (68108, 68111, 0),
276
+ (68152, 68154, 0),
277
+ (68159, 68159, 0),
278
+ (68325, 68326, 0),
279
+ (68900, 68903, 0),
280
+ (69291, 69292, 0),
281
+ (69373, 69375, 0),
282
+ (69446, 69456, 0),
283
+ (69506, 69509, 0),
284
+ (69632, 69634, 0),
285
+ (69688, 69702, 0),
286
+ (69744, 69744, 0),
287
+ (69747, 69748, 0),
288
+ (69759, 69762, 0),
289
+ (69808, 69818, 0),
290
+ (69826, 69826, 0),
291
+ (69888, 69890, 0),
292
+ (69927, 69940, 0),
293
+ (69957, 69958, 0),
294
+ (70003, 70003, 0),
295
+ (70016, 70018, 0),
296
+ (70067, 70080, 0),
297
+ (70089, 70092, 0),
298
+ (70094, 70095, 0),
299
+ (70188, 70199, 0),
300
+ (70206, 70206, 0),
301
+ (70209, 70209, 0),
302
+ (70367, 70378, 0),
303
+ (70400, 70403, 0),
304
+ (70459, 70460, 0),
305
+ (70462, 70468, 0),
306
+ (70471, 70472, 0),
307
+ (70475, 70477, 0),
308
+ (70487, 70487, 0),
309
+ (70498, 70499, 0),
310
+ (70502, 70508, 0),
311
+ (70512, 70516, 0),
312
+ (70709, 70726, 0),
313
+ (70750, 70750, 0),
314
+ (70832, 70851, 0),
315
+ (71087, 71093, 0),
316
+ (71096, 71104, 0),
317
+ (71132, 71133, 0),
318
+ (71216, 71232, 0),
319
+ (71339, 71351, 0),
320
+ (71453, 71467, 0),
321
+ (71724, 71738, 0),
322
+ (71984, 71989, 0),
323
+ (71991, 71992, 0),
324
+ (71995, 71998, 0),
325
+ (72000, 72000, 0),
326
+ (72002, 72003, 0),
327
+ (72145, 72151, 0),
328
+ (72154, 72160, 0),
329
+ (72164, 72164, 0),
330
+ (72193, 72202, 0),
331
+ (72243, 72249, 0),
332
+ (72251, 72254, 0),
333
+ (72263, 72263, 0),
334
+ (72273, 72283, 0),
335
+ (72330, 72345, 0),
336
+ (72751, 72758, 0),
337
+ (72760, 72767, 0),
338
+ (72850, 72871, 0),
339
+ (72873, 72886, 0),
340
+ (73009, 73014, 0),
341
+ (73018, 73018, 0),
342
+ (73020, 73021, 0),
343
+ (73023, 73029, 0),
344
+ (73031, 73031, 0),
345
+ (73098, 73102, 0),
346
+ (73104, 73105, 0),
347
+ (73107, 73111, 0),
348
+ (73459, 73462, 0),
349
+ (73472, 73473, 0),
350
+ (73475, 73475, 0),
351
+ (73524, 73530, 0),
352
+ (73534, 73538, 0),
353
+ (78896, 78912, 0),
354
+ (78919, 78933, 0),
355
+ (92912, 92916, 0),
356
+ (92976, 92982, 0),
357
+ (94031, 94031, 0),
358
+ (94033, 94087, 0),
359
+ (94095, 94098, 0),
360
+ (94176, 94179, 2),
361
+ (94180, 94180, 0),
362
+ (94192, 94193, 0),
363
+ (94208, 100343, 2),
364
+ (100352, 101589, 2),
365
+ (101632, 101640, 2),
366
+ (110576, 110579, 2),
367
+ (110581, 110587, 2),
368
+ (110589, 110590, 2),
369
+ (110592, 110882, 2),
370
+ (110898, 110898, 2),
371
+ (110928, 110930, 2),
372
+ (110933, 110933, 2),
373
+ (110948, 110951, 2),
374
+ (110960, 111355, 2),
375
+ (113821, 113822, 0),
376
+ (113824, 113827, 0),
377
+ (118528, 118573, 0),
378
+ (118576, 118598, 0),
379
+ (119141, 119145, 0),
380
+ (119149, 119170, 0),
381
+ (119173, 119179, 0),
382
+ (119210, 119213, 0),
383
+ (119362, 119364, 0),
384
+ (121344, 121398, 0),
385
+ (121403, 121452, 0),
386
+ (121461, 121461, 0),
387
+ (121476, 121476, 0),
388
+ (121499, 121503, 0),
389
+ (121505, 121519, 0),
390
+ (122880, 122886, 0),
391
+ (122888, 122904, 0),
392
+ (122907, 122913, 0),
393
+ (122915, 122916, 0),
394
+ (122918, 122922, 0),
395
+ (123023, 123023, 0),
396
+ (123184, 123190, 0),
397
+ (123566, 123566, 0),
398
+ (123628, 123631, 0),
399
+ (124140, 124143, 0),
400
+ (125136, 125142, 0),
401
+ (125252, 125258, 0),
402
+ (126980, 126980, 2),
403
+ (127183, 127183, 2),
404
+ (127374, 127374, 2),
405
+ (127377, 127386, 2),
406
+ (127488, 127490, 2),
407
+ (127504, 127547, 2),
408
+ (127552, 127560, 2),
409
+ (127568, 127569, 2),
410
+ (127584, 127589, 2),
411
+ (127744, 127776, 2),
412
+ (127789, 127797, 2),
413
+ (127799, 127868, 2),
414
+ (127870, 127891, 2),
415
+ (127904, 127946, 2),
416
+ (127951, 127955, 2),
417
+ (127968, 127984, 2),
418
+ (127988, 127988, 2),
419
+ (127992, 127994, 2),
420
+ (127995, 127999, 0),
421
+ (128000, 128062, 2),
422
+ (128064, 128064, 2),
423
+ (128066, 128252, 2),
424
+ (128255, 128317, 2),
425
+ (128331, 128334, 2),
426
+ (128336, 128359, 2),
427
+ (128378, 128378, 2),
428
+ (128405, 128406, 2),
429
+ (128420, 128420, 2),
430
+ (128507, 128591, 2),
431
+ (128640, 128709, 2),
432
+ (128716, 128716, 2),
433
+ (128720, 128722, 2),
434
+ (128725, 128727, 2),
435
+ (128732, 128735, 2),
436
+ (128747, 128748, 2),
437
+ (128756, 128764, 2),
438
+ (128992, 129003, 2),
439
+ (129008, 129008, 2),
440
+ (129292, 129338, 2),
441
+ (129340, 129349, 2),
442
+ (129351, 129535, 2),
443
+ (129648, 129660, 2),
444
+ (129664, 129672, 2),
445
+ (129680, 129725, 2),
446
+ (129727, 129733, 2),
447
+ (129742, 129755, 2),
448
+ (129760, 129768, 2),
449
+ (129776, 129784, 2),
450
+ (131072, 196605, 2),
451
+ (196608, 262141, 2),
452
+ (917504, 921599, 0),
453
+ ],
454
+ frozenset(
455
+ [
456
+ "#",
457
+ "*",
458
+ "0",
459
+ "1",
460
+ "2",
461
+ "3",
462
+ "4",
463
+ "5",
464
+ "6",
465
+ "7",
466
+ "8",
467
+ "9",
468
+ "©",
469
+ "®",
470
+ "‼",
471
+ "⁉",
472
+ "™",
473
+ "ℹ",
474
+ "↔",
475
+ "↕",
476
+ "↖",
477
+ "↗",
478
+ "↘",
479
+ "↙",
480
+ "↩",
481
+ "↪",
482
+ "⌨",
483
+ "⏏",
484
+ "⏭",
485
+ "⏮",
486
+ "⏯",
487
+ "⏱",
488
+ "⏲",
489
+ "⏸",
490
+ "⏹",
491
+ "⏺",
492
+ "Ⓜ",
493
+ "▪",
494
+ "▫",
495
+ "▶",
496
+ "◀",
497
+ "◻",
498
+ "◼",
499
+ "☀",
500
+ "☁",
501
+ "☂",
502
+ "☃",
503
+ "☄",
504
+ "☎",
505
+ "☑",
506
+ "☘",
507
+ "☝",
508
+ "☠",
509
+ "☢",
510
+ "☣",
511
+ "☦",
512
+ "☪",
513
+ "☮",
514
+ "☯",
515
+ "☸",
516
+ "☹",
517
+ "☺",
518
+ "♀",
519
+ "♂",
520
+ "♟",
521
+ "♠",
522
+ "♣",
523
+ "♥",
524
+ "♦",
525
+ "♨",
526
+ "♻",
527
+ "♾",
528
+ "⚒",
529
+ "⚔",
530
+ "⚕",
531
+ "⚖",
532
+ "⚗",
533
+ "⚙",
534
+ "⚛",
535
+ "⚜",
536
+ "⚠",
537
+ "⚧",
538
+ "⚰",
539
+ "⚱",
540
+ "⛈",
541
+ "⛏",
542
+ "⛑",
543
+ "⛓",
544
+ "⛩",
545
+ "⛰",
546
+ "⛱",
547
+ "⛴",
548
+ "⛷",
549
+ "⛸",
550
+ "⛹",
551
+ "✂",
552
+ "✈",
553
+ "✉",
554
+ "✌",
555
+ "✍",
556
+ "✏",
557
+ "✒",
558
+ "✔",
559
+ "✖",
560
+ "✝",
561
+ "✡",
562
+ "✳",
563
+ "✴",
564
+ "❄",
565
+ "❇",
566
+ "❣",
567
+ "❤",
568
+ "➡",
569
+ "⤴",
570
+ "⤵",
571
+ "⬅",
572
+ "⬆",
573
+ "⬇",
574
+ "🅰",
575
+ "🅱",
576
+ "🅾",
577
+ "🅿",
578
+ "🌡",
579
+ "🌤",
580
+ "🌥",
581
+ "🌦",
582
+ "🌧",
583
+ "🌨",
584
+ "🌩",
585
+ "🌪",
586
+ "🌫",
587
+ "🌬",
588
+ "🌶",
589
+ "🍽",
590
+ "🎖",
591
+ "🎗",
592
+ "🎙",
593
+ "🎚",
594
+ "🎛",
595
+ "🎞",
596
+ "🎟",
597
+ "🏋",
598
+ "🏌",
599
+ "🏍",
600
+ "🏎",
601
+ "🏔",
602
+ "🏕",
603
+ "🏖",
604
+ "🏗",
605
+ "🏘",
606
+ "🏙",
607
+ "🏚",
608
+ "🏛",
609
+ "🏜",
610
+ "🏝",
611
+ "🏞",
612
+ "🏟",
613
+ "🏳",
614
+ "🏵",
615
+ "🏷",
616
+ "🐿",
617
+ "👁",
618
+ "📽",
619
+ "🕉",
620
+ "🕊",
621
+ "🕯",
622
+ "🕰",
623
+ "🕳",
624
+ "🕴",
625
+ "🕵",
626
+ "🕶",
627
+ "🕷",
628
+ "🕸",
629
+ "🕹",
630
+ "🖇",
631
+ "🖊",
632
+ "🖋",
633
+ "🖌",
634
+ "🖍",
635
+ "🖐",
636
+ "🖥",
637
+ "🖨",
638
+ "🖱",
639
+ "🖲",
640
+ "🖼",
641
+ "🗂",
642
+ "🗃",
643
+ "🗄",
644
+ "🗑",
645
+ "🗒",
646
+ "🗓",
647
+ "🗜",
648
+ "🗝",
649
+ "🗞",
650
+ "🗡",
651
+ "🗣",
652
+ "🗨",
653
+ "🗯",
654
+ "🗳",
655
+ "🗺",
656
+ "🛋",
657
+ "🛍",
658
+ "🛎",
659
+ "🛏",
660
+ "🛠",
661
+ "🛡",
662
+ "🛢",
663
+ "🛣",
664
+ "🛤",
665
+ "🛥",
666
+ "🛩",
667
+ "🛰",
668
+ "🛳",
669
+ ]
670
+ ),
671
+ )
venv/lib/python3.11/site-packages/rich/_unicode_data/unicode15-1-0.py ADDED
@@ -0,0 +1,670 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Auto generated by tools/make_width_tables.py
2
+ # Data from wcwidth project (https://github.com/jquast/wcwidth)
3
+
4
+ from rich.cells import CellTable
5
+
6
+ cell_table = CellTable(
7
+ "15.1.0",
8
+ [
9
+ (0, 0, 0),
10
+ (768, 879, 0),
11
+ (1155, 1161, 0),
12
+ (1425, 1469, 0),
13
+ (1471, 1471, 0),
14
+ (1473, 1474, 0),
15
+ (1476, 1477, 0),
16
+ (1479, 1479, 0),
17
+ (1552, 1562, 0),
18
+ (1564, 1564, 0),
19
+ (1611, 1631, 0),
20
+ (1648, 1648, 0),
21
+ (1750, 1756, 0),
22
+ (1759, 1764, 0),
23
+ (1767, 1768, 0),
24
+ (1770, 1773, 0),
25
+ (1809, 1809, 0),
26
+ (1840, 1866, 0),
27
+ (1958, 1968, 0),
28
+ (2027, 2035, 0),
29
+ (2045, 2045, 0),
30
+ (2070, 2073, 0),
31
+ (2075, 2083, 0),
32
+ (2085, 2087, 0),
33
+ (2089, 2093, 0),
34
+ (2137, 2139, 0),
35
+ (2200, 2207, 0),
36
+ (2250, 2273, 0),
37
+ (2275, 2307, 0),
38
+ (2362, 2364, 0),
39
+ (2366, 2383, 0),
40
+ (2385, 2391, 0),
41
+ (2402, 2403, 0),
42
+ (2433, 2435, 0),
43
+ (2492, 2492, 0),
44
+ (2494, 2500, 0),
45
+ (2503, 2504, 0),
46
+ (2507, 2509, 0),
47
+ (2519, 2519, 0),
48
+ (2530, 2531, 0),
49
+ (2558, 2558, 0),
50
+ (2561, 2563, 0),
51
+ (2620, 2620, 0),
52
+ (2622, 2626, 0),
53
+ (2631, 2632, 0),
54
+ (2635, 2637, 0),
55
+ (2641, 2641, 0),
56
+ (2672, 2673, 0),
57
+ (2677, 2677, 0),
58
+ (2689, 2691, 0),
59
+ (2748, 2748, 0),
60
+ (2750, 2757, 0),
61
+ (2759, 2761, 0),
62
+ (2763, 2765, 0),
63
+ (2786, 2787, 0),
64
+ (2810, 2815, 0),
65
+ (2817, 2819, 0),
66
+ (2876, 2876, 0),
67
+ (2878, 2884, 0),
68
+ (2887, 2888, 0),
69
+ (2891, 2893, 0),
70
+ (2901, 2903, 0),
71
+ (2914, 2915, 0),
72
+ (2946, 2946, 0),
73
+ (3006, 3010, 0),
74
+ (3014, 3016, 0),
75
+ (3018, 3021, 0),
76
+ (3031, 3031, 0),
77
+ (3072, 3076, 0),
78
+ (3132, 3132, 0),
79
+ (3134, 3140, 0),
80
+ (3142, 3144, 0),
81
+ (3146, 3149, 0),
82
+ (3157, 3158, 0),
83
+ (3170, 3171, 0),
84
+ (3201, 3203, 0),
85
+ (3260, 3260, 0),
86
+ (3262, 3268, 0),
87
+ (3270, 3272, 0),
88
+ (3274, 3277, 0),
89
+ (3285, 3286, 0),
90
+ (3298, 3299, 0),
91
+ (3315, 3315, 0),
92
+ (3328, 3331, 0),
93
+ (3387, 3388, 0),
94
+ (3390, 3396, 0),
95
+ (3398, 3400, 0),
96
+ (3402, 3405, 0),
97
+ (3415, 3415, 0),
98
+ (3426, 3427, 0),
99
+ (3457, 3459, 0),
100
+ (3530, 3530, 0),
101
+ (3535, 3540, 0),
102
+ (3542, 3542, 0),
103
+ (3544, 3551, 0),
104
+ (3570, 3571, 0),
105
+ (3633, 3633, 0),
106
+ (3636, 3642, 0),
107
+ (3655, 3662, 0),
108
+ (3761, 3761, 0),
109
+ (3764, 3772, 0),
110
+ (3784, 3790, 0),
111
+ (3864, 3865, 0),
112
+ (3893, 3893, 0),
113
+ (3895, 3895, 0),
114
+ (3897, 3897, 0),
115
+ (3902, 3903, 0),
116
+ (3953, 3972, 0),
117
+ (3974, 3975, 0),
118
+ (3981, 3991, 0),
119
+ (3993, 4028, 0),
120
+ (4038, 4038, 0),
121
+ (4139, 4158, 0),
122
+ (4182, 4185, 0),
123
+ (4190, 4192, 0),
124
+ (4194, 4196, 0),
125
+ (4199, 4205, 0),
126
+ (4209, 4212, 0),
127
+ (4226, 4237, 0),
128
+ (4239, 4239, 0),
129
+ (4250, 4253, 0),
130
+ (4352, 4447, 2),
131
+ (4448, 4607, 0),
132
+ (4957, 4959, 0),
133
+ (5906, 5909, 0),
134
+ (5938, 5940, 0),
135
+ (5970, 5971, 0),
136
+ (6002, 6003, 0),
137
+ (6068, 6099, 0),
138
+ (6109, 6109, 0),
139
+ (6155, 6159, 0),
140
+ (6277, 6278, 0),
141
+ (6313, 6313, 0),
142
+ (6432, 6443, 0),
143
+ (6448, 6459, 0),
144
+ (6679, 6683, 0),
145
+ (6741, 6750, 0),
146
+ (6752, 6780, 0),
147
+ (6783, 6783, 0),
148
+ (6832, 6862, 0),
149
+ (6912, 6916, 0),
150
+ (6964, 6980, 0),
151
+ (7019, 7027, 0),
152
+ (7040, 7042, 0),
153
+ (7073, 7085, 0),
154
+ (7142, 7155, 0),
155
+ (7204, 7223, 0),
156
+ (7376, 7378, 0),
157
+ (7380, 7400, 0),
158
+ (7405, 7405, 0),
159
+ (7412, 7412, 0),
160
+ (7415, 7417, 0),
161
+ (7616, 7679, 0),
162
+ (8203, 8207, 0),
163
+ (8232, 8238, 0),
164
+ (8288, 8303, 0),
165
+ (8400, 8432, 0),
166
+ (8986, 8987, 2),
167
+ (9001, 9002, 2),
168
+ (9193, 9196, 2),
169
+ (9200, 9200, 2),
170
+ (9203, 9203, 2),
171
+ (9725, 9726, 2),
172
+ (9748, 9749, 2),
173
+ (9800, 9811, 2),
174
+ (9855, 9855, 2),
175
+ (9875, 9875, 2),
176
+ (9889, 9889, 2),
177
+ (9898, 9899, 2),
178
+ (9917, 9918, 2),
179
+ (9924, 9925, 2),
180
+ (9934, 9934, 2),
181
+ (9940, 9940, 2),
182
+ (9962, 9962, 2),
183
+ (9970, 9971, 2),
184
+ (9973, 9973, 2),
185
+ (9978, 9978, 2),
186
+ (9981, 9981, 2),
187
+ (9989, 9989, 2),
188
+ (9994, 9995, 2),
189
+ (10024, 10024, 2),
190
+ (10060, 10060, 2),
191
+ (10062, 10062, 2),
192
+ (10067, 10069, 2),
193
+ (10071, 10071, 2),
194
+ (10133, 10135, 2),
195
+ (10160, 10160, 2),
196
+ (10175, 10175, 2),
197
+ (11035, 11036, 2),
198
+ (11088, 11088, 2),
199
+ (11093, 11093, 2),
200
+ (11503, 11505, 0),
201
+ (11647, 11647, 0),
202
+ (11744, 11775, 0),
203
+ (11904, 11929, 2),
204
+ (11931, 12019, 2),
205
+ (12032, 12245, 2),
206
+ (12272, 12329, 2),
207
+ (12330, 12335, 0),
208
+ (12336, 12350, 2),
209
+ (12353, 12438, 2),
210
+ (12441, 12442, 0),
211
+ (12443, 12543, 2),
212
+ (12549, 12591, 2),
213
+ (12593, 12643, 2),
214
+ (12644, 12644, 0),
215
+ (12645, 12686, 2),
216
+ (12688, 12771, 2),
217
+ (12783, 12830, 2),
218
+ (12832, 12871, 2),
219
+ (12880, 19903, 2),
220
+ (19968, 42124, 2),
221
+ (42128, 42182, 2),
222
+ (42607, 42610, 0),
223
+ (42612, 42621, 0),
224
+ (42654, 42655, 0),
225
+ (42736, 42737, 0),
226
+ (43010, 43010, 0),
227
+ (43014, 43014, 0),
228
+ (43019, 43019, 0),
229
+ (43043, 43047, 0),
230
+ (43052, 43052, 0),
231
+ (43136, 43137, 0),
232
+ (43188, 43205, 0),
233
+ (43232, 43249, 0),
234
+ (43263, 43263, 0),
235
+ (43302, 43309, 0),
236
+ (43335, 43347, 0),
237
+ (43360, 43388, 2),
238
+ (43392, 43395, 0),
239
+ (43443, 43456, 0),
240
+ (43493, 43493, 0),
241
+ (43561, 43574, 0),
242
+ (43587, 43587, 0),
243
+ (43596, 43597, 0),
244
+ (43643, 43645, 0),
245
+ (43696, 43696, 0),
246
+ (43698, 43700, 0),
247
+ (43703, 43704, 0),
248
+ (43710, 43711, 0),
249
+ (43713, 43713, 0),
250
+ (43755, 43759, 0),
251
+ (43765, 43766, 0),
252
+ (44003, 44010, 0),
253
+ (44012, 44013, 0),
254
+ (44032, 55203, 2),
255
+ (55216, 55295, 0),
256
+ (63744, 64255, 2),
257
+ (64286, 64286, 0),
258
+ (65024, 65039, 0),
259
+ (65040, 65049, 2),
260
+ (65056, 65071, 0),
261
+ (65072, 65106, 2),
262
+ (65108, 65126, 2),
263
+ (65128, 65131, 2),
264
+ (65279, 65279, 0),
265
+ (65281, 65376, 2),
266
+ (65440, 65440, 0),
267
+ (65504, 65510, 2),
268
+ (65520, 65531, 0),
269
+ (66045, 66045, 0),
270
+ (66272, 66272, 0),
271
+ (66422, 66426, 0),
272
+ (68097, 68099, 0),
273
+ (68101, 68102, 0),
274
+ (68108, 68111, 0),
275
+ (68152, 68154, 0),
276
+ (68159, 68159, 0),
277
+ (68325, 68326, 0),
278
+ (68900, 68903, 0),
279
+ (69291, 69292, 0),
280
+ (69373, 69375, 0),
281
+ (69446, 69456, 0),
282
+ (69506, 69509, 0),
283
+ (69632, 69634, 0),
284
+ (69688, 69702, 0),
285
+ (69744, 69744, 0),
286
+ (69747, 69748, 0),
287
+ (69759, 69762, 0),
288
+ (69808, 69818, 0),
289
+ (69826, 69826, 0),
290
+ (69888, 69890, 0),
291
+ (69927, 69940, 0),
292
+ (69957, 69958, 0),
293
+ (70003, 70003, 0),
294
+ (70016, 70018, 0),
295
+ (70067, 70080, 0),
296
+ (70089, 70092, 0),
297
+ (70094, 70095, 0),
298
+ (70188, 70199, 0),
299
+ (70206, 70206, 0),
300
+ (70209, 70209, 0),
301
+ (70367, 70378, 0),
302
+ (70400, 70403, 0),
303
+ (70459, 70460, 0),
304
+ (70462, 70468, 0),
305
+ (70471, 70472, 0),
306
+ (70475, 70477, 0),
307
+ (70487, 70487, 0),
308
+ (70498, 70499, 0),
309
+ (70502, 70508, 0),
310
+ (70512, 70516, 0),
311
+ (70709, 70726, 0),
312
+ (70750, 70750, 0),
313
+ (70832, 70851, 0),
314
+ (71087, 71093, 0),
315
+ (71096, 71104, 0),
316
+ (71132, 71133, 0),
317
+ (71216, 71232, 0),
318
+ (71339, 71351, 0),
319
+ (71453, 71467, 0),
320
+ (71724, 71738, 0),
321
+ (71984, 71989, 0),
322
+ (71991, 71992, 0),
323
+ (71995, 71998, 0),
324
+ (72000, 72000, 0),
325
+ (72002, 72003, 0),
326
+ (72145, 72151, 0),
327
+ (72154, 72160, 0),
328
+ (72164, 72164, 0),
329
+ (72193, 72202, 0),
330
+ (72243, 72249, 0),
331
+ (72251, 72254, 0),
332
+ (72263, 72263, 0),
333
+ (72273, 72283, 0),
334
+ (72330, 72345, 0),
335
+ (72751, 72758, 0),
336
+ (72760, 72767, 0),
337
+ (72850, 72871, 0),
338
+ (72873, 72886, 0),
339
+ (73009, 73014, 0),
340
+ (73018, 73018, 0),
341
+ (73020, 73021, 0),
342
+ (73023, 73029, 0),
343
+ (73031, 73031, 0),
344
+ (73098, 73102, 0),
345
+ (73104, 73105, 0),
346
+ (73107, 73111, 0),
347
+ (73459, 73462, 0),
348
+ (73472, 73473, 0),
349
+ (73475, 73475, 0),
350
+ (73524, 73530, 0),
351
+ (73534, 73538, 0),
352
+ (78896, 78912, 0),
353
+ (78919, 78933, 0),
354
+ (92912, 92916, 0),
355
+ (92976, 92982, 0),
356
+ (94031, 94031, 0),
357
+ (94033, 94087, 0),
358
+ (94095, 94098, 0),
359
+ (94176, 94179, 2),
360
+ (94180, 94180, 0),
361
+ (94192, 94193, 0),
362
+ (94208, 100343, 2),
363
+ (100352, 101589, 2),
364
+ (101632, 101640, 2),
365
+ (110576, 110579, 2),
366
+ (110581, 110587, 2),
367
+ (110589, 110590, 2),
368
+ (110592, 110882, 2),
369
+ (110898, 110898, 2),
370
+ (110928, 110930, 2),
371
+ (110933, 110933, 2),
372
+ (110948, 110951, 2),
373
+ (110960, 111355, 2),
374
+ (113821, 113822, 0),
375
+ (113824, 113827, 0),
376
+ (118528, 118573, 0),
377
+ (118576, 118598, 0),
378
+ (119141, 119145, 0),
379
+ (119149, 119170, 0),
380
+ (119173, 119179, 0),
381
+ (119210, 119213, 0),
382
+ (119362, 119364, 0),
383
+ (121344, 121398, 0),
384
+ (121403, 121452, 0),
385
+ (121461, 121461, 0),
386
+ (121476, 121476, 0),
387
+ (121499, 121503, 0),
388
+ (121505, 121519, 0),
389
+ (122880, 122886, 0),
390
+ (122888, 122904, 0),
391
+ (122907, 122913, 0),
392
+ (122915, 122916, 0),
393
+ (122918, 122922, 0),
394
+ (123023, 123023, 0),
395
+ (123184, 123190, 0),
396
+ (123566, 123566, 0),
397
+ (123628, 123631, 0),
398
+ (124140, 124143, 0),
399
+ (125136, 125142, 0),
400
+ (125252, 125258, 0),
401
+ (126980, 126980, 2),
402
+ (127183, 127183, 2),
403
+ (127374, 127374, 2),
404
+ (127377, 127386, 2),
405
+ (127488, 127490, 2),
406
+ (127504, 127547, 2),
407
+ (127552, 127560, 2),
408
+ (127568, 127569, 2),
409
+ (127584, 127589, 2),
410
+ (127744, 127776, 2),
411
+ (127789, 127797, 2),
412
+ (127799, 127868, 2),
413
+ (127870, 127891, 2),
414
+ (127904, 127946, 2),
415
+ (127951, 127955, 2),
416
+ (127968, 127984, 2),
417
+ (127988, 127988, 2),
418
+ (127992, 127994, 2),
419
+ (127995, 127999, 0),
420
+ (128000, 128062, 2),
421
+ (128064, 128064, 2),
422
+ (128066, 128252, 2),
423
+ (128255, 128317, 2),
424
+ (128331, 128334, 2),
425
+ (128336, 128359, 2),
426
+ (128378, 128378, 2),
427
+ (128405, 128406, 2),
428
+ (128420, 128420, 2),
429
+ (128507, 128591, 2),
430
+ (128640, 128709, 2),
431
+ (128716, 128716, 2),
432
+ (128720, 128722, 2),
433
+ (128725, 128727, 2),
434
+ (128732, 128735, 2),
435
+ (128747, 128748, 2),
436
+ (128756, 128764, 2),
437
+ (128992, 129003, 2),
438
+ (129008, 129008, 2),
439
+ (129292, 129338, 2),
440
+ (129340, 129349, 2),
441
+ (129351, 129535, 2),
442
+ (129648, 129660, 2),
443
+ (129664, 129672, 2),
444
+ (129680, 129725, 2),
445
+ (129727, 129733, 2),
446
+ (129742, 129755, 2),
447
+ (129760, 129768, 2),
448
+ (129776, 129784, 2),
449
+ (131072, 196605, 2),
450
+ (196608, 262141, 2),
451
+ (917504, 921599, 0),
452
+ ],
453
+ frozenset(
454
+ [
455
+ "#",
456
+ "*",
457
+ "0",
458
+ "1",
459
+ "2",
460
+ "3",
461
+ "4",
462
+ "5",
463
+ "6",
464
+ "7",
465
+ "8",
466
+ "9",
467
+ "©",
468
+ "®",
469
+ "‼",
470
+ "⁉",
471
+ "™",
472
+ "ℹ",
473
+ "↔",
474
+ "↕",
475
+ "↖",
476
+ "↗",
477
+ "↘",
478
+ "↙",
479
+ "↩",
480
+ "↪",
481
+ "⌨",
482
+ "⏏",
483
+ "⏭",
484
+ "⏮",
485
+ "⏯",
486
+ "⏱",
487
+ "⏲",
488
+ "⏸",
489
+ "⏹",
490
+ "⏺",
491
+ "Ⓜ",
492
+ "▪",
493
+ "▫",
494
+ "▶",
495
+ "◀",
496
+ "◻",
497
+ "◼",
498
+ "☀",
499
+ "☁",
500
+ "☂",
501
+ "☃",
502
+ "☄",
503
+ "☎",
504
+ "☑",
505
+ "☘",
506
+ "☝",
507
+ "☠",
508
+ "☢",
509
+ "☣",
510
+ "☦",
511
+ "☪",
512
+ "☮",
513
+ "☯",
514
+ "☸",
515
+ "☹",
516
+ "☺",
517
+ "♀",
518
+ "♂",
519
+ "♟",
520
+ "♠",
521
+ "♣",
522
+ "♥",
523
+ "♦",
524
+ "♨",
525
+ "♻",
526
+ "♾",
527
+ "⚒",
528
+ "⚔",
529
+ "⚕",
530
+ "⚖",
531
+ "⚗",
532
+ "⚙",
533
+ "⚛",
534
+ "⚜",
535
+ "⚠",
536
+ "⚧",
537
+ "⚰",
538
+ "⚱",
539
+ "⛈",
540
+ "⛏",
541
+ "⛑",
542
+ "⛓",
543
+ "⛩",
544
+ "⛰",
545
+ "⛱",
546
+ "⛴",
547
+ "⛷",
548
+ "⛸",
549
+ "⛹",
550
+ "✂",
551
+ "✈",
552
+ "✉",
553
+ "✌",
554
+ "✍",
555
+ "✏",
556
+ "✒",
557
+ "✔",
558
+ "✖",
559
+ "✝",
560
+ "✡",
561
+ "✳",
562
+ "✴",
563
+ "❄",
564
+ "❇",
565
+ "❣",
566
+ "❤",
567
+ "➡",
568
+ "⤴",
569
+ "⤵",
570
+ "⬅",
571
+ "⬆",
572
+ "⬇",
573
+ "🅰",
574
+ "🅱",
575
+ "🅾",
576
+ "🅿",
577
+ "🌡",
578
+ "🌤",
579
+ "🌥",
580
+ "🌦",
581
+ "🌧",
582
+ "🌨",
583
+ "🌩",
584
+ "🌪",
585
+ "🌫",
586
+ "🌬",
587
+ "🌶",
588
+ "🍽",
589
+ "🎖",
590
+ "🎗",
591
+ "🎙",
592
+ "🎚",
593
+ "🎛",
594
+ "🎞",
595
+ "🎟",
596
+ "🏋",
597
+ "🏌",
598
+ "🏍",
599
+ "🏎",
600
+ "🏔",
601
+ "🏕",
602
+ "🏖",
603
+ "🏗",
604
+ "🏘",
605
+ "🏙",
606
+ "🏚",
607
+ "🏛",
608
+ "🏜",
609
+ "🏝",
610
+ "🏞",
611
+ "🏟",
612
+ "🏳",
613
+ "🏵",
614
+ "🏷",
615
+ "🐿",
616
+ "👁",
617
+ "📽",
618
+ "🕉",
619
+ "🕊",
620
+ "🕯",
621
+ "🕰",
622
+ "🕳",
623
+ "🕴",
624
+ "🕵",
625
+ "🕶",
626
+ "🕷",
627
+ "🕸",
628
+ "🕹",
629
+ "🖇",
630
+ "🖊",
631
+ "🖋",
632
+ "🖌",
633
+ "🖍",
634
+ "🖐",
635
+ "🖥",
636
+ "🖨",
637
+ "🖱",
638
+ "🖲",
639
+ "🖼",
640
+ "🗂",
641
+ "🗃",
642
+ "🗄",
643
+ "🗑",
644
+ "🗒",
645
+ "🗓",
646
+ "🗜",
647
+ "🗝",
648
+ "🗞",
649
+ "🗡",
650
+ "🗣",
651
+ "🗨",
652
+ "🗯",
653
+ "🗳",
654
+ "🗺",
655
+ "🛋",
656
+ "🛍",
657
+ "🛎",
658
+ "🛏",
659
+ "🛠",
660
+ "🛡",
661
+ "🛢",
662
+ "🛣",
663
+ "🛤",
664
+ "🛥",
665
+ "🛩",
666
+ "🛰",
667
+ "🛳",
668
+ ]
669
+ ),
670
+ )
venv/lib/python3.11/site-packages/rich/_unicode_data/unicode16-0-0.py ADDED
@@ -0,0 +1,683 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Auto generated by tools/make_width_tables.py
2
+ # Data from wcwidth project (https://github.com/jquast/wcwidth)
3
+
4
+ from rich.cells import CellTable
5
+
6
+ cell_table = CellTable(
7
+ "16.0.0",
8
+ [
9
+ (0, 0, 0),
10
+ (768, 879, 0),
11
+ (1155, 1161, 0),
12
+ (1425, 1469, 0),
13
+ (1471, 1471, 0),
14
+ (1473, 1474, 0),
15
+ (1476, 1477, 0),
16
+ (1479, 1479, 0),
17
+ (1552, 1562, 0),
18
+ (1564, 1564, 0),
19
+ (1611, 1631, 0),
20
+ (1648, 1648, 0),
21
+ (1750, 1756, 0),
22
+ (1759, 1764, 0),
23
+ (1767, 1768, 0),
24
+ (1770, 1773, 0),
25
+ (1809, 1809, 0),
26
+ (1840, 1866, 0),
27
+ (1958, 1968, 0),
28
+ (2027, 2035, 0),
29
+ (2045, 2045, 0),
30
+ (2070, 2073, 0),
31
+ (2075, 2083, 0),
32
+ (2085, 2087, 0),
33
+ (2089, 2093, 0),
34
+ (2137, 2139, 0),
35
+ (2199, 2207, 0),
36
+ (2250, 2273, 0),
37
+ (2275, 2307, 0),
38
+ (2362, 2364, 0),
39
+ (2366, 2383, 0),
40
+ (2385, 2391, 0),
41
+ (2402, 2403, 0),
42
+ (2433, 2435, 0),
43
+ (2492, 2492, 0),
44
+ (2494, 2500, 0),
45
+ (2503, 2504, 0),
46
+ (2507, 2509, 0),
47
+ (2519, 2519, 0),
48
+ (2530, 2531, 0),
49
+ (2558, 2558, 0),
50
+ (2561, 2563, 0),
51
+ (2620, 2620, 0),
52
+ (2622, 2626, 0),
53
+ (2631, 2632, 0),
54
+ (2635, 2637, 0),
55
+ (2641, 2641, 0),
56
+ (2672, 2673, 0),
57
+ (2677, 2677, 0),
58
+ (2689, 2691, 0),
59
+ (2748, 2748, 0),
60
+ (2750, 2757, 0),
61
+ (2759, 2761, 0),
62
+ (2763, 2765, 0),
63
+ (2786, 2787, 0),
64
+ (2810, 2815, 0),
65
+ (2817, 2819, 0),
66
+ (2876, 2876, 0),
67
+ (2878, 2884, 0),
68
+ (2887, 2888, 0),
69
+ (2891, 2893, 0),
70
+ (2901, 2903, 0),
71
+ (2914, 2915, 0),
72
+ (2946, 2946, 0),
73
+ (3006, 3010, 0),
74
+ (3014, 3016, 0),
75
+ (3018, 3021, 0),
76
+ (3031, 3031, 0),
77
+ (3072, 3076, 0),
78
+ (3132, 3132, 0),
79
+ (3134, 3140, 0),
80
+ (3142, 3144, 0),
81
+ (3146, 3149, 0),
82
+ (3157, 3158, 0),
83
+ (3170, 3171, 0),
84
+ (3201, 3203, 0),
85
+ (3260, 3260, 0),
86
+ (3262, 3268, 0),
87
+ (3270, 3272, 0),
88
+ (3274, 3277, 0),
89
+ (3285, 3286, 0),
90
+ (3298, 3299, 0),
91
+ (3315, 3315, 0),
92
+ (3328, 3331, 0),
93
+ (3387, 3388, 0),
94
+ (3390, 3396, 0),
95
+ (3398, 3400, 0),
96
+ (3402, 3405, 0),
97
+ (3415, 3415, 0),
98
+ (3426, 3427, 0),
99
+ (3457, 3459, 0),
100
+ (3530, 3530, 0),
101
+ (3535, 3540, 0),
102
+ (3542, 3542, 0),
103
+ (3544, 3551, 0),
104
+ (3570, 3571, 0),
105
+ (3633, 3633, 0),
106
+ (3636, 3642, 0),
107
+ (3655, 3662, 0),
108
+ (3761, 3761, 0),
109
+ (3764, 3772, 0),
110
+ (3784, 3790, 0),
111
+ (3864, 3865, 0),
112
+ (3893, 3893, 0),
113
+ (3895, 3895, 0),
114
+ (3897, 3897, 0),
115
+ (3902, 3903, 0),
116
+ (3953, 3972, 0),
117
+ (3974, 3975, 0),
118
+ (3981, 3991, 0),
119
+ (3993, 4028, 0),
120
+ (4038, 4038, 0),
121
+ (4139, 4158, 0),
122
+ (4182, 4185, 0),
123
+ (4190, 4192, 0),
124
+ (4194, 4196, 0),
125
+ (4199, 4205, 0),
126
+ (4209, 4212, 0),
127
+ (4226, 4237, 0),
128
+ (4239, 4239, 0),
129
+ (4250, 4253, 0),
130
+ (4352, 4447, 2),
131
+ (4448, 4607, 0),
132
+ (4957, 4959, 0),
133
+ (5906, 5909, 0),
134
+ (5938, 5940, 0),
135
+ (5970, 5971, 0),
136
+ (6002, 6003, 0),
137
+ (6068, 6099, 0),
138
+ (6109, 6109, 0),
139
+ (6155, 6159, 0),
140
+ (6277, 6278, 0),
141
+ (6313, 6313, 0),
142
+ (6432, 6443, 0),
143
+ (6448, 6459, 0),
144
+ (6679, 6683, 0),
145
+ (6741, 6750, 0),
146
+ (6752, 6780, 0),
147
+ (6783, 6783, 0),
148
+ (6832, 6862, 0),
149
+ (6912, 6916, 0),
150
+ (6964, 6980, 0),
151
+ (7019, 7027, 0),
152
+ (7040, 7042, 0),
153
+ (7073, 7085, 0),
154
+ (7142, 7155, 0),
155
+ (7204, 7223, 0),
156
+ (7376, 7378, 0),
157
+ (7380, 7400, 0),
158
+ (7405, 7405, 0),
159
+ (7412, 7412, 0),
160
+ (7415, 7417, 0),
161
+ (7616, 7679, 0),
162
+ (8203, 8207, 0),
163
+ (8232, 8238, 0),
164
+ (8288, 8303, 0),
165
+ (8400, 8432, 0),
166
+ (8986, 8987, 2),
167
+ (9001, 9002, 2),
168
+ (9193, 9196, 2),
169
+ (9200, 9200, 2),
170
+ (9203, 9203, 2),
171
+ (9725, 9726, 2),
172
+ (9748, 9749, 2),
173
+ (9776, 9783, 2),
174
+ (9800, 9811, 2),
175
+ (9855, 9855, 2),
176
+ (9866, 9871, 2),
177
+ (9875, 9875, 2),
178
+ (9889, 9889, 2),
179
+ (9898, 9899, 2),
180
+ (9917, 9918, 2),
181
+ (9924, 9925, 2),
182
+ (9934, 9934, 2),
183
+ (9940, 9940, 2),
184
+ (9962, 9962, 2),
185
+ (9970, 9971, 2),
186
+ (9973, 9973, 2),
187
+ (9978, 9978, 2),
188
+ (9981, 9981, 2),
189
+ (9989, 9989, 2),
190
+ (9994, 9995, 2),
191
+ (10024, 10024, 2),
192
+ (10060, 10060, 2),
193
+ (10062, 10062, 2),
194
+ (10067, 10069, 2),
195
+ (10071, 10071, 2),
196
+ (10133, 10135, 2),
197
+ (10160, 10160, 2),
198
+ (10175, 10175, 2),
199
+ (11035, 11036, 2),
200
+ (11088, 11088, 2),
201
+ (11093, 11093, 2),
202
+ (11503, 11505, 0),
203
+ (11647, 11647, 0),
204
+ (11744, 11775, 0),
205
+ (11904, 11929, 2),
206
+ (11931, 12019, 2),
207
+ (12032, 12245, 2),
208
+ (12272, 12329, 2),
209
+ (12330, 12335, 0),
210
+ (12336, 12350, 2),
211
+ (12353, 12438, 2),
212
+ (12441, 12442, 0),
213
+ (12443, 12543, 2),
214
+ (12549, 12591, 2),
215
+ (12593, 12643, 2),
216
+ (12644, 12644, 0),
217
+ (12645, 12686, 2),
218
+ (12688, 12773, 2),
219
+ (12783, 12830, 2),
220
+ (12832, 12871, 2),
221
+ (12880, 42124, 2),
222
+ (42128, 42182, 2),
223
+ (42607, 42610, 0),
224
+ (42612, 42621, 0),
225
+ (42654, 42655, 0),
226
+ (42736, 42737, 0),
227
+ (43010, 43010, 0),
228
+ (43014, 43014, 0),
229
+ (43019, 43019, 0),
230
+ (43043, 43047, 0),
231
+ (43052, 43052, 0),
232
+ (43136, 43137, 0),
233
+ (43188, 43205, 0),
234
+ (43232, 43249, 0),
235
+ (43263, 43263, 0),
236
+ (43302, 43309, 0),
237
+ (43335, 43347, 0),
238
+ (43360, 43388, 2),
239
+ (43392, 43395, 0),
240
+ (43443, 43456, 0),
241
+ (43493, 43493, 0),
242
+ (43561, 43574, 0),
243
+ (43587, 43587, 0),
244
+ (43596, 43597, 0),
245
+ (43643, 43645, 0),
246
+ (43696, 43696, 0),
247
+ (43698, 43700, 0),
248
+ (43703, 43704, 0),
249
+ (43710, 43711, 0),
250
+ (43713, 43713, 0),
251
+ (43755, 43759, 0),
252
+ (43765, 43766, 0),
253
+ (44003, 44010, 0),
254
+ (44012, 44013, 0),
255
+ (44032, 55203, 2),
256
+ (55216, 55295, 0),
257
+ (63744, 64255, 2),
258
+ (64286, 64286, 0),
259
+ (65024, 65039, 0),
260
+ (65040, 65049, 2),
261
+ (65056, 65071, 0),
262
+ (65072, 65106, 2),
263
+ (65108, 65126, 2),
264
+ (65128, 65131, 2),
265
+ (65279, 65279, 0),
266
+ (65281, 65376, 2),
267
+ (65440, 65440, 0),
268
+ (65504, 65510, 2),
269
+ (65520, 65531, 0),
270
+ (66045, 66045, 0),
271
+ (66272, 66272, 0),
272
+ (66422, 66426, 0),
273
+ (68097, 68099, 0),
274
+ (68101, 68102, 0),
275
+ (68108, 68111, 0),
276
+ (68152, 68154, 0),
277
+ (68159, 68159, 0),
278
+ (68325, 68326, 0),
279
+ (68900, 68903, 0),
280
+ (68969, 68973, 0),
281
+ (69291, 69292, 0),
282
+ (69372, 69375, 0),
283
+ (69446, 69456, 0),
284
+ (69506, 69509, 0),
285
+ (69632, 69634, 0),
286
+ (69688, 69702, 0),
287
+ (69744, 69744, 0),
288
+ (69747, 69748, 0),
289
+ (69759, 69762, 0),
290
+ (69808, 69818, 0),
291
+ (69826, 69826, 0),
292
+ (69888, 69890, 0),
293
+ (69927, 69940, 0),
294
+ (69957, 69958, 0),
295
+ (70003, 70003, 0),
296
+ (70016, 70018, 0),
297
+ (70067, 70080, 0),
298
+ (70089, 70092, 0),
299
+ (70094, 70095, 0),
300
+ (70188, 70199, 0),
301
+ (70206, 70206, 0),
302
+ (70209, 70209, 0),
303
+ (70367, 70378, 0),
304
+ (70400, 70403, 0),
305
+ (70459, 70460, 0),
306
+ (70462, 70468, 0),
307
+ (70471, 70472, 0),
308
+ (70475, 70477, 0),
309
+ (70487, 70487, 0),
310
+ (70498, 70499, 0),
311
+ (70502, 70508, 0),
312
+ (70512, 70516, 0),
313
+ (70584, 70592, 0),
314
+ (70594, 70594, 0),
315
+ (70597, 70597, 0),
316
+ (70599, 70602, 0),
317
+ (70604, 70608, 0),
318
+ (70610, 70610, 0),
319
+ (70625, 70626, 0),
320
+ (70709, 70726, 0),
321
+ (70750, 70750, 0),
322
+ (70832, 70851, 0),
323
+ (71087, 71093, 0),
324
+ (71096, 71104, 0),
325
+ (71132, 71133, 0),
326
+ (71216, 71232, 0),
327
+ (71339, 71351, 0),
328
+ (71453, 71467, 0),
329
+ (71724, 71738, 0),
330
+ (71984, 71989, 0),
331
+ (71991, 71992, 0),
332
+ (71995, 71998, 0),
333
+ (72000, 72000, 0),
334
+ (72002, 72003, 0),
335
+ (72145, 72151, 0),
336
+ (72154, 72160, 0),
337
+ (72164, 72164, 0),
338
+ (72193, 72202, 0),
339
+ (72243, 72249, 0),
340
+ (72251, 72254, 0),
341
+ (72263, 72263, 0),
342
+ (72273, 72283, 0),
343
+ (72330, 72345, 0),
344
+ (72751, 72758, 0),
345
+ (72760, 72767, 0),
346
+ (72850, 72871, 0),
347
+ (72873, 72886, 0),
348
+ (73009, 73014, 0),
349
+ (73018, 73018, 0),
350
+ (73020, 73021, 0),
351
+ (73023, 73029, 0),
352
+ (73031, 73031, 0),
353
+ (73098, 73102, 0),
354
+ (73104, 73105, 0),
355
+ (73107, 73111, 0),
356
+ (73459, 73462, 0),
357
+ (73472, 73473, 0),
358
+ (73475, 73475, 0),
359
+ (73524, 73530, 0),
360
+ (73534, 73538, 0),
361
+ (73562, 73562, 0),
362
+ (78896, 78912, 0),
363
+ (78919, 78933, 0),
364
+ (90398, 90415, 0),
365
+ (92912, 92916, 0),
366
+ (92976, 92982, 0),
367
+ (94031, 94031, 0),
368
+ (94033, 94087, 0),
369
+ (94095, 94098, 0),
370
+ (94176, 94179, 2),
371
+ (94180, 94180, 0),
372
+ (94192, 94193, 0),
373
+ (94208, 100343, 2),
374
+ (100352, 101589, 2),
375
+ (101631, 101640, 2),
376
+ (110576, 110579, 2),
377
+ (110581, 110587, 2),
378
+ (110589, 110590, 2),
379
+ (110592, 110882, 2),
380
+ (110898, 110898, 2),
381
+ (110928, 110930, 2),
382
+ (110933, 110933, 2),
383
+ (110948, 110951, 2),
384
+ (110960, 111355, 2),
385
+ (113821, 113822, 0),
386
+ (113824, 113827, 0),
387
+ (118528, 118573, 0),
388
+ (118576, 118598, 0),
389
+ (119141, 119145, 0),
390
+ (119149, 119170, 0),
391
+ (119173, 119179, 0),
392
+ (119210, 119213, 0),
393
+ (119362, 119364, 0),
394
+ (119552, 119638, 2),
395
+ (119648, 119670, 2),
396
+ (121344, 121398, 0),
397
+ (121403, 121452, 0),
398
+ (121461, 121461, 0),
399
+ (121476, 121476, 0),
400
+ (121499, 121503, 0),
401
+ (121505, 121519, 0),
402
+ (122880, 122886, 0),
403
+ (122888, 122904, 0),
404
+ (122907, 122913, 0),
405
+ (122915, 122916, 0),
406
+ (122918, 122922, 0),
407
+ (123023, 123023, 0),
408
+ (123184, 123190, 0),
409
+ (123566, 123566, 0),
410
+ (123628, 123631, 0),
411
+ (124140, 124143, 0),
412
+ (124398, 124399, 0),
413
+ (125136, 125142, 0),
414
+ (125252, 125258, 0),
415
+ (126980, 126980, 2),
416
+ (127183, 127183, 2),
417
+ (127374, 127374, 2),
418
+ (127377, 127386, 2),
419
+ (127488, 127490, 2),
420
+ (127504, 127547, 2),
421
+ (127552, 127560, 2),
422
+ (127568, 127569, 2),
423
+ (127584, 127589, 2),
424
+ (127744, 127776, 2),
425
+ (127789, 127797, 2),
426
+ (127799, 127868, 2),
427
+ (127870, 127891, 2),
428
+ (127904, 127946, 2),
429
+ (127951, 127955, 2),
430
+ (127968, 127984, 2),
431
+ (127988, 127988, 2),
432
+ (127992, 127994, 2),
433
+ (127995, 127999, 0),
434
+ (128000, 128062, 2),
435
+ (128064, 128064, 2),
436
+ (128066, 128252, 2),
437
+ (128255, 128317, 2),
438
+ (128331, 128334, 2),
439
+ (128336, 128359, 2),
440
+ (128378, 128378, 2),
441
+ (128405, 128406, 2),
442
+ (128420, 128420, 2),
443
+ (128507, 128591, 2),
444
+ (128640, 128709, 2),
445
+ (128716, 128716, 2),
446
+ (128720, 128722, 2),
447
+ (128725, 128727, 2),
448
+ (128732, 128735, 2),
449
+ (128747, 128748, 2),
450
+ (128756, 128764, 2),
451
+ (128992, 129003, 2),
452
+ (129008, 129008, 2),
453
+ (129292, 129338, 2),
454
+ (129340, 129349, 2),
455
+ (129351, 129535, 2),
456
+ (129648, 129660, 2),
457
+ (129664, 129673, 2),
458
+ (129679, 129734, 2),
459
+ (129742, 129756, 2),
460
+ (129759, 129769, 2),
461
+ (129776, 129784, 2),
462
+ (131072, 196605, 2),
463
+ (196608, 262141, 2),
464
+ (917504, 921599, 0),
465
+ ],
466
+ frozenset(
467
+ [
468
+ "#",
469
+ "*",
470
+ "0",
471
+ "1",
472
+ "2",
473
+ "3",
474
+ "4",
475
+ "5",
476
+ "6",
477
+ "7",
478
+ "8",
479
+ "9",
480
+ "©",
481
+ "®",
482
+ "‼",
483
+ "⁉",
484
+ "™",
485
+ "ℹ",
486
+ "↔",
487
+ "↕",
488
+ "↖",
489
+ "↗",
490
+ "↘",
491
+ "↙",
492
+ "↩",
493
+ "↪",
494
+ "⌨",
495
+ "⏏",
496
+ "⏭",
497
+ "⏮",
498
+ "⏯",
499
+ "⏱",
500
+ "⏲",
501
+ "⏸",
502
+ "⏹",
503
+ "⏺",
504
+ "Ⓜ",
505
+ "▪",
506
+ "▫",
507
+ "▶",
508
+ "◀",
509
+ "◻",
510
+ "◼",
511
+ "☀",
512
+ "☁",
513
+ "☂",
514
+ "☃",
515
+ "☄",
516
+ "☎",
517
+ "☑",
518
+ "☘",
519
+ "☝",
520
+ "☠",
521
+ "☢",
522
+ "☣",
523
+ "☦",
524
+ "☪",
525
+ "☮",
526
+ "☯",
527
+ "☸",
528
+ "☹",
529
+ "☺",
530
+ "♀",
531
+ "♂",
532
+ "♟",
533
+ "♠",
534
+ "♣",
535
+ "♥",
536
+ "♦",
537
+ "♨",
538
+ "♻",
539
+ "♾",
540
+ "⚒",
541
+ "⚔",
542
+ "⚕",
543
+ "⚖",
544
+ "⚗",
545
+ "⚙",
546
+ "⚛",
547
+ "⚜",
548
+ "⚠",
549
+ "⚧",
550
+ "⚰",
551
+ "⚱",
552
+ "⛈",
553
+ "⛏",
554
+ "⛑",
555
+ "⛓",
556
+ "⛩",
557
+ "⛰",
558
+ "⛱",
559
+ "⛴",
560
+ "⛷",
561
+ "⛸",
562
+ "⛹",
563
+ "✂",
564
+ "✈",
565
+ "✉",
566
+ "✌",
567
+ "✍",
568
+ "✏",
569
+ "✒",
570
+ "✔",
571
+ "✖",
572
+ "✝",
573
+ "✡",
574
+ "✳",
575
+ "✴",
576
+ "❄",
577
+ "❇",
578
+ "❣",
579
+ "❤",
580
+ "➡",
581
+ "⤴",
582
+ "⤵",
583
+ "⬅",
584
+ "⬆",
585
+ "⬇",
586
+ "🅰",
587
+ "🅱",
588
+ "🅾",
589
+ "🅿",
590
+ "🌡",
591
+ "🌤",
592
+ "🌥",
593
+ "🌦",
594
+ "🌧",
595
+ "🌨",
596
+ "🌩",
597
+ "🌪",
598
+ "🌫",
599
+ "🌬",
600
+ "🌶",
601
+ "🍽",
602
+ "🎖",
603
+ "🎗",
604
+ "🎙",
605
+ "🎚",
606
+ "🎛",
607
+ "🎞",
608
+ "🎟",
609
+ "🏋",
610
+ "🏌",
611
+ "🏍",
612
+ "🏎",
613
+ "🏔",
614
+ "🏕",
615
+ "🏖",
616
+ "🏗",
617
+ "🏘",
618
+ "🏙",
619
+ "🏚",
620
+ "🏛",
621
+ "🏜",
622
+ "🏝",
623
+ "🏞",
624
+ "🏟",
625
+ "🏳",
626
+ "🏵",
627
+ "🏷",
628
+ "🐿",
629
+ "👁",
630
+ "📽",
631
+ "🕉",
632
+ "🕊",
633
+ "🕯",
634
+ "🕰",
635
+ "🕳",
636
+ "🕴",
637
+ "🕵",
638
+ "🕶",
639
+ "🕷",
640
+ "🕸",
641
+ "🕹",
642
+ "🖇",
643
+ "🖊",
644
+ "🖋",
645
+ "🖌",
646
+ "🖍",
647
+ "🖐",
648
+ "🖥",
649
+ "🖨",
650
+ "🖱",
651
+ "🖲",
652
+ "🖼",
653
+ "🗂",
654
+ "🗃",
655
+ "🗄",
656
+ "🗑",
657
+ "🗒",
658
+ "🗓",
659
+ "🗜",
660
+ "🗝",
661
+ "🗞",
662
+ "🗡",
663
+ "🗣",
664
+ "🗨",
665
+ "🗯",
666
+ "🗳",
667
+ "🗺",
668
+ "🛋",
669
+ "🛍",
670
+ "🛎",
671
+ "🛏",
672
+ "🛠",
673
+ "🛡",
674
+ "🛢",
675
+ "🛣",
676
+ "🛤",
677
+ "🛥",
678
+ "🛩",
679
+ "🛰",
680
+ "🛳",
681
+ ]
682
+ ),
683
+ )
venv/lib/python3.11/site-packages/rich/_unicode_data/unicode17-0-0.py ADDED
@@ -0,0 +1,691 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Auto generated by tools/make_width_tables.py
2
+ # Data from wcwidth project (https://github.com/jquast/wcwidth)
3
+
4
+ from rich.cells import CellTable
5
+
6
+ cell_table = CellTable(
7
+ "17.0.0",
8
+ [
9
+ (0, 0, 0),
10
+ (768, 879, 0),
11
+ (1155, 1161, 0),
12
+ (1425, 1469, 0),
13
+ (1471, 1471, 0),
14
+ (1473, 1474, 0),
15
+ (1476, 1477, 0),
16
+ (1479, 1479, 0),
17
+ (1552, 1562, 0),
18
+ (1564, 1564, 0),
19
+ (1611, 1631, 0),
20
+ (1648, 1648, 0),
21
+ (1750, 1756, 0),
22
+ (1759, 1764, 0),
23
+ (1767, 1768, 0),
24
+ (1770, 1773, 0),
25
+ (1809, 1809, 0),
26
+ (1840, 1866, 0),
27
+ (1958, 1968, 0),
28
+ (2027, 2035, 0),
29
+ (2045, 2045, 0),
30
+ (2070, 2073, 0),
31
+ (2075, 2083, 0),
32
+ (2085, 2087, 0),
33
+ (2089, 2093, 0),
34
+ (2137, 2139, 0),
35
+ (2199, 2207, 0),
36
+ (2250, 2273, 0),
37
+ (2275, 2307, 0),
38
+ (2362, 2364, 0),
39
+ (2366, 2383, 0),
40
+ (2385, 2391, 0),
41
+ (2402, 2403, 0),
42
+ (2433, 2435, 0),
43
+ (2492, 2492, 0),
44
+ (2494, 2500, 0),
45
+ (2503, 2504, 0),
46
+ (2507, 2509, 0),
47
+ (2519, 2519, 0),
48
+ (2530, 2531, 0),
49
+ (2558, 2558, 0),
50
+ (2561, 2563, 0),
51
+ (2620, 2620, 0),
52
+ (2622, 2626, 0),
53
+ (2631, 2632, 0),
54
+ (2635, 2637, 0),
55
+ (2641, 2641, 0),
56
+ (2672, 2673, 0),
57
+ (2677, 2677, 0),
58
+ (2689, 2691, 0),
59
+ (2748, 2748, 0),
60
+ (2750, 2757, 0),
61
+ (2759, 2761, 0),
62
+ (2763, 2765, 0),
63
+ (2786, 2787, 0),
64
+ (2810, 2815, 0),
65
+ (2817, 2819, 0),
66
+ (2876, 2876, 0),
67
+ (2878, 2884, 0),
68
+ (2887, 2888, 0),
69
+ (2891, 2893, 0),
70
+ (2901, 2903, 0),
71
+ (2914, 2915, 0),
72
+ (2946, 2946, 0),
73
+ (3006, 3010, 0),
74
+ (3014, 3016, 0),
75
+ (3018, 3021, 0),
76
+ (3031, 3031, 0),
77
+ (3072, 3076, 0),
78
+ (3132, 3132, 0),
79
+ (3134, 3140, 0),
80
+ (3142, 3144, 0),
81
+ (3146, 3149, 0),
82
+ (3157, 3158, 0),
83
+ (3170, 3171, 0),
84
+ (3201, 3203, 0),
85
+ (3260, 3260, 0),
86
+ (3262, 3268, 0),
87
+ (3270, 3272, 0),
88
+ (3274, 3277, 0),
89
+ (3285, 3286, 0),
90
+ (3298, 3299, 0),
91
+ (3315, 3315, 0),
92
+ (3328, 3331, 0),
93
+ (3387, 3388, 0),
94
+ (3390, 3396, 0),
95
+ (3398, 3400, 0),
96
+ (3402, 3405, 0),
97
+ (3415, 3415, 0),
98
+ (3426, 3427, 0),
99
+ (3457, 3459, 0),
100
+ (3530, 3530, 0),
101
+ (3535, 3540, 0),
102
+ (3542, 3542, 0),
103
+ (3544, 3551, 0),
104
+ (3570, 3571, 0),
105
+ (3633, 3633, 0),
106
+ (3636, 3642, 0),
107
+ (3655, 3662, 0),
108
+ (3761, 3761, 0),
109
+ (3764, 3772, 0),
110
+ (3784, 3790, 0),
111
+ (3864, 3865, 0),
112
+ (3893, 3893, 0),
113
+ (3895, 3895, 0),
114
+ (3897, 3897, 0),
115
+ (3902, 3903, 0),
116
+ (3953, 3972, 0),
117
+ (3974, 3975, 0),
118
+ (3981, 3991, 0),
119
+ (3993, 4028, 0),
120
+ (4038, 4038, 0),
121
+ (4139, 4158, 0),
122
+ (4182, 4185, 0),
123
+ (4190, 4192, 0),
124
+ (4194, 4196, 0),
125
+ (4199, 4205, 0),
126
+ (4209, 4212, 0),
127
+ (4226, 4237, 0),
128
+ (4239, 4239, 0),
129
+ (4250, 4253, 0),
130
+ (4352, 4447, 2),
131
+ (4448, 4607, 0),
132
+ (4957, 4959, 0),
133
+ (5906, 5909, 0),
134
+ (5938, 5940, 0),
135
+ (5970, 5971, 0),
136
+ (6002, 6003, 0),
137
+ (6068, 6099, 0),
138
+ (6109, 6109, 0),
139
+ (6155, 6159, 0),
140
+ (6277, 6278, 0),
141
+ (6313, 6313, 0),
142
+ (6432, 6443, 0),
143
+ (6448, 6459, 0),
144
+ (6679, 6683, 0),
145
+ (6741, 6750, 0),
146
+ (6752, 6780, 0),
147
+ (6783, 6783, 0),
148
+ (6832, 6877, 0),
149
+ (6880, 6891, 0),
150
+ (6912, 6916, 0),
151
+ (6964, 6980, 0),
152
+ (7019, 7027, 0),
153
+ (7040, 7042, 0),
154
+ (7073, 7085, 0),
155
+ (7142, 7155, 0),
156
+ (7204, 7223, 0),
157
+ (7376, 7378, 0),
158
+ (7380, 7400, 0),
159
+ (7405, 7405, 0),
160
+ (7412, 7412, 0),
161
+ (7415, 7417, 0),
162
+ (7616, 7679, 0),
163
+ (8203, 8207, 0),
164
+ (8232, 8238, 0),
165
+ (8288, 8303, 0),
166
+ (8400, 8432, 0),
167
+ (8986, 8987, 2),
168
+ (9001, 9002, 2),
169
+ (9193, 9196, 2),
170
+ (9200, 9200, 2),
171
+ (9203, 9203, 2),
172
+ (9725, 9726, 2),
173
+ (9748, 9749, 2),
174
+ (9776, 9783, 2),
175
+ (9800, 9811, 2),
176
+ (9855, 9855, 2),
177
+ (9866, 9871, 2),
178
+ (9875, 9875, 2),
179
+ (9889, 9889, 2),
180
+ (9898, 9899, 2),
181
+ (9917, 9918, 2),
182
+ (9924, 9925, 2),
183
+ (9934, 9934, 2),
184
+ (9940, 9940, 2),
185
+ (9962, 9962, 2),
186
+ (9970, 9971, 2),
187
+ (9973, 9973, 2),
188
+ (9978, 9978, 2),
189
+ (9981, 9981, 2),
190
+ (9989, 9989, 2),
191
+ (9994, 9995, 2),
192
+ (10024, 10024, 2),
193
+ (10060, 10060, 2),
194
+ (10062, 10062, 2),
195
+ (10067, 10069, 2),
196
+ (10071, 10071, 2),
197
+ (10133, 10135, 2),
198
+ (10160, 10160, 2),
199
+ (10175, 10175, 2),
200
+ (11035, 11036, 2),
201
+ (11088, 11088, 2),
202
+ (11093, 11093, 2),
203
+ (11503, 11505, 0),
204
+ (11647, 11647, 0),
205
+ (11744, 11775, 0),
206
+ (11904, 11929, 2),
207
+ (11931, 12019, 2),
208
+ (12032, 12245, 2),
209
+ (12272, 12329, 2),
210
+ (12330, 12335, 0),
211
+ (12336, 12350, 2),
212
+ (12353, 12438, 2),
213
+ (12441, 12442, 0),
214
+ (12443, 12543, 2),
215
+ (12549, 12591, 2),
216
+ (12593, 12643, 2),
217
+ (12644, 12644, 0),
218
+ (12645, 12686, 2),
219
+ (12688, 12773, 2),
220
+ (12783, 12830, 2),
221
+ (12832, 12871, 2),
222
+ (12880, 42124, 2),
223
+ (42128, 42182, 2),
224
+ (42607, 42610, 0),
225
+ (42612, 42621, 0),
226
+ (42654, 42655, 0),
227
+ (42736, 42737, 0),
228
+ (43010, 43010, 0),
229
+ (43014, 43014, 0),
230
+ (43019, 43019, 0),
231
+ (43043, 43047, 0),
232
+ (43052, 43052, 0),
233
+ (43136, 43137, 0),
234
+ (43188, 43205, 0),
235
+ (43232, 43249, 0),
236
+ (43263, 43263, 0),
237
+ (43302, 43309, 0),
238
+ (43335, 43347, 0),
239
+ (43360, 43388, 2),
240
+ (43392, 43395, 0),
241
+ (43443, 43456, 0),
242
+ (43493, 43493, 0),
243
+ (43561, 43574, 0),
244
+ (43587, 43587, 0),
245
+ (43596, 43597, 0),
246
+ (43643, 43645, 0),
247
+ (43696, 43696, 0),
248
+ (43698, 43700, 0),
249
+ (43703, 43704, 0),
250
+ (43710, 43711, 0),
251
+ (43713, 43713, 0),
252
+ (43755, 43759, 0),
253
+ (43765, 43766, 0),
254
+ (44003, 44010, 0),
255
+ (44012, 44013, 0),
256
+ (44032, 55203, 2),
257
+ (55216, 55295, 0),
258
+ (63744, 64255, 2),
259
+ (64286, 64286, 0),
260
+ (65024, 65039, 0),
261
+ (65040, 65049, 2),
262
+ (65056, 65071, 0),
263
+ (65072, 65106, 2),
264
+ (65108, 65126, 2),
265
+ (65128, 65131, 2),
266
+ (65279, 65279, 0),
267
+ (65281, 65376, 2),
268
+ (65440, 65440, 0),
269
+ (65504, 65510, 2),
270
+ (65520, 65531, 0),
271
+ (66045, 66045, 0),
272
+ (66272, 66272, 0),
273
+ (66422, 66426, 0),
274
+ (68097, 68099, 0),
275
+ (68101, 68102, 0),
276
+ (68108, 68111, 0),
277
+ (68152, 68154, 0),
278
+ (68159, 68159, 0),
279
+ (68325, 68326, 0),
280
+ (68900, 68903, 0),
281
+ (68969, 68973, 0),
282
+ (69291, 69292, 0),
283
+ (69370, 69375, 0),
284
+ (69446, 69456, 0),
285
+ (69506, 69509, 0),
286
+ (69632, 69634, 0),
287
+ (69688, 69702, 0),
288
+ (69744, 69744, 0),
289
+ (69747, 69748, 0),
290
+ (69759, 69762, 0),
291
+ (69808, 69818, 0),
292
+ (69826, 69826, 0),
293
+ (69888, 69890, 0),
294
+ (69927, 69940, 0),
295
+ (69957, 69958, 0),
296
+ (70003, 70003, 0),
297
+ (70016, 70018, 0),
298
+ (70067, 70080, 0),
299
+ (70089, 70092, 0),
300
+ (70094, 70095, 0),
301
+ (70188, 70199, 0),
302
+ (70206, 70206, 0),
303
+ (70209, 70209, 0),
304
+ (70367, 70378, 0),
305
+ (70400, 70403, 0),
306
+ (70459, 70460, 0),
307
+ (70462, 70468, 0),
308
+ (70471, 70472, 0),
309
+ (70475, 70477, 0),
310
+ (70487, 70487, 0),
311
+ (70498, 70499, 0),
312
+ (70502, 70508, 0),
313
+ (70512, 70516, 0),
314
+ (70584, 70592, 0),
315
+ (70594, 70594, 0),
316
+ (70597, 70597, 0),
317
+ (70599, 70602, 0),
318
+ (70604, 70608, 0),
319
+ (70610, 70610, 0),
320
+ (70625, 70626, 0),
321
+ (70709, 70726, 0),
322
+ (70750, 70750, 0),
323
+ (70832, 70851, 0),
324
+ (71087, 71093, 0),
325
+ (71096, 71104, 0),
326
+ (71132, 71133, 0),
327
+ (71216, 71232, 0),
328
+ (71339, 71351, 0),
329
+ (71453, 71467, 0),
330
+ (71724, 71738, 0),
331
+ (71984, 71989, 0),
332
+ (71991, 71992, 0),
333
+ (71995, 71998, 0),
334
+ (72000, 72000, 0),
335
+ (72002, 72003, 0),
336
+ (72145, 72151, 0),
337
+ (72154, 72160, 0),
338
+ (72164, 72164, 0),
339
+ (72193, 72202, 0),
340
+ (72243, 72249, 0),
341
+ (72251, 72254, 0),
342
+ (72263, 72263, 0),
343
+ (72273, 72283, 0),
344
+ (72330, 72345, 0),
345
+ (72544, 72551, 0),
346
+ (72751, 72758, 0),
347
+ (72760, 72767, 0),
348
+ (72850, 72871, 0),
349
+ (72873, 72886, 0),
350
+ (73009, 73014, 0),
351
+ (73018, 73018, 0),
352
+ (73020, 73021, 0),
353
+ (73023, 73029, 0),
354
+ (73031, 73031, 0),
355
+ (73098, 73102, 0),
356
+ (73104, 73105, 0),
357
+ (73107, 73111, 0),
358
+ (73459, 73462, 0),
359
+ (73472, 73473, 0),
360
+ (73475, 73475, 0),
361
+ (73524, 73530, 0),
362
+ (73534, 73538, 0),
363
+ (73562, 73562, 0),
364
+ (78896, 78912, 0),
365
+ (78919, 78933, 0),
366
+ (90398, 90415, 0),
367
+ (92912, 92916, 0),
368
+ (92976, 92982, 0),
369
+ (94031, 94031, 0),
370
+ (94033, 94087, 0),
371
+ (94095, 94098, 0),
372
+ (94176, 94179, 2),
373
+ (94180, 94180, 0),
374
+ (94192, 94193, 0),
375
+ (94194, 94198, 2),
376
+ (94208, 101589, 2),
377
+ (101631, 101662, 2),
378
+ (101760, 101874, 2),
379
+ (110576, 110579, 2),
380
+ (110581, 110587, 2),
381
+ (110589, 110590, 2),
382
+ (110592, 110882, 2),
383
+ (110898, 110898, 2),
384
+ (110928, 110930, 2),
385
+ (110933, 110933, 2),
386
+ (110948, 110951, 2),
387
+ (110960, 111355, 2),
388
+ (113821, 113822, 0),
389
+ (113824, 113827, 0),
390
+ (118528, 118573, 0),
391
+ (118576, 118598, 0),
392
+ (119141, 119145, 0),
393
+ (119149, 119170, 0),
394
+ (119173, 119179, 0),
395
+ (119210, 119213, 0),
396
+ (119362, 119364, 0),
397
+ (119552, 119638, 2),
398
+ (119648, 119670, 2),
399
+ (121344, 121398, 0),
400
+ (121403, 121452, 0),
401
+ (121461, 121461, 0),
402
+ (121476, 121476, 0),
403
+ (121499, 121503, 0),
404
+ (121505, 121519, 0),
405
+ (122880, 122886, 0),
406
+ (122888, 122904, 0),
407
+ (122907, 122913, 0),
408
+ (122915, 122916, 0),
409
+ (122918, 122922, 0),
410
+ (123023, 123023, 0),
411
+ (123184, 123190, 0),
412
+ (123566, 123566, 0),
413
+ (123628, 123631, 0),
414
+ (124140, 124143, 0),
415
+ (124398, 124399, 0),
416
+ (124643, 124643, 0),
417
+ (124646, 124646, 0),
418
+ (124654, 124655, 0),
419
+ (124661, 124661, 0),
420
+ (125136, 125142, 0),
421
+ (125252, 125258, 0),
422
+ (126980, 126980, 2),
423
+ (127183, 127183, 2),
424
+ (127374, 127374, 2),
425
+ (127377, 127386, 2),
426
+ (127488, 127490, 2),
427
+ (127504, 127547, 2),
428
+ (127552, 127560, 2),
429
+ (127568, 127569, 2),
430
+ (127584, 127589, 2),
431
+ (127744, 127776, 2),
432
+ (127789, 127797, 2),
433
+ (127799, 127868, 2),
434
+ (127870, 127891, 2),
435
+ (127904, 127946, 2),
436
+ (127951, 127955, 2),
437
+ (127968, 127984, 2),
438
+ (127988, 127988, 2),
439
+ (127992, 127994, 2),
440
+ (127995, 127999, 0),
441
+ (128000, 128062, 2),
442
+ (128064, 128064, 2),
443
+ (128066, 128252, 2),
444
+ (128255, 128317, 2),
445
+ (128331, 128334, 2),
446
+ (128336, 128359, 2),
447
+ (128378, 128378, 2),
448
+ (128405, 128406, 2),
449
+ (128420, 128420, 2),
450
+ (128507, 128591, 2),
451
+ (128640, 128709, 2),
452
+ (128716, 128716, 2),
453
+ (128720, 128722, 2),
454
+ (128725, 128728, 2),
455
+ (128732, 128735, 2),
456
+ (128747, 128748, 2),
457
+ (128756, 128764, 2),
458
+ (128992, 129003, 2),
459
+ (129008, 129008, 2),
460
+ (129292, 129338, 2),
461
+ (129340, 129349, 2),
462
+ (129351, 129535, 2),
463
+ (129648, 129660, 2),
464
+ (129664, 129674, 2),
465
+ (129678, 129734, 2),
466
+ (129736, 129736, 2),
467
+ (129741, 129756, 2),
468
+ (129759, 129770, 2),
469
+ (129775, 129784, 2),
470
+ (131072, 196605, 2),
471
+ (196608, 262141, 2),
472
+ (917504, 921599, 0),
473
+ ],
474
+ frozenset(
475
+ [
476
+ "#",
477
+ "*",
478
+ "0",
479
+ "1",
480
+ "2",
481
+ "3",
482
+ "4",
483
+ "5",
484
+ "6",
485
+ "7",
486
+ "8",
487
+ "9",
488
+ "©",
489
+ "®",
490
+ "‼",
491
+ "⁉",
492
+ "™",
493
+ "ℹ",
494
+ "↔",
495
+ "↕",
496
+ "↖",
497
+ "↗",
498
+ "↘",
499
+ "↙",
500
+ "↩",
501
+ "↪",
502
+ "⌨",
503
+ "⏏",
504
+ "⏭",
505
+ "⏮",
506
+ "⏯",
507
+ "⏱",
508
+ "⏲",
509
+ "⏸",
510
+ "⏹",
511
+ "⏺",
512
+ "Ⓜ",
513
+ "▪",
514
+ "▫",
515
+ "▶",
516
+ "◀",
517
+ "◻",
518
+ "◼",
519
+ "☀",
520
+ "☁",
521
+ "☂",
522
+ "☃",
523
+ "☄",
524
+ "☎",
525
+ "☑",
526
+ "☘",
527
+ "☝",
528
+ "☠",
529
+ "☢",
530
+ "☣",
531
+ "☦",
532
+ "☪",
533
+ "☮",
534
+ "☯",
535
+ "☸",
536
+ "☹",
537
+ "☺",
538
+ "♀",
539
+ "♂",
540
+ "♟",
541
+ "♠",
542
+ "♣",
543
+ "♥",
544
+ "♦",
545
+ "♨",
546
+ "♻",
547
+ "♾",
548
+ "⚒",
549
+ "⚔",
550
+ "⚕",
551
+ "⚖",
552
+ "⚗",
553
+ "⚙",
554
+ "⚛",
555
+ "⚜",
556
+ "⚠",
557
+ "⚧",
558
+ "⚰",
559
+ "⚱",
560
+ "⛈",
561
+ "⛏",
562
+ "⛑",
563
+ "⛓",
564
+ "⛩",
565
+ "⛰",
566
+ "⛱",
567
+ "⛴",
568
+ "⛷",
569
+ "⛸",
570
+ "⛹",
571
+ "✂",
572
+ "✈",
573
+ "✉",
574
+ "✌",
575
+ "✍",
576
+ "✏",
577
+ "✒",
578
+ "✔",
579
+ "✖",
580
+ "✝",
581
+ "✡",
582
+ "✳",
583
+ "✴",
584
+ "❄",
585
+ "❇",
586
+ "❣",
587
+ "❤",
588
+ "➡",
589
+ "⤴",
590
+ "⤵",
591
+ "⬅",
592
+ "⬆",
593
+ "⬇",
594
+ "🅰",
595
+ "🅱",
596
+ "🅾",
597
+ "🅿",
598
+ "🌡",
599
+ "🌤",
600
+ "🌥",
601
+ "🌦",
602
+ "🌧",
603
+ "🌨",
604
+ "🌩",
605
+ "🌪",
606
+ "🌫",
607
+ "🌬",
608
+ "🌶",
609
+ "🍽",
610
+ "🎖",
611
+ "🎗",
612
+ "🎙",
613
+ "🎚",
614
+ "🎛",
615
+ "🎞",
616
+ "🎟",
617
+ "🏋",
618
+ "🏌",
619
+ "🏍",
620
+ "🏎",
621
+ "🏔",
622
+ "🏕",
623
+ "🏖",
624
+ "🏗",
625
+ "🏘",
626
+ "🏙",
627
+ "🏚",
628
+ "🏛",
629
+ "🏜",
630
+ "🏝",
631
+ "🏞",
632
+ "🏟",
633
+ "🏳",
634
+ "🏵",
635
+ "🏷",
636
+ "🐿",
637
+ "👁",
638
+ "📽",
639
+ "🕉",
640
+ "🕊",
641
+ "🕯",
642
+ "🕰",
643
+ "🕳",
644
+ "🕴",
645
+ "🕵",
646
+ "🕶",
647
+ "🕷",
648
+ "🕸",
649
+ "🕹",
650
+ "🖇",
651
+ "🖊",
652
+ "🖋",
653
+ "🖌",
654
+ "🖍",
655
+ "🖐",
656
+ "🖥",
657
+ "🖨",
658
+ "🖱",
659
+ "🖲",
660
+ "🖼",
661
+ "🗂",
662
+ "🗃",
663
+ "🗄",
664
+ "🗑",
665
+ "🗒",
666
+ "🗓",
667
+ "🗜",
668
+ "🗝",
669
+ "🗞",
670
+ "🗡",
671
+ "🗣",
672
+ "🗨",
673
+ "🗯",
674
+ "🗳",
675
+ "🗺",
676
+ "🛋",
677
+ "🛍",
678
+ "🛎",
679
+ "🛏",
680
+ "🛠",
681
+ "🛡",
682
+ "🛢",
683
+ "🛣",
684
+ "🛤",
685
+ "🛥",
686
+ "🛩",
687
+ "🛰",
688
+ "🛳",
689
+ ]
690
+ ),
691
+ )
venv/lib/python3.11/site-packages/rich/_unicode_data/unicode4-1-0.py ADDED
@@ -0,0 +1,425 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Auto generated by tools/make_width_tables.py
2
+ # Data from wcwidth project (https://github.com/jquast/wcwidth)
3
+
4
+ from rich.cells import CellTable
5
+
6
+ cell_table = CellTable(
7
+ "4.1.0",
8
+ [
9
+ (0, 8, 0),
10
+ (14, 31, 0),
11
+ (127, 132, 0),
12
+ (134, 159, 0),
13
+ (768, 879, 0),
14
+ (1155, 1158, 0),
15
+ (1160, 1161, 0),
16
+ (1425, 1465, 0),
17
+ (1467, 1469, 0),
18
+ (1471, 1471, 0),
19
+ (1473, 1474, 0),
20
+ (1476, 1477, 0),
21
+ (1479, 1479, 0),
22
+ (1536, 1539, 0),
23
+ (1552, 1557, 0),
24
+ (1611, 1630, 0),
25
+ (1648, 1648, 0),
26
+ (1750, 1764, 0),
27
+ (1767, 1768, 0),
28
+ (1770, 1773, 0),
29
+ (1807, 1807, 0),
30
+ (1809, 1809, 0),
31
+ (1840, 1866, 0),
32
+ (1958, 1968, 0),
33
+ (2305, 2307, 0),
34
+ (2364, 2364, 0),
35
+ (2366, 2381, 0),
36
+ (2385, 2388, 0),
37
+ (2402, 2403, 0),
38
+ (2433, 2435, 0),
39
+ (2492, 2492, 0),
40
+ (2494, 2500, 0),
41
+ (2503, 2504, 0),
42
+ (2507, 2509, 0),
43
+ (2519, 2519, 0),
44
+ (2530, 2531, 0),
45
+ (2561, 2563, 0),
46
+ (2620, 2620, 0),
47
+ (2622, 2626, 0),
48
+ (2631, 2632, 0),
49
+ (2635, 2637, 0),
50
+ (2672, 2673, 0),
51
+ (2689, 2691, 0),
52
+ (2748, 2748, 0),
53
+ (2750, 2757, 0),
54
+ (2759, 2761, 0),
55
+ (2763, 2765, 0),
56
+ (2786, 2787, 0),
57
+ (2817, 2819, 0),
58
+ (2876, 2876, 0),
59
+ (2878, 2883, 0),
60
+ (2887, 2888, 0),
61
+ (2891, 2893, 0),
62
+ (2902, 2903, 0),
63
+ (2946, 2946, 0),
64
+ (3006, 3010, 0),
65
+ (3014, 3016, 0),
66
+ (3018, 3021, 0),
67
+ (3031, 3031, 0),
68
+ (3073, 3075, 0),
69
+ (3134, 3140, 0),
70
+ (3142, 3144, 0),
71
+ (3146, 3149, 0),
72
+ (3157, 3158, 0),
73
+ (3202, 3203, 0),
74
+ (3260, 3260, 0),
75
+ (3262, 3268, 0),
76
+ (3270, 3272, 0),
77
+ (3274, 3277, 0),
78
+ (3285, 3286, 0),
79
+ (3330, 3331, 0),
80
+ (3390, 3395, 0),
81
+ (3398, 3400, 0),
82
+ (3402, 3405, 0),
83
+ (3415, 3415, 0),
84
+ (3458, 3459, 0),
85
+ (3530, 3530, 0),
86
+ (3535, 3540, 0),
87
+ (3542, 3542, 0),
88
+ (3544, 3551, 0),
89
+ (3570, 3571, 0),
90
+ (3633, 3633, 0),
91
+ (3636, 3642, 0),
92
+ (3655, 3662, 0),
93
+ (3761, 3761, 0),
94
+ (3764, 3769, 0),
95
+ (3771, 3772, 0),
96
+ (3784, 3789, 0),
97
+ (3864, 3865, 0),
98
+ (3893, 3893, 0),
99
+ (3895, 3895, 0),
100
+ (3897, 3897, 0),
101
+ (3902, 3903, 0),
102
+ (3953, 3972, 0),
103
+ (3974, 3975, 0),
104
+ (3984, 3991, 0),
105
+ (3993, 4028, 0),
106
+ (4038, 4038, 0),
107
+ (4140, 4146, 0),
108
+ (4150, 4153, 0),
109
+ (4182, 4185, 0),
110
+ (4352, 4441, 2),
111
+ (4447, 4447, 2),
112
+ (4448, 4607, 0),
113
+ (4959, 4959, 0),
114
+ (5906, 5908, 0),
115
+ (5938, 5940, 0),
116
+ (5970, 5971, 0),
117
+ (6002, 6003, 0),
118
+ (6068, 6099, 0),
119
+ (6109, 6109, 0),
120
+ (6155, 6157, 0),
121
+ (6313, 6313, 0),
122
+ (6432, 6443, 0),
123
+ (6448, 6459, 0),
124
+ (6576, 6592, 0),
125
+ (6600, 6601, 0),
126
+ (6679, 6683, 0),
127
+ (7616, 7619, 0),
128
+ (8203, 8207, 0),
129
+ (8232, 8238, 0),
130
+ (8288, 8303, 0),
131
+ (8400, 8427, 0),
132
+ (9001, 9002, 2),
133
+ (11904, 11929, 2),
134
+ (11931, 12019, 2),
135
+ (12032, 12245, 2),
136
+ (12272, 12283, 2),
137
+ (12288, 12329, 2),
138
+ (12330, 12335, 0),
139
+ (12336, 12350, 2),
140
+ (12353, 12438, 2),
141
+ (12441, 12442, 0),
142
+ (12443, 12543, 2),
143
+ (12549, 12588, 2),
144
+ (12593, 12643, 2),
145
+ (12644, 12644, 0),
146
+ (12645, 12686, 2),
147
+ (12688, 12727, 2),
148
+ (12736, 12751, 2),
149
+ (12784, 12830, 2),
150
+ (12832, 12867, 2),
151
+ (12880, 13054, 2),
152
+ (13056, 19893, 2),
153
+ (19968, 40891, 2),
154
+ (40960, 42124, 2),
155
+ (42128, 42182, 2),
156
+ (43010, 43010, 0),
157
+ (43014, 43014, 0),
158
+ (43019, 43019, 0),
159
+ (43043, 43047, 0),
160
+ (44032, 55203, 2),
161
+ (55216, 57343, 0),
162
+ (63744, 64045, 2),
163
+ (64048, 64106, 2),
164
+ (64112, 64217, 2),
165
+ (64286, 64286, 0),
166
+ (64976, 65007, 0),
167
+ (65024, 65039, 0),
168
+ (65040, 65049, 2),
169
+ (65056, 65059, 0),
170
+ (65072, 65106, 2),
171
+ (65108, 65126, 2),
172
+ (65128, 65131, 2),
173
+ (65279, 65279, 0),
174
+ (65281, 65376, 2),
175
+ (65440, 65440, 0),
176
+ (65504, 65510, 2),
177
+ (65520, 65531, 0),
178
+ (65534, 65535, 0),
179
+ (68097, 68099, 0),
180
+ (68101, 68102, 0),
181
+ (68108, 68111, 0),
182
+ (68152, 68154, 0),
183
+ (68159, 68159, 0),
184
+ (119141, 119145, 0),
185
+ (119149, 119170, 0),
186
+ (119173, 119179, 0),
187
+ (119210, 119213, 0),
188
+ (119362, 119364, 0),
189
+ (131070, 131071, 0),
190
+ (131072, 196605, 2),
191
+ (196606, 196607, 0),
192
+ (196608, 262141, 2),
193
+ (262142, 262143, 0),
194
+ (327678, 327679, 0),
195
+ (393214, 393215, 0),
196
+ (458750, 458751, 0),
197
+ (524286, 524287, 0),
198
+ (589822, 589823, 0),
199
+ (655358, 655359, 0),
200
+ (720894, 720895, 0),
201
+ (786430, 786431, 0),
202
+ (851966, 851967, 0),
203
+ (917502, 921599, 0),
204
+ (983038, 983039, 0),
205
+ (1048574, 1048575, 0),
206
+ (1114110, 1114111, 0),
207
+ ],
208
+ frozenset(
209
+ [
210
+ "#",
211
+ "*",
212
+ "0",
213
+ "1",
214
+ "2",
215
+ "3",
216
+ "4",
217
+ "5",
218
+ "6",
219
+ "7",
220
+ "8",
221
+ "9",
222
+ "©",
223
+ "®",
224
+ "‼",
225
+ "⁉",
226
+ "™",
227
+ "ℹ",
228
+ "↔",
229
+ "↕",
230
+ "↖",
231
+ "↗",
232
+ "↘",
233
+ "↙",
234
+ "↩",
235
+ "↪",
236
+ "⌨",
237
+ "⏏",
238
+ "⏭",
239
+ "⏮",
240
+ "⏯",
241
+ "⏱",
242
+ "⏲",
243
+ "⏸",
244
+ "⏹",
245
+ "⏺",
246
+ "Ⓜ",
247
+ "▪",
248
+ "▫",
249
+ "▶",
250
+ "◀",
251
+ "◻",
252
+ "◼",
253
+ "☀",
254
+ "☁",
255
+ "☂",
256
+ "☃",
257
+ "☄",
258
+ "☎",
259
+ "☑",
260
+ "☘",
261
+ "☝",
262
+ "☠",
263
+ "☢",
264
+ "☣",
265
+ "☦",
266
+ "☪",
267
+ "☮",
268
+ "☯",
269
+ "☸",
270
+ "☹",
271
+ "☺",
272
+ "♀",
273
+ "♂",
274
+ "♟",
275
+ "♠",
276
+ "♣",
277
+ "♥",
278
+ "♦",
279
+ "♨",
280
+ "♻",
281
+ "♾",
282
+ "⚒",
283
+ "⚔",
284
+ "⚕",
285
+ "⚖",
286
+ "⚗",
287
+ "⚙",
288
+ "⚛",
289
+ "⚜",
290
+ "⚠",
291
+ "⚧",
292
+ "⚰",
293
+ "⚱",
294
+ "⛈",
295
+ "⛏",
296
+ "⛑",
297
+ "⛓",
298
+ "⛩",
299
+ "⛰",
300
+ "⛱",
301
+ "⛴",
302
+ "⛷",
303
+ "⛸",
304
+ "⛹",
305
+ "✂",
306
+ "✈",
307
+ "✉",
308
+ "✌",
309
+ "✍",
310
+ "✏",
311
+ "✒",
312
+ "✔",
313
+ "✖",
314
+ "✝",
315
+ "✡",
316
+ "✳",
317
+ "✴",
318
+ "❄",
319
+ "❇",
320
+ "❣",
321
+ "❤",
322
+ "➡",
323
+ "⤴",
324
+ "⤵",
325
+ "⬅",
326
+ "⬆",
327
+ "⬇",
328
+ "🅰",
329
+ "🅱",
330
+ "🅾",
331
+ "🅿",
332
+ "🌡",
333
+ "🌤",
334
+ "🌥",
335
+ "🌦",
336
+ "🌧",
337
+ "🌨",
338
+ "🌩",
339
+ "🌪",
340
+ "🌫",
341
+ "🌬",
342
+ "🌶",
343
+ "🍽",
344
+ "🎖",
345
+ "🎗",
346
+ "🎙",
347
+ "🎚",
348
+ "🎛",
349
+ "🎞",
350
+ "🎟",
351
+ "🏋",
352
+ "🏌",
353
+ "🏍",
354
+ "🏎",
355
+ "🏔",
356
+ "🏕",
357
+ "🏖",
358
+ "🏗",
359
+ "🏘",
360
+ "🏙",
361
+ "🏚",
362
+ "🏛",
363
+ "🏜",
364
+ "🏝",
365
+ "🏞",
366
+ "🏟",
367
+ "🏳",
368
+ "🏵",
369
+ "🏷",
370
+ "🐿",
371
+ "👁",
372
+ "📽",
373
+ "🕉",
374
+ "🕊",
375
+ "🕯",
376
+ "🕰",
377
+ "🕳",
378
+ "🕴",
379
+ "🕵",
380
+ "🕶",
381
+ "🕷",
382
+ "🕸",
383
+ "🕹",
384
+ "🖇",
385
+ "🖊",
386
+ "🖋",
387
+ "🖌",
388
+ "🖍",
389
+ "🖐",
390
+ "🖥",
391
+ "🖨",
392
+ "🖱",
393
+ "🖲",
394
+ "🖼",
395
+ "🗂",
396
+ "🗃",
397
+ "🗄",
398
+ "🗑",
399
+ "🗒",
400
+ "🗓",
401
+ "🗜",
402
+ "🗝",
403
+ "🗞",
404
+ "🗡",
405
+ "🗣",
406
+ "🗨",
407
+ "🗯",
408
+ "🗳",
409
+ "🗺",
410
+ "🛋",
411
+ "🛍",
412
+ "🛎",
413
+ "🛏",
414
+ "🛠",
415
+ "🛡",
416
+ "🛢",
417
+ "🛣",
418
+ "🛤",
419
+ "🛥",
420
+ "🛩",
421
+ "🛰",
422
+ "🛳",
423
+ ]
424
+ ),
425
+ )
venv/lib/python3.11/site-packages/rich/_unicode_data/unicode5-0-0.py ADDED
@@ -0,0 +1,430 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Auto generated by tools/make_width_tables.py
2
+ # Data from wcwidth project (https://github.com/jquast/wcwidth)
3
+
4
+ from rich.cells import CellTable
5
+
6
+ cell_table = CellTable(
7
+ "5.0.0",
8
+ [
9
+ (0, 8, 0),
10
+ (14, 31, 0),
11
+ (127, 132, 0),
12
+ (134, 159, 0),
13
+ (768, 879, 0),
14
+ (1155, 1158, 0),
15
+ (1160, 1161, 0),
16
+ (1425, 1469, 0),
17
+ (1471, 1471, 0),
18
+ (1473, 1474, 0),
19
+ (1476, 1477, 0),
20
+ (1479, 1479, 0),
21
+ (1536, 1539, 0),
22
+ (1552, 1557, 0),
23
+ (1611, 1630, 0),
24
+ (1648, 1648, 0),
25
+ (1750, 1764, 0),
26
+ (1767, 1768, 0),
27
+ (1770, 1773, 0),
28
+ (1807, 1807, 0),
29
+ (1809, 1809, 0),
30
+ (1840, 1866, 0),
31
+ (1958, 1968, 0),
32
+ (2027, 2035, 0),
33
+ (2305, 2307, 0),
34
+ (2364, 2364, 0),
35
+ (2366, 2381, 0),
36
+ (2385, 2388, 0),
37
+ (2402, 2403, 0),
38
+ (2433, 2435, 0),
39
+ (2492, 2492, 0),
40
+ (2494, 2500, 0),
41
+ (2503, 2504, 0),
42
+ (2507, 2509, 0),
43
+ (2519, 2519, 0),
44
+ (2530, 2531, 0),
45
+ (2561, 2563, 0),
46
+ (2620, 2620, 0),
47
+ (2622, 2626, 0),
48
+ (2631, 2632, 0),
49
+ (2635, 2637, 0),
50
+ (2672, 2673, 0),
51
+ (2689, 2691, 0),
52
+ (2748, 2748, 0),
53
+ (2750, 2757, 0),
54
+ (2759, 2761, 0),
55
+ (2763, 2765, 0),
56
+ (2786, 2787, 0),
57
+ (2817, 2819, 0),
58
+ (2876, 2876, 0),
59
+ (2878, 2883, 0),
60
+ (2887, 2888, 0),
61
+ (2891, 2893, 0),
62
+ (2902, 2903, 0),
63
+ (2946, 2946, 0),
64
+ (3006, 3010, 0),
65
+ (3014, 3016, 0),
66
+ (3018, 3021, 0),
67
+ (3031, 3031, 0),
68
+ (3073, 3075, 0),
69
+ (3134, 3140, 0),
70
+ (3142, 3144, 0),
71
+ (3146, 3149, 0),
72
+ (3157, 3158, 0),
73
+ (3202, 3203, 0),
74
+ (3260, 3260, 0),
75
+ (3262, 3268, 0),
76
+ (3270, 3272, 0),
77
+ (3274, 3277, 0),
78
+ (3285, 3286, 0),
79
+ (3298, 3299, 0),
80
+ (3330, 3331, 0),
81
+ (3390, 3395, 0),
82
+ (3398, 3400, 0),
83
+ (3402, 3405, 0),
84
+ (3415, 3415, 0),
85
+ (3458, 3459, 0),
86
+ (3530, 3530, 0),
87
+ (3535, 3540, 0),
88
+ (3542, 3542, 0),
89
+ (3544, 3551, 0),
90
+ (3570, 3571, 0),
91
+ (3633, 3633, 0),
92
+ (3636, 3642, 0),
93
+ (3655, 3662, 0),
94
+ (3761, 3761, 0),
95
+ (3764, 3769, 0),
96
+ (3771, 3772, 0),
97
+ (3784, 3789, 0),
98
+ (3864, 3865, 0),
99
+ (3893, 3893, 0),
100
+ (3895, 3895, 0),
101
+ (3897, 3897, 0),
102
+ (3902, 3903, 0),
103
+ (3953, 3972, 0),
104
+ (3974, 3975, 0),
105
+ (3984, 3991, 0),
106
+ (3993, 4028, 0),
107
+ (4038, 4038, 0),
108
+ (4140, 4146, 0),
109
+ (4150, 4153, 0),
110
+ (4182, 4185, 0),
111
+ (4352, 4441, 2),
112
+ (4447, 4447, 2),
113
+ (4448, 4607, 0),
114
+ (4959, 4959, 0),
115
+ (5906, 5908, 0),
116
+ (5938, 5940, 0),
117
+ (5970, 5971, 0),
118
+ (6002, 6003, 0),
119
+ (6068, 6099, 0),
120
+ (6109, 6109, 0),
121
+ (6155, 6157, 0),
122
+ (6313, 6313, 0),
123
+ (6432, 6443, 0),
124
+ (6448, 6459, 0),
125
+ (6576, 6592, 0),
126
+ (6600, 6601, 0),
127
+ (6679, 6683, 0),
128
+ (6912, 6916, 0),
129
+ (6964, 6980, 0),
130
+ (7019, 7027, 0),
131
+ (7616, 7626, 0),
132
+ (7678, 7679, 0),
133
+ (8203, 8207, 0),
134
+ (8232, 8238, 0),
135
+ (8288, 8303, 0),
136
+ (8400, 8431, 0),
137
+ (9001, 9002, 2),
138
+ (11904, 11929, 2),
139
+ (11931, 12019, 2),
140
+ (12032, 12245, 2),
141
+ (12272, 12283, 2),
142
+ (12288, 12329, 2),
143
+ (12330, 12335, 0),
144
+ (12336, 12350, 2),
145
+ (12353, 12438, 2),
146
+ (12441, 12442, 0),
147
+ (12443, 12543, 2),
148
+ (12549, 12588, 2),
149
+ (12593, 12643, 2),
150
+ (12644, 12644, 0),
151
+ (12645, 12686, 2),
152
+ (12688, 12727, 2),
153
+ (12736, 12751, 2),
154
+ (12784, 12830, 2),
155
+ (12832, 12867, 2),
156
+ (12880, 13054, 2),
157
+ (13056, 19893, 2),
158
+ (19968, 40891, 2),
159
+ (40960, 42124, 2),
160
+ (42128, 42182, 2),
161
+ (43010, 43010, 0),
162
+ (43014, 43014, 0),
163
+ (43019, 43019, 0),
164
+ (43043, 43047, 0),
165
+ (44032, 55203, 2),
166
+ (55216, 57343, 0),
167
+ (63744, 64045, 2),
168
+ (64048, 64106, 2),
169
+ (64112, 64217, 2),
170
+ (64286, 64286, 0),
171
+ (64976, 65007, 0),
172
+ (65024, 65039, 0),
173
+ (65040, 65049, 2),
174
+ (65056, 65059, 0),
175
+ (65072, 65106, 2),
176
+ (65108, 65126, 2),
177
+ (65128, 65131, 2),
178
+ (65279, 65279, 0),
179
+ (65281, 65376, 2),
180
+ (65440, 65440, 0),
181
+ (65504, 65510, 2),
182
+ (65520, 65531, 0),
183
+ (65534, 65535, 0),
184
+ (68097, 68099, 0),
185
+ (68101, 68102, 0),
186
+ (68108, 68111, 0),
187
+ (68152, 68154, 0),
188
+ (68159, 68159, 0),
189
+ (119141, 119145, 0),
190
+ (119149, 119170, 0),
191
+ (119173, 119179, 0),
192
+ (119210, 119213, 0),
193
+ (119362, 119364, 0),
194
+ (131070, 131071, 0),
195
+ (131072, 196605, 2),
196
+ (196606, 196607, 0),
197
+ (196608, 262141, 2),
198
+ (262142, 262143, 0),
199
+ (327678, 327679, 0),
200
+ (393214, 393215, 0),
201
+ (458750, 458751, 0),
202
+ (524286, 524287, 0),
203
+ (589822, 589823, 0),
204
+ (655358, 655359, 0),
205
+ (720894, 720895, 0),
206
+ (786430, 786431, 0),
207
+ (851966, 851967, 0),
208
+ (917502, 921599, 0),
209
+ (983038, 983039, 0),
210
+ (1048574, 1048575, 0),
211
+ (1114110, 1114111, 0),
212
+ ],
213
+ frozenset(
214
+ [
215
+ "#",
216
+ "*",
217
+ "0",
218
+ "1",
219
+ "2",
220
+ "3",
221
+ "4",
222
+ "5",
223
+ "6",
224
+ "7",
225
+ "8",
226
+ "9",
227
+ "©",
228
+ "®",
229
+ "‼",
230
+ "⁉",
231
+ "™",
232
+ "ℹ",
233
+ "↔",
234
+ "↕",
235
+ "↖",
236
+ "↗",
237
+ "↘",
238
+ "↙",
239
+ "↩",
240
+ "↪",
241
+ "⌨",
242
+ "⏏",
243
+ "⏭",
244
+ "⏮",
245
+ "⏯",
246
+ "⏱",
247
+ "⏲",
248
+ "⏸",
249
+ "⏹",
250
+ "⏺",
251
+ "Ⓜ",
252
+ "▪",
253
+ "▫",
254
+ "▶",
255
+ "◀",
256
+ "◻",
257
+ "◼",
258
+ "☀",
259
+ "☁",
260
+ "☂",
261
+ "☃",
262
+ "☄",
263
+ "☎",
264
+ "☑",
265
+ "☘",
266
+ "☝",
267
+ "☠",
268
+ "☢",
269
+ "☣",
270
+ "☦",
271
+ "☪",
272
+ "☮",
273
+ "☯",
274
+ "☸",
275
+ "☹",
276
+ "☺",
277
+ "♀",
278
+ "♂",
279
+ "♟",
280
+ "♠",
281
+ "♣",
282
+ "♥",
283
+ "♦",
284
+ "♨",
285
+ "♻",
286
+ "♾",
287
+ "⚒",
288
+ "⚔",
289
+ "⚕",
290
+ "⚖",
291
+ "⚗",
292
+ "⚙",
293
+ "⚛",
294
+ "⚜",
295
+ "⚠",
296
+ "⚧",
297
+ "⚰",
298
+ "⚱",
299
+ "⛈",
300
+ "⛏",
301
+ "⛑",
302
+ "⛓",
303
+ "⛩",
304
+ "⛰",
305
+ "⛱",
306
+ "⛴",
307
+ "⛷",
308
+ "⛸",
309
+ "⛹",
310
+ "✂",
311
+ "✈",
312
+ "✉",
313
+ "✌",
314
+ "✍",
315
+ "✏",
316
+ "✒",
317
+ "✔",
318
+ "✖",
319
+ "✝",
320
+ "✡",
321
+ "✳",
322
+ "✴",
323
+ "❄",
324
+ "❇",
325
+ "❣",
326
+ "❤",
327
+ "➡",
328
+ "⤴",
329
+ "⤵",
330
+ "⬅",
331
+ "⬆",
332
+ "⬇",
333
+ "🅰",
334
+ "🅱",
335
+ "🅾",
336
+ "🅿",
337
+ "🌡",
338
+ "🌤",
339
+ "🌥",
340
+ "🌦",
341
+ "🌧",
342
+ "🌨",
343
+ "🌩",
344
+ "🌪",
345
+ "🌫",
346
+ "🌬",
347
+ "🌶",
348
+ "🍽",
349
+ "🎖",
350
+ "🎗",
351
+ "🎙",
352
+ "🎚",
353
+ "🎛",
354
+ "🎞",
355
+ "🎟",
356
+ "🏋",
357
+ "🏌",
358
+ "🏍",
359
+ "🏎",
360
+ "🏔",
361
+ "🏕",
362
+ "🏖",
363
+ "🏗",
364
+ "🏘",
365
+ "🏙",
366
+ "🏚",
367
+ "🏛",
368
+ "🏜",
369
+ "🏝",
370
+ "🏞",
371
+ "🏟",
372
+ "🏳",
373
+ "🏵",
374
+ "🏷",
375
+ "🐿",
376
+ "👁",
377
+ "📽",
378
+ "🕉",
379
+ "🕊",
380
+ "🕯",
381
+ "🕰",
382
+ "🕳",
383
+ "🕴",
384
+ "🕵",
385
+ "🕶",
386
+ "🕷",
387
+ "🕸",
388
+ "🕹",
389
+ "🖇",
390
+ "🖊",
391
+ "🖋",
392
+ "🖌",
393
+ "🖍",
394
+ "🖐",
395
+ "🖥",
396
+ "🖨",
397
+ "🖱",
398
+ "🖲",
399
+ "🖼",
400
+ "🗂",
401
+ "🗃",
402
+ "🗄",
403
+ "🗑",
404
+ "🗒",
405
+ "🗓",
406
+ "🗜",
407
+ "🗝",
408
+ "🗞",
409
+ "🗡",
410
+ "🗣",
411
+ "🗨",
412
+ "🗯",
413
+ "🗳",
414
+ "🗺",
415
+ "🛋",
416
+ "🛍",
417
+ "🛎",
418
+ "🛏",
419
+ "🛠",
420
+ "🛡",
421
+ "🛢",
422
+ "🛣",
423
+ "🛤",
424
+ "🛥",
425
+ "🛩",
426
+ "🛰",
427
+ "🛳",
428
+ ]
429
+ ),
430
+ )
venv/lib/python3.11/site-packages/rich/_unicode_data/unicode5-1-0.py ADDED
@@ -0,0 +1,433 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Auto generated by tools/make_width_tables.py
2
+ # Data from wcwidth project (https://github.com/jquast/wcwidth)
3
+
4
+ from rich.cells import CellTable
5
+
6
+ cell_table = CellTable(
7
+ "5.1.0",
8
+ [
9
+ (0, 0, 0),
10
+ (768, 879, 0),
11
+ (1155, 1161, 0),
12
+ (1425, 1469, 0),
13
+ (1471, 1471, 0),
14
+ (1473, 1474, 0),
15
+ (1476, 1477, 0),
16
+ (1479, 1479, 0),
17
+ (1536, 1539, 0),
18
+ (1552, 1562, 0),
19
+ (1611, 1630, 0),
20
+ (1648, 1648, 0),
21
+ (1750, 1764, 0),
22
+ (1767, 1768, 0),
23
+ (1770, 1773, 0),
24
+ (1807, 1807, 0),
25
+ (1809, 1809, 0),
26
+ (1840, 1866, 0),
27
+ (1958, 1968, 0),
28
+ (2027, 2035, 0),
29
+ (2305, 2307, 0),
30
+ (2364, 2364, 0),
31
+ (2366, 2381, 0),
32
+ (2385, 2388, 0),
33
+ (2402, 2403, 0),
34
+ (2433, 2435, 0),
35
+ (2492, 2492, 0),
36
+ (2494, 2500, 0),
37
+ (2503, 2504, 0),
38
+ (2507, 2509, 0),
39
+ (2519, 2519, 0),
40
+ (2530, 2531, 0),
41
+ (2561, 2563, 0),
42
+ (2620, 2620, 0),
43
+ (2622, 2626, 0),
44
+ (2631, 2632, 0),
45
+ (2635, 2637, 0),
46
+ (2641, 2641, 0),
47
+ (2672, 2673, 0),
48
+ (2677, 2677, 0),
49
+ (2689, 2691, 0),
50
+ (2748, 2748, 0),
51
+ (2750, 2757, 0),
52
+ (2759, 2761, 0),
53
+ (2763, 2765, 0),
54
+ (2786, 2787, 0),
55
+ (2817, 2819, 0),
56
+ (2876, 2876, 0),
57
+ (2878, 2884, 0),
58
+ (2887, 2888, 0),
59
+ (2891, 2893, 0),
60
+ (2902, 2903, 0),
61
+ (2914, 2915, 0),
62
+ (2946, 2946, 0),
63
+ (3006, 3010, 0),
64
+ (3014, 3016, 0),
65
+ (3018, 3021, 0),
66
+ (3031, 3031, 0),
67
+ (3073, 3075, 0),
68
+ (3134, 3140, 0),
69
+ (3142, 3144, 0),
70
+ (3146, 3149, 0),
71
+ (3157, 3158, 0),
72
+ (3170, 3171, 0),
73
+ (3202, 3203, 0),
74
+ (3260, 3260, 0),
75
+ (3262, 3268, 0),
76
+ (3270, 3272, 0),
77
+ (3274, 3277, 0),
78
+ (3285, 3286, 0),
79
+ (3298, 3299, 0),
80
+ (3330, 3331, 0),
81
+ (3390, 3396, 0),
82
+ (3398, 3400, 0),
83
+ (3402, 3405, 0),
84
+ (3415, 3415, 0),
85
+ (3426, 3427, 0),
86
+ (3458, 3459, 0),
87
+ (3530, 3530, 0),
88
+ (3535, 3540, 0),
89
+ (3542, 3542, 0),
90
+ (3544, 3551, 0),
91
+ (3570, 3571, 0),
92
+ (3633, 3633, 0),
93
+ (3636, 3642, 0),
94
+ (3655, 3662, 0),
95
+ (3761, 3761, 0),
96
+ (3764, 3769, 0),
97
+ (3771, 3772, 0),
98
+ (3784, 3789, 0),
99
+ (3864, 3865, 0),
100
+ (3893, 3893, 0),
101
+ (3895, 3895, 0),
102
+ (3897, 3897, 0),
103
+ (3902, 3903, 0),
104
+ (3953, 3972, 0),
105
+ (3974, 3975, 0),
106
+ (3984, 3991, 0),
107
+ (3993, 4028, 0),
108
+ (4038, 4038, 0),
109
+ (4139, 4158, 0),
110
+ (4182, 4185, 0),
111
+ (4190, 4192, 0),
112
+ (4194, 4196, 0),
113
+ (4199, 4205, 0),
114
+ (4209, 4212, 0),
115
+ (4226, 4237, 0),
116
+ (4239, 4239, 0),
117
+ (4352, 4441, 2),
118
+ (4447, 4447, 2),
119
+ (4448, 4607, 0),
120
+ (4959, 4959, 0),
121
+ (5906, 5908, 0),
122
+ (5938, 5940, 0),
123
+ (5970, 5971, 0),
124
+ (6002, 6003, 0),
125
+ (6068, 6099, 0),
126
+ (6109, 6109, 0),
127
+ (6155, 6157, 0),
128
+ (6313, 6313, 0),
129
+ (6432, 6443, 0),
130
+ (6448, 6459, 0),
131
+ (6576, 6592, 0),
132
+ (6600, 6601, 0),
133
+ (6679, 6683, 0),
134
+ (6912, 6916, 0),
135
+ (6964, 6980, 0),
136
+ (7019, 7027, 0),
137
+ (7040, 7042, 0),
138
+ (7073, 7082, 0),
139
+ (7204, 7223, 0),
140
+ (7616, 7654, 0),
141
+ (7678, 7679, 0),
142
+ (8203, 8207, 0),
143
+ (8232, 8238, 0),
144
+ (8288, 8303, 0),
145
+ (8400, 8432, 0),
146
+ (9001, 9002, 2),
147
+ (11744, 11775, 0),
148
+ (11904, 11929, 2),
149
+ (11931, 12019, 2),
150
+ (12032, 12245, 2),
151
+ (12272, 12283, 2),
152
+ (12288, 12329, 2),
153
+ (12330, 12335, 0),
154
+ (12336, 12350, 2),
155
+ (12353, 12438, 2),
156
+ (12441, 12442, 0),
157
+ (12443, 12543, 2),
158
+ (12549, 12589, 2),
159
+ (12593, 12643, 2),
160
+ (12644, 12644, 0),
161
+ (12645, 12686, 2),
162
+ (12688, 12727, 2),
163
+ (12736, 12771, 2),
164
+ (12784, 12830, 2),
165
+ (12832, 12867, 2),
166
+ (12880, 13054, 2),
167
+ (13056, 19893, 2),
168
+ (19968, 40899, 2),
169
+ (40960, 42124, 2),
170
+ (42128, 42182, 2),
171
+ (42607, 42610, 0),
172
+ (42620, 42621, 0),
173
+ (43010, 43010, 0),
174
+ (43014, 43014, 0),
175
+ (43019, 43019, 0),
176
+ (43043, 43047, 0),
177
+ (43136, 43137, 0),
178
+ (43188, 43204, 0),
179
+ (43302, 43309, 0),
180
+ (43335, 43347, 0),
181
+ (43561, 43574, 0),
182
+ (43587, 43587, 0),
183
+ (43596, 43597, 0),
184
+ (44032, 55203, 2),
185
+ (55216, 55295, 0),
186
+ (63744, 64045, 2),
187
+ (64048, 64106, 2),
188
+ (64112, 64217, 2),
189
+ (64286, 64286, 0),
190
+ (65024, 65039, 0),
191
+ (65040, 65049, 2),
192
+ (65056, 65062, 0),
193
+ (65072, 65106, 2),
194
+ (65108, 65126, 2),
195
+ (65128, 65131, 2),
196
+ (65279, 65279, 0),
197
+ (65281, 65376, 2),
198
+ (65440, 65440, 0),
199
+ (65504, 65510, 2),
200
+ (65520, 65531, 0),
201
+ (66045, 66045, 0),
202
+ (68097, 68099, 0),
203
+ (68101, 68102, 0),
204
+ (68108, 68111, 0),
205
+ (68152, 68154, 0),
206
+ (68159, 68159, 0),
207
+ (119141, 119145, 0),
208
+ (119149, 119170, 0),
209
+ (119173, 119179, 0),
210
+ (119210, 119213, 0),
211
+ (119362, 119364, 0),
212
+ (131072, 196605, 2),
213
+ (196608, 262141, 2),
214
+ (917504, 921599, 0),
215
+ ],
216
+ frozenset(
217
+ [
218
+ "#",
219
+ "*",
220
+ "0",
221
+ "1",
222
+ "2",
223
+ "3",
224
+ "4",
225
+ "5",
226
+ "6",
227
+ "7",
228
+ "8",
229
+ "9",
230
+ "©",
231
+ "®",
232
+ "‼",
233
+ "⁉",
234
+ "™",
235
+ "ℹ",
236
+ "↔",
237
+ "↕",
238
+ "↖",
239
+ "↗",
240
+ "↘",
241
+ "↙",
242
+ "↩",
243
+ "↪",
244
+ "⌨",
245
+ "⏏",
246
+ "⏭",
247
+ "⏮",
248
+ "⏯",
249
+ "⏱",
250
+ "⏲",
251
+ "⏸",
252
+ "⏹",
253
+ "⏺",
254
+ "Ⓜ",
255
+ "▪",
256
+ "▫",
257
+ "▶",
258
+ "◀",
259
+ "◻",
260
+ "◼",
261
+ "☀",
262
+ "☁",
263
+ "☂",
264
+ "☃",
265
+ "☄",
266
+ "☎",
267
+ "☑",
268
+ "☘",
269
+ "☝",
270
+ "☠",
271
+ "☢",
272
+ "☣",
273
+ "☦",
274
+ "☪",
275
+ "☮",
276
+ "☯",
277
+ "☸",
278
+ "☹",
279
+ "☺",
280
+ "♀",
281
+ "♂",
282
+ "♟",
283
+ "♠",
284
+ "♣",
285
+ "♥",
286
+ "♦",
287
+ "♨",
288
+ "♻",
289
+ "♾",
290
+ "⚒",
291
+ "⚔",
292
+ "⚕",
293
+ "⚖",
294
+ "⚗",
295
+ "⚙",
296
+ "⚛",
297
+ "⚜",
298
+ "⚠",
299
+ "⚧",
300
+ "⚰",
301
+ "⚱",
302
+ "⛈",
303
+ "⛏",
304
+ "⛑",
305
+ "⛓",
306
+ "⛩",
307
+ "⛰",
308
+ "⛱",
309
+ "⛴",
310
+ "⛷",
311
+ "⛸",
312
+ "⛹",
313
+ "✂",
314
+ "✈",
315
+ "✉",
316
+ "✌",
317
+ "✍",
318
+ "✏",
319
+ "✒",
320
+ "✔",
321
+ "✖",
322
+ "✝",
323
+ "✡",
324
+ "✳",
325
+ "✴",
326
+ "❄",
327
+ "❇",
328
+ "❣",
329
+ "❤",
330
+ "➡",
331
+ "⤴",
332
+ "⤵",
333
+ "⬅",
334
+ "⬆",
335
+ "⬇",
336
+ "🅰",
337
+ "🅱",
338
+ "🅾",
339
+ "🅿",
340
+ "🌡",
341
+ "🌤",
342
+ "🌥",
343
+ "🌦",
344
+ "🌧",
345
+ "🌨",
346
+ "🌩",
347
+ "🌪",
348
+ "🌫",
349
+ "🌬",
350
+ "🌶",
351
+ "🍽",
352
+ "🎖",
353
+ "🎗",
354
+ "🎙",
355
+ "🎚",
356
+ "🎛",
357
+ "🎞",
358
+ "🎟",
359
+ "🏋",
360
+ "🏌",
361
+ "🏍",
362
+ "🏎",
363
+ "🏔",
364
+ "🏕",
365
+ "🏖",
366
+ "🏗",
367
+ "🏘",
368
+ "🏙",
369
+ "🏚",
370
+ "🏛",
371
+ "🏜",
372
+ "🏝",
373
+ "🏞",
374
+ "🏟",
375
+ "🏳",
376
+ "🏵",
377
+ "🏷",
378
+ "🐿",
379
+ "👁",
380
+ "📽",
381
+ "🕉",
382
+ "🕊",
383
+ "🕯",
384
+ "🕰",
385
+ "🕳",
386
+ "🕴",
387
+ "🕵",
388
+ "🕶",
389
+ "🕷",
390
+ "🕸",
391
+ "🕹",
392
+ "🖇",
393
+ "🖊",
394
+ "🖋",
395
+ "🖌",
396
+ "🖍",
397
+ "🖐",
398
+ "🖥",
399
+ "🖨",
400
+ "🖱",
401
+ "🖲",
402
+ "🖼",
403
+ "🗂",
404
+ "🗃",
405
+ "🗄",
406
+ "🗑",
407
+ "🗒",
408
+ "🗓",
409
+ "🗜",
410
+ "🗝",
411
+ "🗞",
412
+ "🗡",
413
+ "🗣",
414
+ "🗨",
415
+ "🗯",
416
+ "🗳",
417
+ "🗺",
418
+ "🛋",
419
+ "🛍",
420
+ "🛎",
421
+ "🛏",
422
+ "🛠",
423
+ "🛡",
424
+ "🛢",
425
+ "🛣",
426
+ "🛤",
427
+ "🛥",
428
+ "🛩",
429
+ "🛰",
430
+ "🛳",
431
+ ]
432
+ ),
433
+ )
venv/lib/python3.11/site-packages/rich/_unicode_data/unicode5-2-0.py ADDED
@@ -0,0 +1,461 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Auto generated by tools/make_width_tables.py
2
+ # Data from wcwidth project (https://github.com/jquast/wcwidth)
3
+
4
+ from rich.cells import CellTable
5
+
6
+ cell_table = CellTable(
7
+ "5.2.0",
8
+ [
9
+ (0, 0, 0),
10
+ (768, 879, 0),
11
+ (1155, 1161, 0),
12
+ (1425, 1469, 0),
13
+ (1471, 1471, 0),
14
+ (1473, 1474, 0),
15
+ (1476, 1477, 0),
16
+ (1479, 1479, 0),
17
+ (1536, 1539, 0),
18
+ (1552, 1562, 0),
19
+ (1611, 1630, 0),
20
+ (1648, 1648, 0),
21
+ (1750, 1764, 0),
22
+ (1767, 1768, 0),
23
+ (1770, 1773, 0),
24
+ (1807, 1807, 0),
25
+ (1809, 1809, 0),
26
+ (1840, 1866, 0),
27
+ (1958, 1968, 0),
28
+ (2027, 2035, 0),
29
+ (2070, 2073, 0),
30
+ (2075, 2083, 0),
31
+ (2085, 2087, 0),
32
+ (2089, 2093, 0),
33
+ (2304, 2307, 0),
34
+ (2364, 2364, 0),
35
+ (2366, 2382, 0),
36
+ (2385, 2389, 0),
37
+ (2402, 2403, 0),
38
+ (2433, 2435, 0),
39
+ (2492, 2492, 0),
40
+ (2494, 2500, 0),
41
+ (2503, 2504, 0),
42
+ (2507, 2509, 0),
43
+ (2519, 2519, 0),
44
+ (2530, 2531, 0),
45
+ (2561, 2563, 0),
46
+ (2620, 2620, 0),
47
+ (2622, 2626, 0),
48
+ (2631, 2632, 0),
49
+ (2635, 2637, 0),
50
+ (2641, 2641, 0),
51
+ (2672, 2673, 0),
52
+ (2677, 2677, 0),
53
+ (2689, 2691, 0),
54
+ (2748, 2748, 0),
55
+ (2750, 2757, 0),
56
+ (2759, 2761, 0),
57
+ (2763, 2765, 0),
58
+ (2786, 2787, 0),
59
+ (2817, 2819, 0),
60
+ (2876, 2876, 0),
61
+ (2878, 2884, 0),
62
+ (2887, 2888, 0),
63
+ (2891, 2893, 0),
64
+ (2902, 2903, 0),
65
+ (2914, 2915, 0),
66
+ (2946, 2946, 0),
67
+ (3006, 3010, 0),
68
+ (3014, 3016, 0),
69
+ (3018, 3021, 0),
70
+ (3031, 3031, 0),
71
+ (3073, 3075, 0),
72
+ (3134, 3140, 0),
73
+ (3142, 3144, 0),
74
+ (3146, 3149, 0),
75
+ (3157, 3158, 0),
76
+ (3170, 3171, 0),
77
+ (3202, 3203, 0),
78
+ (3260, 3260, 0),
79
+ (3262, 3268, 0),
80
+ (3270, 3272, 0),
81
+ (3274, 3277, 0),
82
+ (3285, 3286, 0),
83
+ (3298, 3299, 0),
84
+ (3330, 3331, 0),
85
+ (3390, 3396, 0),
86
+ (3398, 3400, 0),
87
+ (3402, 3405, 0),
88
+ (3415, 3415, 0),
89
+ (3426, 3427, 0),
90
+ (3458, 3459, 0),
91
+ (3530, 3530, 0),
92
+ (3535, 3540, 0),
93
+ (3542, 3542, 0),
94
+ (3544, 3551, 0),
95
+ (3570, 3571, 0),
96
+ (3633, 3633, 0),
97
+ (3636, 3642, 0),
98
+ (3655, 3662, 0),
99
+ (3761, 3761, 0),
100
+ (3764, 3769, 0),
101
+ (3771, 3772, 0),
102
+ (3784, 3789, 0),
103
+ (3864, 3865, 0),
104
+ (3893, 3893, 0),
105
+ (3895, 3895, 0),
106
+ (3897, 3897, 0),
107
+ (3902, 3903, 0),
108
+ (3953, 3972, 0),
109
+ (3974, 3975, 0),
110
+ (3984, 3991, 0),
111
+ (3993, 4028, 0),
112
+ (4038, 4038, 0),
113
+ (4139, 4158, 0),
114
+ (4182, 4185, 0),
115
+ (4190, 4192, 0),
116
+ (4194, 4196, 0),
117
+ (4199, 4205, 0),
118
+ (4209, 4212, 0),
119
+ (4226, 4237, 0),
120
+ (4239, 4239, 0),
121
+ (4250, 4253, 0),
122
+ (4352, 4447, 2),
123
+ (4448, 4607, 0),
124
+ (4959, 4959, 0),
125
+ (5906, 5908, 0),
126
+ (5938, 5940, 0),
127
+ (5970, 5971, 0),
128
+ (6002, 6003, 0),
129
+ (6068, 6099, 0),
130
+ (6109, 6109, 0),
131
+ (6155, 6157, 0),
132
+ (6313, 6313, 0),
133
+ (6432, 6443, 0),
134
+ (6448, 6459, 0),
135
+ (6576, 6592, 0),
136
+ (6600, 6601, 0),
137
+ (6679, 6683, 0),
138
+ (6741, 6750, 0),
139
+ (6752, 6780, 0),
140
+ (6783, 6783, 0),
141
+ (6912, 6916, 0),
142
+ (6964, 6980, 0),
143
+ (7019, 7027, 0),
144
+ (7040, 7042, 0),
145
+ (7073, 7082, 0),
146
+ (7204, 7223, 0),
147
+ (7376, 7378, 0),
148
+ (7380, 7400, 0),
149
+ (7405, 7405, 0),
150
+ (7410, 7410, 0),
151
+ (7616, 7654, 0),
152
+ (7677, 7679, 0),
153
+ (8203, 8207, 0),
154
+ (8232, 8238, 0),
155
+ (8288, 8303, 0),
156
+ (8400, 8432, 0),
157
+ (9001, 9002, 2),
158
+ (11503, 11505, 0),
159
+ (11744, 11775, 0),
160
+ (11904, 11929, 2),
161
+ (11931, 12019, 2),
162
+ (12032, 12245, 2),
163
+ (12272, 12283, 2),
164
+ (12288, 12329, 2),
165
+ (12330, 12335, 0),
166
+ (12336, 12350, 2),
167
+ (12353, 12438, 2),
168
+ (12441, 12442, 0),
169
+ (12443, 12543, 2),
170
+ (12549, 12589, 2),
171
+ (12593, 12643, 2),
172
+ (12644, 12644, 0),
173
+ (12645, 12686, 2),
174
+ (12688, 12727, 2),
175
+ (12736, 12771, 2),
176
+ (12784, 12830, 2),
177
+ (12832, 12871, 2),
178
+ (12880, 13054, 2),
179
+ (13056, 19903, 2),
180
+ (19968, 42124, 2),
181
+ (42128, 42182, 2),
182
+ (42607, 42610, 0),
183
+ (42620, 42621, 0),
184
+ (42736, 42737, 0),
185
+ (43010, 43010, 0),
186
+ (43014, 43014, 0),
187
+ (43019, 43019, 0),
188
+ (43043, 43047, 0),
189
+ (43136, 43137, 0),
190
+ (43188, 43204, 0),
191
+ (43232, 43249, 0),
192
+ (43302, 43309, 0),
193
+ (43335, 43347, 0),
194
+ (43360, 43388, 2),
195
+ (43392, 43395, 0),
196
+ (43443, 43456, 0),
197
+ (43561, 43574, 0),
198
+ (43587, 43587, 0),
199
+ (43596, 43597, 0),
200
+ (43643, 43643, 0),
201
+ (43696, 43696, 0),
202
+ (43698, 43700, 0),
203
+ (43703, 43704, 0),
204
+ (43710, 43711, 0),
205
+ (43713, 43713, 0),
206
+ (44003, 44010, 0),
207
+ (44012, 44013, 0),
208
+ (44032, 55203, 2),
209
+ (55216, 55295, 0),
210
+ (63744, 64255, 2),
211
+ (64286, 64286, 0),
212
+ (65024, 65039, 0),
213
+ (65040, 65049, 2),
214
+ (65056, 65062, 0),
215
+ (65072, 65106, 2),
216
+ (65108, 65126, 2),
217
+ (65128, 65131, 2),
218
+ (65279, 65279, 0),
219
+ (65281, 65376, 2),
220
+ (65440, 65440, 0),
221
+ (65504, 65510, 2),
222
+ (65520, 65531, 0),
223
+ (66045, 66045, 0),
224
+ (68097, 68099, 0),
225
+ (68101, 68102, 0),
226
+ (68108, 68111, 0),
227
+ (68152, 68154, 0),
228
+ (68159, 68159, 0),
229
+ (69760, 69762, 0),
230
+ (69808, 69818, 0),
231
+ (69821, 69821, 0),
232
+ (119141, 119145, 0),
233
+ (119149, 119170, 0),
234
+ (119173, 119179, 0),
235
+ (119210, 119213, 0),
236
+ (119362, 119364, 0),
237
+ (127488, 127488, 2),
238
+ (127504, 127537, 2),
239
+ (127552, 127560, 2),
240
+ (131072, 196605, 2),
241
+ (196608, 262141, 2),
242
+ (917504, 921599, 0),
243
+ ],
244
+ frozenset(
245
+ [
246
+ "#",
247
+ "*",
248
+ "0",
249
+ "1",
250
+ "2",
251
+ "3",
252
+ "4",
253
+ "5",
254
+ "6",
255
+ "7",
256
+ "8",
257
+ "9",
258
+ "©",
259
+ "®",
260
+ "‼",
261
+ "⁉",
262
+ "™",
263
+ "ℹ",
264
+ "↔",
265
+ "↕",
266
+ "↖",
267
+ "↗",
268
+ "↘",
269
+ "↙",
270
+ "↩",
271
+ "↪",
272
+ "⌨",
273
+ "⏏",
274
+ "⏭",
275
+ "⏮",
276
+ "⏯",
277
+ "⏱",
278
+ "⏲",
279
+ "⏸",
280
+ "⏹",
281
+ "⏺",
282
+ "Ⓜ",
283
+ "▪",
284
+ "▫",
285
+ "▶",
286
+ "◀",
287
+ "◻",
288
+ "◼",
289
+ "☀",
290
+ "☁",
291
+ "☂",
292
+ "☃",
293
+ "☄",
294
+ "☎",
295
+ "☑",
296
+ "☘",
297
+ "☝",
298
+ "☠",
299
+ "☢",
300
+ "☣",
301
+ "☦",
302
+ "☪",
303
+ "☮",
304
+ "☯",
305
+ "☸",
306
+ "☹",
307
+ "☺",
308
+ "♀",
309
+ "♂",
310
+ "♟",
311
+ "♠",
312
+ "♣",
313
+ "♥",
314
+ "♦",
315
+ "♨",
316
+ "♻",
317
+ "♾",
318
+ "⚒",
319
+ "⚔",
320
+ "⚕",
321
+ "⚖",
322
+ "⚗",
323
+ "⚙",
324
+ "⚛",
325
+ "⚜",
326
+ "⚠",
327
+ "⚧",
328
+ "⚰",
329
+ "⚱",
330
+ "⛈",
331
+ "⛏",
332
+ "⛑",
333
+ "⛓",
334
+ "⛩",
335
+ "⛰",
336
+ "⛱",
337
+ "⛴",
338
+ "⛷",
339
+ "⛸",
340
+ "⛹",
341
+ "✂",
342
+ "✈",
343
+ "✉",
344
+ "✌",
345
+ "✍",
346
+ "✏",
347
+ "✒",
348
+ "✔",
349
+ "✖",
350
+ "✝",
351
+ "✡",
352
+ "✳",
353
+ "✴",
354
+ "❄",
355
+ "❇",
356
+ "❣",
357
+ "❤",
358
+ "➡",
359
+ "⤴",
360
+ "⤵",
361
+ "⬅",
362
+ "⬆",
363
+ "⬇",
364
+ "🅰",
365
+ "🅱",
366
+ "🅾",
367
+ "🅿",
368
+ "🌡",
369
+ "🌤",
370
+ "🌥",
371
+ "🌦",
372
+ "🌧",
373
+ "🌨",
374
+ "🌩",
375
+ "🌪",
376
+ "🌫",
377
+ "🌬",
378
+ "🌶",
379
+ "🍽",
380
+ "🎖",
381
+ "🎗",
382
+ "🎙",
383
+ "🎚",
384
+ "🎛",
385
+ "🎞",
386
+ "🎟",
387
+ "🏋",
388
+ "🏌",
389
+ "🏍",
390
+ "🏎",
391
+ "🏔",
392
+ "🏕",
393
+ "🏖",
394
+ "🏗",
395
+ "🏘",
396
+ "🏙",
397
+ "🏚",
398
+ "🏛",
399
+ "🏜",
400
+ "🏝",
401
+ "🏞",
402
+ "🏟",
403
+ "🏳",
404
+ "🏵",
405
+ "🏷",
406
+ "🐿",
407
+ "👁",
408
+ "📽",
409
+ "🕉",
410
+ "🕊",
411
+ "🕯",
412
+ "🕰",
413
+ "🕳",
414
+ "🕴",
415
+ "🕵",
416
+ "🕶",
417
+ "🕷",
418
+ "🕸",
419
+ "🕹",
420
+ "🖇",
421
+ "🖊",
422
+ "🖋",
423
+ "🖌",
424
+ "🖍",
425
+ "🖐",
426
+ "🖥",
427
+ "🖨",
428
+ "🖱",
429
+ "🖲",
430
+ "🖼",
431
+ "🗂",
432
+ "🗃",
433
+ "🗄",
434
+ "🗑",
435
+ "🗒",
436
+ "🗓",
437
+ "🗜",
438
+ "🗝",
439
+ "🗞",
440
+ "🗡",
441
+ "🗣",
442
+ "🗨",
443
+ "🗯",
444
+ "🗳",
445
+ "🗺",
446
+ "🛋",
447
+ "🛍",
448
+ "🛎",
449
+ "🛏",
450
+ "🛠",
451
+ "🛡",
452
+ "🛢",
453
+ "🛣",
454
+ "🛤",
455
+ "🛥",
456
+ "🛩",
457
+ "🛰",
458
+ "🛳",
459
+ ]
460
+ ),
461
+ )
venv/lib/python3.11/site-packages/rich/_unicode_data/unicode6-0-0.py ADDED
@@ -0,0 +1,469 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Auto generated by tools/make_width_tables.py
2
+ # Data from wcwidth project (https://github.com/jquast/wcwidth)
3
+
4
+ from rich.cells import CellTable
5
+
6
+ cell_table = CellTable(
7
+ "6.0.0",
8
+ [
9
+ (0, 0, 0),
10
+ (768, 879, 0),
11
+ (1155, 1161, 0),
12
+ (1425, 1469, 0),
13
+ (1471, 1471, 0),
14
+ (1473, 1474, 0),
15
+ (1476, 1477, 0),
16
+ (1479, 1479, 0),
17
+ (1536, 1539, 0),
18
+ (1552, 1562, 0),
19
+ (1611, 1631, 0),
20
+ (1648, 1648, 0),
21
+ (1750, 1757, 0),
22
+ (1759, 1764, 0),
23
+ (1767, 1768, 0),
24
+ (1770, 1773, 0),
25
+ (1807, 1807, 0),
26
+ (1809, 1809, 0),
27
+ (1840, 1866, 0),
28
+ (1958, 1968, 0),
29
+ (2027, 2035, 0),
30
+ (2070, 2073, 0),
31
+ (2075, 2083, 0),
32
+ (2085, 2087, 0),
33
+ (2089, 2093, 0),
34
+ (2137, 2139, 0),
35
+ (2304, 2307, 0),
36
+ (2362, 2364, 0),
37
+ (2366, 2383, 0),
38
+ (2385, 2391, 0),
39
+ (2402, 2403, 0),
40
+ (2433, 2435, 0),
41
+ (2492, 2492, 0),
42
+ (2494, 2500, 0),
43
+ (2503, 2504, 0),
44
+ (2507, 2509, 0),
45
+ (2519, 2519, 0),
46
+ (2530, 2531, 0),
47
+ (2561, 2563, 0),
48
+ (2620, 2620, 0),
49
+ (2622, 2626, 0),
50
+ (2631, 2632, 0),
51
+ (2635, 2637, 0),
52
+ (2641, 2641, 0),
53
+ (2672, 2673, 0),
54
+ (2677, 2677, 0),
55
+ (2689, 2691, 0),
56
+ (2748, 2748, 0),
57
+ (2750, 2757, 0),
58
+ (2759, 2761, 0),
59
+ (2763, 2765, 0),
60
+ (2786, 2787, 0),
61
+ (2817, 2819, 0),
62
+ (2876, 2876, 0),
63
+ (2878, 2884, 0),
64
+ (2887, 2888, 0),
65
+ (2891, 2893, 0),
66
+ (2902, 2903, 0),
67
+ (2914, 2915, 0),
68
+ (2946, 2946, 0),
69
+ (3006, 3010, 0),
70
+ (3014, 3016, 0),
71
+ (3018, 3021, 0),
72
+ (3031, 3031, 0),
73
+ (3073, 3075, 0),
74
+ (3134, 3140, 0),
75
+ (3142, 3144, 0),
76
+ (3146, 3149, 0),
77
+ (3157, 3158, 0),
78
+ (3170, 3171, 0),
79
+ (3202, 3203, 0),
80
+ (3260, 3260, 0),
81
+ (3262, 3268, 0),
82
+ (3270, 3272, 0),
83
+ (3274, 3277, 0),
84
+ (3285, 3286, 0),
85
+ (3298, 3299, 0),
86
+ (3330, 3331, 0),
87
+ (3390, 3396, 0),
88
+ (3398, 3400, 0),
89
+ (3402, 3405, 0),
90
+ (3415, 3415, 0),
91
+ (3426, 3427, 0),
92
+ (3458, 3459, 0),
93
+ (3530, 3530, 0),
94
+ (3535, 3540, 0),
95
+ (3542, 3542, 0),
96
+ (3544, 3551, 0),
97
+ (3570, 3571, 0),
98
+ (3633, 3633, 0),
99
+ (3636, 3642, 0),
100
+ (3655, 3662, 0),
101
+ (3761, 3761, 0),
102
+ (3764, 3769, 0),
103
+ (3771, 3772, 0),
104
+ (3784, 3789, 0),
105
+ (3864, 3865, 0),
106
+ (3893, 3893, 0),
107
+ (3895, 3895, 0),
108
+ (3897, 3897, 0),
109
+ (3902, 3903, 0),
110
+ (3953, 3972, 0),
111
+ (3974, 3975, 0),
112
+ (3981, 3991, 0),
113
+ (3993, 4028, 0),
114
+ (4038, 4038, 0),
115
+ (4139, 4158, 0),
116
+ (4182, 4185, 0),
117
+ (4190, 4192, 0),
118
+ (4194, 4196, 0),
119
+ (4199, 4205, 0),
120
+ (4209, 4212, 0),
121
+ (4226, 4237, 0),
122
+ (4239, 4239, 0),
123
+ (4250, 4253, 0),
124
+ (4352, 4447, 2),
125
+ (4448, 4607, 0),
126
+ (4957, 4959, 0),
127
+ (5906, 5908, 0),
128
+ (5938, 5940, 0),
129
+ (5970, 5971, 0),
130
+ (6002, 6003, 0),
131
+ (6068, 6099, 0),
132
+ (6109, 6109, 0),
133
+ (6155, 6157, 0),
134
+ (6313, 6313, 0),
135
+ (6432, 6443, 0),
136
+ (6448, 6459, 0),
137
+ (6576, 6592, 0),
138
+ (6600, 6601, 0),
139
+ (6679, 6683, 0),
140
+ (6741, 6750, 0),
141
+ (6752, 6780, 0),
142
+ (6783, 6783, 0),
143
+ (6912, 6916, 0),
144
+ (6964, 6980, 0),
145
+ (7019, 7027, 0),
146
+ (7040, 7042, 0),
147
+ (7073, 7082, 0),
148
+ (7142, 7155, 0),
149
+ (7204, 7223, 0),
150
+ (7376, 7378, 0),
151
+ (7380, 7400, 0),
152
+ (7405, 7405, 0),
153
+ (7410, 7410, 0),
154
+ (7616, 7654, 0),
155
+ (7676, 7679, 0),
156
+ (8203, 8207, 0),
157
+ (8232, 8238, 0),
158
+ (8288, 8303, 0),
159
+ (8400, 8432, 0),
160
+ (9001, 9002, 2),
161
+ (11503, 11505, 0),
162
+ (11647, 11647, 0),
163
+ (11744, 11775, 0),
164
+ (11904, 11929, 2),
165
+ (11931, 12019, 2),
166
+ (12032, 12245, 2),
167
+ (12272, 12283, 2),
168
+ (12288, 12329, 2),
169
+ (12330, 12335, 0),
170
+ (12336, 12350, 2),
171
+ (12353, 12438, 2),
172
+ (12441, 12442, 0),
173
+ (12443, 12543, 2),
174
+ (12549, 12589, 2),
175
+ (12593, 12643, 2),
176
+ (12644, 12644, 0),
177
+ (12645, 12686, 2),
178
+ (12688, 12730, 2),
179
+ (12736, 12771, 2),
180
+ (12784, 12830, 2),
181
+ (12832, 12871, 2),
182
+ (12880, 13054, 2),
183
+ (13056, 19903, 2),
184
+ (19968, 42124, 2),
185
+ (42128, 42182, 2),
186
+ (42607, 42610, 0),
187
+ (42620, 42621, 0),
188
+ (42736, 42737, 0),
189
+ (43010, 43010, 0),
190
+ (43014, 43014, 0),
191
+ (43019, 43019, 0),
192
+ (43043, 43047, 0),
193
+ (43136, 43137, 0),
194
+ (43188, 43204, 0),
195
+ (43232, 43249, 0),
196
+ (43302, 43309, 0),
197
+ (43335, 43347, 0),
198
+ (43360, 43388, 2),
199
+ (43392, 43395, 0),
200
+ (43443, 43456, 0),
201
+ (43561, 43574, 0),
202
+ (43587, 43587, 0),
203
+ (43596, 43597, 0),
204
+ (43643, 43643, 0),
205
+ (43696, 43696, 0),
206
+ (43698, 43700, 0),
207
+ (43703, 43704, 0),
208
+ (43710, 43711, 0),
209
+ (43713, 43713, 0),
210
+ (44003, 44010, 0),
211
+ (44012, 44013, 0),
212
+ (44032, 55203, 2),
213
+ (55216, 55295, 0),
214
+ (63744, 64255, 2),
215
+ (64286, 64286, 0),
216
+ (65024, 65039, 0),
217
+ (65040, 65049, 2),
218
+ (65056, 65062, 0),
219
+ (65072, 65106, 2),
220
+ (65108, 65126, 2),
221
+ (65128, 65131, 2),
222
+ (65279, 65279, 0),
223
+ (65281, 65376, 2),
224
+ (65440, 65440, 0),
225
+ (65504, 65510, 2),
226
+ (65520, 65531, 0),
227
+ (66045, 66045, 0),
228
+ (68097, 68099, 0),
229
+ (68101, 68102, 0),
230
+ (68108, 68111, 0),
231
+ (68152, 68154, 0),
232
+ (68159, 68159, 0),
233
+ (69632, 69634, 0),
234
+ (69688, 69702, 0),
235
+ (69760, 69762, 0),
236
+ (69808, 69818, 0),
237
+ (69821, 69821, 0),
238
+ (110592, 110593, 2),
239
+ (119141, 119145, 0),
240
+ (119149, 119170, 0),
241
+ (119173, 119179, 0),
242
+ (119210, 119213, 0),
243
+ (119362, 119364, 0),
244
+ (127488, 127490, 2),
245
+ (127504, 127546, 2),
246
+ (127552, 127560, 2),
247
+ (127568, 127569, 2),
248
+ (131072, 196605, 2),
249
+ (196608, 262141, 2),
250
+ (917504, 921599, 0),
251
+ ],
252
+ frozenset(
253
+ [
254
+ "#",
255
+ "*",
256
+ "0",
257
+ "1",
258
+ "2",
259
+ "3",
260
+ "4",
261
+ "5",
262
+ "6",
263
+ "7",
264
+ "8",
265
+ "9",
266
+ "©",
267
+ "®",
268
+ "‼",
269
+ "⁉",
270
+ "™",
271
+ "ℹ",
272
+ "↔",
273
+ "↕",
274
+ "↖",
275
+ "↗",
276
+ "↘",
277
+ "↙",
278
+ "↩",
279
+ "↪",
280
+ "⌨",
281
+ "⏏",
282
+ "⏭",
283
+ "⏮",
284
+ "⏯",
285
+ "⏱",
286
+ "⏲",
287
+ "⏸",
288
+ "⏹",
289
+ "⏺",
290
+ "Ⓜ",
291
+ "▪",
292
+ "▫",
293
+ "▶",
294
+ "◀",
295
+ "◻",
296
+ "◼",
297
+ "☀",
298
+ "☁",
299
+ "☂",
300
+ "☃",
301
+ "☄",
302
+ "☎",
303
+ "☑",
304
+ "☘",
305
+ "☝",
306
+ "☠",
307
+ "☢",
308
+ "☣",
309
+ "☦",
310
+ "☪",
311
+ "☮",
312
+ "☯",
313
+ "☸",
314
+ "☹",
315
+ "☺",
316
+ "♀",
317
+ "♂",
318
+ "♟",
319
+ "♠",
320
+ "♣",
321
+ "♥",
322
+ "♦",
323
+ "♨",
324
+ "♻",
325
+ "♾",
326
+ "⚒",
327
+ "⚔",
328
+ "⚕",
329
+ "⚖",
330
+ "⚗",
331
+ "⚙",
332
+ "⚛",
333
+ "⚜",
334
+ "⚠",
335
+ "⚧",
336
+ "⚰",
337
+ "⚱",
338
+ "⛈",
339
+ "⛏",
340
+ "⛑",
341
+ "⛓",
342
+ "⛩",
343
+ "⛰",
344
+ "⛱",
345
+ "⛴",
346
+ "⛷",
347
+ "⛸",
348
+ "⛹",
349
+ "✂",
350
+ "✈",
351
+ "✉",
352
+ "✌",
353
+ "✍",
354
+ "✏",
355
+ "✒",
356
+ "✔",
357
+ "✖",
358
+ "✝",
359
+ "✡",
360
+ "✳",
361
+ "✴",
362
+ "❄",
363
+ "❇",
364
+ "❣",
365
+ "❤",
366
+ "➡",
367
+ "⤴",
368
+ "⤵",
369
+ "⬅",
370
+ "⬆",
371
+ "⬇",
372
+ "🅰",
373
+ "🅱",
374
+ "🅾",
375
+ "🅿",
376
+ "🌡",
377
+ "🌤",
378
+ "🌥",
379
+ "🌦",
380
+ "🌧",
381
+ "🌨",
382
+ "🌩",
383
+ "🌪",
384
+ "🌫",
385
+ "🌬",
386
+ "🌶",
387
+ "🍽",
388
+ "🎖",
389
+ "🎗",
390
+ "🎙",
391
+ "🎚",
392
+ "🎛",
393
+ "🎞",
394
+ "🎟",
395
+ "🏋",
396
+ "🏌",
397
+ "🏍",
398
+ "🏎",
399
+ "🏔",
400
+ "🏕",
401
+ "🏖",
402
+ "🏗",
403
+ "🏘",
404
+ "🏙",
405
+ "🏚",
406
+ "🏛",
407
+ "🏜",
408
+ "🏝",
409
+ "🏞",
410
+ "🏟",
411
+ "🏳",
412
+ "🏵",
413
+ "🏷",
414
+ "🐿",
415
+ "👁",
416
+ "📽",
417
+ "🕉",
418
+ "🕊",
419
+ "🕯",
420
+ "🕰",
421
+ "🕳",
422
+ "🕴",
423
+ "🕵",
424
+ "🕶",
425
+ "🕷",
426
+ "🕸",
427
+ "🕹",
428
+ "🖇",
429
+ "🖊",
430
+ "🖋",
431
+ "🖌",
432
+ "🖍",
433
+ "🖐",
434
+ "🖥",
435
+ "🖨",
436
+ "🖱",
437
+ "🖲",
438
+ "🖼",
439
+ "🗂",
440
+ "🗃",
441
+ "🗄",
442
+ "🗑",
443
+ "🗒",
444
+ "🗓",
445
+ "🗜",
446
+ "🗝",
447
+ "🗞",
448
+ "🗡",
449
+ "🗣",
450
+ "🗨",
451
+ "🗯",
452
+ "🗳",
453
+ "🗺",
454
+ "🛋",
455
+ "🛍",
456
+ "🛎",
457
+ "🛏",
458
+ "🛠",
459
+ "🛡",
460
+ "🛢",
461
+ "🛣",
462
+ "🛤",
463
+ "🛥",
464
+ "🛩",
465
+ "🛰",
466
+ "🛳",
467
+ ]
468
+ ),
469
+ )
venv/lib/python3.11/site-packages/rich/_unicode_data/unicode6-1-0.py ADDED
@@ -0,0 +1,480 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Auto generated by tools/make_width_tables.py
2
+ # Data from wcwidth project (https://github.com/jquast/wcwidth)
3
+
4
+ from rich.cells import CellTable
5
+
6
+ cell_table = CellTable(
7
+ "6.1.0",
8
+ [
9
+ (0, 0, 0),
10
+ (768, 879, 0),
11
+ (1155, 1161, 0),
12
+ (1425, 1469, 0),
13
+ (1471, 1471, 0),
14
+ (1473, 1474, 0),
15
+ (1476, 1477, 0),
16
+ (1479, 1479, 0),
17
+ (1536, 1540, 0),
18
+ (1552, 1562, 0),
19
+ (1611, 1631, 0),
20
+ (1648, 1648, 0),
21
+ (1750, 1757, 0),
22
+ (1759, 1764, 0),
23
+ (1767, 1768, 0),
24
+ (1770, 1773, 0),
25
+ (1807, 1807, 0),
26
+ (1809, 1809, 0),
27
+ (1840, 1866, 0),
28
+ (1958, 1968, 0),
29
+ (2027, 2035, 0),
30
+ (2070, 2073, 0),
31
+ (2075, 2083, 0),
32
+ (2085, 2087, 0),
33
+ (2089, 2093, 0),
34
+ (2137, 2139, 0),
35
+ (2276, 2302, 0),
36
+ (2304, 2307, 0),
37
+ (2362, 2364, 0),
38
+ (2366, 2383, 0),
39
+ (2385, 2391, 0),
40
+ (2402, 2403, 0),
41
+ (2433, 2435, 0),
42
+ (2492, 2492, 0),
43
+ (2494, 2500, 0),
44
+ (2503, 2504, 0),
45
+ (2507, 2509, 0),
46
+ (2519, 2519, 0),
47
+ (2530, 2531, 0),
48
+ (2561, 2563, 0),
49
+ (2620, 2620, 0),
50
+ (2622, 2626, 0),
51
+ (2631, 2632, 0),
52
+ (2635, 2637, 0),
53
+ (2641, 2641, 0),
54
+ (2672, 2673, 0),
55
+ (2677, 2677, 0),
56
+ (2689, 2691, 0),
57
+ (2748, 2748, 0),
58
+ (2750, 2757, 0),
59
+ (2759, 2761, 0),
60
+ (2763, 2765, 0),
61
+ (2786, 2787, 0),
62
+ (2817, 2819, 0),
63
+ (2876, 2876, 0),
64
+ (2878, 2884, 0),
65
+ (2887, 2888, 0),
66
+ (2891, 2893, 0),
67
+ (2902, 2903, 0),
68
+ (2914, 2915, 0),
69
+ (2946, 2946, 0),
70
+ (3006, 3010, 0),
71
+ (3014, 3016, 0),
72
+ (3018, 3021, 0),
73
+ (3031, 3031, 0),
74
+ (3073, 3075, 0),
75
+ (3134, 3140, 0),
76
+ (3142, 3144, 0),
77
+ (3146, 3149, 0),
78
+ (3157, 3158, 0),
79
+ (3170, 3171, 0),
80
+ (3202, 3203, 0),
81
+ (3260, 3260, 0),
82
+ (3262, 3268, 0),
83
+ (3270, 3272, 0),
84
+ (3274, 3277, 0),
85
+ (3285, 3286, 0),
86
+ (3298, 3299, 0),
87
+ (3330, 3331, 0),
88
+ (3390, 3396, 0),
89
+ (3398, 3400, 0),
90
+ (3402, 3405, 0),
91
+ (3415, 3415, 0),
92
+ (3426, 3427, 0),
93
+ (3458, 3459, 0),
94
+ (3530, 3530, 0),
95
+ (3535, 3540, 0),
96
+ (3542, 3542, 0),
97
+ (3544, 3551, 0),
98
+ (3570, 3571, 0),
99
+ (3633, 3633, 0),
100
+ (3636, 3642, 0),
101
+ (3655, 3662, 0),
102
+ (3761, 3761, 0),
103
+ (3764, 3769, 0),
104
+ (3771, 3772, 0),
105
+ (3784, 3789, 0),
106
+ (3864, 3865, 0),
107
+ (3893, 3893, 0),
108
+ (3895, 3895, 0),
109
+ (3897, 3897, 0),
110
+ (3902, 3903, 0),
111
+ (3953, 3972, 0),
112
+ (3974, 3975, 0),
113
+ (3981, 3991, 0),
114
+ (3993, 4028, 0),
115
+ (4038, 4038, 0),
116
+ (4139, 4158, 0),
117
+ (4182, 4185, 0),
118
+ (4190, 4192, 0),
119
+ (4194, 4196, 0),
120
+ (4199, 4205, 0),
121
+ (4209, 4212, 0),
122
+ (4226, 4237, 0),
123
+ (4239, 4239, 0),
124
+ (4250, 4253, 0),
125
+ (4352, 4447, 2),
126
+ (4448, 4607, 0),
127
+ (4957, 4959, 0),
128
+ (5906, 5908, 0),
129
+ (5938, 5940, 0),
130
+ (5970, 5971, 0),
131
+ (6002, 6003, 0),
132
+ (6068, 6099, 0),
133
+ (6109, 6109, 0),
134
+ (6155, 6157, 0),
135
+ (6313, 6313, 0),
136
+ (6432, 6443, 0),
137
+ (6448, 6459, 0),
138
+ (6576, 6592, 0),
139
+ (6600, 6601, 0),
140
+ (6679, 6683, 0),
141
+ (6741, 6750, 0),
142
+ (6752, 6780, 0),
143
+ (6783, 6783, 0),
144
+ (6912, 6916, 0),
145
+ (6964, 6980, 0),
146
+ (7019, 7027, 0),
147
+ (7040, 7042, 0),
148
+ (7073, 7085, 0),
149
+ (7142, 7155, 0),
150
+ (7204, 7223, 0),
151
+ (7376, 7378, 0),
152
+ (7380, 7400, 0),
153
+ (7405, 7405, 0),
154
+ (7410, 7412, 0),
155
+ (7616, 7654, 0),
156
+ (7676, 7679, 0),
157
+ (8203, 8207, 0),
158
+ (8232, 8238, 0),
159
+ (8288, 8303, 0),
160
+ (8400, 8432, 0),
161
+ (9001, 9002, 2),
162
+ (11503, 11505, 0),
163
+ (11647, 11647, 0),
164
+ (11744, 11775, 0),
165
+ (11904, 11929, 2),
166
+ (11931, 12019, 2),
167
+ (12032, 12245, 2),
168
+ (12272, 12283, 2),
169
+ (12288, 12329, 2),
170
+ (12330, 12335, 0),
171
+ (12336, 12350, 2),
172
+ (12353, 12438, 2),
173
+ (12441, 12442, 0),
174
+ (12443, 12543, 2),
175
+ (12549, 12589, 2),
176
+ (12593, 12643, 2),
177
+ (12644, 12644, 0),
178
+ (12645, 12686, 2),
179
+ (12688, 12730, 2),
180
+ (12736, 12771, 2),
181
+ (12784, 12830, 2),
182
+ (12832, 12871, 2),
183
+ (12880, 13054, 2),
184
+ (13056, 19903, 2),
185
+ (19968, 42124, 2),
186
+ (42128, 42182, 2),
187
+ (42607, 42610, 0),
188
+ (42612, 42621, 0),
189
+ (42655, 42655, 0),
190
+ (42736, 42737, 0),
191
+ (43010, 43010, 0),
192
+ (43014, 43014, 0),
193
+ (43019, 43019, 0),
194
+ (43043, 43047, 0),
195
+ (43136, 43137, 0),
196
+ (43188, 43204, 0),
197
+ (43232, 43249, 0),
198
+ (43302, 43309, 0),
199
+ (43335, 43347, 0),
200
+ (43360, 43388, 2),
201
+ (43392, 43395, 0),
202
+ (43443, 43456, 0),
203
+ (43561, 43574, 0),
204
+ (43587, 43587, 0),
205
+ (43596, 43597, 0),
206
+ (43643, 43643, 0),
207
+ (43696, 43696, 0),
208
+ (43698, 43700, 0),
209
+ (43703, 43704, 0),
210
+ (43710, 43711, 0),
211
+ (43713, 43713, 0),
212
+ (43755, 43759, 0),
213
+ (43765, 43766, 0),
214
+ (44003, 44010, 0),
215
+ (44012, 44013, 0),
216
+ (44032, 55203, 2),
217
+ (55216, 55295, 0),
218
+ (63744, 64255, 2),
219
+ (64286, 64286, 0),
220
+ (65024, 65039, 0),
221
+ (65040, 65049, 2),
222
+ (65056, 65062, 0),
223
+ (65072, 65106, 2),
224
+ (65108, 65126, 2),
225
+ (65128, 65131, 2),
226
+ (65279, 65279, 0),
227
+ (65281, 65376, 2),
228
+ (65440, 65440, 0),
229
+ (65504, 65510, 2),
230
+ (65520, 65531, 0),
231
+ (66045, 66045, 0),
232
+ (68097, 68099, 0),
233
+ (68101, 68102, 0),
234
+ (68108, 68111, 0),
235
+ (68152, 68154, 0),
236
+ (68159, 68159, 0),
237
+ (69632, 69634, 0),
238
+ (69688, 69702, 0),
239
+ (69760, 69762, 0),
240
+ (69808, 69818, 0),
241
+ (69821, 69821, 0),
242
+ (69888, 69890, 0),
243
+ (69927, 69940, 0),
244
+ (70016, 70018, 0),
245
+ (70067, 70080, 0),
246
+ (71339, 71351, 0),
247
+ (94033, 94078, 0),
248
+ (94095, 94098, 0),
249
+ (110592, 110593, 2),
250
+ (119141, 119145, 0),
251
+ (119149, 119170, 0),
252
+ (119173, 119179, 0),
253
+ (119210, 119213, 0),
254
+ (119362, 119364, 0),
255
+ (127488, 127490, 2),
256
+ (127504, 127546, 2),
257
+ (127552, 127560, 2),
258
+ (127568, 127569, 2),
259
+ (131072, 196605, 2),
260
+ (196608, 262141, 2),
261
+ (917504, 921599, 0),
262
+ ],
263
+ frozenset(
264
+ [
265
+ "#",
266
+ "*",
267
+ "0",
268
+ "1",
269
+ "2",
270
+ "3",
271
+ "4",
272
+ "5",
273
+ "6",
274
+ "7",
275
+ "8",
276
+ "9",
277
+ "©",
278
+ "®",
279
+ "‼",
280
+ "⁉",
281
+ "™",
282
+ "ℹ",
283
+ "↔",
284
+ "↕",
285
+ "↖",
286
+ "↗",
287
+ "↘",
288
+ "↙",
289
+ "↩",
290
+ "↪",
291
+ "⌨",
292
+ "⏏",
293
+ "⏭",
294
+ "⏮",
295
+ "⏯",
296
+ "⏱",
297
+ "⏲",
298
+ "⏸",
299
+ "⏹",
300
+ "⏺",
301
+ "Ⓜ",
302
+ "▪",
303
+ "▫",
304
+ "▶",
305
+ "◀",
306
+ "◻",
307
+ "◼",
308
+ "☀",
309
+ "☁",
310
+ "☂",
311
+ "☃",
312
+ "☄",
313
+ "☎",
314
+ "☑",
315
+ "☘",
316
+ "☝",
317
+ "☠",
318
+ "☢",
319
+ "☣",
320
+ "☦",
321
+ "☪",
322
+ "☮",
323
+ "☯",
324
+ "☸",
325
+ "☹",
326
+ "☺",
327
+ "♀",
328
+ "♂",
329
+ "♟",
330
+ "♠",
331
+ "♣",
332
+ "♥",
333
+ "♦",
334
+ "♨",
335
+ "♻",
336
+ "♾",
337
+ "⚒",
338
+ "⚔",
339
+ "⚕",
340
+ "⚖",
341
+ "⚗",
342
+ "⚙",
343
+ "⚛",
344
+ "⚜",
345
+ "⚠",
346
+ "⚧",
347
+ "⚰",
348
+ "⚱",
349
+ "⛈",
350
+ "⛏",
351
+ "⛑",
352
+ "⛓",
353
+ "⛩",
354
+ "⛰",
355
+ "⛱",
356
+ "⛴",
357
+ "⛷",
358
+ "⛸",
359
+ "⛹",
360
+ "✂",
361
+ "✈",
362
+ "✉",
363
+ "✌",
364
+ "✍",
365
+ "✏",
366
+ "✒",
367
+ "✔",
368
+ "✖",
369
+ "✝",
370
+ "✡",
371
+ "✳",
372
+ "✴",
373
+ "❄",
374
+ "❇",
375
+ "❣",
376
+ "❤",
377
+ "➡",
378
+ "⤴",
379
+ "⤵",
380
+ "⬅",
381
+ "⬆",
382
+ "⬇",
383
+ "🅰",
384
+ "🅱",
385
+ "🅾",
386
+ "🅿",
387
+ "🌡",
388
+ "🌤",
389
+ "🌥",
390
+ "🌦",
391
+ "🌧",
392
+ "🌨",
393
+ "🌩",
394
+ "🌪",
395
+ "🌫",
396
+ "🌬",
397
+ "🌶",
398
+ "🍽",
399
+ "🎖",
400
+ "🎗",
401
+ "🎙",
402
+ "🎚",
403
+ "🎛",
404
+ "🎞",
405
+ "🎟",
406
+ "🏋",
407
+ "🏌",
408
+ "🏍",
409
+ "🏎",
410
+ "🏔",
411
+ "🏕",
412
+ "🏖",
413
+ "🏗",
414
+ "🏘",
415
+ "🏙",
416
+ "🏚",
417
+ "🏛",
418
+ "🏜",
419
+ "🏝",
420
+ "🏞",
421
+ "🏟",
422
+ "🏳",
423
+ "🏵",
424
+ "🏷",
425
+ "🐿",
426
+ "👁",
427
+ "📽",
428
+ "🕉",
429
+ "🕊",
430
+ "🕯",
431
+ "🕰",
432
+ "🕳",
433
+ "🕴",
434
+ "🕵",
435
+ "🕶",
436
+ "🕷",
437
+ "🕸",
438
+ "🕹",
439
+ "🖇",
440
+ "🖊",
441
+ "🖋",
442
+ "🖌",
443
+ "🖍",
444
+ "🖐",
445
+ "🖥",
446
+ "🖨",
447
+ "🖱",
448
+ "🖲",
449
+ "🖼",
450
+ "🗂",
451
+ "🗃",
452
+ "🗄",
453
+ "🗑",
454
+ "🗒",
455
+ "🗓",
456
+ "🗜",
457
+ "🗝",
458
+ "🗞",
459
+ "🗡",
460
+ "🗣",
461
+ "🗨",
462
+ "🗯",
463
+ "🗳",
464
+ "🗺",
465
+ "🛋",
466
+ "🛍",
467
+ "🛎",
468
+ "🛏",
469
+ "🛠",
470
+ "🛡",
471
+ "🛢",
472
+ "🛣",
473
+ "🛤",
474
+ "🛥",
475
+ "🛩",
476
+ "🛰",
477
+ "🛳",
478
+ ]
479
+ ),
480
+ )
venv/lib/python3.11/site-packages/rich/_unicode_data/unicode6-2-0.py ADDED
@@ -0,0 +1,480 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Auto generated by tools/make_width_tables.py
2
+ # Data from wcwidth project (https://github.com/jquast/wcwidth)
3
+
4
+ from rich.cells import CellTable
5
+
6
+ cell_table = CellTable(
7
+ "6.2.0",
8
+ [
9
+ (0, 0, 0),
10
+ (768, 879, 0),
11
+ (1155, 1161, 0),
12
+ (1425, 1469, 0),
13
+ (1471, 1471, 0),
14
+ (1473, 1474, 0),
15
+ (1476, 1477, 0),
16
+ (1479, 1479, 0),
17
+ (1536, 1540, 0),
18
+ (1552, 1562, 0),
19
+ (1611, 1631, 0),
20
+ (1648, 1648, 0),
21
+ (1750, 1757, 0),
22
+ (1759, 1764, 0),
23
+ (1767, 1768, 0),
24
+ (1770, 1773, 0),
25
+ (1807, 1807, 0),
26
+ (1809, 1809, 0),
27
+ (1840, 1866, 0),
28
+ (1958, 1968, 0),
29
+ (2027, 2035, 0),
30
+ (2070, 2073, 0),
31
+ (2075, 2083, 0),
32
+ (2085, 2087, 0),
33
+ (2089, 2093, 0),
34
+ (2137, 2139, 0),
35
+ (2276, 2302, 0),
36
+ (2304, 2307, 0),
37
+ (2362, 2364, 0),
38
+ (2366, 2383, 0),
39
+ (2385, 2391, 0),
40
+ (2402, 2403, 0),
41
+ (2433, 2435, 0),
42
+ (2492, 2492, 0),
43
+ (2494, 2500, 0),
44
+ (2503, 2504, 0),
45
+ (2507, 2509, 0),
46
+ (2519, 2519, 0),
47
+ (2530, 2531, 0),
48
+ (2561, 2563, 0),
49
+ (2620, 2620, 0),
50
+ (2622, 2626, 0),
51
+ (2631, 2632, 0),
52
+ (2635, 2637, 0),
53
+ (2641, 2641, 0),
54
+ (2672, 2673, 0),
55
+ (2677, 2677, 0),
56
+ (2689, 2691, 0),
57
+ (2748, 2748, 0),
58
+ (2750, 2757, 0),
59
+ (2759, 2761, 0),
60
+ (2763, 2765, 0),
61
+ (2786, 2787, 0),
62
+ (2817, 2819, 0),
63
+ (2876, 2876, 0),
64
+ (2878, 2884, 0),
65
+ (2887, 2888, 0),
66
+ (2891, 2893, 0),
67
+ (2902, 2903, 0),
68
+ (2914, 2915, 0),
69
+ (2946, 2946, 0),
70
+ (3006, 3010, 0),
71
+ (3014, 3016, 0),
72
+ (3018, 3021, 0),
73
+ (3031, 3031, 0),
74
+ (3073, 3075, 0),
75
+ (3134, 3140, 0),
76
+ (3142, 3144, 0),
77
+ (3146, 3149, 0),
78
+ (3157, 3158, 0),
79
+ (3170, 3171, 0),
80
+ (3202, 3203, 0),
81
+ (3260, 3260, 0),
82
+ (3262, 3268, 0),
83
+ (3270, 3272, 0),
84
+ (3274, 3277, 0),
85
+ (3285, 3286, 0),
86
+ (3298, 3299, 0),
87
+ (3330, 3331, 0),
88
+ (3390, 3396, 0),
89
+ (3398, 3400, 0),
90
+ (3402, 3405, 0),
91
+ (3415, 3415, 0),
92
+ (3426, 3427, 0),
93
+ (3458, 3459, 0),
94
+ (3530, 3530, 0),
95
+ (3535, 3540, 0),
96
+ (3542, 3542, 0),
97
+ (3544, 3551, 0),
98
+ (3570, 3571, 0),
99
+ (3633, 3633, 0),
100
+ (3636, 3642, 0),
101
+ (3655, 3662, 0),
102
+ (3761, 3761, 0),
103
+ (3764, 3769, 0),
104
+ (3771, 3772, 0),
105
+ (3784, 3789, 0),
106
+ (3864, 3865, 0),
107
+ (3893, 3893, 0),
108
+ (3895, 3895, 0),
109
+ (3897, 3897, 0),
110
+ (3902, 3903, 0),
111
+ (3953, 3972, 0),
112
+ (3974, 3975, 0),
113
+ (3981, 3991, 0),
114
+ (3993, 4028, 0),
115
+ (4038, 4038, 0),
116
+ (4139, 4158, 0),
117
+ (4182, 4185, 0),
118
+ (4190, 4192, 0),
119
+ (4194, 4196, 0),
120
+ (4199, 4205, 0),
121
+ (4209, 4212, 0),
122
+ (4226, 4237, 0),
123
+ (4239, 4239, 0),
124
+ (4250, 4253, 0),
125
+ (4352, 4447, 2),
126
+ (4448, 4607, 0),
127
+ (4957, 4959, 0),
128
+ (5906, 5908, 0),
129
+ (5938, 5940, 0),
130
+ (5970, 5971, 0),
131
+ (6002, 6003, 0),
132
+ (6068, 6099, 0),
133
+ (6109, 6109, 0),
134
+ (6155, 6157, 0),
135
+ (6313, 6313, 0),
136
+ (6432, 6443, 0),
137
+ (6448, 6459, 0),
138
+ (6576, 6592, 0),
139
+ (6600, 6601, 0),
140
+ (6679, 6683, 0),
141
+ (6741, 6750, 0),
142
+ (6752, 6780, 0),
143
+ (6783, 6783, 0),
144
+ (6912, 6916, 0),
145
+ (6964, 6980, 0),
146
+ (7019, 7027, 0),
147
+ (7040, 7042, 0),
148
+ (7073, 7085, 0),
149
+ (7142, 7155, 0),
150
+ (7204, 7223, 0),
151
+ (7376, 7378, 0),
152
+ (7380, 7400, 0),
153
+ (7405, 7405, 0),
154
+ (7410, 7412, 0),
155
+ (7616, 7654, 0),
156
+ (7676, 7679, 0),
157
+ (8203, 8207, 0),
158
+ (8232, 8238, 0),
159
+ (8288, 8303, 0),
160
+ (8400, 8432, 0),
161
+ (9001, 9002, 2),
162
+ (11503, 11505, 0),
163
+ (11647, 11647, 0),
164
+ (11744, 11775, 0),
165
+ (11904, 11929, 2),
166
+ (11931, 12019, 2),
167
+ (12032, 12245, 2),
168
+ (12272, 12283, 2),
169
+ (12288, 12329, 2),
170
+ (12330, 12335, 0),
171
+ (12336, 12350, 2),
172
+ (12353, 12438, 2),
173
+ (12441, 12442, 0),
174
+ (12443, 12543, 2),
175
+ (12549, 12589, 2),
176
+ (12593, 12643, 2),
177
+ (12644, 12644, 0),
178
+ (12645, 12686, 2),
179
+ (12688, 12730, 2),
180
+ (12736, 12771, 2),
181
+ (12784, 12830, 2),
182
+ (12832, 12871, 2),
183
+ (12880, 13054, 2),
184
+ (13056, 19903, 2),
185
+ (19968, 42124, 2),
186
+ (42128, 42182, 2),
187
+ (42607, 42610, 0),
188
+ (42612, 42621, 0),
189
+ (42655, 42655, 0),
190
+ (42736, 42737, 0),
191
+ (43010, 43010, 0),
192
+ (43014, 43014, 0),
193
+ (43019, 43019, 0),
194
+ (43043, 43047, 0),
195
+ (43136, 43137, 0),
196
+ (43188, 43204, 0),
197
+ (43232, 43249, 0),
198
+ (43302, 43309, 0),
199
+ (43335, 43347, 0),
200
+ (43360, 43388, 2),
201
+ (43392, 43395, 0),
202
+ (43443, 43456, 0),
203
+ (43561, 43574, 0),
204
+ (43587, 43587, 0),
205
+ (43596, 43597, 0),
206
+ (43643, 43643, 0),
207
+ (43696, 43696, 0),
208
+ (43698, 43700, 0),
209
+ (43703, 43704, 0),
210
+ (43710, 43711, 0),
211
+ (43713, 43713, 0),
212
+ (43755, 43759, 0),
213
+ (43765, 43766, 0),
214
+ (44003, 44010, 0),
215
+ (44012, 44013, 0),
216
+ (44032, 55203, 2),
217
+ (55216, 55295, 0),
218
+ (63744, 64255, 2),
219
+ (64286, 64286, 0),
220
+ (65024, 65039, 0),
221
+ (65040, 65049, 2),
222
+ (65056, 65062, 0),
223
+ (65072, 65106, 2),
224
+ (65108, 65126, 2),
225
+ (65128, 65131, 2),
226
+ (65279, 65279, 0),
227
+ (65281, 65376, 2),
228
+ (65440, 65440, 0),
229
+ (65504, 65510, 2),
230
+ (65520, 65531, 0),
231
+ (66045, 66045, 0),
232
+ (68097, 68099, 0),
233
+ (68101, 68102, 0),
234
+ (68108, 68111, 0),
235
+ (68152, 68154, 0),
236
+ (68159, 68159, 0),
237
+ (69632, 69634, 0),
238
+ (69688, 69702, 0),
239
+ (69760, 69762, 0),
240
+ (69808, 69818, 0),
241
+ (69821, 69821, 0),
242
+ (69888, 69890, 0),
243
+ (69927, 69940, 0),
244
+ (70016, 70018, 0),
245
+ (70067, 70080, 0),
246
+ (71339, 71351, 0),
247
+ (94033, 94078, 0),
248
+ (94095, 94098, 0),
249
+ (110592, 110593, 2),
250
+ (119141, 119145, 0),
251
+ (119149, 119170, 0),
252
+ (119173, 119179, 0),
253
+ (119210, 119213, 0),
254
+ (119362, 119364, 0),
255
+ (127488, 127490, 2),
256
+ (127504, 127546, 2),
257
+ (127552, 127560, 2),
258
+ (127568, 127569, 2),
259
+ (131072, 196605, 2),
260
+ (196608, 262141, 2),
261
+ (917504, 921599, 0),
262
+ ],
263
+ frozenset(
264
+ [
265
+ "#",
266
+ "*",
267
+ "0",
268
+ "1",
269
+ "2",
270
+ "3",
271
+ "4",
272
+ "5",
273
+ "6",
274
+ "7",
275
+ "8",
276
+ "9",
277
+ "©",
278
+ "®",
279
+ "‼",
280
+ "⁉",
281
+ "™",
282
+ "ℹ",
283
+ "↔",
284
+ "↕",
285
+ "↖",
286
+ "↗",
287
+ "↘",
288
+ "↙",
289
+ "↩",
290
+ "↪",
291
+ "⌨",
292
+ "⏏",
293
+ "⏭",
294
+ "⏮",
295
+ "⏯",
296
+ "⏱",
297
+ "⏲",
298
+ "⏸",
299
+ "⏹",
300
+ "⏺",
301
+ "Ⓜ",
302
+ "▪",
303
+ "▫",
304
+ "▶",
305
+ "◀",
306
+ "◻",
307
+ "◼",
308
+ "☀",
309
+ "☁",
310
+ "☂",
311
+ "☃",
312
+ "☄",
313
+ "☎",
314
+ "☑",
315
+ "☘",
316
+ "☝",
317
+ "☠",
318
+ "☢",
319
+ "☣",
320
+ "☦",
321
+ "☪",
322
+ "☮",
323
+ "☯",
324
+ "☸",
325
+ "☹",
326
+ "☺",
327
+ "♀",
328
+ "♂",
329
+ "♟",
330
+ "♠",
331
+ "♣",
332
+ "♥",
333
+ "♦",
334
+ "♨",
335
+ "♻",
336
+ "♾",
337
+ "⚒",
338
+ "⚔",
339
+ "⚕",
340
+ "⚖",
341
+ "⚗",
342
+ "⚙",
343
+ "⚛",
344
+ "⚜",
345
+ "⚠",
346
+ "⚧",
347
+ "⚰",
348
+ "⚱",
349
+ "⛈",
350
+ "⛏",
351
+ "⛑",
352
+ "⛓",
353
+ "⛩",
354
+ "⛰",
355
+ "⛱",
356
+ "⛴",
357
+ "⛷",
358
+ "⛸",
359
+ "⛹",
360
+ "✂",
361
+ "✈",
362
+ "✉",
363
+ "✌",
364
+ "✍",
365
+ "✏",
366
+ "✒",
367
+ "✔",
368
+ "✖",
369
+ "✝",
370
+ "✡",
371
+ "✳",
372
+ "✴",
373
+ "❄",
374
+ "❇",
375
+ "❣",
376
+ "❤",
377
+ "➡",
378
+ "⤴",
379
+ "⤵",
380
+ "⬅",
381
+ "⬆",
382
+ "⬇",
383
+ "🅰",
384
+ "🅱",
385
+ "🅾",
386
+ "🅿",
387
+ "🌡",
388
+ "🌤",
389
+ "🌥",
390
+ "🌦",
391
+ "🌧",
392
+ "🌨",
393
+ "🌩",
394
+ "🌪",
395
+ "🌫",
396
+ "🌬",
397
+ "🌶",
398
+ "🍽",
399
+ "🎖",
400
+ "🎗",
401
+ "🎙",
402
+ "🎚",
403
+ "🎛",
404
+ "🎞",
405
+ "🎟",
406
+ "🏋",
407
+ "🏌",
408
+ "🏍",
409
+ "🏎",
410
+ "🏔",
411
+ "🏕",
412
+ "🏖",
413
+ "🏗",
414
+ "🏘",
415
+ "🏙",
416
+ "🏚",
417
+ "🏛",
418
+ "🏜",
419
+ "🏝",
420
+ "🏞",
421
+ "🏟",
422
+ "🏳",
423
+ "🏵",
424
+ "🏷",
425
+ "🐿",
426
+ "👁",
427
+ "📽",
428
+ "🕉",
429
+ "🕊",
430
+ "🕯",
431
+ "🕰",
432
+ "🕳",
433
+ "🕴",
434
+ "🕵",
435
+ "🕶",
436
+ "🕷",
437
+ "🕸",
438
+ "🕹",
439
+ "🖇",
440
+ "🖊",
441
+ "🖋",
442
+ "🖌",
443
+ "🖍",
444
+ "🖐",
445
+ "🖥",
446
+ "🖨",
447
+ "🖱",
448
+ "🖲",
449
+ "🖼",
450
+ "🗂",
451
+ "🗃",
452
+ "🗄",
453
+ "🗑",
454
+ "🗒",
455
+ "🗓",
456
+ "🗜",
457
+ "🗝",
458
+ "🗞",
459
+ "🗡",
460
+ "🗣",
461
+ "🗨",
462
+ "🗯",
463
+ "🗳",
464
+ "🗺",
465
+ "🛋",
466
+ "🛍",
467
+ "🛎",
468
+ "🛏",
469
+ "🛠",
470
+ "🛡",
471
+ "🛢",
472
+ "🛣",
473
+ "🛤",
474
+ "🛥",
475
+ "🛩",
476
+ "🛰",
477
+ "🛳",
478
+ ]
479
+ ),
480
+ )
venv/lib/python3.11/site-packages/rich/_unicode_data/unicode6-3-0.py ADDED
@@ -0,0 +1,481 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Auto generated by tools/make_width_tables.py
2
+ # Data from wcwidth project (https://github.com/jquast/wcwidth)
3
+
4
+ from rich.cells import CellTable
5
+
6
+ cell_table = CellTable(
7
+ "6.3.0",
8
+ [
9
+ (0, 0, 0),
10
+ (768, 879, 0),
11
+ (1155, 1161, 0),
12
+ (1425, 1469, 0),
13
+ (1471, 1471, 0),
14
+ (1473, 1474, 0),
15
+ (1476, 1477, 0),
16
+ (1479, 1479, 0),
17
+ (1536, 1540, 0),
18
+ (1552, 1562, 0),
19
+ (1564, 1564, 0),
20
+ (1611, 1631, 0),
21
+ (1648, 1648, 0),
22
+ (1750, 1757, 0),
23
+ (1759, 1764, 0),
24
+ (1767, 1768, 0),
25
+ (1770, 1773, 0),
26
+ (1807, 1807, 0),
27
+ (1809, 1809, 0),
28
+ (1840, 1866, 0),
29
+ (1958, 1968, 0),
30
+ (2027, 2035, 0),
31
+ (2070, 2073, 0),
32
+ (2075, 2083, 0),
33
+ (2085, 2087, 0),
34
+ (2089, 2093, 0),
35
+ (2137, 2139, 0),
36
+ (2276, 2302, 0),
37
+ (2304, 2307, 0),
38
+ (2362, 2364, 0),
39
+ (2366, 2383, 0),
40
+ (2385, 2391, 0),
41
+ (2402, 2403, 0),
42
+ (2433, 2435, 0),
43
+ (2492, 2492, 0),
44
+ (2494, 2500, 0),
45
+ (2503, 2504, 0),
46
+ (2507, 2509, 0),
47
+ (2519, 2519, 0),
48
+ (2530, 2531, 0),
49
+ (2561, 2563, 0),
50
+ (2620, 2620, 0),
51
+ (2622, 2626, 0),
52
+ (2631, 2632, 0),
53
+ (2635, 2637, 0),
54
+ (2641, 2641, 0),
55
+ (2672, 2673, 0),
56
+ (2677, 2677, 0),
57
+ (2689, 2691, 0),
58
+ (2748, 2748, 0),
59
+ (2750, 2757, 0),
60
+ (2759, 2761, 0),
61
+ (2763, 2765, 0),
62
+ (2786, 2787, 0),
63
+ (2817, 2819, 0),
64
+ (2876, 2876, 0),
65
+ (2878, 2884, 0),
66
+ (2887, 2888, 0),
67
+ (2891, 2893, 0),
68
+ (2902, 2903, 0),
69
+ (2914, 2915, 0),
70
+ (2946, 2946, 0),
71
+ (3006, 3010, 0),
72
+ (3014, 3016, 0),
73
+ (3018, 3021, 0),
74
+ (3031, 3031, 0),
75
+ (3073, 3075, 0),
76
+ (3134, 3140, 0),
77
+ (3142, 3144, 0),
78
+ (3146, 3149, 0),
79
+ (3157, 3158, 0),
80
+ (3170, 3171, 0),
81
+ (3202, 3203, 0),
82
+ (3260, 3260, 0),
83
+ (3262, 3268, 0),
84
+ (3270, 3272, 0),
85
+ (3274, 3277, 0),
86
+ (3285, 3286, 0),
87
+ (3298, 3299, 0),
88
+ (3330, 3331, 0),
89
+ (3390, 3396, 0),
90
+ (3398, 3400, 0),
91
+ (3402, 3405, 0),
92
+ (3415, 3415, 0),
93
+ (3426, 3427, 0),
94
+ (3458, 3459, 0),
95
+ (3530, 3530, 0),
96
+ (3535, 3540, 0),
97
+ (3542, 3542, 0),
98
+ (3544, 3551, 0),
99
+ (3570, 3571, 0),
100
+ (3633, 3633, 0),
101
+ (3636, 3642, 0),
102
+ (3655, 3662, 0),
103
+ (3761, 3761, 0),
104
+ (3764, 3769, 0),
105
+ (3771, 3772, 0),
106
+ (3784, 3789, 0),
107
+ (3864, 3865, 0),
108
+ (3893, 3893, 0),
109
+ (3895, 3895, 0),
110
+ (3897, 3897, 0),
111
+ (3902, 3903, 0),
112
+ (3953, 3972, 0),
113
+ (3974, 3975, 0),
114
+ (3981, 3991, 0),
115
+ (3993, 4028, 0),
116
+ (4038, 4038, 0),
117
+ (4139, 4158, 0),
118
+ (4182, 4185, 0),
119
+ (4190, 4192, 0),
120
+ (4194, 4196, 0),
121
+ (4199, 4205, 0),
122
+ (4209, 4212, 0),
123
+ (4226, 4237, 0),
124
+ (4239, 4239, 0),
125
+ (4250, 4253, 0),
126
+ (4352, 4447, 2),
127
+ (4448, 4607, 0),
128
+ (4957, 4959, 0),
129
+ (5906, 5908, 0),
130
+ (5938, 5940, 0),
131
+ (5970, 5971, 0),
132
+ (6002, 6003, 0),
133
+ (6068, 6099, 0),
134
+ (6109, 6109, 0),
135
+ (6155, 6158, 0),
136
+ (6313, 6313, 0),
137
+ (6432, 6443, 0),
138
+ (6448, 6459, 0),
139
+ (6576, 6592, 0),
140
+ (6600, 6601, 0),
141
+ (6679, 6683, 0),
142
+ (6741, 6750, 0),
143
+ (6752, 6780, 0),
144
+ (6783, 6783, 0),
145
+ (6912, 6916, 0),
146
+ (6964, 6980, 0),
147
+ (7019, 7027, 0),
148
+ (7040, 7042, 0),
149
+ (7073, 7085, 0),
150
+ (7142, 7155, 0),
151
+ (7204, 7223, 0),
152
+ (7376, 7378, 0),
153
+ (7380, 7400, 0),
154
+ (7405, 7405, 0),
155
+ (7410, 7412, 0),
156
+ (7616, 7654, 0),
157
+ (7676, 7679, 0),
158
+ (8203, 8207, 0),
159
+ (8232, 8238, 0),
160
+ (8288, 8303, 0),
161
+ (8400, 8432, 0),
162
+ (9001, 9002, 2),
163
+ (11503, 11505, 0),
164
+ (11647, 11647, 0),
165
+ (11744, 11775, 0),
166
+ (11904, 11929, 2),
167
+ (11931, 12019, 2),
168
+ (12032, 12245, 2),
169
+ (12272, 12283, 2),
170
+ (12288, 12329, 2),
171
+ (12330, 12335, 0),
172
+ (12336, 12350, 2),
173
+ (12353, 12438, 2),
174
+ (12441, 12442, 0),
175
+ (12443, 12543, 2),
176
+ (12549, 12589, 2),
177
+ (12593, 12643, 2),
178
+ (12644, 12644, 0),
179
+ (12645, 12686, 2),
180
+ (12688, 12730, 2),
181
+ (12736, 12771, 2),
182
+ (12784, 12830, 2),
183
+ (12832, 12871, 2),
184
+ (12880, 13054, 2),
185
+ (13056, 19903, 2),
186
+ (19968, 42124, 2),
187
+ (42128, 42182, 2),
188
+ (42607, 42610, 0),
189
+ (42612, 42621, 0),
190
+ (42655, 42655, 0),
191
+ (42736, 42737, 0),
192
+ (43010, 43010, 0),
193
+ (43014, 43014, 0),
194
+ (43019, 43019, 0),
195
+ (43043, 43047, 0),
196
+ (43136, 43137, 0),
197
+ (43188, 43204, 0),
198
+ (43232, 43249, 0),
199
+ (43302, 43309, 0),
200
+ (43335, 43347, 0),
201
+ (43360, 43388, 2),
202
+ (43392, 43395, 0),
203
+ (43443, 43456, 0),
204
+ (43561, 43574, 0),
205
+ (43587, 43587, 0),
206
+ (43596, 43597, 0),
207
+ (43643, 43643, 0),
208
+ (43696, 43696, 0),
209
+ (43698, 43700, 0),
210
+ (43703, 43704, 0),
211
+ (43710, 43711, 0),
212
+ (43713, 43713, 0),
213
+ (43755, 43759, 0),
214
+ (43765, 43766, 0),
215
+ (44003, 44010, 0),
216
+ (44012, 44013, 0),
217
+ (44032, 55203, 2),
218
+ (55216, 55295, 0),
219
+ (63744, 64255, 2),
220
+ (64286, 64286, 0),
221
+ (65024, 65039, 0),
222
+ (65040, 65049, 2),
223
+ (65056, 65062, 0),
224
+ (65072, 65106, 2),
225
+ (65108, 65126, 2),
226
+ (65128, 65131, 2),
227
+ (65279, 65279, 0),
228
+ (65281, 65376, 2),
229
+ (65440, 65440, 0),
230
+ (65504, 65510, 2),
231
+ (65520, 65531, 0),
232
+ (66045, 66045, 0),
233
+ (68097, 68099, 0),
234
+ (68101, 68102, 0),
235
+ (68108, 68111, 0),
236
+ (68152, 68154, 0),
237
+ (68159, 68159, 0),
238
+ (69632, 69634, 0),
239
+ (69688, 69702, 0),
240
+ (69760, 69762, 0),
241
+ (69808, 69818, 0),
242
+ (69821, 69821, 0),
243
+ (69888, 69890, 0),
244
+ (69927, 69940, 0),
245
+ (70016, 70018, 0),
246
+ (70067, 70080, 0),
247
+ (71339, 71351, 0),
248
+ (94033, 94078, 0),
249
+ (94095, 94098, 0),
250
+ (110592, 110593, 2),
251
+ (119141, 119145, 0),
252
+ (119149, 119170, 0),
253
+ (119173, 119179, 0),
254
+ (119210, 119213, 0),
255
+ (119362, 119364, 0),
256
+ (127488, 127490, 2),
257
+ (127504, 127546, 2),
258
+ (127552, 127560, 2),
259
+ (127568, 127569, 2),
260
+ (131072, 196605, 2),
261
+ (196608, 262141, 2),
262
+ (917504, 921599, 0),
263
+ ],
264
+ frozenset(
265
+ [
266
+ "#",
267
+ "*",
268
+ "0",
269
+ "1",
270
+ "2",
271
+ "3",
272
+ "4",
273
+ "5",
274
+ "6",
275
+ "7",
276
+ "8",
277
+ "9",
278
+ "©",
279
+ "®",
280
+ "‼",
281
+ "⁉",
282
+ "™",
283
+ "ℹ",
284
+ "↔",
285
+ "↕",
286
+ "↖",
287
+ "↗",
288
+ "↘",
289
+ "↙",
290
+ "↩",
291
+ "↪",
292
+ "⌨",
293
+ "⏏",
294
+ "⏭",
295
+ "⏮",
296
+ "⏯",
297
+ "⏱",
298
+ "⏲",
299
+ "⏸",
300
+ "⏹",
301
+ "⏺",
302
+ "Ⓜ",
303
+ "▪",
304
+ "▫",
305
+ "▶",
306
+ "◀",
307
+ "◻",
308
+ "◼",
309
+ "☀",
310
+ "☁",
311
+ "☂",
312
+ "☃",
313
+ "☄",
314
+ "☎",
315
+ "☑",
316
+ "☘",
317
+ "☝",
318
+ "☠",
319
+ "☢",
320
+ "☣",
321
+ "☦",
322
+ "☪",
323
+ "☮",
324
+ "☯",
325
+ "☸",
326
+ "☹",
327
+ "☺",
328
+ "♀",
329
+ "♂",
330
+ "♟",
331
+ "♠",
332
+ "♣",
333
+ "♥",
334
+ "♦",
335
+ "♨",
336
+ "♻",
337
+ "♾",
338
+ "⚒",
339
+ "⚔",
340
+ "⚕",
341
+ "⚖",
342
+ "⚗",
343
+ "⚙",
344
+ "⚛",
345
+ "⚜",
346
+ "⚠",
347
+ "⚧",
348
+ "⚰",
349
+ "⚱",
350
+ "⛈",
351
+ "⛏",
352
+ "⛑",
353
+ "⛓",
354
+ "⛩",
355
+ "⛰",
356
+ "⛱",
357
+ "⛴",
358
+ "⛷",
359
+ "⛸",
360
+ "⛹",
361
+ "✂",
362
+ "✈",
363
+ "✉",
364
+ "✌",
365
+ "✍",
366
+ "✏",
367
+ "✒",
368
+ "✔",
369
+ "✖",
370
+ "✝",
371
+ "✡",
372
+ "✳",
373
+ "✴",
374
+ "❄",
375
+ "❇",
376
+ "❣",
377
+ "❤",
378
+ "➡",
379
+ "⤴",
380
+ "⤵",
381
+ "⬅",
382
+ "⬆",
383
+ "⬇",
384
+ "🅰",
385
+ "🅱",
386
+ "🅾",
387
+ "🅿",
388
+ "🌡",
389
+ "🌤",
390
+ "🌥",
391
+ "🌦",
392
+ "🌧",
393
+ "🌨",
394
+ "🌩",
395
+ "🌪",
396
+ "🌫",
397
+ "🌬",
398
+ "🌶",
399
+ "🍽",
400
+ "🎖",
401
+ "🎗",
402
+ "🎙",
403
+ "🎚",
404
+ "🎛",
405
+ "🎞",
406
+ "🎟",
407
+ "🏋",
408
+ "🏌",
409
+ "🏍",
410
+ "🏎",
411
+ "🏔",
412
+ "🏕",
413
+ "🏖",
414
+ "🏗",
415
+ "🏘",
416
+ "🏙",
417
+ "🏚",
418
+ "🏛",
419
+ "🏜",
420
+ "🏝",
421
+ "🏞",
422
+ "🏟",
423
+ "����",
424
+ "🏵",
425
+ "🏷",
426
+ "🐿",
427
+ "👁",
428
+ "📽",
429
+ "🕉",
430
+ "🕊",
431
+ "🕯",
432
+ "🕰",
433
+ "🕳",
434
+ "🕴",
435
+ "🕵",
436
+ "🕶",
437
+ "🕷",
438
+ "🕸",
439
+ "🕹",
440
+ "🖇",
441
+ "🖊",
442
+ "🖋",
443
+ "🖌",
444
+ "🖍",
445
+ "🖐",
446
+ "🖥",
447
+ "🖨",
448
+ "🖱",
449
+ "🖲",
450
+ "🖼",
451
+ "🗂",
452
+ "🗃",
453
+ "🗄",
454
+ "🗑",
455
+ "🗒",
456
+ "🗓",
457
+ "🗜",
458
+ "🗝",
459
+ "🗞",
460
+ "🗡",
461
+ "🗣",
462
+ "🗨",
463
+ "🗯",
464
+ "🗳",
465
+ "🗺",
466
+ "🛋",
467
+ "🛍",
468
+ "🛎",
469
+ "🛏",
470
+ "🛠",
471
+ "🛡",
472
+ "🛢",
473
+ "🛣",
474
+ "🛤",
475
+ "🛥",
476
+ "🛩",
477
+ "🛰",
478
+ "🛳",
479
+ ]
480
+ ),
481
+ )
venv/lib/python3.11/site-packages/rich/_unicode_data/unicode7-0-0.py ADDED
@@ -0,0 +1,507 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Auto generated by tools/make_width_tables.py
2
+ # Data from wcwidth project (https://github.com/jquast/wcwidth)
3
+
4
+ from rich.cells import CellTable
5
+
6
+ cell_table = CellTable(
7
+ "7.0.0",
8
+ [
9
+ (0, 0, 0),
10
+ (768, 879, 0),
11
+ (1155, 1161, 0),
12
+ (1425, 1469, 0),
13
+ (1471, 1471, 0),
14
+ (1473, 1474, 0),
15
+ (1476, 1477, 0),
16
+ (1479, 1479, 0),
17
+ (1536, 1541, 0),
18
+ (1552, 1562, 0),
19
+ (1564, 1564, 0),
20
+ (1611, 1631, 0),
21
+ (1648, 1648, 0),
22
+ (1750, 1757, 0),
23
+ (1759, 1764, 0),
24
+ (1767, 1768, 0),
25
+ (1770, 1773, 0),
26
+ (1807, 1807, 0),
27
+ (1809, 1809, 0),
28
+ (1840, 1866, 0),
29
+ (1958, 1968, 0),
30
+ (2027, 2035, 0),
31
+ (2070, 2073, 0),
32
+ (2075, 2083, 0),
33
+ (2085, 2087, 0),
34
+ (2089, 2093, 0),
35
+ (2137, 2139, 0),
36
+ (2276, 2307, 0),
37
+ (2362, 2364, 0),
38
+ (2366, 2383, 0),
39
+ (2385, 2391, 0),
40
+ (2402, 2403, 0),
41
+ (2433, 2435, 0),
42
+ (2492, 2492, 0),
43
+ (2494, 2500, 0),
44
+ (2503, 2504, 0),
45
+ (2507, 2509, 0),
46
+ (2519, 2519, 0),
47
+ (2530, 2531, 0),
48
+ (2561, 2563, 0),
49
+ (2620, 2620, 0),
50
+ (2622, 2626, 0),
51
+ (2631, 2632, 0),
52
+ (2635, 2637, 0),
53
+ (2641, 2641, 0),
54
+ (2672, 2673, 0),
55
+ (2677, 2677, 0),
56
+ (2689, 2691, 0),
57
+ (2748, 2748, 0),
58
+ (2750, 2757, 0),
59
+ (2759, 2761, 0),
60
+ (2763, 2765, 0),
61
+ (2786, 2787, 0),
62
+ (2817, 2819, 0),
63
+ (2876, 2876, 0),
64
+ (2878, 2884, 0),
65
+ (2887, 2888, 0),
66
+ (2891, 2893, 0),
67
+ (2902, 2903, 0),
68
+ (2914, 2915, 0),
69
+ (2946, 2946, 0),
70
+ (3006, 3010, 0),
71
+ (3014, 3016, 0),
72
+ (3018, 3021, 0),
73
+ (3031, 3031, 0),
74
+ (3072, 3075, 0),
75
+ (3134, 3140, 0),
76
+ (3142, 3144, 0),
77
+ (3146, 3149, 0),
78
+ (3157, 3158, 0),
79
+ (3170, 3171, 0),
80
+ (3201, 3203, 0),
81
+ (3260, 3260, 0),
82
+ (3262, 3268, 0),
83
+ (3270, 3272, 0),
84
+ (3274, 3277, 0),
85
+ (3285, 3286, 0),
86
+ (3298, 3299, 0),
87
+ (3329, 3331, 0),
88
+ (3390, 3396, 0),
89
+ (3398, 3400, 0),
90
+ (3402, 3405, 0),
91
+ (3415, 3415, 0),
92
+ (3426, 3427, 0),
93
+ (3458, 3459, 0),
94
+ (3530, 3530, 0),
95
+ (3535, 3540, 0),
96
+ (3542, 3542, 0),
97
+ (3544, 3551, 0),
98
+ (3570, 3571, 0),
99
+ (3633, 3633, 0),
100
+ (3636, 3642, 0),
101
+ (3655, 3662, 0),
102
+ (3761, 3761, 0),
103
+ (3764, 3769, 0),
104
+ (3771, 3772, 0),
105
+ (3784, 3789, 0),
106
+ (3864, 3865, 0),
107
+ (3893, 3893, 0),
108
+ (3895, 3895, 0),
109
+ (3897, 3897, 0),
110
+ (3902, 3903, 0),
111
+ (3953, 3972, 0),
112
+ (3974, 3975, 0),
113
+ (3981, 3991, 0),
114
+ (3993, 4028, 0),
115
+ (4038, 4038, 0),
116
+ (4139, 4158, 0),
117
+ (4182, 4185, 0),
118
+ (4190, 4192, 0),
119
+ (4194, 4196, 0),
120
+ (4199, 4205, 0),
121
+ (4209, 4212, 0),
122
+ (4226, 4237, 0),
123
+ (4239, 4239, 0),
124
+ (4250, 4253, 0),
125
+ (4352, 4447, 2),
126
+ (4448, 4607, 0),
127
+ (4957, 4959, 0),
128
+ (5906, 5908, 0),
129
+ (5938, 5940, 0),
130
+ (5970, 5971, 0),
131
+ (6002, 6003, 0),
132
+ (6068, 6099, 0),
133
+ (6109, 6109, 0),
134
+ (6155, 6158, 0),
135
+ (6313, 6313, 0),
136
+ (6432, 6443, 0),
137
+ (6448, 6459, 0),
138
+ (6576, 6592, 0),
139
+ (6600, 6601, 0),
140
+ (6679, 6683, 0),
141
+ (6741, 6750, 0),
142
+ (6752, 6780, 0),
143
+ (6783, 6783, 0),
144
+ (6832, 6846, 0),
145
+ (6912, 6916, 0),
146
+ (6964, 6980, 0),
147
+ (7019, 7027, 0),
148
+ (7040, 7042, 0),
149
+ (7073, 7085, 0),
150
+ (7142, 7155, 0),
151
+ (7204, 7223, 0),
152
+ (7376, 7378, 0),
153
+ (7380, 7400, 0),
154
+ (7405, 7405, 0),
155
+ (7410, 7412, 0),
156
+ (7416, 7417, 0),
157
+ (7616, 7669, 0),
158
+ (7676, 7679, 0),
159
+ (8203, 8207, 0),
160
+ (8232, 8238, 0),
161
+ (8288, 8303, 0),
162
+ (8400, 8432, 0),
163
+ (9001, 9002, 2),
164
+ (11503, 11505, 0),
165
+ (11647, 11647, 0),
166
+ (11744, 11775, 0),
167
+ (11904, 11929, 2),
168
+ (11931, 12019, 2),
169
+ (12032, 12245, 2),
170
+ (12272, 12283, 2),
171
+ (12288, 12329, 2),
172
+ (12330, 12335, 0),
173
+ (12336, 12350, 2),
174
+ (12353, 12438, 2),
175
+ (12441, 12442, 0),
176
+ (12443, 12543, 2),
177
+ (12549, 12589, 2),
178
+ (12593, 12643, 2),
179
+ (12644, 12644, 0),
180
+ (12645, 12686, 2),
181
+ (12688, 12730, 2),
182
+ (12736, 12771, 2),
183
+ (12784, 12830, 2),
184
+ (12832, 12871, 2),
185
+ (12880, 13054, 2),
186
+ (13056, 19903, 2),
187
+ (19968, 42124, 2),
188
+ (42128, 42182, 2),
189
+ (42607, 42610, 0),
190
+ (42612, 42621, 0),
191
+ (42655, 42655, 0),
192
+ (42736, 42737, 0),
193
+ (43010, 43010, 0),
194
+ (43014, 43014, 0),
195
+ (43019, 43019, 0),
196
+ (43043, 43047, 0),
197
+ (43136, 43137, 0),
198
+ (43188, 43204, 0),
199
+ (43232, 43249, 0),
200
+ (43302, 43309, 0),
201
+ (43335, 43347, 0),
202
+ (43360, 43388, 2),
203
+ (43392, 43395, 0),
204
+ (43443, 43456, 0),
205
+ (43493, 43493, 0),
206
+ (43561, 43574, 0),
207
+ (43587, 43587, 0),
208
+ (43596, 43597, 0),
209
+ (43643, 43645, 0),
210
+ (43696, 43696, 0),
211
+ (43698, 43700, 0),
212
+ (43703, 43704, 0),
213
+ (43710, 43711, 0),
214
+ (43713, 43713, 0),
215
+ (43755, 43759, 0),
216
+ (43765, 43766, 0),
217
+ (44003, 44010, 0),
218
+ (44012, 44013, 0),
219
+ (44032, 55203, 2),
220
+ (55216, 55295, 0),
221
+ (63744, 64255, 2),
222
+ (64286, 64286, 0),
223
+ (65024, 65039, 0),
224
+ (65040, 65049, 2),
225
+ (65056, 65069, 0),
226
+ (65072, 65106, 2),
227
+ (65108, 65126, 2),
228
+ (65128, 65131, 2),
229
+ (65279, 65279, 0),
230
+ (65281, 65376, 2),
231
+ (65440, 65440, 0),
232
+ (65504, 65510, 2),
233
+ (65520, 65531, 0),
234
+ (66045, 66045, 0),
235
+ (66272, 66272, 0),
236
+ (66422, 66426, 0),
237
+ (68097, 68099, 0),
238
+ (68101, 68102, 0),
239
+ (68108, 68111, 0),
240
+ (68152, 68154, 0),
241
+ (68159, 68159, 0),
242
+ (68325, 68326, 0),
243
+ (69632, 69634, 0),
244
+ (69688, 69702, 0),
245
+ (69759, 69762, 0),
246
+ (69808, 69818, 0),
247
+ (69821, 69821, 0),
248
+ (69888, 69890, 0),
249
+ (69927, 69940, 0),
250
+ (70003, 70003, 0),
251
+ (70016, 70018, 0),
252
+ (70067, 70080, 0),
253
+ (70188, 70199, 0),
254
+ (70367, 70378, 0),
255
+ (70401, 70403, 0),
256
+ (70460, 70460, 0),
257
+ (70462, 70468, 0),
258
+ (70471, 70472, 0),
259
+ (70475, 70477, 0),
260
+ (70487, 70487, 0),
261
+ (70498, 70499, 0),
262
+ (70502, 70508, 0),
263
+ (70512, 70516, 0),
264
+ (70832, 70851, 0),
265
+ (71087, 71093, 0),
266
+ (71096, 71104, 0),
267
+ (71216, 71232, 0),
268
+ (71339, 71351, 0),
269
+ (92912, 92916, 0),
270
+ (92976, 92982, 0),
271
+ (94033, 94078, 0),
272
+ (94095, 94098, 0),
273
+ (110592, 110593, 2),
274
+ (113821, 113822, 0),
275
+ (113824, 113827, 0),
276
+ (119141, 119145, 0),
277
+ (119149, 119170, 0),
278
+ (119173, 119179, 0),
279
+ (119210, 119213, 0),
280
+ (119362, 119364, 0),
281
+ (125136, 125142, 0),
282
+ (127488, 127490, 2),
283
+ (127504, 127546, 2),
284
+ (127552, 127560, 2),
285
+ (127568, 127569, 2),
286
+ (131072, 196605, 2),
287
+ (196608, 262141, 2),
288
+ (917504, 921599, 0),
289
+ ],
290
+ frozenset(
291
+ [
292
+ "#",
293
+ "*",
294
+ "0",
295
+ "1",
296
+ "2",
297
+ "3",
298
+ "4",
299
+ "5",
300
+ "6",
301
+ "7",
302
+ "8",
303
+ "9",
304
+ "©",
305
+ "®",
306
+ "‼",
307
+ "⁉",
308
+ "™",
309
+ "ℹ",
310
+ "↔",
311
+ "↕",
312
+ "↖",
313
+ "↗",
314
+ "↘",
315
+ "↙",
316
+ "↩",
317
+ "↪",
318
+ "⌨",
319
+ "⏏",
320
+ "⏭",
321
+ "⏮",
322
+ "⏯",
323
+ "⏱",
324
+ "⏲",
325
+ "⏸",
326
+ "⏹",
327
+ "⏺",
328
+ "Ⓜ",
329
+ "▪",
330
+ "▫",
331
+ "▶",
332
+ "◀",
333
+ "◻",
334
+ "◼",
335
+ "☀",
336
+ "☁",
337
+ "☂",
338
+ "☃",
339
+ "☄",
340
+ "☎",
341
+ "☑",
342
+ "☘",
343
+ "☝",
344
+ "☠",
345
+ "☢",
346
+ "☣",
347
+ "☦",
348
+ "☪",
349
+ "☮",
350
+ "☯",
351
+ "☸",
352
+ "☹",
353
+ "☺",
354
+ "♀",
355
+ "♂",
356
+ "♟",
357
+ "♠",
358
+ "♣",
359
+ "♥",
360
+ "♦",
361
+ "♨",
362
+ "♻",
363
+ "♾",
364
+ "⚒",
365
+ "⚔",
366
+ "⚕",
367
+ "⚖",
368
+ "⚗",
369
+ "⚙",
370
+ "⚛",
371
+ "⚜",
372
+ "⚠",
373
+ "⚧",
374
+ "⚰",
375
+ "⚱",
376
+ "⛈",
377
+ "⛏",
378
+ "⛑",
379
+ "⛓",
380
+ "⛩",
381
+ "⛰",
382
+ "⛱",
383
+ "⛴",
384
+ "⛷",
385
+ "⛸",
386
+ "⛹",
387
+ "✂",
388
+ "✈",
389
+ "✉",
390
+ "✌",
391
+ "✍",
392
+ "✏",
393
+ "✒",
394
+ "✔",
395
+ "✖",
396
+ "✝",
397
+ "✡",
398
+ "✳",
399
+ "✴",
400
+ "❄",
401
+ "❇",
402
+ "❣",
403
+ "❤",
404
+ "➡",
405
+ "⤴",
406
+ "⤵",
407
+ "⬅",
408
+ "⬆",
409
+ "⬇",
410
+ "🅰",
411
+ "🅱",
412
+ "🅾",
413
+ "🅿",
414
+ "🌡",
415
+ "🌤",
416
+ "🌥",
417
+ "🌦",
418
+ "🌧",
419
+ "🌨",
420
+ "🌩",
421
+ "🌪",
422
+ "🌫",
423
+ "🌬",
424
+ "🌶",
425
+ "🍽",
426
+ "🎖",
427
+ "🎗",
428
+ "🎙",
429
+ "🎚",
430
+ "🎛",
431
+ "🎞",
432
+ "🎟",
433
+ "🏋",
434
+ "🏌",
435
+ "🏍",
436
+ "🏎",
437
+ "🏔",
438
+ "🏕",
439
+ "🏖",
440
+ "🏗",
441
+ "🏘",
442
+ "🏙",
443
+ "🏚",
444
+ "🏛",
445
+ "🏜",
446
+ "🏝",
447
+ "🏞",
448
+ "🏟",
449
+ "🏳",
450
+ "🏵",
451
+ "🏷",
452
+ "🐿",
453
+ "👁",
454
+ "📽",
455
+ "🕉",
456
+ "🕊",
457
+ "🕯",
458
+ "🕰",
459
+ "🕳",
460
+ "🕴",
461
+ "🕵",
462
+ "🕶",
463
+ "🕷",
464
+ "🕸",
465
+ "🕹",
466
+ "🖇",
467
+ "🖊",
468
+ "🖋",
469
+ "🖌",
470
+ "🖍",
471
+ "🖐",
472
+ "🖥",
473
+ "🖨",
474
+ "🖱",
475
+ "🖲",
476
+ "🖼",
477
+ "🗂",
478
+ "🗃",
479
+ "🗄",
480
+ "🗑",
481
+ "🗒",
482
+ "🗓",
483
+ "🗜",
484
+ "🗝",
485
+ "🗞",
486
+ "🗡",
487
+ "🗣",
488
+ "🗨",
489
+ "🗯",
490
+ "🗳",
491
+ "🗺",
492
+ "🛋",
493
+ "🛍",
494
+ "🛎",
495
+ "🛏",
496
+ "🛠",
497
+ "🛡",
498
+ "🛢",
499
+ "🛣",
500
+ "🛤",
501
+ "🛥",
502
+ "🛩",
503
+ "🛰",
504
+ "🛳",
505
+ ]
506
+ ),
507
+ )
venv/lib/python3.11/site-packages/rich/_unicode_data/unicode8-0-0.py ADDED
@@ -0,0 +1,515 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Auto generated by tools/make_width_tables.py
2
+ # Data from wcwidth project (https://github.com/jquast/wcwidth)
3
+
4
+ from rich.cells import CellTable
5
+
6
+ cell_table = CellTable(
7
+ "8.0.0",
8
+ [
9
+ (0, 0, 0),
10
+ (768, 879, 0),
11
+ (1155, 1161, 0),
12
+ (1425, 1469, 0),
13
+ (1471, 1471, 0),
14
+ (1473, 1474, 0),
15
+ (1476, 1477, 0),
16
+ (1479, 1479, 0),
17
+ (1536, 1541, 0),
18
+ (1552, 1562, 0),
19
+ (1564, 1564, 0),
20
+ (1611, 1631, 0),
21
+ (1648, 1648, 0),
22
+ (1750, 1757, 0),
23
+ (1759, 1764, 0),
24
+ (1767, 1768, 0),
25
+ (1770, 1773, 0),
26
+ (1807, 1807, 0),
27
+ (1809, 1809, 0),
28
+ (1840, 1866, 0),
29
+ (1958, 1968, 0),
30
+ (2027, 2035, 0),
31
+ (2070, 2073, 0),
32
+ (2075, 2083, 0),
33
+ (2085, 2087, 0),
34
+ (2089, 2093, 0),
35
+ (2137, 2139, 0),
36
+ (2275, 2307, 0),
37
+ (2362, 2364, 0),
38
+ (2366, 2383, 0),
39
+ (2385, 2391, 0),
40
+ (2402, 2403, 0),
41
+ (2433, 2435, 0),
42
+ (2492, 2492, 0),
43
+ (2494, 2500, 0),
44
+ (2503, 2504, 0),
45
+ (2507, 2509, 0),
46
+ (2519, 2519, 0),
47
+ (2530, 2531, 0),
48
+ (2561, 2563, 0),
49
+ (2620, 2620, 0),
50
+ (2622, 2626, 0),
51
+ (2631, 2632, 0),
52
+ (2635, 2637, 0),
53
+ (2641, 2641, 0),
54
+ (2672, 2673, 0),
55
+ (2677, 2677, 0),
56
+ (2689, 2691, 0),
57
+ (2748, 2748, 0),
58
+ (2750, 2757, 0),
59
+ (2759, 2761, 0),
60
+ (2763, 2765, 0),
61
+ (2786, 2787, 0),
62
+ (2817, 2819, 0),
63
+ (2876, 2876, 0),
64
+ (2878, 2884, 0),
65
+ (2887, 2888, 0),
66
+ (2891, 2893, 0),
67
+ (2902, 2903, 0),
68
+ (2914, 2915, 0),
69
+ (2946, 2946, 0),
70
+ (3006, 3010, 0),
71
+ (3014, 3016, 0),
72
+ (3018, 3021, 0),
73
+ (3031, 3031, 0),
74
+ (3072, 3075, 0),
75
+ (3134, 3140, 0),
76
+ (3142, 3144, 0),
77
+ (3146, 3149, 0),
78
+ (3157, 3158, 0),
79
+ (3170, 3171, 0),
80
+ (3201, 3203, 0),
81
+ (3260, 3260, 0),
82
+ (3262, 3268, 0),
83
+ (3270, 3272, 0),
84
+ (3274, 3277, 0),
85
+ (3285, 3286, 0),
86
+ (3298, 3299, 0),
87
+ (3329, 3331, 0),
88
+ (3390, 3396, 0),
89
+ (3398, 3400, 0),
90
+ (3402, 3405, 0),
91
+ (3415, 3415, 0),
92
+ (3426, 3427, 0),
93
+ (3458, 3459, 0),
94
+ (3530, 3530, 0),
95
+ (3535, 3540, 0),
96
+ (3542, 3542, 0),
97
+ (3544, 3551, 0),
98
+ (3570, 3571, 0),
99
+ (3633, 3633, 0),
100
+ (3636, 3642, 0),
101
+ (3655, 3662, 0),
102
+ (3761, 3761, 0),
103
+ (3764, 3769, 0),
104
+ (3771, 3772, 0),
105
+ (3784, 3789, 0),
106
+ (3864, 3865, 0),
107
+ (3893, 3893, 0),
108
+ (3895, 3895, 0),
109
+ (3897, 3897, 0),
110
+ (3902, 3903, 0),
111
+ (3953, 3972, 0),
112
+ (3974, 3975, 0),
113
+ (3981, 3991, 0),
114
+ (3993, 4028, 0),
115
+ (4038, 4038, 0),
116
+ (4139, 4158, 0),
117
+ (4182, 4185, 0),
118
+ (4190, 4192, 0),
119
+ (4194, 4196, 0),
120
+ (4199, 4205, 0),
121
+ (4209, 4212, 0),
122
+ (4226, 4237, 0),
123
+ (4239, 4239, 0),
124
+ (4250, 4253, 0),
125
+ (4352, 4447, 2),
126
+ (4448, 4607, 0),
127
+ (4957, 4959, 0),
128
+ (5906, 5908, 0),
129
+ (5938, 5940, 0),
130
+ (5970, 5971, 0),
131
+ (6002, 6003, 0),
132
+ (6068, 6099, 0),
133
+ (6109, 6109, 0),
134
+ (6155, 6158, 0),
135
+ (6313, 6313, 0),
136
+ (6432, 6443, 0),
137
+ (6448, 6459, 0),
138
+ (6679, 6683, 0),
139
+ (6741, 6750, 0),
140
+ (6752, 6780, 0),
141
+ (6783, 6783, 0),
142
+ (6832, 6846, 0),
143
+ (6912, 6916, 0),
144
+ (6964, 6980, 0),
145
+ (7019, 7027, 0),
146
+ (7040, 7042, 0),
147
+ (7073, 7085, 0),
148
+ (7142, 7155, 0),
149
+ (7204, 7223, 0),
150
+ (7376, 7378, 0),
151
+ (7380, 7400, 0),
152
+ (7405, 7405, 0),
153
+ (7410, 7412, 0),
154
+ (7416, 7417, 0),
155
+ (7616, 7669, 0),
156
+ (7676, 7679, 0),
157
+ (8203, 8207, 0),
158
+ (8232, 8238, 0),
159
+ (8288, 8303, 0),
160
+ (8400, 8432, 0),
161
+ (9001, 9002, 2),
162
+ (11503, 11505, 0),
163
+ (11647, 11647, 0),
164
+ (11744, 11775, 0),
165
+ (11904, 11929, 2),
166
+ (11931, 12019, 2),
167
+ (12032, 12245, 2),
168
+ (12272, 12283, 2),
169
+ (12288, 12329, 2),
170
+ (12330, 12335, 0),
171
+ (12336, 12350, 2),
172
+ (12353, 12438, 2),
173
+ (12441, 12442, 0),
174
+ (12443, 12543, 2),
175
+ (12549, 12589, 2),
176
+ (12593, 12643, 2),
177
+ (12644, 12644, 0),
178
+ (12645, 12686, 2),
179
+ (12688, 12730, 2),
180
+ (12736, 12771, 2),
181
+ (12784, 12830, 2),
182
+ (12832, 12871, 2),
183
+ (12880, 13054, 2),
184
+ (13056, 19903, 2),
185
+ (19968, 42124, 2),
186
+ (42128, 42182, 2),
187
+ (42607, 42610, 0),
188
+ (42612, 42621, 0),
189
+ (42654, 42655, 0),
190
+ (42736, 42737, 0),
191
+ (43010, 43010, 0),
192
+ (43014, 43014, 0),
193
+ (43019, 43019, 0),
194
+ (43043, 43047, 0),
195
+ (43136, 43137, 0),
196
+ (43188, 43204, 0),
197
+ (43232, 43249, 0),
198
+ (43302, 43309, 0),
199
+ (43335, 43347, 0),
200
+ (43360, 43388, 2),
201
+ (43392, 43395, 0),
202
+ (43443, 43456, 0),
203
+ (43493, 43493, 0),
204
+ (43561, 43574, 0),
205
+ (43587, 43587, 0),
206
+ (43596, 43597, 0),
207
+ (43643, 43645, 0),
208
+ (43696, 43696, 0),
209
+ (43698, 43700, 0),
210
+ (43703, 43704, 0),
211
+ (43710, 43711, 0),
212
+ (43713, 43713, 0),
213
+ (43755, 43759, 0),
214
+ (43765, 43766, 0),
215
+ (44003, 44010, 0),
216
+ (44012, 44013, 0),
217
+ (44032, 55203, 2),
218
+ (55216, 55295, 0),
219
+ (63744, 64255, 2),
220
+ (64286, 64286, 0),
221
+ (65024, 65039, 0),
222
+ (65040, 65049, 2),
223
+ (65056, 65071, 0),
224
+ (65072, 65106, 2),
225
+ (65108, 65126, 2),
226
+ (65128, 65131, 2),
227
+ (65279, 65279, 0),
228
+ (65281, 65376, 2),
229
+ (65440, 65440, 0),
230
+ (65504, 65510, 2),
231
+ (65520, 65531, 0),
232
+ (66045, 66045, 0),
233
+ (66272, 66272, 0),
234
+ (66422, 66426, 0),
235
+ (68097, 68099, 0),
236
+ (68101, 68102, 0),
237
+ (68108, 68111, 0),
238
+ (68152, 68154, 0),
239
+ (68159, 68159, 0),
240
+ (68325, 68326, 0),
241
+ (69632, 69634, 0),
242
+ (69688, 69702, 0),
243
+ (69759, 69762, 0),
244
+ (69808, 69818, 0),
245
+ (69821, 69821, 0),
246
+ (69888, 69890, 0),
247
+ (69927, 69940, 0),
248
+ (70003, 70003, 0),
249
+ (70016, 70018, 0),
250
+ (70067, 70080, 0),
251
+ (70090, 70092, 0),
252
+ (70188, 70199, 0),
253
+ (70367, 70378, 0),
254
+ (70400, 70403, 0),
255
+ (70460, 70460, 0),
256
+ (70462, 70468, 0),
257
+ (70471, 70472, 0),
258
+ (70475, 70477, 0),
259
+ (70487, 70487, 0),
260
+ (70498, 70499, 0),
261
+ (70502, 70508, 0),
262
+ (70512, 70516, 0),
263
+ (70832, 70851, 0),
264
+ (71087, 71093, 0),
265
+ (71096, 71104, 0),
266
+ (71132, 71133, 0),
267
+ (71216, 71232, 0),
268
+ (71339, 71351, 0),
269
+ (71453, 71467, 0),
270
+ (92912, 92916, 0),
271
+ (92976, 92982, 0),
272
+ (94033, 94078, 0),
273
+ (94095, 94098, 0),
274
+ (110592, 110593, 2),
275
+ (113821, 113822, 0),
276
+ (113824, 113827, 0),
277
+ (119141, 119145, 0),
278
+ (119149, 119170, 0),
279
+ (119173, 119179, 0),
280
+ (119210, 119213, 0),
281
+ (119362, 119364, 0),
282
+ (121344, 121398, 0),
283
+ (121403, 121452, 0),
284
+ (121461, 121461, 0),
285
+ (121476, 121476, 0),
286
+ (121499, 121503, 0),
287
+ (121505, 121519, 0),
288
+ (125136, 125142, 0),
289
+ (127488, 127490, 2),
290
+ (127504, 127546, 2),
291
+ (127552, 127560, 2),
292
+ (127568, 127569, 2),
293
+ (127995, 127999, 0),
294
+ (131072, 196605, 2),
295
+ (196608, 262141, 2),
296
+ (917504, 921599, 0),
297
+ ],
298
+ frozenset(
299
+ [
300
+ "#",
301
+ "*",
302
+ "0",
303
+ "1",
304
+ "2",
305
+ "3",
306
+ "4",
307
+ "5",
308
+ "6",
309
+ "7",
310
+ "8",
311
+ "9",
312
+ "©",
313
+ "®",
314
+ "‼",
315
+ "⁉",
316
+ "™",
317
+ "ℹ",
318
+ "↔",
319
+ "↕",
320
+ "↖",
321
+ "↗",
322
+ "↘",
323
+ "↙",
324
+ "↩",
325
+ "↪",
326
+ "⌨",
327
+ "⏏",
328
+ "⏭",
329
+ "⏮",
330
+ "⏯",
331
+ "⏱",
332
+ "⏲",
333
+ "⏸",
334
+ "⏹",
335
+ "⏺",
336
+ "Ⓜ",
337
+ "▪",
338
+ "▫",
339
+ "▶",
340
+ "◀",
341
+ "◻",
342
+ "◼",
343
+ "☀",
344
+ "☁",
345
+ "☂",
346
+ "☃",
347
+ "☄",
348
+ "☎",
349
+ "☑",
350
+ "☘",
351
+ "☝",
352
+ "☠",
353
+ "☢",
354
+ "☣",
355
+ "☦",
356
+ "☪",
357
+ "☮",
358
+ "☯",
359
+ "☸",
360
+ "☹",
361
+ "☺",
362
+ "♀",
363
+ "♂",
364
+ "♟",
365
+ "♠",
366
+ "♣",
367
+ "♥",
368
+ "♦",
369
+ "♨",
370
+ "♻",
371
+ "♾",
372
+ "⚒",
373
+ "⚔",
374
+ "⚕",
375
+ "⚖",
376
+ "⚗",
377
+ "⚙",
378
+ "⚛",
379
+ "⚜",
380
+ "⚠",
381
+ "⚧",
382
+ "⚰",
383
+ "⚱",
384
+ "⛈",
385
+ "⛏",
386
+ "⛑",
387
+ "⛓",
388
+ "⛩",
389
+ "⛰",
390
+ "⛱",
391
+ "⛴",
392
+ "⛷",
393
+ "⛸",
394
+ "⛹",
395
+ "✂",
396
+ "✈",
397
+ "✉",
398
+ "✌",
399
+ "✍",
400
+ "✏",
401
+ "✒",
402
+ "✔",
403
+ "✖",
404
+ "✝",
405
+ "✡",
406
+ "✳",
407
+ "✴",
408
+ "❄",
409
+ "❇",
410
+ "❣",
411
+ "❤",
412
+ "➡",
413
+ "⤴",
414
+ "⤵",
415
+ "⬅",
416
+ "⬆",
417
+ "⬇",
418
+ "🅰",
419
+ "🅱",
420
+ "🅾",
421
+ "🅿",
422
+ "🌡",
423
+ "🌤",
424
+ "🌥",
425
+ "🌦",
426
+ "🌧",
427
+ "🌨",
428
+ "🌩",
429
+ "🌪",
430
+ "🌫",
431
+ "🌬",
432
+ "🌶",
433
+ "🍽",
434
+ "🎖",
435
+ "🎗",
436
+ "🎙",
437
+ "🎚",
438
+ "🎛",
439
+ "🎞",
440
+ "🎟",
441
+ "🏋",
442
+ "🏌",
443
+ "🏍",
444
+ "🏎",
445
+ "🏔",
446
+ "🏕",
447
+ "🏖",
448
+ "🏗",
449
+ "🏘",
450
+ "🏙",
451
+ "🏚",
452
+ "🏛",
453
+ "🏜",
454
+ "🏝",
455
+ "🏞",
456
+ "🏟",
457
+ "🏳",
458
+ "🏵",
459
+ "🏷",
460
+ "🐿",
461
+ "👁",
462
+ "📽",
463
+ "🕉",
464
+ "🕊",
465
+ "🕯",
466
+ "🕰",
467
+ "🕳",
468
+ "🕴",
469
+ "🕵",
470
+ "🕶",
471
+ "🕷",
472
+ "🕸",
473
+ "🕹",
474
+ "🖇",
475
+ "🖊",
476
+ "🖋",
477
+ "🖌",
478
+ "🖍",
479
+ "🖐",
480
+ "🖥",
481
+ "🖨",
482
+ "🖱",
483
+ "🖲",
484
+ "🖼",
485
+ "🗂",
486
+ "🗃",
487
+ "🗄",
488
+ "🗑",
489
+ "🗒",
490
+ "🗓",
491
+ "🗜",
492
+ "🗝",
493
+ "🗞",
494
+ "🗡",
495
+ "🗣",
496
+ "🗨",
497
+ "🗯",
498
+ "🗳",
499
+ "🗺",
500
+ "🛋",
501
+ "🛍",
502
+ "🛎",
503
+ "🛏",
504
+ "🛠",
505
+ "🛡",
506
+ "🛢",
507
+ "🛣",
508
+ "🛤",
509
+ "🛥",
510
+ "🛩",
511
+ "🛰",
512
+ "🛳",
513
+ ]
514
+ ),
515
+ )
venv/lib/python3.11/site-packages/rich/_unicode_data/unicode9-0-0.py ADDED
@@ -0,0 +1,598 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Auto generated by tools/make_width_tables.py
2
+ # Data from wcwidth project (https://github.com/jquast/wcwidth)
3
+
4
+ from rich.cells import CellTable
5
+
6
+ cell_table = CellTable(
7
+ "9.0.0",
8
+ [
9
+ (0, 0, 0),
10
+ (768, 879, 0),
11
+ (1155, 1161, 0),
12
+ (1425, 1469, 0),
13
+ (1471, 1471, 0),
14
+ (1473, 1474, 0),
15
+ (1476, 1477, 0),
16
+ (1479, 1479, 0),
17
+ (1552, 1562, 0),
18
+ (1564, 1564, 0),
19
+ (1611, 1631, 0),
20
+ (1648, 1648, 0),
21
+ (1750, 1756, 0),
22
+ (1759, 1764, 0),
23
+ (1767, 1768, 0),
24
+ (1770, 1773, 0),
25
+ (1809, 1809, 0),
26
+ (1840, 1866, 0),
27
+ (1958, 1968, 0),
28
+ (2027, 2035, 0),
29
+ (2070, 2073, 0),
30
+ (2075, 2083, 0),
31
+ (2085, 2087, 0),
32
+ (2089, 2093, 0),
33
+ (2137, 2139, 0),
34
+ (2260, 2273, 0),
35
+ (2275, 2307, 0),
36
+ (2362, 2364, 0),
37
+ (2366, 2383, 0),
38
+ (2385, 2391, 0),
39
+ (2402, 2403, 0),
40
+ (2433, 2435, 0),
41
+ (2492, 2492, 0),
42
+ (2494, 2500, 0),
43
+ (2503, 2504, 0),
44
+ (2507, 2509, 0),
45
+ (2519, 2519, 0),
46
+ (2530, 2531, 0),
47
+ (2561, 2563, 0),
48
+ (2620, 2620, 0),
49
+ (2622, 2626, 0),
50
+ (2631, 2632, 0),
51
+ (2635, 2637, 0),
52
+ (2641, 2641, 0),
53
+ (2672, 2673, 0),
54
+ (2677, 2677, 0),
55
+ (2689, 2691, 0),
56
+ (2748, 2748, 0),
57
+ (2750, 2757, 0),
58
+ (2759, 2761, 0),
59
+ (2763, 2765, 0),
60
+ (2786, 2787, 0),
61
+ (2817, 2819, 0),
62
+ (2876, 2876, 0),
63
+ (2878, 2884, 0),
64
+ (2887, 2888, 0),
65
+ (2891, 2893, 0),
66
+ (2902, 2903, 0),
67
+ (2914, 2915, 0),
68
+ (2946, 2946, 0),
69
+ (3006, 3010, 0),
70
+ (3014, 3016, 0),
71
+ (3018, 3021, 0),
72
+ (3031, 3031, 0),
73
+ (3072, 3075, 0),
74
+ (3134, 3140, 0),
75
+ (3142, 3144, 0),
76
+ (3146, 3149, 0),
77
+ (3157, 3158, 0),
78
+ (3170, 3171, 0),
79
+ (3201, 3203, 0),
80
+ (3260, 3260, 0),
81
+ (3262, 3268, 0),
82
+ (3270, 3272, 0),
83
+ (3274, 3277, 0),
84
+ (3285, 3286, 0),
85
+ (3298, 3299, 0),
86
+ (3329, 3331, 0),
87
+ (3390, 3396, 0),
88
+ (3398, 3400, 0),
89
+ (3402, 3405, 0),
90
+ (3415, 3415, 0),
91
+ (3426, 3427, 0),
92
+ (3458, 3459, 0),
93
+ (3530, 3530, 0),
94
+ (3535, 3540, 0),
95
+ (3542, 3542, 0),
96
+ (3544, 3551, 0),
97
+ (3570, 3571, 0),
98
+ (3633, 3633, 0),
99
+ (3636, 3642, 0),
100
+ (3655, 3662, 0),
101
+ (3761, 3761, 0),
102
+ (3764, 3769, 0),
103
+ (3771, 3772, 0),
104
+ (3784, 3789, 0),
105
+ (3864, 3865, 0),
106
+ (3893, 3893, 0),
107
+ (3895, 3895, 0),
108
+ (3897, 3897, 0),
109
+ (3902, 3903, 0),
110
+ (3953, 3972, 0),
111
+ (3974, 3975, 0),
112
+ (3981, 3991, 0),
113
+ (3993, 4028, 0),
114
+ (4038, 4038, 0),
115
+ (4139, 4158, 0),
116
+ (4182, 4185, 0),
117
+ (4190, 4192, 0),
118
+ (4194, 4196, 0),
119
+ (4199, 4205, 0),
120
+ (4209, 4212, 0),
121
+ (4226, 4237, 0),
122
+ (4239, 4239, 0),
123
+ (4250, 4253, 0),
124
+ (4352, 4447, 2),
125
+ (4448, 4607, 0),
126
+ (4957, 4959, 0),
127
+ (5906, 5908, 0),
128
+ (5938, 5940, 0),
129
+ (5970, 5971, 0),
130
+ (6002, 6003, 0),
131
+ (6068, 6099, 0),
132
+ (6109, 6109, 0),
133
+ (6155, 6158, 0),
134
+ (6277, 6278, 0),
135
+ (6313, 6313, 0),
136
+ (6432, 6443, 0),
137
+ (6448, 6459, 0),
138
+ (6679, 6683, 0),
139
+ (6741, 6750, 0),
140
+ (6752, 6780, 0),
141
+ (6783, 6783, 0),
142
+ (6832, 6846, 0),
143
+ (6912, 6916, 0),
144
+ (6964, 6980, 0),
145
+ (7019, 7027, 0),
146
+ (7040, 7042, 0),
147
+ (7073, 7085, 0),
148
+ (7142, 7155, 0),
149
+ (7204, 7223, 0),
150
+ (7376, 7378, 0),
151
+ (7380, 7400, 0),
152
+ (7405, 7405, 0),
153
+ (7410, 7412, 0),
154
+ (7416, 7417, 0),
155
+ (7616, 7669, 0),
156
+ (7675, 7679, 0),
157
+ (8203, 8207, 0),
158
+ (8232, 8238, 0),
159
+ (8288, 8303, 0),
160
+ (8400, 8432, 0),
161
+ (8986, 8987, 2),
162
+ (9001, 9002, 2),
163
+ (9193, 9196, 2),
164
+ (9200, 9200, 2),
165
+ (9203, 9203, 2),
166
+ (9725, 9726, 2),
167
+ (9748, 9749, 2),
168
+ (9800, 9811, 2),
169
+ (9855, 9855, 2),
170
+ (9875, 9875, 2),
171
+ (9889, 9889, 2),
172
+ (9898, 9899, 2),
173
+ (9917, 9918, 2),
174
+ (9924, 9925, 2),
175
+ (9934, 9934, 2),
176
+ (9940, 9940, 2),
177
+ (9962, 9962, 2),
178
+ (9970, 9971, 2),
179
+ (9973, 9973, 2),
180
+ (9978, 9978, 2),
181
+ (9981, 9981, 2),
182
+ (9989, 9989, 2),
183
+ (9994, 9995, 2),
184
+ (10024, 10024, 2),
185
+ (10060, 10060, 2),
186
+ (10062, 10062, 2),
187
+ (10067, 10069, 2),
188
+ (10071, 10071, 2),
189
+ (10133, 10135, 2),
190
+ (10160, 10160, 2),
191
+ (10175, 10175, 2),
192
+ (11035, 11036, 2),
193
+ (11088, 11088, 2),
194
+ (11093, 11093, 2),
195
+ (11503, 11505, 0),
196
+ (11647, 11647, 0),
197
+ (11744, 11775, 0),
198
+ (11904, 11929, 2),
199
+ (11931, 12019, 2),
200
+ (12032, 12245, 2),
201
+ (12272, 12283, 2),
202
+ (12288, 12329, 2),
203
+ (12330, 12335, 0),
204
+ (12336, 12350, 2),
205
+ (12353, 12438, 2),
206
+ (12441, 12442, 0),
207
+ (12443, 12543, 2),
208
+ (12549, 12589, 2),
209
+ (12593, 12643, 2),
210
+ (12644, 12644, 0),
211
+ (12645, 12686, 2),
212
+ (12688, 12730, 2),
213
+ (12736, 12771, 2),
214
+ (12784, 12830, 2),
215
+ (12832, 12871, 2),
216
+ (12880, 13054, 2),
217
+ (13056, 19903, 2),
218
+ (19968, 42124, 2),
219
+ (42128, 42182, 2),
220
+ (42607, 42610, 0),
221
+ (42612, 42621, 0),
222
+ (42654, 42655, 0),
223
+ (42736, 42737, 0),
224
+ (43010, 43010, 0),
225
+ (43014, 43014, 0),
226
+ (43019, 43019, 0),
227
+ (43043, 43047, 0),
228
+ (43136, 43137, 0),
229
+ (43188, 43205, 0),
230
+ (43232, 43249, 0),
231
+ (43302, 43309, 0),
232
+ (43335, 43347, 0),
233
+ (43360, 43388, 2),
234
+ (43392, 43395, 0),
235
+ (43443, 43456, 0),
236
+ (43493, 43493, 0),
237
+ (43561, 43574, 0),
238
+ (43587, 43587, 0),
239
+ (43596, 43597, 0),
240
+ (43643, 43645, 0),
241
+ (43696, 43696, 0),
242
+ (43698, 43700, 0),
243
+ (43703, 43704, 0),
244
+ (43710, 43711, 0),
245
+ (43713, 43713, 0),
246
+ (43755, 43759, 0),
247
+ (43765, 43766, 0),
248
+ (44003, 44010, 0),
249
+ (44012, 44013, 0),
250
+ (44032, 55203, 2),
251
+ (55216, 55295, 0),
252
+ (63744, 64255, 2),
253
+ (64286, 64286, 0),
254
+ (65024, 65039, 0),
255
+ (65040, 65049, 2),
256
+ (65056, 65071, 0),
257
+ (65072, 65106, 2),
258
+ (65108, 65126, 2),
259
+ (65128, 65131, 2),
260
+ (65279, 65279, 0),
261
+ (65281, 65376, 2),
262
+ (65440, 65440, 0),
263
+ (65504, 65510, 2),
264
+ (65520, 65531, 0),
265
+ (66045, 66045, 0),
266
+ (66272, 66272, 0),
267
+ (66422, 66426, 0),
268
+ (68097, 68099, 0),
269
+ (68101, 68102, 0),
270
+ (68108, 68111, 0),
271
+ (68152, 68154, 0),
272
+ (68159, 68159, 0),
273
+ (68325, 68326, 0),
274
+ (69632, 69634, 0),
275
+ (69688, 69702, 0),
276
+ (69759, 69762, 0),
277
+ (69808, 69818, 0),
278
+ (69888, 69890, 0),
279
+ (69927, 69940, 0),
280
+ (70003, 70003, 0),
281
+ (70016, 70018, 0),
282
+ (70067, 70080, 0),
283
+ (70090, 70092, 0),
284
+ (70188, 70199, 0),
285
+ (70206, 70206, 0),
286
+ (70367, 70378, 0),
287
+ (70400, 70403, 0),
288
+ (70460, 70460, 0),
289
+ (70462, 70468, 0),
290
+ (70471, 70472, 0),
291
+ (70475, 70477, 0),
292
+ (70487, 70487, 0),
293
+ (70498, 70499, 0),
294
+ (70502, 70508, 0),
295
+ (70512, 70516, 0),
296
+ (70709, 70726, 0),
297
+ (70832, 70851, 0),
298
+ (71087, 71093, 0),
299
+ (71096, 71104, 0),
300
+ (71132, 71133, 0),
301
+ (71216, 71232, 0),
302
+ (71339, 71351, 0),
303
+ (71453, 71467, 0),
304
+ (72751, 72758, 0),
305
+ (72760, 72767, 0),
306
+ (72850, 72871, 0),
307
+ (72873, 72886, 0),
308
+ (92912, 92916, 0),
309
+ (92976, 92982, 0),
310
+ (94033, 94078, 0),
311
+ (94095, 94098, 0),
312
+ (94176, 94176, 2),
313
+ (94208, 100332, 2),
314
+ (100352, 101106, 2),
315
+ (110592, 110593, 2),
316
+ (113821, 113822, 0),
317
+ (113824, 113827, 0),
318
+ (119141, 119145, 0),
319
+ (119149, 119170, 0),
320
+ (119173, 119179, 0),
321
+ (119210, 119213, 0),
322
+ (119362, 119364, 0),
323
+ (121344, 121398, 0),
324
+ (121403, 121452, 0),
325
+ (121461, 121461, 0),
326
+ (121476, 121476, 0),
327
+ (121499, 121503, 0),
328
+ (121505, 121519, 0),
329
+ (122880, 122886, 0),
330
+ (122888, 122904, 0),
331
+ (122907, 122913, 0),
332
+ (122915, 122916, 0),
333
+ (122918, 122922, 0),
334
+ (125136, 125142, 0),
335
+ (125252, 125258, 0),
336
+ (126980, 126980, 2),
337
+ (127183, 127183, 2),
338
+ (127374, 127374, 2),
339
+ (127377, 127386, 2),
340
+ (127488, 127490, 2),
341
+ (127504, 127547, 2),
342
+ (127552, 127560, 2),
343
+ (127568, 127569, 2),
344
+ (127744, 127776, 2),
345
+ (127789, 127797, 2),
346
+ (127799, 127868, 2),
347
+ (127870, 127891, 2),
348
+ (127904, 127946, 2),
349
+ (127951, 127955, 2),
350
+ (127968, 127984, 2),
351
+ (127988, 127988, 2),
352
+ (127992, 127994, 2),
353
+ (127995, 127999, 0),
354
+ (128000, 128062, 2),
355
+ (128064, 128064, 2),
356
+ (128066, 128252, 2),
357
+ (128255, 128317, 2),
358
+ (128331, 128334, 2),
359
+ (128336, 128359, 2),
360
+ (128378, 128378, 2),
361
+ (128405, 128406, 2),
362
+ (128420, 128420, 2),
363
+ (128507, 128591, 2),
364
+ (128640, 128709, 2),
365
+ (128716, 128716, 2),
366
+ (128720, 128722, 2),
367
+ (128747, 128748, 2),
368
+ (128756, 128758, 2),
369
+ (129296, 129310, 2),
370
+ (129312, 129319, 2),
371
+ (129328, 129328, 2),
372
+ (129331, 129342, 2),
373
+ (129344, 129355, 2),
374
+ (129360, 129374, 2),
375
+ (129408, 129425, 2),
376
+ (129472, 129472, 2),
377
+ (131072, 196605, 2),
378
+ (196608, 262141, 2),
379
+ (917504, 921599, 0),
380
+ ],
381
+ frozenset(
382
+ [
383
+ "#",
384
+ "*",
385
+ "0",
386
+ "1",
387
+ "2",
388
+ "3",
389
+ "4",
390
+ "5",
391
+ "6",
392
+ "7",
393
+ "8",
394
+ "9",
395
+ "©",
396
+ "®",
397
+ "‼",
398
+ "⁉",
399
+ "™",
400
+ "ℹ",
401
+ "↔",
402
+ "↕",
403
+ "↖",
404
+ "↗",
405
+ "↘",
406
+ "↙",
407
+ "↩",
408
+ "↪",
409
+ "⌨",
410
+ "⏏",
411
+ "⏭",
412
+ "⏮",
413
+ "⏯",
414
+ "⏱",
415
+ "⏲",
416
+ "⏸",
417
+ "⏹",
418
+ "⏺",
419
+ "Ⓜ",
420
+ "▪",
421
+ "▫",
422
+ "▶",
423
+ "◀",
424
+ "◻",
425
+ "◼",
426
+ "☀",
427
+ "☁",
428
+ "☂",
429
+ "☃",
430
+ "☄",
431
+ "☎",
432
+ "☑",
433
+ "☘",
434
+ "☝",
435
+ "☠",
436
+ "☢",
437
+ "☣",
438
+ "☦",
439
+ "☪",
440
+ "☮",
441
+ "☯",
442
+ "☸",
443
+ "☹",
444
+ "☺",
445
+ "♀",
446
+ "♂",
447
+ "♟",
448
+ "♠",
449
+ "♣",
450
+ "♥",
451
+ "♦",
452
+ "♨",
453
+ "♻",
454
+ "♾",
455
+ "⚒",
456
+ "⚔",
457
+ "⚕",
458
+ "⚖",
459
+ "⚗",
460
+ "⚙",
461
+ "⚛",
462
+ "⚜",
463
+ "⚠",
464
+ "⚧",
465
+ "⚰",
466
+ "⚱",
467
+ "⛈",
468
+ "⛏",
469
+ "⛑",
470
+ "⛓",
471
+ "⛩",
472
+ "⛰",
473
+ "⛱",
474
+ "⛴",
475
+ "⛷",
476
+ "⛸",
477
+ "⛹",
478
+ "✂",
479
+ "✈",
480
+ "✉",
481
+ "✌",
482
+ "✍",
483
+ "✏",
484
+ "✒",
485
+ "✔",
486
+ "✖",
487
+ "✝",
488
+ "✡",
489
+ "✳",
490
+ "✴",
491
+ "❄",
492
+ "❇",
493
+ "❣",
494
+ "❤",
495
+ "➡",
496
+ "⤴",
497
+ "⤵",
498
+ "⬅",
499
+ "⬆",
500
+ "⬇",
501
+ "🅰",
502
+ "🅱",
503
+ "🅾",
504
+ "🅿",
505
+ "🌡",
506
+ "🌤",
507
+ "🌥",
508
+ "🌦",
509
+ "🌧",
510
+ "🌨",
511
+ "🌩",
512
+ "🌪",
513
+ "🌫",
514
+ "🌬",
515
+ "🌶",
516
+ "🍽",
517
+ "🎖",
518
+ "🎗",
519
+ "🎙",
520
+ "🎚",
521
+ "🎛",
522
+ "🎞",
523
+ "🎟",
524
+ "🏋",
525
+ "🏌",
526
+ "🏍",
527
+ "🏎",
528
+ "🏔",
529
+ "🏕",
530
+ "🏖",
531
+ "🏗",
532
+ "🏘",
533
+ "🏙",
534
+ "🏚",
535
+ "🏛",
536
+ "🏜",
537
+ "🏝",
538
+ "🏞",
539
+ "🏟",
540
+ "🏳",
541
+ "🏵",
542
+ "🏷",
543
+ "🐿",
544
+ "👁",
545
+ "📽",
546
+ "🕉",
547
+ "🕊",
548
+ "🕯",
549
+ "🕰",
550
+ "🕳",
551
+ "🕴",
552
+ "🕵",
553
+ "🕶",
554
+ "🕷",
555
+ "🕸",
556
+ "🕹",
557
+ "🖇",
558
+ "🖊",
559
+ "🖋",
560
+ "🖌",
561
+ "🖍",
562
+ "🖐",
563
+ "🖥",
564
+ "🖨",
565
+ "🖱",
566
+ "🖲",
567
+ "🖼",
568
+ "🗂",
569
+ "🗃",
570
+ "🗄",
571
+ "🗑",
572
+ "🗒",
573
+ "🗓",
574
+ "🗜",
575
+ "🗝",
576
+ "🗞",
577
+ "🗡",
578
+ "🗣",
579
+ "🗨",
580
+ "🗯",
581
+ "🗳",
582
+ "🗺",
583
+ "🛋",
584
+ "🛍",
585
+ "🛎",
586
+ "🛏",
587
+ "🛠",
588
+ "🛡",
589
+ "🛢",
590
+ "🛣",
591
+ "🛤",
592
+ "🛥",
593
+ "🛩",
594
+ "🛰",
595
+ "🛳",
596
+ ]
597
+ ),
598
+ )
venv/lib/python3.11/site-packages/rich/_win32_console.py ADDED
@@ -0,0 +1,661 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Light wrapper around the Win32 Console API - this module should only be imported on Windows
2
+
3
+ The API that this module wraps is documented at https://docs.microsoft.com/en-us/windows/console/console-functions
4
+ """
5
+
6
+ import ctypes
7
+ import sys
8
+ from typing import Any
9
+
10
+ windll: Any = None
11
+ if sys.platform == "win32":
12
+ windll = ctypes.LibraryLoader(ctypes.WinDLL)
13
+ else:
14
+ raise ImportError(f"{__name__} can only be imported on Windows")
15
+
16
+ import time
17
+ from ctypes import Structure, byref, wintypes
18
+ from typing import IO, NamedTuple, Type, cast
19
+
20
+ from rich.color import ColorSystem
21
+ from rich.style import Style
22
+
23
+ STDOUT = -11
24
+ ENABLE_VIRTUAL_TERMINAL_PROCESSING = 4
25
+
26
+ COORD = wintypes._COORD
27
+
28
+
29
+ class LegacyWindowsError(Exception):
30
+ pass
31
+
32
+
33
+ class WindowsCoordinates(NamedTuple):
34
+ """Coordinates in the Windows Console API are (y, x), not (x, y).
35
+ This class is intended to prevent that confusion.
36
+ Rows and columns are indexed from 0.
37
+ This class can be used in place of wintypes._COORD in arguments and argtypes.
38
+ """
39
+
40
+ row: int
41
+ col: int
42
+
43
+ @classmethod
44
+ def from_param(cls, value: "WindowsCoordinates") -> COORD:
45
+ """Converts a WindowsCoordinates into a wintypes _COORD structure.
46
+ This classmethod is internally called by ctypes to perform the conversion.
47
+
48
+ Args:
49
+ value (WindowsCoordinates): The input coordinates to convert.
50
+
51
+ Returns:
52
+ wintypes._COORD: The converted coordinates struct.
53
+ """
54
+ return COORD(value.col, value.row)
55
+
56
+
57
+ class CONSOLE_SCREEN_BUFFER_INFO(Structure):
58
+ _fields_ = [
59
+ ("dwSize", COORD),
60
+ ("dwCursorPosition", COORD),
61
+ ("wAttributes", wintypes.WORD),
62
+ ("srWindow", wintypes.SMALL_RECT),
63
+ ("dwMaximumWindowSize", COORD),
64
+ ]
65
+
66
+
67
+ class CONSOLE_CURSOR_INFO(ctypes.Structure):
68
+ _fields_ = [("dwSize", wintypes.DWORD), ("bVisible", wintypes.BOOL)]
69
+
70
+
71
+ _GetStdHandle = windll.kernel32.GetStdHandle
72
+ _GetStdHandle.argtypes = [
73
+ wintypes.DWORD,
74
+ ]
75
+ _GetStdHandle.restype = wintypes.HANDLE
76
+
77
+
78
+ def GetStdHandle(handle: int = STDOUT) -> wintypes.HANDLE:
79
+ """Retrieves a handle to the specified standard device (standard input, standard output, or standard error).
80
+
81
+ Args:
82
+ handle (int): Integer identifier for the handle. Defaults to -11 (stdout).
83
+
84
+ Returns:
85
+ wintypes.HANDLE: The handle
86
+ """
87
+ return cast(wintypes.HANDLE, _GetStdHandle(handle))
88
+
89
+
90
+ _GetConsoleMode = windll.kernel32.GetConsoleMode
91
+ _GetConsoleMode.argtypes = [wintypes.HANDLE, wintypes.LPDWORD]
92
+ _GetConsoleMode.restype = wintypes.BOOL
93
+
94
+
95
+ def GetConsoleMode(std_handle: wintypes.HANDLE) -> int:
96
+ """Retrieves the current input mode of a console's input buffer
97
+ or the current output mode of a console screen buffer.
98
+
99
+ Args:
100
+ std_handle (wintypes.HANDLE): A handle to the console input buffer or the console screen buffer.
101
+
102
+ Raises:
103
+ LegacyWindowsError: If any error occurs while calling the Windows console API.
104
+
105
+ Returns:
106
+ int: Value representing the current console mode as documented at
107
+ https://docs.microsoft.com/en-us/windows/console/getconsolemode#parameters
108
+ """
109
+
110
+ console_mode = wintypes.DWORD()
111
+ success = bool(_GetConsoleMode(std_handle, console_mode))
112
+ if not success:
113
+ raise LegacyWindowsError("Unable to get legacy Windows Console Mode")
114
+ return console_mode.value
115
+
116
+
117
+ _FillConsoleOutputCharacterW = windll.kernel32.FillConsoleOutputCharacterW
118
+ _FillConsoleOutputCharacterW.argtypes = [
119
+ wintypes.HANDLE,
120
+ ctypes.c_char,
121
+ wintypes.DWORD,
122
+ cast(Type[COORD], WindowsCoordinates),
123
+ ctypes.POINTER(wintypes.DWORD),
124
+ ]
125
+ _FillConsoleOutputCharacterW.restype = wintypes.BOOL
126
+
127
+
128
+ def FillConsoleOutputCharacter(
129
+ std_handle: wintypes.HANDLE,
130
+ char: str,
131
+ length: int,
132
+ start: WindowsCoordinates,
133
+ ) -> int:
134
+ """Writes a character to the console screen buffer a specified number of times, beginning at the specified coordinates.
135
+
136
+ Args:
137
+ std_handle (wintypes.HANDLE): A handle to the console input buffer or the console screen buffer.
138
+ char (str): The character to write. Must be a string of length 1.
139
+ length (int): The number of times to write the character.
140
+ start (WindowsCoordinates): The coordinates to start writing at.
141
+
142
+ Returns:
143
+ int: The number of characters written.
144
+ """
145
+ character = ctypes.c_char(char.encode())
146
+ num_characters = wintypes.DWORD(length)
147
+ num_written = wintypes.DWORD(0)
148
+ _FillConsoleOutputCharacterW(
149
+ std_handle,
150
+ character,
151
+ num_characters,
152
+ start,
153
+ byref(num_written),
154
+ )
155
+ return num_written.value
156
+
157
+
158
+ _FillConsoleOutputAttribute = windll.kernel32.FillConsoleOutputAttribute
159
+ _FillConsoleOutputAttribute.argtypes = [
160
+ wintypes.HANDLE,
161
+ wintypes.WORD,
162
+ wintypes.DWORD,
163
+ cast(Type[COORD], WindowsCoordinates),
164
+ ctypes.POINTER(wintypes.DWORD),
165
+ ]
166
+ _FillConsoleOutputAttribute.restype = wintypes.BOOL
167
+
168
+
169
+ def FillConsoleOutputAttribute(
170
+ std_handle: wintypes.HANDLE,
171
+ attributes: int,
172
+ length: int,
173
+ start: WindowsCoordinates,
174
+ ) -> int:
175
+ """Sets the character attributes for a specified number of character cells,
176
+ beginning at the specified coordinates in a screen buffer.
177
+
178
+ Args:
179
+ std_handle (wintypes.HANDLE): A handle to the console input buffer or the console screen buffer.
180
+ attributes (int): Integer value representing the foreground and background colours of the cells.
181
+ length (int): The number of cells to set the output attribute of.
182
+ start (WindowsCoordinates): The coordinates of the first cell whose attributes are to be set.
183
+
184
+ Returns:
185
+ int: The number of cells whose attributes were actually set.
186
+ """
187
+ num_cells = wintypes.DWORD(length)
188
+ style_attrs = wintypes.WORD(attributes)
189
+ num_written = wintypes.DWORD(0)
190
+ _FillConsoleOutputAttribute(
191
+ std_handle, style_attrs, num_cells, start, byref(num_written)
192
+ )
193
+ return num_written.value
194
+
195
+
196
+ _SetConsoleTextAttribute = windll.kernel32.SetConsoleTextAttribute
197
+ _SetConsoleTextAttribute.argtypes = [
198
+ wintypes.HANDLE,
199
+ wintypes.WORD,
200
+ ]
201
+ _SetConsoleTextAttribute.restype = wintypes.BOOL
202
+
203
+
204
+ def SetConsoleTextAttribute(
205
+ std_handle: wintypes.HANDLE, attributes: wintypes.WORD
206
+ ) -> bool:
207
+ """Set the colour attributes for all text written after this function is called.
208
+
209
+ Args:
210
+ std_handle (wintypes.HANDLE): A handle to the console input buffer or the console screen buffer.
211
+ attributes (int): Integer value representing the foreground and background colours.
212
+
213
+
214
+ Returns:
215
+ bool: True if the attribute was set successfully, otherwise False.
216
+ """
217
+ return bool(_SetConsoleTextAttribute(std_handle, attributes))
218
+
219
+
220
+ _GetConsoleScreenBufferInfo = windll.kernel32.GetConsoleScreenBufferInfo
221
+ _GetConsoleScreenBufferInfo.argtypes = [
222
+ wintypes.HANDLE,
223
+ ctypes.POINTER(CONSOLE_SCREEN_BUFFER_INFO),
224
+ ]
225
+ _GetConsoleScreenBufferInfo.restype = wintypes.BOOL
226
+
227
+
228
+ def GetConsoleScreenBufferInfo(
229
+ std_handle: wintypes.HANDLE,
230
+ ) -> CONSOLE_SCREEN_BUFFER_INFO:
231
+ """Retrieves information about the specified console screen buffer.
232
+
233
+ Args:
234
+ std_handle (wintypes.HANDLE): A handle to the console input buffer or the console screen buffer.
235
+
236
+ Returns:
237
+ CONSOLE_SCREEN_BUFFER_INFO: A CONSOLE_SCREEN_BUFFER_INFO ctype struct contain information about
238
+ screen size, cursor position, colour attributes, and more."""
239
+ console_screen_buffer_info = CONSOLE_SCREEN_BUFFER_INFO()
240
+ _GetConsoleScreenBufferInfo(std_handle, byref(console_screen_buffer_info))
241
+ return console_screen_buffer_info
242
+
243
+
244
+ _SetConsoleCursorPosition = windll.kernel32.SetConsoleCursorPosition
245
+ _SetConsoleCursorPosition.argtypes = [
246
+ wintypes.HANDLE,
247
+ cast(Type[COORD], WindowsCoordinates),
248
+ ]
249
+ _SetConsoleCursorPosition.restype = wintypes.BOOL
250
+
251
+
252
+ def SetConsoleCursorPosition(
253
+ std_handle: wintypes.HANDLE, coords: WindowsCoordinates
254
+ ) -> bool:
255
+ """Set the position of the cursor in the console screen
256
+
257
+ Args:
258
+ std_handle (wintypes.HANDLE): A handle to the console input buffer or the console screen buffer.
259
+ coords (WindowsCoordinates): The coordinates to move the cursor to.
260
+
261
+ Returns:
262
+ bool: True if the function succeeds, otherwise False.
263
+ """
264
+ return bool(_SetConsoleCursorPosition(std_handle, coords))
265
+
266
+
267
+ _GetConsoleCursorInfo = windll.kernel32.GetConsoleCursorInfo
268
+ _GetConsoleCursorInfo.argtypes = [
269
+ wintypes.HANDLE,
270
+ ctypes.POINTER(CONSOLE_CURSOR_INFO),
271
+ ]
272
+ _GetConsoleCursorInfo.restype = wintypes.BOOL
273
+
274
+
275
+ def GetConsoleCursorInfo(
276
+ std_handle: wintypes.HANDLE, cursor_info: CONSOLE_CURSOR_INFO
277
+ ) -> bool:
278
+ """Get the cursor info - used to get cursor visibility and width
279
+
280
+ Args:
281
+ std_handle (wintypes.HANDLE): A handle to the console input buffer or the console screen buffer.
282
+ cursor_info (CONSOLE_CURSOR_INFO): CONSOLE_CURSOR_INFO ctype struct that receives information
283
+ about the console's cursor.
284
+
285
+ Returns:
286
+ bool: True if the function succeeds, otherwise False.
287
+ """
288
+ return bool(_GetConsoleCursorInfo(std_handle, byref(cursor_info)))
289
+
290
+
291
+ _SetConsoleCursorInfo = windll.kernel32.SetConsoleCursorInfo
292
+ _SetConsoleCursorInfo.argtypes = [
293
+ wintypes.HANDLE,
294
+ ctypes.POINTER(CONSOLE_CURSOR_INFO),
295
+ ]
296
+ _SetConsoleCursorInfo.restype = wintypes.BOOL
297
+
298
+
299
+ def SetConsoleCursorInfo(
300
+ std_handle: wintypes.HANDLE, cursor_info: CONSOLE_CURSOR_INFO
301
+ ) -> bool:
302
+ """Set the cursor info - used for adjusting cursor visibility and width
303
+
304
+ Args:
305
+ std_handle (wintypes.HANDLE): A handle to the console input buffer or the console screen buffer.
306
+ cursor_info (CONSOLE_CURSOR_INFO): CONSOLE_CURSOR_INFO ctype struct containing the new cursor info.
307
+
308
+ Returns:
309
+ bool: True if the function succeeds, otherwise False.
310
+ """
311
+ return bool(_SetConsoleCursorInfo(std_handle, byref(cursor_info)))
312
+
313
+
314
+ _SetConsoleTitle = windll.kernel32.SetConsoleTitleW
315
+ _SetConsoleTitle.argtypes = [wintypes.LPCWSTR]
316
+ _SetConsoleTitle.restype = wintypes.BOOL
317
+
318
+
319
+ def SetConsoleTitle(title: str) -> bool:
320
+ """Sets the title of the current console window
321
+
322
+ Args:
323
+ title (str): The new title of the console window.
324
+
325
+ Returns:
326
+ bool: True if the function succeeds, otherwise False.
327
+ """
328
+ return bool(_SetConsoleTitle(title))
329
+
330
+
331
+ class LegacyWindowsTerm:
332
+ """This class allows interaction with the legacy Windows Console API. It should only be used in the context
333
+ of environments where virtual terminal processing is not available. However, if it is used in a Windows environment,
334
+ the entire API should work.
335
+
336
+ Args:
337
+ file (IO[str]): The file which the Windows Console API HANDLE is retrieved from, defaults to sys.stdout.
338
+ """
339
+
340
+ BRIGHT_BIT = 8
341
+
342
+ # Indices are ANSI color numbers, values are the corresponding Windows Console API color numbers
343
+ ANSI_TO_WINDOWS = [
344
+ 0, # black The Windows colours are defined in wincon.h as follows:
345
+ 4, # red define FOREGROUND_BLUE 0x0001 -- 0000 0001
346
+ 2, # green define FOREGROUND_GREEN 0x0002 -- 0000 0010
347
+ 6, # yellow define FOREGROUND_RED 0x0004 -- 0000 0100
348
+ 1, # blue define FOREGROUND_INTENSITY 0x0008 -- 0000 1000
349
+ 5, # magenta define BACKGROUND_BLUE 0x0010 -- 0001 0000
350
+ 3, # cyan define BACKGROUND_GREEN 0x0020 -- 0010 0000
351
+ 7, # white define BACKGROUND_RED 0x0040 -- 0100 0000
352
+ 8, # bright black (grey) define BACKGROUND_INTENSITY 0x0080 -- 1000 0000
353
+ 12, # bright red
354
+ 10, # bright green
355
+ 14, # bright yellow
356
+ 9, # bright blue
357
+ 13, # bright magenta
358
+ 11, # bright cyan
359
+ 15, # bright white
360
+ ]
361
+
362
+ def __init__(self, file: "IO[str]") -> None:
363
+ handle = GetStdHandle(STDOUT)
364
+ self._handle = handle
365
+ default_text = GetConsoleScreenBufferInfo(handle).wAttributes
366
+ self._default_text = default_text
367
+
368
+ self._default_fore = default_text & 7
369
+ self._default_back = (default_text >> 4) & 7
370
+ self._default_attrs = self._default_fore | (self._default_back << 4)
371
+
372
+ self._file = file
373
+ self.write = file.write
374
+ self.flush = file.flush
375
+
376
+ @property
377
+ def cursor_position(self) -> WindowsCoordinates:
378
+ """Returns the current position of the cursor (0-based)
379
+
380
+ Returns:
381
+ WindowsCoordinates: The current cursor position.
382
+ """
383
+ coord: COORD = GetConsoleScreenBufferInfo(self._handle).dwCursorPosition
384
+ return WindowsCoordinates(row=coord.Y, col=coord.X)
385
+
386
+ @property
387
+ def screen_size(self) -> WindowsCoordinates:
388
+ """Returns the current size of the console screen buffer, in character columns and rows
389
+
390
+ Returns:
391
+ WindowsCoordinates: The width and height of the screen as WindowsCoordinates.
392
+ """
393
+ screen_size: COORD = GetConsoleScreenBufferInfo(self._handle).dwSize
394
+ return WindowsCoordinates(row=screen_size.Y, col=screen_size.X)
395
+
396
+ def write_text(self, text: str) -> None:
397
+ """Write text directly to the terminal without any modification of styles
398
+
399
+ Args:
400
+ text (str): The text to write to the console
401
+ """
402
+ self.write(text)
403
+ self.flush()
404
+
405
+ def write_styled(self, text: str, style: Style) -> None:
406
+ """Write styled text to the terminal.
407
+
408
+ Args:
409
+ text (str): The text to write
410
+ style (Style): The style of the text
411
+ """
412
+ color = style.color
413
+ bgcolor = style.bgcolor
414
+ if style.reverse:
415
+ color, bgcolor = bgcolor, color
416
+
417
+ if color:
418
+ fore = color.downgrade(ColorSystem.WINDOWS).number
419
+ fore = fore if fore is not None else 7 # Default to ANSI 7: White
420
+ if style.bold:
421
+ fore = fore | self.BRIGHT_BIT
422
+ if style.dim:
423
+ fore = fore & ~self.BRIGHT_BIT
424
+ fore = self.ANSI_TO_WINDOWS[fore]
425
+ else:
426
+ fore = self._default_fore
427
+
428
+ if bgcolor:
429
+ back = bgcolor.downgrade(ColorSystem.WINDOWS).number
430
+ back = back if back is not None else 0 # Default to ANSI 0: Black
431
+ back = self.ANSI_TO_WINDOWS[back]
432
+ else:
433
+ back = self._default_back
434
+
435
+ assert fore is not None
436
+ assert back is not None
437
+
438
+ SetConsoleTextAttribute(
439
+ self._handle, attributes=ctypes.c_ushort(fore | (back << 4))
440
+ )
441
+ self.write_text(text)
442
+ SetConsoleTextAttribute(self._handle, attributes=self._default_text)
443
+
444
+ def move_cursor_to(self, new_position: WindowsCoordinates) -> None:
445
+ """Set the position of the cursor
446
+
447
+ Args:
448
+ new_position (WindowsCoordinates): The WindowsCoordinates representing the new position of the cursor.
449
+ """
450
+ if new_position.col < 0 or new_position.row < 0:
451
+ return
452
+ SetConsoleCursorPosition(self._handle, coords=new_position)
453
+
454
+ def erase_line(self) -> None:
455
+ """Erase all content on the line the cursor is currently located at"""
456
+ screen_size = self.screen_size
457
+ cursor_position = self.cursor_position
458
+ cells_to_erase = screen_size.col
459
+ start_coordinates = WindowsCoordinates(row=cursor_position.row, col=0)
460
+ FillConsoleOutputCharacter(
461
+ self._handle, " ", length=cells_to_erase, start=start_coordinates
462
+ )
463
+ FillConsoleOutputAttribute(
464
+ self._handle,
465
+ self._default_attrs,
466
+ length=cells_to_erase,
467
+ start=start_coordinates,
468
+ )
469
+
470
+ def erase_end_of_line(self) -> None:
471
+ """Erase all content from the cursor position to the end of that line"""
472
+ cursor_position = self.cursor_position
473
+ cells_to_erase = self.screen_size.col - cursor_position.col
474
+ FillConsoleOutputCharacter(
475
+ self._handle, " ", length=cells_to_erase, start=cursor_position
476
+ )
477
+ FillConsoleOutputAttribute(
478
+ self._handle,
479
+ self._default_attrs,
480
+ length=cells_to_erase,
481
+ start=cursor_position,
482
+ )
483
+
484
+ def erase_start_of_line(self) -> None:
485
+ """Erase all content from the cursor position to the start of that line"""
486
+ row, col = self.cursor_position
487
+ start = WindowsCoordinates(row, 0)
488
+ FillConsoleOutputCharacter(self._handle, " ", length=col, start=start)
489
+ FillConsoleOutputAttribute(
490
+ self._handle, self._default_attrs, length=col, start=start
491
+ )
492
+
493
+ def move_cursor_up(self) -> None:
494
+ """Move the cursor up a single cell"""
495
+ cursor_position = self.cursor_position
496
+ SetConsoleCursorPosition(
497
+ self._handle,
498
+ coords=WindowsCoordinates(
499
+ row=cursor_position.row - 1, col=cursor_position.col
500
+ ),
501
+ )
502
+
503
+ def move_cursor_down(self) -> None:
504
+ """Move the cursor down a single cell"""
505
+ cursor_position = self.cursor_position
506
+ SetConsoleCursorPosition(
507
+ self._handle,
508
+ coords=WindowsCoordinates(
509
+ row=cursor_position.row + 1,
510
+ col=cursor_position.col,
511
+ ),
512
+ )
513
+
514
+ def move_cursor_forward(self) -> None:
515
+ """Move the cursor forward a single cell. Wrap to the next line if required."""
516
+ row, col = self.cursor_position
517
+ if col == self.screen_size.col - 1:
518
+ row += 1
519
+ col = 0
520
+ else:
521
+ col += 1
522
+ SetConsoleCursorPosition(
523
+ self._handle, coords=WindowsCoordinates(row=row, col=col)
524
+ )
525
+
526
+ def move_cursor_to_column(self, column: int) -> None:
527
+ """Move cursor to the column specified by the zero-based column index, staying on the same row
528
+
529
+ Args:
530
+ column (int): The zero-based column index to move the cursor to.
531
+ """
532
+ row, _ = self.cursor_position
533
+ SetConsoleCursorPosition(self._handle, coords=WindowsCoordinates(row, column))
534
+
535
+ def move_cursor_backward(self) -> None:
536
+ """Move the cursor backward a single cell. Wrap to the previous line if required."""
537
+ row, col = self.cursor_position
538
+ if col == 0:
539
+ row -= 1
540
+ col = self.screen_size.col - 1
541
+ else:
542
+ col -= 1
543
+ SetConsoleCursorPosition(
544
+ self._handle, coords=WindowsCoordinates(row=row, col=col)
545
+ )
546
+
547
+ def hide_cursor(self) -> None:
548
+ """Hide the cursor"""
549
+ current_cursor_size = self._get_cursor_size()
550
+ invisible_cursor = CONSOLE_CURSOR_INFO(dwSize=current_cursor_size, bVisible=0)
551
+ SetConsoleCursorInfo(self._handle, cursor_info=invisible_cursor)
552
+
553
+ def show_cursor(self) -> None:
554
+ """Show the cursor"""
555
+ current_cursor_size = self._get_cursor_size()
556
+ visible_cursor = CONSOLE_CURSOR_INFO(dwSize=current_cursor_size, bVisible=1)
557
+ SetConsoleCursorInfo(self._handle, cursor_info=visible_cursor)
558
+
559
+ def set_title(self, title: str) -> None:
560
+ """Set the title of the terminal window
561
+
562
+ Args:
563
+ title (str): The new title of the console window
564
+ """
565
+ assert len(title) < 255, "Console title must be less than 255 characters"
566
+ SetConsoleTitle(title)
567
+
568
+ def _get_cursor_size(self) -> int:
569
+ """Get the percentage of the character cell that is filled by the cursor"""
570
+ cursor_info = CONSOLE_CURSOR_INFO()
571
+ GetConsoleCursorInfo(self._handle, cursor_info=cursor_info)
572
+ return int(cursor_info.dwSize)
573
+
574
+
575
+ if __name__ == "__main__":
576
+ handle = GetStdHandle()
577
+
578
+ from rich.console import Console
579
+
580
+ console = Console()
581
+
582
+ term = LegacyWindowsTerm(sys.stdout)
583
+ term.set_title("Win32 Console Examples")
584
+
585
+ style = Style(color="black", bgcolor="red")
586
+
587
+ heading = Style.parse("black on green")
588
+
589
+ # Check colour output
590
+ console.rule("Checking colour output")
591
+ console.print("[on red]on red!")
592
+ console.print("[blue]blue!")
593
+ console.print("[yellow]yellow!")
594
+ console.print("[bold yellow]bold yellow!")
595
+ console.print("[bright_yellow]bright_yellow!")
596
+ console.print("[dim bright_yellow]dim bright_yellow!")
597
+ console.print("[italic cyan]italic cyan!")
598
+ console.print("[bold white on blue]bold white on blue!")
599
+ console.print("[reverse bold white on blue]reverse bold white on blue!")
600
+ console.print("[bold black on cyan]bold black on cyan!")
601
+ console.print("[black on green]black on green!")
602
+ console.print("[blue on green]blue on green!")
603
+ console.print("[white on black]white on black!")
604
+ console.print("[black on white]black on white!")
605
+ console.print("[#1BB152 on #DA812D]#1BB152 on #DA812D!")
606
+
607
+ # Check cursor movement
608
+ console.rule("Checking cursor movement")
609
+ console.print()
610
+ term.move_cursor_backward()
611
+ term.move_cursor_backward()
612
+ term.write_text("went back and wrapped to prev line")
613
+ time.sleep(1)
614
+ term.move_cursor_up()
615
+ term.write_text("we go up")
616
+ time.sleep(1)
617
+ term.move_cursor_down()
618
+ term.write_text("and down")
619
+ time.sleep(1)
620
+ term.move_cursor_up()
621
+ term.move_cursor_backward()
622
+ term.move_cursor_backward()
623
+ term.write_text("we went up and back 2")
624
+ time.sleep(1)
625
+ term.move_cursor_down()
626
+ term.move_cursor_backward()
627
+ term.move_cursor_backward()
628
+ term.write_text("we went down and back 2")
629
+ time.sleep(1)
630
+
631
+ # Check erasing of lines
632
+ term.hide_cursor()
633
+ console.print()
634
+ console.rule("Checking line erasing")
635
+ console.print("\n...Deleting to the start of the line...")
636
+ term.write_text("The red arrow shows the cursor location, and direction of erase")
637
+ time.sleep(1)
638
+ term.move_cursor_to_column(16)
639
+ term.write_styled("<", Style.parse("black on red"))
640
+ term.move_cursor_backward()
641
+ time.sleep(1)
642
+ term.erase_start_of_line()
643
+ time.sleep(1)
644
+
645
+ console.print("\n\n...And to the end of the line...")
646
+ term.write_text("The red arrow shows the cursor location, and direction of erase")
647
+ time.sleep(1)
648
+
649
+ term.move_cursor_to_column(16)
650
+ term.write_styled(">", Style.parse("black on red"))
651
+ time.sleep(1)
652
+ term.erase_end_of_line()
653
+ time.sleep(1)
654
+
655
+ console.print("\n\n...Now the whole line will be erased...")
656
+ term.write_styled("I'm going to disappear!", style=Style.parse("black on cyan"))
657
+ time.sleep(1)
658
+ term.erase_line()
659
+
660
+ term.show_cursor()
661
+ print("\n")
venv/lib/python3.11/site-packages/rich/_windows.py ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import sys
2
+ from dataclasses import dataclass
3
+
4
+
5
+ @dataclass
6
+ class WindowsConsoleFeatures:
7
+ """Windows features available."""
8
+
9
+ vt: bool = False
10
+ """The console supports VT codes."""
11
+ truecolor: bool = False
12
+ """The console supports truecolor."""
13
+
14
+
15
+ try:
16
+ import ctypes
17
+ from ctypes import LibraryLoader
18
+
19
+ if sys.platform == "win32":
20
+ windll = LibraryLoader(ctypes.WinDLL)
21
+ else:
22
+ windll = None
23
+ raise ImportError("Not windows")
24
+
25
+ from rich._win32_console import (
26
+ ENABLE_VIRTUAL_TERMINAL_PROCESSING,
27
+ GetConsoleMode,
28
+ GetStdHandle,
29
+ LegacyWindowsError,
30
+ )
31
+
32
+ except (AttributeError, ImportError, ValueError):
33
+ # Fallback if we can't load the Windows DLL
34
+ def get_windows_console_features() -> WindowsConsoleFeatures:
35
+ features = WindowsConsoleFeatures()
36
+ return features
37
+
38
+ else:
39
+
40
+ def get_windows_console_features() -> WindowsConsoleFeatures:
41
+ """Get windows console features.
42
+
43
+ Returns:
44
+ WindowsConsoleFeatures: An instance of WindowsConsoleFeatures.
45
+ """
46
+ handle = GetStdHandle()
47
+ try:
48
+ console_mode = GetConsoleMode(handle)
49
+ success = True
50
+ except LegacyWindowsError:
51
+ console_mode = 0
52
+ success = False
53
+ vt = bool(success and console_mode & ENABLE_VIRTUAL_TERMINAL_PROCESSING)
54
+ truecolor = False
55
+ if vt:
56
+ win_version = sys.getwindowsversion()
57
+ truecolor = win_version.major > 10 or (
58
+ win_version.major == 10 and win_version.build >= 15063
59
+ )
60
+ features = WindowsConsoleFeatures(vt=vt, truecolor=truecolor)
61
+ return features
62
+
63
+
64
+ if __name__ == "__main__":
65
+ import platform
66
+
67
+ features = get_windows_console_features()
68
+ from rich import print
69
+
70
+ print(f'platform="{platform.system()}"')
71
+ print(repr(features))
venv/lib/python3.11/site-packages/rich/_windows_renderer.py ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from typing import Iterable, Sequence, Tuple, cast
2
+
3
+ from rich._win32_console import LegacyWindowsTerm, WindowsCoordinates
4
+ from rich.segment import ControlCode, ControlType, Segment
5
+
6
+
7
+ def legacy_windows_render(buffer: Iterable[Segment], term: LegacyWindowsTerm) -> None:
8
+ """Makes appropriate Windows Console API calls based on the segments in the buffer.
9
+
10
+ Args:
11
+ buffer (Iterable[Segment]): Iterable of Segments to convert to Win32 API calls.
12
+ term (LegacyWindowsTerm): Used to call the Windows Console API.
13
+ """
14
+ for text, style, control in buffer:
15
+ if not control:
16
+ if style:
17
+ term.write_styled(text, style)
18
+ else:
19
+ term.write_text(text)
20
+ else:
21
+ control_codes: Sequence[ControlCode] = control
22
+ for control_code in control_codes:
23
+ control_type = control_code[0]
24
+ if control_type == ControlType.CURSOR_MOVE_TO:
25
+ _, x, y = cast(Tuple[ControlType, int, int], control_code)
26
+ term.move_cursor_to(WindowsCoordinates(row=y - 1, col=x - 1))
27
+ elif control_type == ControlType.CARRIAGE_RETURN:
28
+ term.write_text("\r")
29
+ elif control_type == ControlType.HOME:
30
+ term.move_cursor_to(WindowsCoordinates(0, 0))
31
+ elif control_type == ControlType.CURSOR_UP:
32
+ term.move_cursor_up()
33
+ elif control_type == ControlType.CURSOR_DOWN:
34
+ term.move_cursor_down()
35
+ elif control_type == ControlType.CURSOR_FORWARD:
36
+ term.move_cursor_forward()
37
+ elif control_type == ControlType.CURSOR_BACKWARD:
38
+ term.move_cursor_backward()
39
+ elif control_type == ControlType.CURSOR_MOVE_TO_COLUMN:
40
+ _, column = cast(Tuple[ControlType, int], control_code)
41
+ term.move_cursor_to_column(column - 1)
42
+ elif control_type == ControlType.HIDE_CURSOR:
43
+ term.hide_cursor()
44
+ elif control_type == ControlType.SHOW_CURSOR:
45
+ term.show_cursor()
46
+ elif control_type == ControlType.ERASE_IN_LINE:
47
+ _, mode = cast(Tuple[ControlType, int], control_code)
48
+ if mode == 0:
49
+ term.erase_end_of_line()
50
+ elif mode == 1:
51
+ term.erase_start_of_line()
52
+ elif mode == 2:
53
+ term.erase_line()
54
+ elif control_type == ControlType.SET_WINDOW_TITLE:
55
+ _, title = cast(Tuple[ControlType, str], control_code)
56
+ term.set_title(title)
venv/lib/python3.11/site-packages/rich/_wrap.py ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from __future__ import annotations
2
+
3
+ import re
4
+ from typing import Iterable
5
+
6
+ from ._loop import loop_last
7
+ from .cells import cell_len, chop_cells
8
+
9
+ re_word = re.compile(r"\s*\S+\s*")
10
+
11
+
12
+ def words(text: str) -> Iterable[tuple[int, int, str]]:
13
+ """Yields each word from the text as a tuple
14
+ containing (start_index, end_index, word). A "word" in this context may
15
+ include the actual word and any whitespace to the right.
16
+ """
17
+ position = 0
18
+ word_match = re_word.match(text, position)
19
+ while word_match is not None:
20
+ start, end = word_match.span()
21
+ word = word_match.group(0)
22
+ yield start, end, word
23
+ word_match = re_word.match(text, end)
24
+
25
+
26
+ def divide_line(text: str, width: int, fold: bool = True) -> list[int]:
27
+ """Given a string of text, and a width (measured in cells), return a list
28
+ of cell offsets which the string should be split at in order for it to fit
29
+ within the given width.
30
+
31
+ Args:
32
+ text: The text to examine.
33
+ width: The available cell width.
34
+ fold: If True, words longer than `width` will be folded onto a new line.
35
+
36
+ Returns:
37
+ A list of indices to break the line at.
38
+ """
39
+ break_positions: list[int] = [] # offsets to insert the breaks at
40
+ append = break_positions.append
41
+ cell_offset = 0
42
+ _cell_len = cell_len
43
+
44
+ for start, _end, word in words(text):
45
+ word_length = _cell_len(word.rstrip())
46
+ remaining_space = width - cell_offset
47
+ word_fits_remaining_space = remaining_space >= word_length
48
+
49
+ if word_fits_remaining_space:
50
+ # Simplest case - the word fits within the remaining width for this line.
51
+ cell_offset += _cell_len(word)
52
+ else:
53
+ # Not enough space remaining for this word on the current line.
54
+ if word_length > width:
55
+ # The word doesn't fit on any line, so we can't simply
56
+ # place it on the next line...
57
+ if fold:
58
+ # Fold the word across multiple lines.
59
+ folded_word = chop_cells(word, width=width)
60
+ for last, line in loop_last(folded_word):
61
+ if start:
62
+ append(start)
63
+ if last:
64
+ cell_offset = _cell_len(line)
65
+ else:
66
+ start += len(line)
67
+ else:
68
+ # Folding isn't allowed, so crop the word.
69
+ if start:
70
+ append(start)
71
+ cell_offset = _cell_len(word)
72
+ elif cell_offset and start:
73
+ # The word doesn't fit within the remaining space on the current
74
+ # line, but it *can* fit on to the next (empty) line.
75
+ append(start)
76
+ cell_offset = _cell_len(word)
77
+
78
+ return break_positions
79
+
80
+
81
+ if __name__ == "__main__": # pragma: no cover
82
+ from .console import Console
83
+
84
+ console = Console(width=10)
85
+ console.print("12345 abcdefghijklmnopqrstuvwyxzABCDEFGHIJKLMNOPQRSTUVWXYZ 12345")
86
+ print(chop_cells("abcdefghijklmnopqrstuvwxyz", 10))
87
+
88
+ console = Console(width=20)
89
+ console.rule()
90
+ console.print("TextualはPythonの高速アプリケーション開発フレームワークです")
91
+
92
+ console.rule()
93
+ console.print("アプリケーションは1670万色を使用でき")
venv/lib/python3.11/site-packages/rich/abc.py ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from abc import ABC
2
+
3
+
4
+ class RichRenderable(ABC):
5
+ """An abstract base class for Rich renderables.
6
+
7
+ Note that there is no need to extend this class, the intended use is to check if an
8
+ object supports the Rich renderable protocol. For example::
9
+
10
+ if isinstance(my_object, RichRenderable):
11
+ console.print(my_object)
12
+
13
+ """
14
+
15
+ @classmethod
16
+ def __subclasshook__(cls, other: type) -> bool:
17
+ """Check if this class supports the rich render protocol."""
18
+ return hasattr(other, "__rich_console__") or hasattr(other, "__rich__")
19
+
20
+
21
+ if __name__ == "__main__": # pragma: no cover
22
+ from rich.text import Text
23
+
24
+ t = Text()
25
+ print(isinstance(Text, RichRenderable))
26
+ print(isinstance(t, RichRenderable))
27
+
28
+ class Foo:
29
+ pass
30
+
31
+ f = Foo()
32
+ print(isinstance(f, RichRenderable))
33
+ print(isinstance("", RichRenderable))