From 0ffe7962f95d1b23d22e45b11fef9c1317fa62e1 Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Sat, 17 Jan 2026 17:08:48 +0000 Subject: [PATCH 01/29] cell string class --- rich/cell_string.py | 210 +++++++++++++++++++++++++++++++++++++ tools/make_width_tables.py | 27 +++++ 2 files changed, 237 insertions(+) create mode 100644 rich/cell_string.py create mode 100644 tools/make_width_tables.py diff --git a/rich/cell_string.py b/rich/cell_string.py new file mode 100644 index 0000000000..38fb9962b9 --- /dev/null +++ b/rich/cell_string.py @@ -0,0 +1,210 @@ +from typing import Callable, Generator, Iterator, NamedTuple, Sequence + +# Ranges of unicode ordinals that produce a 1-cell wide character +# This is non-exhaustive, but covers most common Western characters +_SINGLE_CELL_UNICODE_RANGES: list[tuple[int, int]] = [ + (0x20, 0x7E), # Latin (excluding non-printable) + (0xA0, 0xAC), + (0xAE, 0x002FF), + (0x00370, 0x00482), # Greek / Cyrillic + (0x02500, 0x025FC), # Box drawing, box elements, geometric shapes + (0x02800, 0x028FF), # Braille +] + +# A set of characters that are a single cell wide +_SINGLE_CELLS = frozenset( + [ + character + for _start, _end in _SINGLE_CELL_UNICODE_RANGES + for character in map(chr, range(_start, _end + 1)) + ] +) + +# When called with a string this will return True if all +# characters are single-cell, otherwise False +_is_single_cell_widths: Callable[[str], bool] = _SINGLE_CELLS.issuperset + + +def _bisearch(codepoint: int, table: Sequence[tuple[int, int, int]]) -> int: + """Binary search a codepoint table. + + Args: + codepoint: The codepoint of a character. + table: A codepoint table. + + """ + lbound = 0 + ubound = len(table) - 1 + + if codepoint < table[0][0] or codepoint > table[ubound][1]: + return 0 + while ubound >= lbound: + mid = (lbound + ubound) // 2 + if codepoint > table[mid][1]: + lbound = mid + 1 + elif codepoint < table[mid][0]: + ubound = mid - 1 + else: + return 1 + + return 0 + + +def _binary_search(character: str) -> int: + """Get the cell size of a character. + + Args: + character (str): A single character. + + Returns: + int: Number of cells (0, 1 or 2) occupied by that character. + """ + codepoint = ord(character) + _table = CELL_WIDTHS + lower_bound = 0 + upper_bound = len(_table) - 1 + index = (lower_bound + upper_bound) // 2 + while True: + start, end, width = _table[index] + if codepoint < start: + upper_bound = index - 1 + elif codepoint > end: + lower_bound = index + 1 + else: + return 0 if width == -1 else width + if upper_bound < lower_bound: + break + index = (lower_bound + upper_bound) // 2 + return 1 + + +class Span(NamedTuple): + """Defines a range of a single grapheme.""" + + start: int + end: int + cell_length: int + + +class CellString: + """A string-like object that takes graphemes into account.""" + + def __init__( + self, + text: str, + *, + cell_length: int | None = None, + spans: list[Span] | None = None, + ): + """ + + Args: + text: The plain text. + cell_length: The cell length (as it appears in the terminal), if known. + spans: List of spans which divide the text in to atomic units (single glyphs). + """ + self._text = text + self._singles: bool = _is_single_cell_widths(text) + if cell_length is None: + self._cell_length = len(text) if self._singles else None + else: + self._cell_length = cell_length + self._spans: list[Span] | None = spans + + @property + def text(self) -> str: + """The raw text.""" + return self._text + + @property + def spans(self) -> list[Span]: + if self._spans is not None: + if self._singles: + self._spans = [ + Span(index, index + 1, 1) for index in range(len(self._text)) + ] + else: + # TODO: + self._spans = [] + + return self._spans + + @property + def cell_length(self) -> int: + if self._cell_length is None: + self._cell_length = sum([cell_length for _, _, cell_length in self.spans]) + return self._cell_length + + def __bool__(self) -> bool: + return bool(self._text) + + def __hash__(self) -> int: + return hash(self._text) + + def __eq__(self, other: object) -> bool: + if isinstance(other, CellString): + return self._text == other._text + return NotImplemented + + def __add__(self, other: "CellString") -> "CellString": + if self._singles and other._singles: + return CellString(self._text + other._text) + spans: list[Span] | None + if self._spans is not None and other._spans is not None: + self_length = len(self._text) + spans = [ + *self._spans, + *[ + Span(start + self_length, end + self_length, cell_length) + for start, end, cell_length in other.spans + ], + ] + else: + spans = None + return CellString(self._text + other._text, spans=spans) + + def __iter__(self) -> Iterator[str]: + if self._singles: + return iter(self._text) + + def iterate_text(text: str, spans: list[Span]) -> Generator[str]: + """Generator for the""" + for start, end, _ in spans: + yield text[start:end] + + return iter(iterate_text(self._text, self.spans)) + + def __reversed__(self) -> Iterator[str]: + if self._singles: + return reversed(self._text) + + def iterate_text(text: str, spans: list[Span]): + for start, end, _ in reversed(spans): + yield text[start:end] + + return iter(iterate_text(self._text, self.spans)) + + def __getitem__(self, index: int | slice) -> str: + if self._singles: + # Trivial case of single cell character strings + return self._text[index] + if isinstance(index, int): + # Single span is easy + start, end, _cell_length = self.spans[index] + return self._text[start:end] + + start, stop, stride = index.indices(len(self.spans)) + if stride == 1: + # Fast path for a stride of 1 + start_offset = self.spans[start] + stop_offset = self.spans[stop] + return self._text[start_offset:stop_offset] + else: + # More involved case of a stride > 1 + span_offset = start + output: list[str] = [] + while span_offset <= stop: + start_offset, end_offset, _ = self.spans[span_offset] + output.append(self._text[start_offset:end_offset]) + span_offset += stride + return "".join(output) diff --git a/tools/make_width_tables.py b/tools/make_width_tables.py new file mode 100644 index 0000000000..c8788f9765 --- /dev/null +++ b/tools/make_width_tables.py @@ -0,0 +1,27 @@ +import subprocess + +from wcwidth import list_versions +from wcwidth.table_wide import WIDE_EASTASIAN +from wcwidth.table_zero import ZERO_WIDTH + +UNICODE_VERSIONS: list[str] = list_versions() + +for version in UNICODE_VERSIONS: + table: list[tuple[int, int, int]] = [] + wide_east_asian: list[tuple[int, int]] = WIDE_EASTASIAN.get(version, []) + for start, end in wide_east_asian: + table.append((start, end, 2)) + zero_wide: list[tuple[int, int]] = ZERO_WIDTH.get(version, []) + for start, end in zero_wide: + table.append((start, end, 0)) + + table_file = f"""# Auto generated by tools/make_width_tables.py + +CELL_WIDTHS = {table!r} + +""" + path = f"../rich/unicode{version}.py" + with open(path, "wt") as file_out: + file_out.write(table_file) + + subprocess.run("black {path}", shell=True) From 1dde8ba671456765bddb283a20e5bf5682eea581 Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Sun, 18 Jan 2026 14:08:11 +0000 Subject: [PATCH 02/29] cell tables --- rich/cell_string.py | 39 ++++++++++++++++++++++++++++++++++++++ tools/make_width_tables.py | 29 +++++++++++++++++++++++++--- 2 files changed, 65 insertions(+), 3 deletions(-) diff --git a/rich/cell_string.py b/rich/cell_string.py index 38fb9962b9..e15d840f68 100644 --- a/rich/cell_string.py +++ b/rich/cell_string.py @@ -25,6 +25,45 @@ _is_single_cell_widths: Callable[[str], bool] = _SINGLE_CELLS.issuperset +class CellTable(NamedTuple): + """Contains unicode data required to measure the cell widths of glyphs.""" + + unicode_version: str + widths: Sequence[tuple[int, int, int]] + narrow_to_wide: frozenset[int] + + def get_cell_size(self, character: str) -> None: + pass + + +def get_character_cell_size(character: str, cell_table: CellTable | None) -> int: + """Get the cell size of a character. + + Args: + character (str): A single character. + + Returns: + int: Number of cells (0, 1 or 2) occupied by that character. + """ + codepoint = ord(character) + _table = CELL_WIDTHS + lower_bound = 0 + upper_bound = len(_table) - 1 + index = (lower_bound + upper_bound) // 2 + while True: + start, end, width = _table[index] + if codepoint < start: + upper_bound = index - 1 + elif codepoint > end: + lower_bound = index + 1 + else: + return 0 if width == -1 else width + if upper_bound < lower_bound: + break + index = (lower_bound + upper_bound) // 2 + return 1 + + def _bisearch(codepoint: int, table: Sequence[tuple[int, int, int]]) -> int: """Binary search a codepoint table. diff --git a/tools/make_width_tables.py b/tools/make_width_tables.py index c8788f9765..d49a4d7e24 100644 --- a/tools/make_width_tables.py +++ b/tools/make_width_tables.py @@ -1,11 +1,29 @@ import subprocess +from pathlib import Path from wcwidth import list_versions +from wcwidth.table_vs16 import VS16_NARROW_TO_WIDE from wcwidth.table_wide import WIDE_EASTASIAN from wcwidth.table_zero import ZERO_WIDTH +from rich.cell_string import CellTable + UNICODE_VERSIONS: list[str] = list_versions() + +path = Path("../rich/_unicode_data/_versions.py").resolve().absolute() +init = f"""\ +VERSIONS = {UNICODE_VERSIONS!r} +""" + +with open(path, "wt") as init_file: + init_file.write(init) + + +narrow_to_wide: set[int] = set() +for start, end in VS16_NARROW_TO_WIDE["9.0.0"]: + narrow_to_wide.update(range(start, end)) + for version in UNICODE_VERSIONS: table: list[tuple[int, int, int]] = [] wide_east_asian: list[tuple[int, int]] = WIDE_EASTASIAN.get(version, []) @@ -14,14 +32,19 @@ zero_wide: list[tuple[int, int]] = ZERO_WIDTH.get(version, []) for start, end in zero_wide: table.append((start, end, 0)) + table.sort() + + cell_table = CellTable(version, table, frozenset(narrow_to_wide)) table_file = f"""# Auto generated by tools/make_width_tables.py -CELL_WIDTHS = {table!r} +from rich.cell_string import CellTable +cell_table = {cell_table!r} """ - path = f"../rich/unicode{version}.py" + version_path = version.replace(".", "-") + path = Path(f"../rich/_unicode_data/unicode{version_path}.py").resolve().absolute() with open(path, "wt") as file_out: file_out.write(table_file) - subprocess.run("black {path}", shell=True) + subprocess.run(f"black {path}", shell=True) From 72b0a9e964a32a9d65a9cf895f7758bb85e0c631 Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Sun, 18 Jan 2026 14:10:24 +0000 Subject: [PATCH 03/29] f string path --- rich/_unicode_data/__init__.py | 78 ++++ rich/_unicode_data/_versions.py | 23 ++ rich/_unicode_data/unicode10-0-0.py | 499 ++++++++++++++++++++++++ rich/_unicode_data/unicode11-0-0.py | 514 ++++++++++++++++++++++++ rich/_unicode_data/unicode12-0-0.py | 526 +++++++++++++++++++++++++ rich/_unicode_data/unicode12-1-0.py | 525 +++++++++++++++++++++++++ rich/_unicode_data/unicode13-0-0.py | 537 +++++++++++++++++++++++++ rich/_unicode_data/unicode14-0-0.py | 551 ++++++++++++++++++++++++++ rich/_unicode_data/unicode15-0-0.py | 561 +++++++++++++++++++++++++++ rich/_unicode_data/unicode15-1-0.py | 560 +++++++++++++++++++++++++++ rich/_unicode_data/unicode16-0-0.py | 573 +++++++++++++++++++++++++++ rich/_unicode_data/unicode17-0-0.py | 581 ++++++++++++++++++++++++++++ rich/_unicode_data/unicode4-1-0.py | 291 ++++++++++++++ rich/_unicode_data/unicode5-0-0.py | 296 ++++++++++++++ rich/_unicode_data/unicode5-1-0.py | 319 +++++++++++++++ rich/_unicode_data/unicode5-2-0.py | 347 +++++++++++++++++ rich/_unicode_data/unicode6-0-0.py | 355 +++++++++++++++++ rich/_unicode_data/unicode6-1-0.py | 366 ++++++++++++++++++ rich/_unicode_data/unicode6-2-0.py | 366 ++++++++++++++++++ rich/_unicode_data/unicode6-3-0.py | 367 ++++++++++++++++++ rich/_unicode_data/unicode7-0-0.py | 393 +++++++++++++++++++ rich/_unicode_data/unicode8-0-0.py | 401 +++++++++++++++++++ rich/_unicode_data/unicode9-0-0.py | 486 +++++++++++++++++++++++ 23 files changed, 9515 insertions(+) create mode 100644 rich/_unicode_data/__init__.py create mode 100644 rich/_unicode_data/_versions.py create mode 100644 rich/_unicode_data/unicode10-0-0.py create mode 100644 rich/_unicode_data/unicode11-0-0.py create mode 100644 rich/_unicode_data/unicode12-0-0.py create mode 100644 rich/_unicode_data/unicode12-1-0.py create mode 100644 rich/_unicode_data/unicode13-0-0.py create mode 100644 rich/_unicode_data/unicode14-0-0.py create mode 100644 rich/_unicode_data/unicode15-0-0.py create mode 100644 rich/_unicode_data/unicode15-1-0.py create mode 100644 rich/_unicode_data/unicode16-0-0.py create mode 100644 rich/_unicode_data/unicode17-0-0.py create mode 100644 rich/_unicode_data/unicode4-1-0.py create mode 100644 rich/_unicode_data/unicode5-0-0.py create mode 100644 rich/_unicode_data/unicode5-1-0.py create mode 100644 rich/_unicode_data/unicode5-2-0.py create mode 100644 rich/_unicode_data/unicode6-0-0.py create mode 100644 rich/_unicode_data/unicode6-1-0.py create mode 100644 rich/_unicode_data/unicode6-2-0.py create mode 100644 rich/_unicode_data/unicode6-3-0.py create mode 100644 rich/_unicode_data/unicode7-0-0.py create mode 100644 rich/_unicode_data/unicode8-0-0.py create mode 100644 rich/_unicode_data/unicode9-0-0.py diff --git a/rich/_unicode_data/__init__.py b/rich/_unicode_data/__init__.py new file mode 100644 index 0000000000..bba493723e --- /dev/null +++ b/rich/_unicode_data/__init__.py @@ -0,0 +1,78 @@ +import bisect +import os +from functools import cache +from importlib import import_module + +from rich._unicode_data._versions import VERSIONS +from rich.cell_string import CellTable + +VERSION_ORDER = sorted( + [ + tuple( + map(int, version.split(".")), + ) + for version in VERSIONS + ] +) +VERSION_SET = frozenset(VERSION_ORDER) + + +def _parse_version(version: str) -> tuple[int, int, int]: + """Parse a version string into a tuple of 3 integers. + + Args: + version: A version string. + + Raises: + ValueError: If the version string is invalid. + + Returns: + A tuple of 3 integers. + """ + try: + version_integers = tuple( + map(int, version.split(".")), + ) + except ValueError: + raise ValueError( + f"unicode version string {version!r} is badly formatted" + ) from None + while len(version_integers) < 3: + version_integers = (version_integers, 0) + triple = version_integers[:3] + return triple + + +@cache +def load(unicode_version: str | None) -> CellTable: + """Load a cell table for the given unicode version. + + Args: + unicode_version: Unicode version, or `None` to auto-detect. + + """ + if unicode_version is None: + unicode_version = os.environ.get("UNICODE_VERSION", "latest") + try: + _parse_version(unicode_version) + except ValueError: + # The environment variable is invalid + # Fallback to using the latest version seems s + unicode_version = "latest" + + if unicode_version == "latest": + version = VERSIONS[-1] + else: + if unicode_version in VERSION_SET: + version = unicode_version + else: + unicode_version_integers = _parse_version(unicode_version) + insert_position = bisect.bisect_left( + VERSION_ORDER, unicode_version_integers + ) + version = VERSIONS[max(0, insert_position - 1)] + + version_path_component = version.replace(".", "-") + module_name = f".unicode{version_path_component}" + module = import_module(module_name, "rich._unicode_data") + return module.cell_table diff --git a/rich/_unicode_data/_versions.py b/rich/_unicode_data/_versions.py new file mode 100644 index 0000000000..be98418d13 --- /dev/null +++ b/rich/_unicode_data/_versions.py @@ -0,0 +1,23 @@ +VERSIONS = ( + "4.1.0", + "5.0.0", + "5.1.0", + "5.2.0", + "6.0.0", + "6.1.0", + "6.2.0", + "6.3.0", + "7.0.0", + "8.0.0", + "9.0.0", + "10.0.0", + "11.0.0", + "12.0.0", + "12.1.0", + "13.0.0", + "14.0.0", + "15.0.0", + "15.1.0", + "16.0.0", + "17.0.0", +) diff --git a/rich/_unicode_data/unicode10-0-0.py b/rich/_unicode_data/unicode10-0-0.py new file mode 100644 index 0000000000..c50b92e3d7 --- /dev/null +++ b/rich/_unicode_data/unicode10-0-0.py @@ -0,0 +1,499 @@ +# Auto generated by tools/make_width_tables.py + +from rich.cell_string import CellTable + +cell_table = CellTable( + unicode_version="10.0.0", + widths=[ + (0, 0, 0), + (768, 879, 0), + (1155, 1161, 0), + (1425, 1469, 0), + (1471, 1471, 0), + (1473, 1474, 0), + (1476, 1477, 0), + (1479, 1479, 0), + (1536, 1541, 0), + (1552, 1562, 0), + (1564, 1564, 0), + (1611, 1631, 0), + (1648, 1648, 0), + (1750, 1757, 0), + (1759, 1764, 0), + (1767, 1768, 0), + (1770, 1773, 0), + (1807, 1807, 0), + (1809, 1809, 0), + (1840, 1866, 0), + (1958, 1968, 0), + (2027, 2035, 0), + (2070, 2073, 0), + (2075, 2083, 0), + (2085, 2087, 0), + (2089, 2093, 0), + (2137, 2139, 0), + (2260, 2307, 0), + (2362, 2364, 0), + (2366, 2383, 0), + (2385, 2391, 0), + (2402, 2403, 0), + (2433, 2435, 0), + (2492, 2492, 0), + (2494, 2500, 0), + (2503, 2504, 0), + (2507, 2509, 0), + (2519, 2519, 0), + (2530, 2531, 0), + (2561, 2563, 0), + (2620, 2620, 0), + (2622, 2626, 0), + (2631, 2632, 0), + (2635, 2637, 0), + (2641, 2641, 0), + (2672, 2673, 0), + (2677, 2677, 0), + (2689, 2691, 0), + (2748, 2748, 0), + (2750, 2757, 0), + (2759, 2761, 0), + (2763, 2765, 0), + (2786, 2787, 0), + (2810, 2815, 0), + (2817, 2819, 0), + (2876, 2876, 0), + (2878, 2884, 0), + (2887, 2888, 0), + (2891, 2893, 0), + (2902, 2903, 0), + (2914, 2915, 0), + (2946, 2946, 0), + (3006, 3010, 0), + (3014, 3016, 0), + (3018, 3021, 0), + (3031, 3031, 0), + (3072, 3075, 0), + (3134, 3140, 0), + (3142, 3144, 0), + (3146, 3149, 0), + (3157, 3158, 0), + (3170, 3171, 0), + (3201, 3203, 0), + (3260, 3260, 0), + (3262, 3268, 0), + (3270, 3272, 0), + (3274, 3277, 0), + (3285, 3286, 0), + (3298, 3299, 0), + (3328, 3331, 0), + (3387, 3388, 0), + (3390, 3396, 0), + (3398, 3400, 0), + (3402, 3405, 0), + (3415, 3415, 0), + (3426, 3427, 0), + (3458, 3459, 0), + (3530, 3530, 0), + (3535, 3540, 0), + (3542, 3542, 0), + (3544, 3551, 0), + (3570, 3571, 0), + (3633, 3633, 0), + (3636, 3642, 0), + (3655, 3662, 0), + (3761, 3761, 0), + (3764, 3769, 0), + (3771, 3772, 0), + (3784, 3789, 0), + (3864, 3865, 0), + (3893, 3893, 0), + (3895, 3895, 0), + (3897, 3897, 0), + (3902, 3903, 0), + (3953, 3972, 0), + (3974, 3975, 0), + (3981, 3991, 0), + (3993, 4028, 0), + (4038, 4038, 0), + (4139, 4158, 0), + (4182, 4185, 0), + (4190, 4192, 0), + (4194, 4196, 0), + (4199, 4205, 0), + (4209, 4212, 0), + (4226, 4237, 0), + (4239, 4239, 0), + (4250, 4253, 0), + (4352, 4447, 2), + (4448, 4607, 0), + (4957, 4959, 0), + (5906, 5908, 0), + (5938, 5940, 0), + (5970, 5971, 0), + (6002, 6003, 0), + (6068, 6099, 0), + (6109, 6109, 0), + (6155, 6158, 0), + (6277, 6278, 0), + (6313, 6313, 0), + (6432, 6443, 0), + (6448, 6459, 0), + (6679, 6683, 0), + (6741, 6750, 0), + (6752, 6780, 0), + (6783, 6783, 0), + (6832, 6846, 0), + (6912, 6916, 0), + (6964, 6980, 0), + (7019, 7027, 0), + (7040, 7042, 0), + (7073, 7085, 0), + (7142, 7155, 0), + (7204, 7223, 0), + (7376, 7378, 0), + (7380, 7400, 0), + (7405, 7405, 0), + (7410, 7412, 0), + (7415, 7417, 0), + (7616, 7673, 0), + (7675, 7679, 0), + (8203, 8207, 0), + (8232, 8238, 0), + (8288, 8292, 0), + (8294, 8303, 0), + (8400, 8432, 0), + (8986, 8987, 2), + (9001, 9002, 2), + (9193, 9196, 2), + (9200, 9200, 2), + (9203, 9203, 2), + (9725, 9726, 2), + (9748, 9749, 2), + (9800, 9811, 2), + (9855, 9855, 2), + (9875, 9875, 2), + (9889, 9889, 2), + (9898, 9899, 2), + (9917, 9918, 2), + (9924, 9925, 2), + (9934, 9934, 2), + (9940, 9940, 2), + (9962, 9962, 2), + (9970, 9971, 2), + (9973, 9973, 2), + (9978, 9978, 2), + (9981, 9981, 2), + (9989, 9989, 2), + (9994, 9995, 2), + (10024, 10024, 2), + (10060, 10060, 2), + (10062, 10062, 2), + (10067, 10069, 2), + (10071, 10071, 2), + (10133, 10135, 2), + (10160, 10160, 2), + (10175, 10175, 2), + (11035, 11036, 2), + (11088, 11088, 2), + (11093, 11093, 2), + (11503, 11505, 0), + (11647, 11647, 0), + (11744, 11775, 0), + (11904, 11929, 2), + (11931, 12019, 2), + (12032, 12245, 2), + (12272, 12283, 2), + (12288, 12329, 2), + (12330, 12335, 0), + (12336, 12350, 2), + (12353, 12438, 2), + (12441, 12442, 0), + (12443, 12543, 2), + (12549, 12590, 2), + (12593, 12686, 2), + (12688, 12730, 2), + (12736, 12771, 2), + (12784, 12830, 2), + (12832, 12871, 2), + (12880, 13054, 2), + (13056, 19903, 2), + (19968, 42124, 2), + (42128, 42182, 2), + (42607, 42610, 0), + (42612, 42621, 0), + (42654, 42655, 0), + (42736, 42737, 0), + (43010, 43010, 0), + (43014, 43014, 0), + (43019, 43019, 0), + (43043, 43047, 0), + (43136, 43137, 0), + (43188, 43205, 0), + (43232, 43249, 0), + (43302, 43309, 0), + (43335, 43347, 0), + (43360, 43388, 2), + (43392, 43395, 0), + (43443, 43456, 0), + (43493, 43493, 0), + (43561, 43574, 0), + (43587, 43587, 0), + (43596, 43597, 0), + (43643, 43645, 0), + (43696, 43696, 0), + (43698, 43700, 0), + (43703, 43704, 0), + (43710, 43711, 0), + (43713, 43713, 0), + (43755, 43759, 0), + (43765, 43766, 0), + (44003, 44010, 0), + (44012, 44013, 0), + (44032, 55203, 2), + (55216, 55295, 0), + (63744, 64255, 2), + (64286, 64286, 0), + (65024, 65039, 0), + (65040, 65049, 2), + (65056, 65071, 0), + (65072, 65106, 2), + (65108, 65126, 2), + (65128, 65131, 2), + (65279, 65279, 0), + (65281, 65376, 2), + (65504, 65510, 2), + (65529, 65531, 0), + (66045, 66045, 0), + (66272, 66272, 0), + (66422, 66426, 0), + (68097, 68099, 0), + (68101, 68102, 0), + (68108, 68111, 0), + (68152, 68154, 0), + (68159, 68159, 0), + (68325, 68326, 0), + (69632, 69634, 0), + (69688, 69702, 0), + (69759, 69762, 0), + (69808, 69818, 0), + (69821, 69821, 0), + (69888, 69890, 0), + (69927, 69940, 0), + (70003, 70003, 0), + (70016, 70018, 0), + (70067, 70080, 0), + (70090, 70092, 0), + (70188, 70199, 0), + (70206, 70206, 0), + (70367, 70378, 0), + (70400, 70403, 0), + (70460, 70460, 0), + (70462, 70468, 0), + (70471, 70472, 0), + (70475, 70477, 0), + (70487, 70487, 0), + (70498, 70499, 0), + (70502, 70508, 0), + (70512, 70516, 0), + (70709, 70726, 0), + (70832, 70851, 0), + (71087, 71093, 0), + (71096, 71104, 0), + (71132, 71133, 0), + (71216, 71232, 0), + (71339, 71351, 0), + (71453, 71467, 0), + (72193, 72202, 0), + (72243, 72249, 0), + (72251, 72254, 0), + (72263, 72263, 0), + (72273, 72283, 0), + (72330, 72345, 0), + (72751, 72758, 0), + (72760, 72767, 0), + (72850, 72871, 0), + (72873, 72886, 0), + (73009, 73014, 0), + (73018, 73018, 0), + (73020, 73021, 0), + (73023, 73029, 0), + (73031, 73031, 0), + (92912, 92916, 0), + (92976, 92982, 0), + (94033, 94078, 0), + (94095, 94098, 0), + (94176, 94177, 2), + (94208, 100332, 2), + (100352, 101106, 2), + (110592, 110878, 2), + (110960, 111355, 2), + (113821, 113822, 0), + (113824, 113827, 0), + (119141, 119145, 0), + (119149, 119170, 0), + (119173, 119179, 0), + (119210, 119213, 0), + (119362, 119364, 0), + (121344, 121398, 0), + (121403, 121452, 0), + (121461, 121461, 0), + (121476, 121476, 0), + (121499, 121503, 0), + (121505, 121519, 0), + (122880, 122886, 0), + (122888, 122904, 0), + (122907, 122913, 0), + (122915, 122916, 0), + (122918, 122922, 0), + (125136, 125142, 0), + (125252, 125258, 0), + (126980, 126980, 2), + (127183, 127183, 2), + (127374, 127374, 2), + (127377, 127386, 2), + (127488, 127490, 2), + (127504, 127547, 2), + (127552, 127560, 2), + (127568, 127569, 2), + (127584, 127589, 2), + (127744, 127776, 2), + (127789, 127797, 2), + (127799, 127868, 2), + (127870, 127891, 2), + (127904, 127946, 2), + (127951, 127955, 2), + (127968, 127984, 2), + (127988, 127988, 2), + (127992, 127994, 2), + (127995, 127999, 0), + (128000, 128062, 2), + (128064, 128064, 2), + (128066, 128252, 2), + (128255, 128317, 2), + (128331, 128334, 2), + (128336, 128359, 2), + (128378, 128378, 2), + (128405, 128406, 2), + (128420, 128420, 2), + (128507, 128591, 2), + (128640, 128709, 2), + (128716, 128716, 2), + (128720, 128722, 2), + (128747, 128748, 2), + (128756, 128760, 2), + (129296, 129342, 2), + (129344, 129356, 2), + (129360, 129387, 2), + (129408, 129431, 2), + (129472, 129472, 2), + (129488, 129510, 2), + (131072, 196605, 2), + (196608, 262141, 2), + (917505, 917505, 0), + (917536, 917631, 0), + (917760, 917999, 0), + ], + narrow_to_wide=frozenset( + { + 9728, + 9729, + 9730, + 9731, + 11013, + 11014, + 9992, + 9996, + 9762, + 127780, + 127781, + 127782, + 127783, + 127784, + 127785, + 127786, + 127787, + 9774, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 9784, + 9785, + 10035, + 10548, + 128329, + 9823, + 10083, + 9829, + 128367, + 127344, + 128371, + 128372, + 128373, + 128374, + 128375, + 128376, + 127358, + 128394, + 128395, + 128396, + 9876, + 9877, + 9878, + 8596, + 8597, + 8598, + 8599, + 9883, + 8600, + 127894, + 127897, + 127898, + 127902, + 8617, + 9642, + 9904, + 128433, + 128450, + 128451, + 127947, + 127948, + 128717, + 128718, + 127949, + 128465, + 128466, + 127956, + 127957, + 127958, + 127959, + 127960, + 127961, + 127962, + 127963, + 127964, + 127965, + 127966, + 128476, + 128736, + 128737, + 128738, + 128739, + 128740, + 128477, + 9208, + 9197, + 9198, + 9968, + 9201, + 9975, + 9976, + 9209, + 9723, + } + ), +) diff --git a/rich/_unicode_data/unicode11-0-0.py b/rich/_unicode_data/unicode11-0-0.py new file mode 100644 index 0000000000..9089a85aaa --- /dev/null +++ b/rich/_unicode_data/unicode11-0-0.py @@ -0,0 +1,514 @@ +# Auto generated by tools/make_width_tables.py + +from rich.cell_string import CellTable + +cell_table = CellTable( + unicode_version="11.0.0", + widths=[ + (0, 0, 0), + (768, 879, 0), + (1155, 1161, 0), + (1425, 1469, 0), + (1471, 1471, 0), + (1473, 1474, 0), + (1476, 1477, 0), + (1479, 1479, 0), + (1536, 1541, 0), + (1552, 1562, 0), + (1564, 1564, 0), + (1611, 1631, 0), + (1648, 1648, 0), + (1750, 1757, 0), + (1759, 1764, 0), + (1767, 1768, 0), + (1770, 1773, 0), + (1807, 1807, 0), + (1809, 1809, 0), + (1840, 1866, 0), + (1958, 1968, 0), + (2027, 2035, 0), + (2045, 2045, 0), + (2070, 2073, 0), + (2075, 2083, 0), + (2085, 2087, 0), + (2089, 2093, 0), + (2137, 2139, 0), + (2259, 2307, 0), + (2362, 2364, 0), + (2366, 2383, 0), + (2385, 2391, 0), + (2402, 2403, 0), + (2433, 2435, 0), + (2492, 2492, 0), + (2494, 2500, 0), + (2503, 2504, 0), + (2507, 2509, 0), + (2519, 2519, 0), + (2530, 2531, 0), + (2558, 2558, 0), + (2561, 2563, 0), + (2620, 2620, 0), + (2622, 2626, 0), + (2631, 2632, 0), + (2635, 2637, 0), + (2641, 2641, 0), + (2672, 2673, 0), + (2677, 2677, 0), + (2689, 2691, 0), + (2748, 2748, 0), + (2750, 2757, 0), + (2759, 2761, 0), + (2763, 2765, 0), + (2786, 2787, 0), + (2810, 2815, 0), + (2817, 2819, 0), + (2876, 2876, 0), + (2878, 2884, 0), + (2887, 2888, 0), + (2891, 2893, 0), + (2902, 2903, 0), + (2914, 2915, 0), + (2946, 2946, 0), + (3006, 3010, 0), + (3014, 3016, 0), + (3018, 3021, 0), + (3031, 3031, 0), + (3072, 3076, 0), + (3134, 3140, 0), + (3142, 3144, 0), + (3146, 3149, 0), + (3157, 3158, 0), + (3170, 3171, 0), + (3201, 3203, 0), + (3260, 3260, 0), + (3262, 3268, 0), + (3270, 3272, 0), + (3274, 3277, 0), + (3285, 3286, 0), + (3298, 3299, 0), + (3328, 3331, 0), + (3387, 3388, 0), + (3390, 3396, 0), + (3398, 3400, 0), + (3402, 3405, 0), + (3415, 3415, 0), + (3426, 3427, 0), + (3458, 3459, 0), + (3530, 3530, 0), + (3535, 3540, 0), + (3542, 3542, 0), + (3544, 3551, 0), + (3570, 3571, 0), + (3633, 3633, 0), + (3636, 3642, 0), + (3655, 3662, 0), + (3761, 3761, 0), + (3764, 3769, 0), + (3771, 3772, 0), + (3784, 3789, 0), + (3864, 3865, 0), + (3893, 3893, 0), + (3895, 3895, 0), + (3897, 3897, 0), + (3902, 3903, 0), + (3953, 3972, 0), + (3974, 3975, 0), + (3981, 3991, 0), + (3993, 4028, 0), + (4038, 4038, 0), + (4139, 4158, 0), + (4182, 4185, 0), + (4190, 4192, 0), + (4194, 4196, 0), + (4199, 4205, 0), + (4209, 4212, 0), + (4226, 4237, 0), + (4239, 4239, 0), + (4250, 4253, 0), + (4352, 4447, 2), + (4448, 4607, 0), + (4957, 4959, 0), + (5906, 5908, 0), + (5938, 5940, 0), + (5970, 5971, 0), + (6002, 6003, 0), + (6068, 6099, 0), + (6109, 6109, 0), + (6155, 6158, 0), + (6277, 6278, 0), + (6313, 6313, 0), + (6432, 6443, 0), + (6448, 6459, 0), + (6679, 6683, 0), + (6741, 6750, 0), + (6752, 6780, 0), + (6783, 6783, 0), + (6832, 6846, 0), + (6912, 6916, 0), + (6964, 6980, 0), + (7019, 7027, 0), + (7040, 7042, 0), + (7073, 7085, 0), + (7142, 7155, 0), + (7204, 7223, 0), + (7376, 7378, 0), + (7380, 7400, 0), + (7405, 7405, 0), + (7410, 7412, 0), + (7415, 7417, 0), + (7616, 7673, 0), + (7675, 7679, 0), + (8203, 8207, 0), + (8232, 8238, 0), + (8288, 8292, 0), + (8294, 8303, 0), + (8400, 8432, 0), + (8986, 8987, 2), + (9001, 9002, 2), + (9193, 9196, 2), + (9200, 9200, 2), + (9203, 9203, 2), + (9725, 9726, 2), + (9748, 9749, 2), + (9800, 9811, 2), + (9855, 9855, 2), + (9875, 9875, 2), + (9889, 9889, 2), + (9898, 9899, 2), + (9917, 9918, 2), + (9924, 9925, 2), + (9934, 9934, 2), + (9940, 9940, 2), + (9962, 9962, 2), + (9970, 9971, 2), + (9973, 9973, 2), + (9978, 9978, 2), + (9981, 9981, 2), + (9989, 9989, 2), + (9994, 9995, 2), + (10024, 10024, 2), + (10060, 10060, 2), + (10062, 10062, 2), + (10067, 10069, 2), + (10071, 10071, 2), + (10133, 10135, 2), + (10160, 10160, 2), + (10175, 10175, 2), + (11035, 11036, 2), + (11088, 11088, 2), + (11093, 11093, 2), + (11503, 11505, 0), + (11647, 11647, 0), + (11744, 11775, 0), + (11904, 11929, 2), + (11931, 12019, 2), + (12032, 12245, 2), + (12272, 12283, 2), + (12288, 12329, 2), + (12330, 12335, 0), + (12336, 12350, 2), + (12353, 12438, 2), + (12441, 12442, 0), + (12443, 12543, 2), + (12549, 12591, 2), + (12593, 12686, 2), + (12688, 12730, 2), + (12736, 12771, 2), + (12784, 12830, 2), + (12832, 12871, 2), + (12880, 13054, 2), + (13056, 19903, 2), + (19968, 42124, 2), + (42128, 42182, 2), + (42607, 42610, 0), + (42612, 42621, 0), + (42654, 42655, 0), + (42736, 42737, 0), + (43010, 43010, 0), + (43014, 43014, 0), + (43019, 43019, 0), + (43043, 43047, 0), + (43136, 43137, 0), + (43188, 43205, 0), + (43232, 43249, 0), + (43263, 43263, 0), + (43302, 43309, 0), + (43335, 43347, 0), + (43360, 43388, 2), + (43392, 43395, 0), + (43443, 43456, 0), + (43493, 43493, 0), + (43561, 43574, 0), + (43587, 43587, 0), + (43596, 43597, 0), + (43643, 43645, 0), + (43696, 43696, 0), + (43698, 43700, 0), + (43703, 43704, 0), + (43710, 43711, 0), + (43713, 43713, 0), + (43755, 43759, 0), + (43765, 43766, 0), + (44003, 44010, 0), + (44012, 44013, 0), + (44032, 55203, 2), + (55216, 55295, 0), + (63744, 64255, 2), + (64286, 64286, 0), + (65024, 65039, 0), + (65040, 65049, 2), + (65056, 65071, 0), + (65072, 65106, 2), + (65108, 65126, 2), + (65128, 65131, 2), + (65279, 65279, 0), + (65281, 65376, 2), + (65504, 65510, 2), + (65529, 65531, 0), + (66045, 66045, 0), + (66272, 66272, 0), + (66422, 66426, 0), + (68097, 68099, 0), + (68101, 68102, 0), + (68108, 68111, 0), + (68152, 68154, 0), + (68159, 68159, 0), + (68325, 68326, 0), + (68900, 68903, 0), + (69446, 69456, 0), + (69632, 69634, 0), + (69688, 69702, 0), + (69759, 69762, 0), + (69808, 69818, 0), + (69821, 69821, 0), + (69837, 69837, 0), + (69888, 69890, 0), + (69927, 69940, 0), + (69957, 69958, 0), + (70003, 70003, 0), + (70016, 70018, 0), + (70067, 70080, 0), + (70089, 70092, 0), + (70188, 70199, 0), + (70206, 70206, 0), + (70367, 70378, 0), + (70400, 70403, 0), + (70459, 70460, 0), + (70462, 70468, 0), + (70471, 70472, 0), + (70475, 70477, 0), + (70487, 70487, 0), + (70498, 70499, 0), + (70502, 70508, 0), + (70512, 70516, 0), + (70709, 70726, 0), + (70750, 70750, 0), + (70832, 70851, 0), + (71087, 71093, 0), + (71096, 71104, 0), + (71132, 71133, 0), + (71216, 71232, 0), + (71339, 71351, 0), + (71453, 71467, 0), + (71724, 71738, 0), + (72193, 72202, 0), + (72243, 72249, 0), + (72251, 72254, 0), + (72263, 72263, 0), + (72273, 72283, 0), + (72330, 72345, 0), + (72751, 72758, 0), + (72760, 72767, 0), + (72850, 72871, 0), + (72873, 72886, 0), + (73009, 73014, 0), + (73018, 73018, 0), + (73020, 73021, 0), + (73023, 73029, 0), + (73031, 73031, 0), + (73098, 73102, 0), + (73104, 73105, 0), + (73107, 73111, 0), + (73459, 73462, 0), + (92912, 92916, 0), + (92976, 92982, 0), + (94033, 94078, 0), + (94095, 94098, 0), + (94176, 94177, 2), + (94208, 100337, 2), + (100352, 101106, 2), + (110592, 110878, 2), + (110960, 111355, 2), + (113821, 113822, 0), + (113824, 113827, 0), + (119141, 119145, 0), + (119149, 119170, 0), + (119173, 119179, 0), + (119210, 119213, 0), + (119362, 119364, 0), + (121344, 121398, 0), + (121403, 121452, 0), + (121461, 121461, 0), + (121476, 121476, 0), + (121499, 121503, 0), + (121505, 121519, 0), + (122880, 122886, 0), + (122888, 122904, 0), + (122907, 122913, 0), + (122915, 122916, 0), + (122918, 122922, 0), + (125136, 125142, 0), + (125252, 125258, 0), + (126980, 126980, 2), + (127183, 127183, 2), + (127374, 127374, 2), + (127377, 127386, 2), + (127488, 127490, 2), + (127504, 127547, 2), + (127552, 127560, 2), + (127568, 127569, 2), + (127584, 127589, 2), + (127744, 127776, 2), + (127789, 127797, 2), + (127799, 127868, 2), + (127870, 127891, 2), + (127904, 127946, 2), + (127951, 127955, 2), + (127968, 127984, 2), + (127988, 127988, 2), + (127992, 127994, 2), + (127995, 127999, 0), + (128000, 128062, 2), + (128064, 128064, 2), + (128066, 128252, 2), + (128255, 128317, 2), + (128331, 128334, 2), + (128336, 128359, 2), + (128378, 128378, 2), + (128405, 128406, 2), + (128420, 128420, 2), + (128507, 128591, 2), + (128640, 128709, 2), + (128716, 128716, 2), + (128720, 128722, 2), + (128747, 128748, 2), + (128756, 128761, 2), + (129296, 129342, 2), + (129344, 129392, 2), + (129395, 129398, 2), + (129402, 129402, 2), + (129404, 129442, 2), + (129456, 129465, 2), + (129472, 129474, 2), + (129488, 129535, 2), + (131072, 196605, 2), + (196608, 262141, 2), + (917505, 917505, 0), + (917536, 917631, 0), + (917760, 917999, 0), + ], + narrow_to_wide=frozenset( + { + 9728, + 9729, + 9730, + 9731, + 11013, + 11014, + 9992, + 9996, + 9762, + 127780, + 127781, + 127782, + 127783, + 127784, + 127785, + 127786, + 127787, + 9774, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 9784, + 9785, + 10035, + 10548, + 128329, + 9823, + 10083, + 9829, + 128367, + 127344, + 128371, + 128372, + 128373, + 128374, + 128375, + 128376, + 127358, + 128394, + 128395, + 128396, + 9876, + 9877, + 9878, + 8596, + 8597, + 8598, + 8599, + 9883, + 8600, + 127894, + 127897, + 127898, + 127902, + 8617, + 9642, + 9904, + 128433, + 128450, + 128451, + 127947, + 127948, + 128717, + 128718, + 127949, + 128465, + 128466, + 127956, + 127957, + 127958, + 127959, + 127960, + 127961, + 127962, + 127963, + 127964, + 127965, + 127966, + 128476, + 128736, + 128737, + 128738, + 128739, + 128740, + 128477, + 9208, + 9197, + 9198, + 9968, + 9201, + 9975, + 9976, + 9209, + 9723, + } + ), +) diff --git a/rich/_unicode_data/unicode12-0-0.py b/rich/_unicode_data/unicode12-0-0.py new file mode 100644 index 0000000000..7f073adc80 --- /dev/null +++ b/rich/_unicode_data/unicode12-0-0.py @@ -0,0 +1,526 @@ +# Auto generated by tools/make_width_tables.py + +from rich.cell_string import CellTable + +cell_table = CellTable( + unicode_version="12.0.0", + widths=[ + (0, 0, 0), + (768, 879, 0), + (1155, 1161, 0), + (1425, 1469, 0), + (1471, 1471, 0), + (1473, 1474, 0), + (1476, 1477, 0), + (1479, 1479, 0), + (1536, 1541, 0), + (1552, 1562, 0), + (1564, 1564, 0), + (1611, 1631, 0), + (1648, 1648, 0), + (1750, 1757, 0), + (1759, 1764, 0), + (1767, 1768, 0), + (1770, 1773, 0), + (1807, 1807, 0), + (1809, 1809, 0), + (1840, 1866, 0), + (1958, 1968, 0), + (2027, 2035, 0), + (2045, 2045, 0), + (2070, 2073, 0), + (2075, 2083, 0), + (2085, 2087, 0), + (2089, 2093, 0), + (2137, 2139, 0), + (2259, 2307, 0), + (2362, 2364, 0), + (2366, 2383, 0), + (2385, 2391, 0), + (2402, 2403, 0), + (2433, 2435, 0), + (2492, 2492, 0), + (2494, 2500, 0), + (2503, 2504, 0), + (2507, 2509, 0), + (2519, 2519, 0), + (2530, 2531, 0), + (2558, 2558, 0), + (2561, 2563, 0), + (2620, 2620, 0), + (2622, 2626, 0), + (2631, 2632, 0), + (2635, 2637, 0), + (2641, 2641, 0), + (2672, 2673, 0), + (2677, 2677, 0), + (2689, 2691, 0), + (2748, 2748, 0), + (2750, 2757, 0), + (2759, 2761, 0), + (2763, 2765, 0), + (2786, 2787, 0), + (2810, 2815, 0), + (2817, 2819, 0), + (2876, 2876, 0), + (2878, 2884, 0), + (2887, 2888, 0), + (2891, 2893, 0), + (2902, 2903, 0), + (2914, 2915, 0), + (2946, 2946, 0), + (3006, 3010, 0), + (3014, 3016, 0), + (3018, 3021, 0), + (3031, 3031, 0), + (3072, 3076, 0), + (3134, 3140, 0), + (3142, 3144, 0), + (3146, 3149, 0), + (3157, 3158, 0), + (3170, 3171, 0), + (3201, 3203, 0), + (3260, 3260, 0), + (3262, 3268, 0), + (3270, 3272, 0), + (3274, 3277, 0), + (3285, 3286, 0), + (3298, 3299, 0), + (3328, 3331, 0), + (3387, 3388, 0), + (3390, 3396, 0), + (3398, 3400, 0), + (3402, 3405, 0), + (3415, 3415, 0), + (3426, 3427, 0), + (3458, 3459, 0), + (3530, 3530, 0), + (3535, 3540, 0), + (3542, 3542, 0), + (3544, 3551, 0), + (3570, 3571, 0), + (3633, 3633, 0), + (3636, 3642, 0), + (3655, 3662, 0), + (3761, 3761, 0), + (3764, 3772, 0), + (3784, 3789, 0), + (3864, 3865, 0), + (3893, 3893, 0), + (3895, 3895, 0), + (3897, 3897, 0), + (3902, 3903, 0), + (3953, 3972, 0), + (3974, 3975, 0), + (3981, 3991, 0), + (3993, 4028, 0), + (4038, 4038, 0), + (4139, 4158, 0), + (4182, 4185, 0), + (4190, 4192, 0), + (4194, 4196, 0), + (4199, 4205, 0), + (4209, 4212, 0), + (4226, 4237, 0), + (4239, 4239, 0), + (4250, 4253, 0), + (4352, 4447, 2), + (4448, 4607, 0), + (4957, 4959, 0), + (5906, 5908, 0), + (5938, 5940, 0), + (5970, 5971, 0), + (6002, 6003, 0), + (6068, 6099, 0), + (6109, 6109, 0), + (6155, 6158, 0), + (6277, 6278, 0), + (6313, 6313, 0), + (6432, 6443, 0), + (6448, 6459, 0), + (6679, 6683, 0), + (6741, 6750, 0), + (6752, 6780, 0), + (6783, 6783, 0), + (6832, 6846, 0), + (6912, 6916, 0), + (6964, 6980, 0), + (7019, 7027, 0), + (7040, 7042, 0), + (7073, 7085, 0), + (7142, 7155, 0), + (7204, 7223, 0), + (7376, 7378, 0), + (7380, 7400, 0), + (7405, 7405, 0), + (7412, 7412, 0), + (7415, 7417, 0), + (7616, 7673, 0), + (7675, 7679, 0), + (8203, 8207, 0), + (8232, 8238, 0), + (8288, 8292, 0), + (8294, 8303, 0), + (8400, 8432, 0), + (8986, 8987, 2), + (9001, 9002, 2), + (9193, 9196, 2), + (9200, 9200, 2), + (9203, 9203, 2), + (9725, 9726, 2), + (9748, 9749, 2), + (9800, 9811, 2), + (9855, 9855, 2), + (9875, 9875, 2), + (9889, 9889, 2), + (9898, 9899, 2), + (9917, 9918, 2), + (9924, 9925, 2), + (9934, 9934, 2), + (9940, 9940, 2), + (9962, 9962, 2), + (9970, 9971, 2), + (9973, 9973, 2), + (9978, 9978, 2), + (9981, 9981, 2), + (9989, 9989, 2), + (9994, 9995, 2), + (10024, 10024, 2), + (10060, 10060, 2), + (10062, 10062, 2), + (10067, 10069, 2), + (10071, 10071, 2), + (10133, 10135, 2), + (10160, 10160, 2), + (10175, 10175, 2), + (11035, 11036, 2), + (11088, 11088, 2), + (11093, 11093, 2), + (11503, 11505, 0), + (11647, 11647, 0), + (11744, 11775, 0), + (11904, 11929, 2), + (11931, 12019, 2), + (12032, 12245, 2), + (12272, 12283, 2), + (12288, 12329, 2), + (12330, 12335, 0), + (12336, 12350, 2), + (12353, 12438, 2), + (12441, 12442, 0), + (12443, 12543, 2), + (12549, 12591, 2), + (12593, 12686, 2), + (12688, 12730, 2), + (12736, 12771, 2), + (12784, 12830, 2), + (12832, 12871, 2), + (12880, 13054, 2), + (13056, 19903, 2), + (19968, 42124, 2), + (42128, 42182, 2), + (42607, 42610, 0), + (42612, 42621, 0), + (42654, 42655, 0), + (42736, 42737, 0), + (43010, 43010, 0), + (43014, 43014, 0), + (43019, 43019, 0), + (43043, 43047, 0), + (43136, 43137, 0), + (43188, 43205, 0), + (43232, 43249, 0), + (43263, 43263, 0), + (43302, 43309, 0), + (43335, 43347, 0), + (43360, 43388, 2), + (43392, 43395, 0), + (43443, 43456, 0), + (43493, 43493, 0), + (43561, 43574, 0), + (43587, 43587, 0), + (43596, 43597, 0), + (43643, 43645, 0), + (43696, 43696, 0), + (43698, 43700, 0), + (43703, 43704, 0), + (43710, 43711, 0), + (43713, 43713, 0), + (43755, 43759, 0), + (43765, 43766, 0), + (44003, 44010, 0), + (44012, 44013, 0), + (44032, 55203, 2), + (55216, 55295, 0), + (63744, 64255, 2), + (64286, 64286, 0), + (65024, 65039, 0), + (65040, 65049, 2), + (65056, 65071, 0), + (65072, 65106, 2), + (65108, 65126, 2), + (65128, 65131, 2), + (65279, 65279, 0), + (65281, 65376, 2), + (65504, 65510, 2), + (65529, 65531, 0), + (66045, 66045, 0), + (66272, 66272, 0), + (66422, 66426, 0), + (68097, 68099, 0), + (68101, 68102, 0), + (68108, 68111, 0), + (68152, 68154, 0), + (68159, 68159, 0), + (68325, 68326, 0), + (68900, 68903, 0), + (69446, 69456, 0), + (69632, 69634, 0), + (69688, 69702, 0), + (69759, 69762, 0), + (69808, 69818, 0), + (69821, 69821, 0), + (69837, 69837, 0), + (69888, 69890, 0), + (69927, 69940, 0), + (69957, 69958, 0), + (70003, 70003, 0), + (70016, 70018, 0), + (70067, 70080, 0), + (70089, 70092, 0), + (70188, 70199, 0), + (70206, 70206, 0), + (70367, 70378, 0), + (70400, 70403, 0), + (70459, 70460, 0), + (70462, 70468, 0), + (70471, 70472, 0), + (70475, 70477, 0), + (70487, 70487, 0), + (70498, 70499, 0), + (70502, 70508, 0), + (70512, 70516, 0), + (70709, 70726, 0), + (70750, 70750, 0), + (70832, 70851, 0), + (71087, 71093, 0), + (71096, 71104, 0), + (71132, 71133, 0), + (71216, 71232, 0), + (71339, 71351, 0), + (71453, 71467, 0), + (71724, 71738, 0), + (72145, 72151, 0), + (72154, 72160, 0), + (72164, 72164, 0), + (72193, 72202, 0), + (72243, 72249, 0), + (72251, 72254, 0), + (72263, 72263, 0), + (72273, 72283, 0), + (72330, 72345, 0), + (72751, 72758, 0), + (72760, 72767, 0), + (72850, 72871, 0), + (72873, 72886, 0), + (73009, 73014, 0), + (73018, 73018, 0), + (73020, 73021, 0), + (73023, 73029, 0), + (73031, 73031, 0), + (73098, 73102, 0), + (73104, 73105, 0), + (73107, 73111, 0), + (73459, 73462, 0), + (78896, 78904, 0), + (92912, 92916, 0), + (92976, 92982, 0), + (94031, 94031, 0), + (94033, 94087, 0), + (94095, 94098, 0), + (94176, 94179, 2), + (94208, 100343, 2), + (100352, 101106, 2), + (110592, 110878, 2), + (110928, 110930, 2), + (110948, 110951, 2), + (110960, 111355, 2), + (113821, 113822, 0), + (113824, 113827, 0), + (119141, 119145, 0), + (119149, 119170, 0), + (119173, 119179, 0), + (119210, 119213, 0), + (119362, 119364, 0), + (121344, 121398, 0), + (121403, 121452, 0), + (121461, 121461, 0), + (121476, 121476, 0), + (121499, 121503, 0), + (121505, 121519, 0), + (122880, 122886, 0), + (122888, 122904, 0), + (122907, 122913, 0), + (122915, 122916, 0), + (122918, 122922, 0), + (123184, 123190, 0), + (123628, 123631, 0), + (125136, 125142, 0), + (125252, 125258, 0), + (126980, 126980, 2), + (127183, 127183, 2), + (127374, 127374, 2), + (127377, 127386, 2), + (127488, 127490, 2), + (127504, 127547, 2), + (127552, 127560, 2), + (127568, 127569, 2), + (127584, 127589, 2), + (127744, 127776, 2), + (127789, 127797, 2), + (127799, 127868, 2), + (127870, 127891, 2), + (127904, 127946, 2), + (127951, 127955, 2), + (127968, 127984, 2), + (127988, 127988, 2), + (127992, 127994, 2), + (127995, 127999, 0), + (128000, 128062, 2), + (128064, 128064, 2), + (128066, 128252, 2), + (128255, 128317, 2), + (128331, 128334, 2), + (128336, 128359, 2), + (128378, 128378, 2), + (128405, 128406, 2), + (128420, 128420, 2), + (128507, 128591, 2), + (128640, 128709, 2), + (128716, 128716, 2), + (128720, 128722, 2), + (128725, 128725, 2), + (128747, 128748, 2), + (128756, 128762, 2), + (128992, 129003, 2), + (129293, 129393, 2), + (129395, 129398, 2), + (129402, 129442, 2), + (129445, 129450, 2), + (129454, 129482, 2), + (129485, 129535, 2), + (129648, 129651, 2), + (129656, 129658, 2), + (129664, 129666, 2), + (129680, 129685, 2), + (131072, 196605, 2), + (196608, 262141, 2), + (917505, 917505, 0), + (917536, 917631, 0), + (917760, 917999, 0), + ], + narrow_to_wide=frozenset( + { + 9728, + 9729, + 9730, + 9731, + 11013, + 11014, + 9992, + 9996, + 9762, + 127780, + 127781, + 127782, + 127783, + 127784, + 127785, + 127786, + 127787, + 9774, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 9784, + 9785, + 10035, + 10548, + 128329, + 9823, + 10083, + 9829, + 128367, + 127344, + 128371, + 128372, + 128373, + 128374, + 128375, + 128376, + 127358, + 128394, + 128395, + 128396, + 9876, + 9877, + 9878, + 8596, + 8597, + 8598, + 8599, + 9883, + 8600, + 127894, + 127897, + 127898, + 127902, + 8617, + 9642, + 9904, + 128433, + 128450, + 128451, + 127947, + 127948, + 128717, + 128718, + 127949, + 128465, + 128466, + 127956, + 127957, + 127958, + 127959, + 127960, + 127961, + 127962, + 127963, + 127964, + 127965, + 127966, + 128476, + 128736, + 128737, + 128738, + 128739, + 128740, + 128477, + 9208, + 9197, + 9198, + 9968, + 9201, + 9975, + 9976, + 9209, + 9723, + } + ), +) diff --git a/rich/_unicode_data/unicode12-1-0.py b/rich/_unicode_data/unicode12-1-0.py new file mode 100644 index 0000000000..e3996cf9f7 --- /dev/null +++ b/rich/_unicode_data/unicode12-1-0.py @@ -0,0 +1,525 @@ +# Auto generated by tools/make_width_tables.py + +from rich.cell_string import CellTable + +cell_table = CellTable( + unicode_version="12.1.0", + widths=[ + (0, 0, 0), + (768, 879, 0), + (1155, 1161, 0), + (1425, 1469, 0), + (1471, 1471, 0), + (1473, 1474, 0), + (1476, 1477, 0), + (1479, 1479, 0), + (1536, 1541, 0), + (1552, 1562, 0), + (1564, 1564, 0), + (1611, 1631, 0), + (1648, 1648, 0), + (1750, 1757, 0), + (1759, 1764, 0), + (1767, 1768, 0), + (1770, 1773, 0), + (1807, 1807, 0), + (1809, 1809, 0), + (1840, 1866, 0), + (1958, 1968, 0), + (2027, 2035, 0), + (2045, 2045, 0), + (2070, 2073, 0), + (2075, 2083, 0), + (2085, 2087, 0), + (2089, 2093, 0), + (2137, 2139, 0), + (2259, 2307, 0), + (2362, 2364, 0), + (2366, 2383, 0), + (2385, 2391, 0), + (2402, 2403, 0), + (2433, 2435, 0), + (2492, 2492, 0), + (2494, 2500, 0), + (2503, 2504, 0), + (2507, 2509, 0), + (2519, 2519, 0), + (2530, 2531, 0), + (2558, 2558, 0), + (2561, 2563, 0), + (2620, 2620, 0), + (2622, 2626, 0), + (2631, 2632, 0), + (2635, 2637, 0), + (2641, 2641, 0), + (2672, 2673, 0), + (2677, 2677, 0), + (2689, 2691, 0), + (2748, 2748, 0), + (2750, 2757, 0), + (2759, 2761, 0), + (2763, 2765, 0), + (2786, 2787, 0), + (2810, 2815, 0), + (2817, 2819, 0), + (2876, 2876, 0), + (2878, 2884, 0), + (2887, 2888, 0), + (2891, 2893, 0), + (2902, 2903, 0), + (2914, 2915, 0), + (2946, 2946, 0), + (3006, 3010, 0), + (3014, 3016, 0), + (3018, 3021, 0), + (3031, 3031, 0), + (3072, 3076, 0), + (3134, 3140, 0), + (3142, 3144, 0), + (3146, 3149, 0), + (3157, 3158, 0), + (3170, 3171, 0), + (3201, 3203, 0), + (3260, 3260, 0), + (3262, 3268, 0), + (3270, 3272, 0), + (3274, 3277, 0), + (3285, 3286, 0), + (3298, 3299, 0), + (3328, 3331, 0), + (3387, 3388, 0), + (3390, 3396, 0), + (3398, 3400, 0), + (3402, 3405, 0), + (3415, 3415, 0), + (3426, 3427, 0), + (3458, 3459, 0), + (3530, 3530, 0), + (3535, 3540, 0), + (3542, 3542, 0), + (3544, 3551, 0), + (3570, 3571, 0), + (3633, 3633, 0), + (3636, 3642, 0), + (3655, 3662, 0), + (3761, 3761, 0), + (3764, 3772, 0), + (3784, 3789, 0), + (3864, 3865, 0), + (3893, 3893, 0), + (3895, 3895, 0), + (3897, 3897, 0), + (3902, 3903, 0), + (3953, 3972, 0), + (3974, 3975, 0), + (3981, 3991, 0), + (3993, 4028, 0), + (4038, 4038, 0), + (4139, 4158, 0), + (4182, 4185, 0), + (4190, 4192, 0), + (4194, 4196, 0), + (4199, 4205, 0), + (4209, 4212, 0), + (4226, 4237, 0), + (4239, 4239, 0), + (4250, 4253, 0), + (4352, 4447, 2), + (4448, 4607, 0), + (4957, 4959, 0), + (5906, 5908, 0), + (5938, 5940, 0), + (5970, 5971, 0), + (6002, 6003, 0), + (6068, 6099, 0), + (6109, 6109, 0), + (6155, 6158, 0), + (6277, 6278, 0), + (6313, 6313, 0), + (6432, 6443, 0), + (6448, 6459, 0), + (6679, 6683, 0), + (6741, 6750, 0), + (6752, 6780, 0), + (6783, 6783, 0), + (6832, 6846, 0), + (6912, 6916, 0), + (6964, 6980, 0), + (7019, 7027, 0), + (7040, 7042, 0), + (7073, 7085, 0), + (7142, 7155, 0), + (7204, 7223, 0), + (7376, 7378, 0), + (7380, 7400, 0), + (7405, 7405, 0), + (7412, 7412, 0), + (7415, 7417, 0), + (7616, 7673, 0), + (7675, 7679, 0), + (8203, 8207, 0), + (8232, 8238, 0), + (8288, 8292, 0), + (8294, 8303, 0), + (8400, 8432, 0), + (8986, 8987, 2), + (9001, 9002, 2), + (9193, 9196, 2), + (9200, 9200, 2), + (9203, 9203, 2), + (9725, 9726, 2), + (9748, 9749, 2), + (9800, 9811, 2), + (9855, 9855, 2), + (9875, 9875, 2), + (9889, 9889, 2), + (9898, 9899, 2), + (9917, 9918, 2), + (9924, 9925, 2), + (9934, 9934, 2), + (9940, 9940, 2), + (9962, 9962, 2), + (9970, 9971, 2), + (9973, 9973, 2), + (9978, 9978, 2), + (9981, 9981, 2), + (9989, 9989, 2), + (9994, 9995, 2), + (10024, 10024, 2), + (10060, 10060, 2), + (10062, 10062, 2), + (10067, 10069, 2), + (10071, 10071, 2), + (10133, 10135, 2), + (10160, 10160, 2), + (10175, 10175, 2), + (11035, 11036, 2), + (11088, 11088, 2), + (11093, 11093, 2), + (11503, 11505, 0), + (11647, 11647, 0), + (11744, 11775, 0), + (11904, 11929, 2), + (11931, 12019, 2), + (12032, 12245, 2), + (12272, 12283, 2), + (12288, 12329, 2), + (12330, 12335, 0), + (12336, 12350, 2), + (12353, 12438, 2), + (12441, 12442, 0), + (12443, 12543, 2), + (12549, 12591, 2), + (12593, 12686, 2), + (12688, 12730, 2), + (12736, 12771, 2), + (12784, 12830, 2), + (12832, 12871, 2), + (12880, 19903, 2), + (19968, 42124, 2), + (42128, 42182, 2), + (42607, 42610, 0), + (42612, 42621, 0), + (42654, 42655, 0), + (42736, 42737, 0), + (43010, 43010, 0), + (43014, 43014, 0), + (43019, 43019, 0), + (43043, 43047, 0), + (43136, 43137, 0), + (43188, 43205, 0), + (43232, 43249, 0), + (43263, 43263, 0), + (43302, 43309, 0), + (43335, 43347, 0), + (43360, 43388, 2), + (43392, 43395, 0), + (43443, 43456, 0), + (43493, 43493, 0), + (43561, 43574, 0), + (43587, 43587, 0), + (43596, 43597, 0), + (43643, 43645, 0), + (43696, 43696, 0), + (43698, 43700, 0), + (43703, 43704, 0), + (43710, 43711, 0), + (43713, 43713, 0), + (43755, 43759, 0), + (43765, 43766, 0), + (44003, 44010, 0), + (44012, 44013, 0), + (44032, 55203, 2), + (55216, 55295, 0), + (63744, 64255, 2), + (64286, 64286, 0), + (65024, 65039, 0), + (65040, 65049, 2), + (65056, 65071, 0), + (65072, 65106, 2), + (65108, 65126, 2), + (65128, 65131, 2), + (65279, 65279, 0), + (65281, 65376, 2), + (65504, 65510, 2), + (65529, 65531, 0), + (66045, 66045, 0), + (66272, 66272, 0), + (66422, 66426, 0), + (68097, 68099, 0), + (68101, 68102, 0), + (68108, 68111, 0), + (68152, 68154, 0), + (68159, 68159, 0), + (68325, 68326, 0), + (68900, 68903, 0), + (69446, 69456, 0), + (69632, 69634, 0), + (69688, 69702, 0), + (69759, 69762, 0), + (69808, 69818, 0), + (69821, 69821, 0), + (69837, 69837, 0), + (69888, 69890, 0), + (69927, 69940, 0), + (69957, 69958, 0), + (70003, 70003, 0), + (70016, 70018, 0), + (70067, 70080, 0), + (70089, 70092, 0), + (70188, 70199, 0), + (70206, 70206, 0), + (70367, 70378, 0), + (70400, 70403, 0), + (70459, 70460, 0), + (70462, 70468, 0), + (70471, 70472, 0), + (70475, 70477, 0), + (70487, 70487, 0), + (70498, 70499, 0), + (70502, 70508, 0), + (70512, 70516, 0), + (70709, 70726, 0), + (70750, 70750, 0), + (70832, 70851, 0), + (71087, 71093, 0), + (71096, 71104, 0), + (71132, 71133, 0), + (71216, 71232, 0), + (71339, 71351, 0), + (71453, 71467, 0), + (71724, 71738, 0), + (72145, 72151, 0), + (72154, 72160, 0), + (72164, 72164, 0), + (72193, 72202, 0), + (72243, 72249, 0), + (72251, 72254, 0), + (72263, 72263, 0), + (72273, 72283, 0), + (72330, 72345, 0), + (72751, 72758, 0), + (72760, 72767, 0), + (72850, 72871, 0), + (72873, 72886, 0), + (73009, 73014, 0), + (73018, 73018, 0), + (73020, 73021, 0), + (73023, 73029, 0), + (73031, 73031, 0), + (73098, 73102, 0), + (73104, 73105, 0), + (73107, 73111, 0), + (73459, 73462, 0), + (78896, 78904, 0), + (92912, 92916, 0), + (92976, 92982, 0), + (94031, 94031, 0), + (94033, 94087, 0), + (94095, 94098, 0), + (94176, 94179, 2), + (94208, 100343, 2), + (100352, 101106, 2), + (110592, 110878, 2), + (110928, 110930, 2), + (110948, 110951, 2), + (110960, 111355, 2), + (113821, 113822, 0), + (113824, 113827, 0), + (119141, 119145, 0), + (119149, 119170, 0), + (119173, 119179, 0), + (119210, 119213, 0), + (119362, 119364, 0), + (121344, 121398, 0), + (121403, 121452, 0), + (121461, 121461, 0), + (121476, 121476, 0), + (121499, 121503, 0), + (121505, 121519, 0), + (122880, 122886, 0), + (122888, 122904, 0), + (122907, 122913, 0), + (122915, 122916, 0), + (122918, 122922, 0), + (123184, 123190, 0), + (123628, 123631, 0), + (125136, 125142, 0), + (125252, 125258, 0), + (126980, 126980, 2), + (127183, 127183, 2), + (127374, 127374, 2), + (127377, 127386, 2), + (127488, 127490, 2), + (127504, 127547, 2), + (127552, 127560, 2), + (127568, 127569, 2), + (127584, 127589, 2), + (127744, 127776, 2), + (127789, 127797, 2), + (127799, 127868, 2), + (127870, 127891, 2), + (127904, 127946, 2), + (127951, 127955, 2), + (127968, 127984, 2), + (127988, 127988, 2), + (127992, 127994, 2), + (127995, 127999, 0), + (128000, 128062, 2), + (128064, 128064, 2), + (128066, 128252, 2), + (128255, 128317, 2), + (128331, 128334, 2), + (128336, 128359, 2), + (128378, 128378, 2), + (128405, 128406, 2), + (128420, 128420, 2), + (128507, 128591, 2), + (128640, 128709, 2), + (128716, 128716, 2), + (128720, 128722, 2), + (128725, 128725, 2), + (128747, 128748, 2), + (128756, 128762, 2), + (128992, 129003, 2), + (129293, 129393, 2), + (129395, 129398, 2), + (129402, 129442, 2), + (129445, 129450, 2), + (129454, 129482, 2), + (129485, 129535, 2), + (129648, 129651, 2), + (129656, 129658, 2), + (129664, 129666, 2), + (129680, 129685, 2), + (131072, 196605, 2), + (196608, 262141, 2), + (917505, 917505, 0), + (917536, 917631, 0), + (917760, 917999, 0), + ], + narrow_to_wide=frozenset( + { + 9728, + 9729, + 9730, + 9731, + 11013, + 11014, + 9992, + 9996, + 9762, + 127780, + 127781, + 127782, + 127783, + 127784, + 127785, + 127786, + 127787, + 9774, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 9784, + 9785, + 10035, + 10548, + 128329, + 9823, + 10083, + 9829, + 128367, + 127344, + 128371, + 128372, + 128373, + 128374, + 128375, + 128376, + 127358, + 128394, + 128395, + 128396, + 9876, + 9877, + 9878, + 8596, + 8597, + 8598, + 8599, + 9883, + 8600, + 127894, + 127897, + 127898, + 127902, + 8617, + 9642, + 9904, + 128433, + 128450, + 128451, + 127947, + 127948, + 128717, + 128718, + 127949, + 128465, + 128466, + 127956, + 127957, + 127958, + 127959, + 127960, + 127961, + 127962, + 127963, + 127964, + 127965, + 127966, + 128476, + 128736, + 128737, + 128738, + 128739, + 128740, + 128477, + 9208, + 9197, + 9198, + 9968, + 9201, + 9975, + 9976, + 9209, + 9723, + } + ), +) diff --git a/rich/_unicode_data/unicode13-0-0.py b/rich/_unicode_data/unicode13-0-0.py new file mode 100644 index 0000000000..9ea46893bc --- /dev/null +++ b/rich/_unicode_data/unicode13-0-0.py @@ -0,0 +1,537 @@ +# Auto generated by tools/make_width_tables.py + +from rich.cell_string import CellTable + +cell_table = CellTable( + unicode_version="13.0.0", + widths=[ + (0, 0, 0), + (768, 879, 0), + (1155, 1161, 0), + (1425, 1469, 0), + (1471, 1471, 0), + (1473, 1474, 0), + (1476, 1477, 0), + (1479, 1479, 0), + (1536, 1541, 0), + (1552, 1562, 0), + (1564, 1564, 0), + (1611, 1631, 0), + (1648, 1648, 0), + (1750, 1757, 0), + (1759, 1764, 0), + (1767, 1768, 0), + (1770, 1773, 0), + (1807, 1807, 0), + (1809, 1809, 0), + (1840, 1866, 0), + (1958, 1968, 0), + (2027, 2035, 0), + (2045, 2045, 0), + (2070, 2073, 0), + (2075, 2083, 0), + (2085, 2087, 0), + (2089, 2093, 0), + (2137, 2139, 0), + (2259, 2307, 0), + (2362, 2364, 0), + (2366, 2383, 0), + (2385, 2391, 0), + (2402, 2403, 0), + (2433, 2435, 0), + (2492, 2492, 0), + (2494, 2500, 0), + (2503, 2504, 0), + (2507, 2509, 0), + (2519, 2519, 0), + (2530, 2531, 0), + (2558, 2558, 0), + (2561, 2563, 0), + (2620, 2620, 0), + (2622, 2626, 0), + (2631, 2632, 0), + (2635, 2637, 0), + (2641, 2641, 0), + (2672, 2673, 0), + (2677, 2677, 0), + (2689, 2691, 0), + (2748, 2748, 0), + (2750, 2757, 0), + (2759, 2761, 0), + (2763, 2765, 0), + (2786, 2787, 0), + (2810, 2815, 0), + (2817, 2819, 0), + (2876, 2876, 0), + (2878, 2884, 0), + (2887, 2888, 0), + (2891, 2893, 0), + (2901, 2903, 0), + (2914, 2915, 0), + (2946, 2946, 0), + (3006, 3010, 0), + (3014, 3016, 0), + (3018, 3021, 0), + (3031, 3031, 0), + (3072, 3076, 0), + (3134, 3140, 0), + (3142, 3144, 0), + (3146, 3149, 0), + (3157, 3158, 0), + (3170, 3171, 0), + (3201, 3203, 0), + (3260, 3260, 0), + (3262, 3268, 0), + (3270, 3272, 0), + (3274, 3277, 0), + (3285, 3286, 0), + (3298, 3299, 0), + (3328, 3331, 0), + (3387, 3388, 0), + (3390, 3396, 0), + (3398, 3400, 0), + (3402, 3405, 0), + (3415, 3415, 0), + (3426, 3427, 0), + (3457, 3459, 0), + (3530, 3530, 0), + (3535, 3540, 0), + (3542, 3542, 0), + (3544, 3551, 0), + (3570, 3571, 0), + (3633, 3633, 0), + (3636, 3642, 0), + (3655, 3662, 0), + (3761, 3761, 0), + (3764, 3772, 0), + (3784, 3789, 0), + (3864, 3865, 0), + (3893, 3893, 0), + (3895, 3895, 0), + (3897, 3897, 0), + (3902, 3903, 0), + (3953, 3972, 0), + (3974, 3975, 0), + (3981, 3991, 0), + (3993, 4028, 0), + (4038, 4038, 0), + (4139, 4158, 0), + (4182, 4185, 0), + (4190, 4192, 0), + (4194, 4196, 0), + (4199, 4205, 0), + (4209, 4212, 0), + (4226, 4237, 0), + (4239, 4239, 0), + (4250, 4253, 0), + (4352, 4447, 2), + (4448, 4607, 0), + (4957, 4959, 0), + (5906, 5908, 0), + (5938, 5940, 0), + (5970, 5971, 0), + (6002, 6003, 0), + (6068, 6099, 0), + (6109, 6109, 0), + (6155, 6158, 0), + (6277, 6278, 0), + (6313, 6313, 0), + (6432, 6443, 0), + (6448, 6459, 0), + (6679, 6683, 0), + (6741, 6750, 0), + (6752, 6780, 0), + (6783, 6783, 0), + (6832, 6848, 0), + (6912, 6916, 0), + (6964, 6980, 0), + (7019, 7027, 0), + (7040, 7042, 0), + (7073, 7085, 0), + (7142, 7155, 0), + (7204, 7223, 0), + (7376, 7378, 0), + (7380, 7400, 0), + (7405, 7405, 0), + (7412, 7412, 0), + (7415, 7417, 0), + (7616, 7673, 0), + (7675, 7679, 0), + (8203, 8207, 0), + (8232, 8238, 0), + (8288, 8292, 0), + (8294, 8303, 0), + (8400, 8432, 0), + (8986, 8987, 2), + (9001, 9002, 2), + (9193, 9196, 2), + (9200, 9200, 2), + (9203, 9203, 2), + (9725, 9726, 2), + (9748, 9749, 2), + (9800, 9811, 2), + (9855, 9855, 2), + (9875, 9875, 2), + (9889, 9889, 2), + (9898, 9899, 2), + (9917, 9918, 2), + (9924, 9925, 2), + (9934, 9934, 2), + (9940, 9940, 2), + (9962, 9962, 2), + (9970, 9971, 2), + (9973, 9973, 2), + (9978, 9978, 2), + (9981, 9981, 2), + (9989, 9989, 2), + (9994, 9995, 2), + (10024, 10024, 2), + (10060, 10060, 2), + (10062, 10062, 2), + (10067, 10069, 2), + (10071, 10071, 2), + (10133, 10135, 2), + (10160, 10160, 2), + (10175, 10175, 2), + (11035, 11036, 2), + (11088, 11088, 2), + (11093, 11093, 2), + (11503, 11505, 0), + (11647, 11647, 0), + (11744, 11775, 0), + (11904, 11929, 2), + (11931, 12019, 2), + (12032, 12245, 2), + (12272, 12283, 2), + (12288, 12329, 2), + (12330, 12335, 0), + (12336, 12350, 2), + (12353, 12438, 2), + (12441, 12442, 0), + (12443, 12543, 2), + (12549, 12591, 2), + (12593, 12686, 2), + (12688, 12771, 2), + (12784, 12830, 2), + (12832, 12871, 2), + (12880, 19903, 2), + (19968, 42124, 2), + (42128, 42182, 2), + (42607, 42610, 0), + (42612, 42621, 0), + (42654, 42655, 0), + (42736, 42737, 0), + (43010, 43010, 0), + (43014, 43014, 0), + (43019, 43019, 0), + (43043, 43047, 0), + (43052, 43052, 0), + (43136, 43137, 0), + (43188, 43205, 0), + (43232, 43249, 0), + (43263, 43263, 0), + (43302, 43309, 0), + (43335, 43347, 0), + (43360, 43388, 2), + (43392, 43395, 0), + (43443, 43456, 0), + (43493, 43493, 0), + (43561, 43574, 0), + (43587, 43587, 0), + (43596, 43597, 0), + (43643, 43645, 0), + (43696, 43696, 0), + (43698, 43700, 0), + (43703, 43704, 0), + (43710, 43711, 0), + (43713, 43713, 0), + (43755, 43759, 0), + (43765, 43766, 0), + (44003, 44010, 0), + (44012, 44013, 0), + (44032, 55203, 2), + (55216, 55295, 0), + (63744, 64255, 2), + (64286, 64286, 0), + (65024, 65039, 0), + (65040, 65049, 2), + (65056, 65071, 0), + (65072, 65106, 2), + (65108, 65126, 2), + (65128, 65131, 2), + (65279, 65279, 0), + (65281, 65376, 2), + (65504, 65510, 2), + (65529, 65531, 0), + (66045, 66045, 0), + (66272, 66272, 0), + (66422, 66426, 0), + (68097, 68099, 0), + (68101, 68102, 0), + (68108, 68111, 0), + (68152, 68154, 0), + (68159, 68159, 0), + (68325, 68326, 0), + (68900, 68903, 0), + (69291, 69292, 0), + (69446, 69456, 0), + (69632, 69634, 0), + (69688, 69702, 0), + (69759, 69762, 0), + (69808, 69818, 0), + (69821, 69821, 0), + (69837, 69837, 0), + (69888, 69890, 0), + (69927, 69940, 0), + (69957, 69958, 0), + (70003, 70003, 0), + (70016, 70018, 0), + (70067, 70080, 0), + (70089, 70092, 0), + (70094, 70095, 0), + (70188, 70199, 0), + (70206, 70206, 0), + (70367, 70378, 0), + (70400, 70403, 0), + (70459, 70460, 0), + (70462, 70468, 0), + (70471, 70472, 0), + (70475, 70477, 0), + (70487, 70487, 0), + (70498, 70499, 0), + (70502, 70508, 0), + (70512, 70516, 0), + (70709, 70726, 0), + (70750, 70750, 0), + (70832, 70851, 0), + (71087, 71093, 0), + (71096, 71104, 0), + (71132, 71133, 0), + (71216, 71232, 0), + (71339, 71351, 0), + (71453, 71467, 0), + (71724, 71738, 0), + (71984, 71989, 0), + (71991, 71992, 0), + (71995, 71998, 0), + (72000, 72000, 0), + (72002, 72003, 0), + (72145, 72151, 0), + (72154, 72160, 0), + (72164, 72164, 0), + (72193, 72202, 0), + (72243, 72249, 0), + (72251, 72254, 0), + (72263, 72263, 0), + (72273, 72283, 0), + (72330, 72345, 0), + (72751, 72758, 0), + (72760, 72767, 0), + (72850, 72871, 0), + (72873, 72886, 0), + (73009, 73014, 0), + (73018, 73018, 0), + (73020, 73021, 0), + (73023, 73029, 0), + (73031, 73031, 0), + (73098, 73102, 0), + (73104, 73105, 0), + (73107, 73111, 0), + (73459, 73462, 0), + (78896, 78904, 0), + (92912, 92916, 0), + (92976, 92982, 0), + (94031, 94031, 0), + (94033, 94087, 0), + (94095, 94098, 0), + (94176, 94179, 2), + (94180, 94180, 0), + (94192, 94193, 0), + (94208, 100343, 2), + (100352, 101589, 2), + (101632, 101640, 2), + (110592, 110878, 2), + (110928, 110930, 2), + (110948, 110951, 2), + (110960, 111355, 2), + (113821, 113822, 0), + (113824, 113827, 0), + (119141, 119145, 0), + (119149, 119170, 0), + (119173, 119179, 0), + (119210, 119213, 0), + (119362, 119364, 0), + (121344, 121398, 0), + (121403, 121452, 0), + (121461, 121461, 0), + (121476, 121476, 0), + (121499, 121503, 0), + (121505, 121519, 0), + (122880, 122886, 0), + (122888, 122904, 0), + (122907, 122913, 0), + (122915, 122916, 0), + (122918, 122922, 0), + (123184, 123190, 0), + (123628, 123631, 0), + (125136, 125142, 0), + (125252, 125258, 0), + (126980, 126980, 2), + (127183, 127183, 2), + (127374, 127374, 2), + (127377, 127386, 2), + (127488, 127490, 2), + (127504, 127547, 2), + (127552, 127560, 2), + (127568, 127569, 2), + (127584, 127589, 2), + (127744, 127776, 2), + (127789, 127797, 2), + (127799, 127868, 2), + (127870, 127891, 2), + (127904, 127946, 2), + (127951, 127955, 2), + (127968, 127984, 2), + (127988, 127988, 2), + (127992, 127994, 2), + (127995, 127999, 0), + (128000, 128062, 2), + (128064, 128064, 2), + (128066, 128252, 2), + (128255, 128317, 2), + (128331, 128334, 2), + (128336, 128359, 2), + (128378, 128378, 2), + (128405, 128406, 2), + (128420, 128420, 2), + (128507, 128591, 2), + (128640, 128709, 2), + (128716, 128716, 2), + (128720, 128722, 2), + (128725, 128727, 2), + (128747, 128748, 2), + (128756, 128764, 2), + (128992, 129003, 2), + (129292, 129338, 2), + (129340, 129349, 2), + (129351, 129400, 2), + (129402, 129483, 2), + (129485, 129535, 2), + (129648, 129652, 2), + (129656, 129658, 2), + (129664, 129670, 2), + (129680, 129704, 2), + (129712, 129718, 2), + (129728, 129730, 2), + (129744, 129750, 2), + (131072, 196605, 2), + (196608, 262141, 2), + (917505, 917505, 0), + (917536, 917631, 0), + (917760, 917999, 0), + ], + narrow_to_wide=frozenset( + { + 9728, + 9729, + 9730, + 9731, + 11013, + 11014, + 9992, + 9996, + 9762, + 127780, + 127781, + 127782, + 127783, + 127784, + 127785, + 127786, + 127787, + 9774, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 9784, + 9785, + 10035, + 10548, + 128329, + 9823, + 10083, + 9829, + 128367, + 127344, + 128371, + 128372, + 128373, + 128374, + 128375, + 128376, + 127358, + 128394, + 128395, + 128396, + 9876, + 9877, + 9878, + 8596, + 8597, + 8598, + 8599, + 9883, + 8600, + 127894, + 127897, + 127898, + 127902, + 8617, + 9642, + 9904, + 128433, + 128450, + 128451, + 127947, + 127948, + 128717, + 128718, + 127949, + 128465, + 128466, + 127956, + 127957, + 127958, + 127959, + 127960, + 127961, + 127962, + 127963, + 127964, + 127965, + 127966, + 128476, + 128736, + 128737, + 128738, + 128739, + 128740, + 128477, + 9208, + 9197, + 9198, + 9968, + 9201, + 9975, + 9976, + 9209, + 9723, + } + ), +) diff --git a/rich/_unicode_data/unicode14-0-0.py b/rich/_unicode_data/unicode14-0-0.py new file mode 100644 index 0000000000..14860fa497 --- /dev/null +++ b/rich/_unicode_data/unicode14-0-0.py @@ -0,0 +1,551 @@ +# Auto generated by tools/make_width_tables.py + +from rich.cell_string import CellTable + +cell_table = CellTable( + unicode_version="14.0.0", + widths=[ + (0, 0, 0), + (768, 879, 0), + (1155, 1161, 0), + (1425, 1469, 0), + (1471, 1471, 0), + (1473, 1474, 0), + (1476, 1477, 0), + (1479, 1479, 0), + (1536, 1541, 0), + (1552, 1562, 0), + (1564, 1564, 0), + (1611, 1631, 0), + (1648, 1648, 0), + (1750, 1757, 0), + (1759, 1764, 0), + (1767, 1768, 0), + (1770, 1773, 0), + (1807, 1807, 0), + (1809, 1809, 0), + (1840, 1866, 0), + (1958, 1968, 0), + (2027, 2035, 0), + (2045, 2045, 0), + (2070, 2073, 0), + (2075, 2083, 0), + (2085, 2087, 0), + (2089, 2093, 0), + (2137, 2139, 0), + (2192, 2193, 0), + (2200, 2207, 0), + (2250, 2307, 0), + (2362, 2364, 0), + (2366, 2383, 0), + (2385, 2391, 0), + (2402, 2403, 0), + (2433, 2435, 0), + (2492, 2492, 0), + (2494, 2500, 0), + (2503, 2504, 0), + (2507, 2509, 0), + (2519, 2519, 0), + (2530, 2531, 0), + (2558, 2558, 0), + (2561, 2563, 0), + (2620, 2620, 0), + (2622, 2626, 0), + (2631, 2632, 0), + (2635, 2637, 0), + (2641, 2641, 0), + (2672, 2673, 0), + (2677, 2677, 0), + (2689, 2691, 0), + (2748, 2748, 0), + (2750, 2757, 0), + (2759, 2761, 0), + (2763, 2765, 0), + (2786, 2787, 0), + (2810, 2815, 0), + (2817, 2819, 0), + (2876, 2876, 0), + (2878, 2884, 0), + (2887, 2888, 0), + (2891, 2893, 0), + (2901, 2903, 0), + (2914, 2915, 0), + (2946, 2946, 0), + (3006, 3010, 0), + (3014, 3016, 0), + (3018, 3021, 0), + (3031, 3031, 0), + (3072, 3076, 0), + (3132, 3132, 0), + (3134, 3140, 0), + (3142, 3144, 0), + (3146, 3149, 0), + (3157, 3158, 0), + (3170, 3171, 0), + (3201, 3203, 0), + (3260, 3260, 0), + (3262, 3268, 0), + (3270, 3272, 0), + (3274, 3277, 0), + (3285, 3286, 0), + (3298, 3299, 0), + (3328, 3331, 0), + (3387, 3388, 0), + (3390, 3396, 0), + (3398, 3400, 0), + (3402, 3405, 0), + (3415, 3415, 0), + (3426, 3427, 0), + (3457, 3459, 0), + (3530, 3530, 0), + (3535, 3540, 0), + (3542, 3542, 0), + (3544, 3551, 0), + (3570, 3571, 0), + (3633, 3633, 0), + (3636, 3642, 0), + (3655, 3662, 0), + (3761, 3761, 0), + (3764, 3772, 0), + (3784, 3789, 0), + (3864, 3865, 0), + (3893, 3893, 0), + (3895, 3895, 0), + (3897, 3897, 0), + (3902, 3903, 0), + (3953, 3972, 0), + (3974, 3975, 0), + (3981, 3991, 0), + (3993, 4028, 0), + (4038, 4038, 0), + (4139, 4158, 0), + (4182, 4185, 0), + (4190, 4192, 0), + (4194, 4196, 0), + (4199, 4205, 0), + (4209, 4212, 0), + (4226, 4237, 0), + (4239, 4239, 0), + (4250, 4253, 0), + (4352, 4447, 2), + (4448, 4607, 0), + (4957, 4959, 0), + (5906, 5909, 0), + (5938, 5940, 0), + (5970, 5971, 0), + (6002, 6003, 0), + (6068, 6099, 0), + (6109, 6109, 0), + (6155, 6159, 0), + (6277, 6278, 0), + (6313, 6313, 0), + (6432, 6443, 0), + (6448, 6459, 0), + (6679, 6683, 0), + (6741, 6750, 0), + (6752, 6780, 0), + (6783, 6783, 0), + (6832, 6862, 0), + (6912, 6916, 0), + (6964, 6980, 0), + (7019, 7027, 0), + (7040, 7042, 0), + (7073, 7085, 0), + (7142, 7155, 0), + (7204, 7223, 0), + (7376, 7378, 0), + (7380, 7400, 0), + (7405, 7405, 0), + (7412, 7412, 0), + (7415, 7417, 0), + (7616, 7679, 0), + (8203, 8207, 0), + (8232, 8238, 0), + (8288, 8292, 0), + (8294, 8303, 0), + (8400, 8432, 0), + (8986, 8987, 2), + (9001, 9002, 2), + (9193, 9196, 2), + (9200, 9200, 2), + (9203, 9203, 2), + (9725, 9726, 2), + (9748, 9749, 2), + (9800, 9811, 2), + (9855, 9855, 2), + (9875, 9875, 2), + (9889, 9889, 2), + (9898, 9899, 2), + (9917, 9918, 2), + (9924, 9925, 2), + (9934, 9934, 2), + (9940, 9940, 2), + (9962, 9962, 2), + (9970, 9971, 2), + (9973, 9973, 2), + (9978, 9978, 2), + (9981, 9981, 2), + (9989, 9989, 2), + (9994, 9995, 2), + (10024, 10024, 2), + (10060, 10060, 2), + (10062, 10062, 2), + (10067, 10069, 2), + (10071, 10071, 2), + (10133, 10135, 2), + (10160, 10160, 2), + (10175, 10175, 2), + (11035, 11036, 2), + (11088, 11088, 2), + (11093, 11093, 2), + (11503, 11505, 0), + (11647, 11647, 0), + (11744, 11775, 0), + (11904, 11929, 2), + (11931, 12019, 2), + (12032, 12245, 2), + (12272, 12283, 2), + (12288, 12329, 2), + (12330, 12335, 0), + (12336, 12350, 2), + (12353, 12438, 2), + (12441, 12442, 0), + (12443, 12543, 2), + (12549, 12591, 2), + (12593, 12686, 2), + (12688, 12771, 2), + (12784, 12830, 2), + (12832, 12871, 2), + (12880, 19903, 2), + (19968, 42124, 2), + (42128, 42182, 2), + (42607, 42610, 0), + (42612, 42621, 0), + (42654, 42655, 0), + (42736, 42737, 0), + (43010, 43010, 0), + (43014, 43014, 0), + (43019, 43019, 0), + (43043, 43047, 0), + (43052, 43052, 0), + (43136, 43137, 0), + (43188, 43205, 0), + (43232, 43249, 0), + (43263, 43263, 0), + (43302, 43309, 0), + (43335, 43347, 0), + (43360, 43388, 2), + (43392, 43395, 0), + (43443, 43456, 0), + (43493, 43493, 0), + (43561, 43574, 0), + (43587, 43587, 0), + (43596, 43597, 0), + (43643, 43645, 0), + (43696, 43696, 0), + (43698, 43700, 0), + (43703, 43704, 0), + (43710, 43711, 0), + (43713, 43713, 0), + (43755, 43759, 0), + (43765, 43766, 0), + (44003, 44010, 0), + (44012, 44013, 0), + (44032, 55203, 2), + (55216, 55295, 0), + (63744, 64255, 2), + (64286, 64286, 0), + (65024, 65039, 0), + (65040, 65049, 2), + (65056, 65071, 0), + (65072, 65106, 2), + (65108, 65126, 2), + (65128, 65131, 2), + (65279, 65279, 0), + (65281, 65376, 2), + (65504, 65510, 2), + (65529, 65531, 0), + (66045, 66045, 0), + (66272, 66272, 0), + (66422, 66426, 0), + (68097, 68099, 0), + (68101, 68102, 0), + (68108, 68111, 0), + (68152, 68154, 0), + (68159, 68159, 0), + (68325, 68326, 0), + (68900, 68903, 0), + (69291, 69292, 0), + (69446, 69456, 0), + (69506, 69509, 0), + (69632, 69634, 0), + (69688, 69702, 0), + (69744, 69744, 0), + (69747, 69748, 0), + (69759, 69762, 0), + (69808, 69818, 0), + (69821, 69821, 0), + (69826, 69826, 0), + (69837, 69837, 0), + (69888, 69890, 0), + (69927, 69940, 0), + (69957, 69958, 0), + (70003, 70003, 0), + (70016, 70018, 0), + (70067, 70080, 0), + (70089, 70092, 0), + (70094, 70095, 0), + (70188, 70199, 0), + (70206, 70206, 0), + (70367, 70378, 0), + (70400, 70403, 0), + (70459, 70460, 0), + (70462, 70468, 0), + (70471, 70472, 0), + (70475, 70477, 0), + (70487, 70487, 0), + (70498, 70499, 0), + (70502, 70508, 0), + (70512, 70516, 0), + (70709, 70726, 0), + (70750, 70750, 0), + (70832, 70851, 0), + (71087, 71093, 0), + (71096, 71104, 0), + (71132, 71133, 0), + (71216, 71232, 0), + (71339, 71351, 0), + (71453, 71467, 0), + (71724, 71738, 0), + (71984, 71989, 0), + (71991, 71992, 0), + (71995, 71998, 0), + (72000, 72000, 0), + (72002, 72003, 0), + (72145, 72151, 0), + (72154, 72160, 0), + (72164, 72164, 0), + (72193, 72202, 0), + (72243, 72249, 0), + (72251, 72254, 0), + (72263, 72263, 0), + (72273, 72283, 0), + (72330, 72345, 0), + (72751, 72758, 0), + (72760, 72767, 0), + (72850, 72871, 0), + (72873, 72886, 0), + (73009, 73014, 0), + (73018, 73018, 0), + (73020, 73021, 0), + (73023, 73029, 0), + (73031, 73031, 0), + (73098, 73102, 0), + (73104, 73105, 0), + (73107, 73111, 0), + (73459, 73462, 0), + (78896, 78904, 0), + (92912, 92916, 0), + (92976, 92982, 0), + (94031, 94031, 0), + (94033, 94087, 0), + (94095, 94098, 0), + (94176, 94179, 2), + (94180, 94180, 0), + (94192, 94193, 0), + (94208, 100343, 2), + (100352, 101589, 2), + (101632, 101640, 2), + (110576, 110579, 2), + (110581, 110587, 2), + (110589, 110590, 2), + (110592, 110882, 2), + (110928, 110930, 2), + (110948, 110951, 2), + (110960, 111355, 2), + (113821, 113822, 0), + (113824, 113827, 0), + (118528, 118573, 0), + (118576, 118598, 0), + (119141, 119145, 0), + (119149, 119170, 0), + (119173, 119179, 0), + (119210, 119213, 0), + (119362, 119364, 0), + (121344, 121398, 0), + (121403, 121452, 0), + (121461, 121461, 0), + (121476, 121476, 0), + (121499, 121503, 0), + (121505, 121519, 0), + (122880, 122886, 0), + (122888, 122904, 0), + (122907, 122913, 0), + (122915, 122916, 0), + (122918, 122922, 0), + (123184, 123190, 0), + (123566, 123566, 0), + (123628, 123631, 0), + (125136, 125142, 0), + (125252, 125258, 0), + (126980, 126980, 2), + (127183, 127183, 2), + (127374, 127374, 2), + (127377, 127386, 2), + (127488, 127490, 2), + (127504, 127547, 2), + (127552, 127560, 2), + (127568, 127569, 2), + (127584, 127589, 2), + (127744, 127776, 2), + (127789, 127797, 2), + (127799, 127868, 2), + (127870, 127891, 2), + (127904, 127946, 2), + (127951, 127955, 2), + (127968, 127984, 2), + (127988, 127988, 2), + (127992, 127994, 2), + (127995, 127999, 0), + (128000, 128062, 2), + (128064, 128064, 2), + (128066, 128252, 2), + (128255, 128317, 2), + (128331, 128334, 2), + (128336, 128359, 2), + (128378, 128378, 2), + (128405, 128406, 2), + (128420, 128420, 2), + (128507, 128591, 2), + (128640, 128709, 2), + (128716, 128716, 2), + (128720, 128722, 2), + (128725, 128727, 2), + (128733, 128735, 2), + (128747, 128748, 2), + (128756, 128764, 2), + (128992, 129003, 2), + (129008, 129008, 2), + (129292, 129338, 2), + (129340, 129349, 2), + (129351, 129535, 2), + (129648, 129652, 2), + (129656, 129660, 2), + (129664, 129670, 2), + (129680, 129708, 2), + (129712, 129722, 2), + (129728, 129733, 2), + (129744, 129753, 2), + (129760, 129767, 2), + (129776, 129782, 2), + (131072, 196605, 2), + (196608, 262141, 2), + (917505, 917505, 0), + (917536, 917631, 0), + (917760, 917999, 0), + ], + narrow_to_wide=frozenset( + { + 9728, + 9729, + 9730, + 9731, + 11013, + 11014, + 9992, + 9996, + 9762, + 127780, + 127781, + 127782, + 127783, + 127784, + 127785, + 127786, + 127787, + 9774, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 9784, + 9785, + 10035, + 10548, + 128329, + 9823, + 10083, + 9829, + 128367, + 127344, + 128371, + 128372, + 128373, + 128374, + 128375, + 128376, + 127358, + 128394, + 128395, + 128396, + 9876, + 9877, + 9878, + 8596, + 8597, + 8598, + 8599, + 9883, + 8600, + 127894, + 127897, + 127898, + 127902, + 8617, + 9642, + 9904, + 128433, + 128450, + 128451, + 127947, + 127948, + 128717, + 128718, + 127949, + 128465, + 128466, + 127956, + 127957, + 127958, + 127959, + 127960, + 127961, + 127962, + 127963, + 127964, + 127965, + 127966, + 128476, + 128736, + 128737, + 128738, + 128739, + 128740, + 128477, + 9208, + 9197, + 9198, + 9968, + 9201, + 9975, + 9976, + 9209, + 9723, + } + ), +) diff --git a/rich/_unicode_data/unicode15-0-0.py b/rich/_unicode_data/unicode15-0-0.py new file mode 100644 index 0000000000..dea6b33196 --- /dev/null +++ b/rich/_unicode_data/unicode15-0-0.py @@ -0,0 +1,561 @@ +# Auto generated by tools/make_width_tables.py + +from rich.cell_string import CellTable + +cell_table = CellTable( + unicode_version="15.0.0", + widths=[ + (0, 0, 0), + (768, 879, 0), + (1155, 1161, 0), + (1425, 1469, 0), + (1471, 1471, 0), + (1473, 1474, 0), + (1476, 1477, 0), + (1479, 1479, 0), + (1536, 1541, 0), + (1552, 1562, 0), + (1564, 1564, 0), + (1611, 1631, 0), + (1648, 1648, 0), + (1750, 1757, 0), + (1759, 1764, 0), + (1767, 1768, 0), + (1770, 1773, 0), + (1807, 1807, 0), + (1809, 1809, 0), + (1840, 1866, 0), + (1958, 1968, 0), + (2027, 2035, 0), + (2045, 2045, 0), + (2070, 2073, 0), + (2075, 2083, 0), + (2085, 2087, 0), + (2089, 2093, 0), + (2137, 2139, 0), + (2192, 2193, 0), + (2200, 2207, 0), + (2250, 2307, 0), + (2362, 2364, 0), + (2366, 2383, 0), + (2385, 2391, 0), + (2402, 2403, 0), + (2433, 2435, 0), + (2492, 2492, 0), + (2494, 2500, 0), + (2503, 2504, 0), + (2507, 2509, 0), + (2519, 2519, 0), + (2530, 2531, 0), + (2558, 2558, 0), + (2561, 2563, 0), + (2620, 2620, 0), + (2622, 2626, 0), + (2631, 2632, 0), + (2635, 2637, 0), + (2641, 2641, 0), + (2672, 2673, 0), + (2677, 2677, 0), + (2689, 2691, 0), + (2748, 2748, 0), + (2750, 2757, 0), + (2759, 2761, 0), + (2763, 2765, 0), + (2786, 2787, 0), + (2810, 2815, 0), + (2817, 2819, 0), + (2876, 2876, 0), + (2878, 2884, 0), + (2887, 2888, 0), + (2891, 2893, 0), + (2901, 2903, 0), + (2914, 2915, 0), + (2946, 2946, 0), + (3006, 3010, 0), + (3014, 3016, 0), + (3018, 3021, 0), + (3031, 3031, 0), + (3072, 3076, 0), + (3132, 3132, 0), + (3134, 3140, 0), + (3142, 3144, 0), + (3146, 3149, 0), + (3157, 3158, 0), + (3170, 3171, 0), + (3201, 3203, 0), + (3260, 3260, 0), + (3262, 3268, 0), + (3270, 3272, 0), + (3274, 3277, 0), + (3285, 3286, 0), + (3298, 3299, 0), + (3315, 3315, 0), + (3328, 3331, 0), + (3387, 3388, 0), + (3390, 3396, 0), + (3398, 3400, 0), + (3402, 3405, 0), + (3415, 3415, 0), + (3426, 3427, 0), + (3457, 3459, 0), + (3530, 3530, 0), + (3535, 3540, 0), + (3542, 3542, 0), + (3544, 3551, 0), + (3570, 3571, 0), + (3633, 3633, 0), + (3636, 3642, 0), + (3655, 3662, 0), + (3761, 3761, 0), + (3764, 3772, 0), + (3784, 3790, 0), + (3864, 3865, 0), + (3893, 3893, 0), + (3895, 3895, 0), + (3897, 3897, 0), + (3902, 3903, 0), + (3953, 3972, 0), + (3974, 3975, 0), + (3981, 3991, 0), + (3993, 4028, 0), + (4038, 4038, 0), + (4139, 4158, 0), + (4182, 4185, 0), + (4190, 4192, 0), + (4194, 4196, 0), + (4199, 4205, 0), + (4209, 4212, 0), + (4226, 4237, 0), + (4239, 4239, 0), + (4250, 4253, 0), + (4352, 4447, 2), + (4448, 4607, 0), + (4957, 4959, 0), + (5906, 5909, 0), + (5938, 5940, 0), + (5970, 5971, 0), + (6002, 6003, 0), + (6068, 6099, 0), + (6109, 6109, 0), + (6155, 6159, 0), + (6277, 6278, 0), + (6313, 6313, 0), + (6432, 6443, 0), + (6448, 6459, 0), + (6679, 6683, 0), + (6741, 6750, 0), + (6752, 6780, 0), + (6783, 6783, 0), + (6832, 6862, 0), + (6912, 6916, 0), + (6964, 6980, 0), + (7019, 7027, 0), + (7040, 7042, 0), + (7073, 7085, 0), + (7142, 7155, 0), + (7204, 7223, 0), + (7376, 7378, 0), + (7380, 7400, 0), + (7405, 7405, 0), + (7412, 7412, 0), + (7415, 7417, 0), + (7616, 7679, 0), + (8203, 8207, 0), + (8232, 8238, 0), + (8288, 8292, 0), + (8294, 8303, 0), + (8400, 8432, 0), + (8986, 8987, 2), + (9001, 9002, 2), + (9193, 9196, 2), + (9200, 9200, 2), + (9203, 9203, 2), + (9725, 9726, 2), + (9748, 9749, 2), + (9800, 9811, 2), + (9855, 9855, 2), + (9875, 9875, 2), + (9889, 9889, 2), + (9898, 9899, 2), + (9917, 9918, 2), + (9924, 9925, 2), + (9934, 9934, 2), + (9940, 9940, 2), + (9962, 9962, 2), + (9970, 9971, 2), + (9973, 9973, 2), + (9978, 9978, 2), + (9981, 9981, 2), + (9989, 9989, 2), + (9994, 9995, 2), + (10024, 10024, 2), + (10060, 10060, 2), + (10062, 10062, 2), + (10067, 10069, 2), + (10071, 10071, 2), + (10133, 10135, 2), + (10160, 10160, 2), + (10175, 10175, 2), + (11035, 11036, 2), + (11088, 11088, 2), + (11093, 11093, 2), + (11503, 11505, 0), + (11647, 11647, 0), + (11744, 11775, 0), + (11904, 11929, 2), + (11931, 12019, 2), + (12032, 12245, 2), + (12272, 12283, 2), + (12288, 12329, 2), + (12330, 12335, 0), + (12336, 12350, 2), + (12353, 12438, 2), + (12441, 12442, 0), + (12443, 12543, 2), + (12549, 12591, 2), + (12593, 12686, 2), + (12688, 12771, 2), + (12784, 12830, 2), + (12832, 12871, 2), + (12880, 19903, 2), + (19968, 42124, 2), + (42128, 42182, 2), + (42607, 42610, 0), + (42612, 42621, 0), + (42654, 42655, 0), + (42736, 42737, 0), + (43010, 43010, 0), + (43014, 43014, 0), + (43019, 43019, 0), + (43043, 43047, 0), + (43052, 43052, 0), + (43136, 43137, 0), + (43188, 43205, 0), + (43232, 43249, 0), + (43263, 43263, 0), + (43302, 43309, 0), + (43335, 43347, 0), + (43360, 43388, 2), + (43392, 43395, 0), + (43443, 43456, 0), + (43493, 43493, 0), + (43561, 43574, 0), + (43587, 43587, 0), + (43596, 43597, 0), + (43643, 43645, 0), + (43696, 43696, 0), + (43698, 43700, 0), + (43703, 43704, 0), + (43710, 43711, 0), + (43713, 43713, 0), + (43755, 43759, 0), + (43765, 43766, 0), + (44003, 44010, 0), + (44012, 44013, 0), + (44032, 55203, 2), + (55216, 55295, 0), + (63744, 64255, 2), + (64286, 64286, 0), + (65024, 65039, 0), + (65040, 65049, 2), + (65056, 65071, 0), + (65072, 65106, 2), + (65108, 65126, 2), + (65128, 65131, 2), + (65279, 65279, 0), + (65281, 65376, 2), + (65504, 65510, 2), + (65529, 65531, 0), + (66045, 66045, 0), + (66272, 66272, 0), + (66422, 66426, 0), + (68097, 68099, 0), + (68101, 68102, 0), + (68108, 68111, 0), + (68152, 68154, 0), + (68159, 68159, 0), + (68325, 68326, 0), + (68900, 68903, 0), + (69291, 69292, 0), + (69373, 69375, 0), + (69446, 69456, 0), + (69506, 69509, 0), + (69632, 69634, 0), + (69688, 69702, 0), + (69744, 69744, 0), + (69747, 69748, 0), + (69759, 69762, 0), + (69808, 69818, 0), + (69821, 69821, 0), + (69826, 69826, 0), + (69837, 69837, 0), + (69888, 69890, 0), + (69927, 69940, 0), + (69957, 69958, 0), + (70003, 70003, 0), + (70016, 70018, 0), + (70067, 70080, 0), + (70089, 70092, 0), + (70094, 70095, 0), + (70188, 70199, 0), + (70206, 70206, 0), + (70209, 70209, 0), + (70367, 70378, 0), + (70400, 70403, 0), + (70459, 70460, 0), + (70462, 70468, 0), + (70471, 70472, 0), + (70475, 70477, 0), + (70487, 70487, 0), + (70498, 70499, 0), + (70502, 70508, 0), + (70512, 70516, 0), + (70709, 70726, 0), + (70750, 70750, 0), + (70832, 70851, 0), + (71087, 71093, 0), + (71096, 71104, 0), + (71132, 71133, 0), + (71216, 71232, 0), + (71339, 71351, 0), + (71453, 71467, 0), + (71724, 71738, 0), + (71984, 71989, 0), + (71991, 71992, 0), + (71995, 71998, 0), + (72000, 72000, 0), + (72002, 72003, 0), + (72145, 72151, 0), + (72154, 72160, 0), + (72164, 72164, 0), + (72193, 72202, 0), + (72243, 72249, 0), + (72251, 72254, 0), + (72263, 72263, 0), + (72273, 72283, 0), + (72330, 72345, 0), + (72751, 72758, 0), + (72760, 72767, 0), + (72850, 72871, 0), + (72873, 72886, 0), + (73009, 73014, 0), + (73018, 73018, 0), + (73020, 73021, 0), + (73023, 73029, 0), + (73031, 73031, 0), + (73098, 73102, 0), + (73104, 73105, 0), + (73107, 73111, 0), + (73459, 73462, 0), + (73472, 73473, 0), + (73475, 73475, 0), + (73524, 73530, 0), + (73534, 73538, 0), + (78896, 78912, 0), + (78919, 78933, 0), + (92912, 92916, 0), + (92976, 92982, 0), + (94031, 94031, 0), + (94033, 94087, 0), + (94095, 94098, 0), + (94176, 94179, 2), + (94180, 94180, 0), + (94192, 94193, 0), + (94208, 100343, 2), + (100352, 101589, 2), + (101632, 101640, 2), + (110576, 110579, 2), + (110581, 110587, 2), + (110589, 110590, 2), + (110592, 110882, 2), + (110898, 110898, 2), + (110928, 110930, 2), + (110933, 110933, 2), + (110948, 110951, 2), + (110960, 111355, 2), + (113821, 113822, 0), + (113824, 113827, 0), + (118528, 118573, 0), + (118576, 118598, 0), + (119141, 119145, 0), + (119149, 119170, 0), + (119173, 119179, 0), + (119210, 119213, 0), + (119362, 119364, 0), + (121344, 121398, 0), + (121403, 121452, 0), + (121461, 121461, 0), + (121476, 121476, 0), + (121499, 121503, 0), + (121505, 121519, 0), + (122880, 122886, 0), + (122888, 122904, 0), + (122907, 122913, 0), + (122915, 122916, 0), + (122918, 122922, 0), + (123023, 123023, 0), + (123184, 123190, 0), + (123566, 123566, 0), + (123628, 123631, 0), + (124140, 124143, 0), + (125136, 125142, 0), + (125252, 125258, 0), + (126980, 126980, 2), + (127183, 127183, 2), + (127374, 127374, 2), + (127377, 127386, 2), + (127488, 127490, 2), + (127504, 127547, 2), + (127552, 127560, 2), + (127568, 127569, 2), + (127584, 127589, 2), + (127744, 127776, 2), + (127789, 127797, 2), + (127799, 127868, 2), + (127870, 127891, 2), + (127904, 127946, 2), + (127951, 127955, 2), + (127968, 127984, 2), + (127988, 127988, 2), + (127992, 127994, 2), + (127995, 127999, 0), + (128000, 128062, 2), + (128064, 128064, 2), + (128066, 128252, 2), + (128255, 128317, 2), + (128331, 128334, 2), + (128336, 128359, 2), + (128378, 128378, 2), + (128405, 128406, 2), + (128420, 128420, 2), + (128507, 128591, 2), + (128640, 128709, 2), + (128716, 128716, 2), + (128720, 128722, 2), + (128725, 128727, 2), + (128732, 128735, 2), + (128747, 128748, 2), + (128756, 128764, 2), + (128992, 129003, 2), + (129008, 129008, 2), + (129292, 129338, 2), + (129340, 129349, 2), + (129351, 129535, 2), + (129648, 129660, 2), + (129664, 129672, 2), + (129680, 129725, 2), + (129727, 129733, 2), + (129742, 129755, 2), + (129760, 129768, 2), + (129776, 129784, 2), + (131072, 196605, 2), + (196608, 262141, 2), + (917505, 917505, 0), + (917536, 917631, 0), + (917760, 917999, 0), + ], + narrow_to_wide=frozenset( + { + 9728, + 9729, + 9730, + 9731, + 11013, + 11014, + 9992, + 9996, + 9762, + 127780, + 127781, + 127782, + 127783, + 127784, + 127785, + 127786, + 127787, + 9774, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 9784, + 9785, + 10035, + 10548, + 128329, + 9823, + 10083, + 9829, + 128367, + 127344, + 128371, + 128372, + 128373, + 128374, + 128375, + 128376, + 127358, + 128394, + 128395, + 128396, + 9876, + 9877, + 9878, + 8596, + 8597, + 8598, + 8599, + 9883, + 8600, + 127894, + 127897, + 127898, + 127902, + 8617, + 9642, + 9904, + 128433, + 128450, + 128451, + 127947, + 127948, + 128717, + 128718, + 127949, + 128465, + 128466, + 127956, + 127957, + 127958, + 127959, + 127960, + 127961, + 127962, + 127963, + 127964, + 127965, + 127966, + 128476, + 128736, + 128737, + 128738, + 128739, + 128740, + 128477, + 9208, + 9197, + 9198, + 9968, + 9201, + 9975, + 9976, + 9209, + 9723, + } + ), +) diff --git a/rich/_unicode_data/unicode15-1-0.py b/rich/_unicode_data/unicode15-1-0.py new file mode 100644 index 0000000000..8572800028 --- /dev/null +++ b/rich/_unicode_data/unicode15-1-0.py @@ -0,0 +1,560 @@ +# Auto generated by tools/make_width_tables.py + +from rich.cell_string import CellTable + +cell_table = CellTable( + unicode_version="15.1.0", + widths=[ + (0, 0, 0), + (768, 879, 0), + (1155, 1161, 0), + (1425, 1469, 0), + (1471, 1471, 0), + (1473, 1474, 0), + (1476, 1477, 0), + (1479, 1479, 0), + (1536, 1541, 0), + (1552, 1562, 0), + (1564, 1564, 0), + (1611, 1631, 0), + (1648, 1648, 0), + (1750, 1757, 0), + (1759, 1764, 0), + (1767, 1768, 0), + (1770, 1773, 0), + (1807, 1807, 0), + (1809, 1809, 0), + (1840, 1866, 0), + (1958, 1968, 0), + (2027, 2035, 0), + (2045, 2045, 0), + (2070, 2073, 0), + (2075, 2083, 0), + (2085, 2087, 0), + (2089, 2093, 0), + (2137, 2139, 0), + (2192, 2193, 0), + (2200, 2207, 0), + (2250, 2307, 0), + (2362, 2364, 0), + (2366, 2383, 0), + (2385, 2391, 0), + (2402, 2403, 0), + (2433, 2435, 0), + (2492, 2492, 0), + (2494, 2500, 0), + (2503, 2504, 0), + (2507, 2509, 0), + (2519, 2519, 0), + (2530, 2531, 0), + (2558, 2558, 0), + (2561, 2563, 0), + (2620, 2620, 0), + (2622, 2626, 0), + (2631, 2632, 0), + (2635, 2637, 0), + (2641, 2641, 0), + (2672, 2673, 0), + (2677, 2677, 0), + (2689, 2691, 0), + (2748, 2748, 0), + (2750, 2757, 0), + (2759, 2761, 0), + (2763, 2765, 0), + (2786, 2787, 0), + (2810, 2815, 0), + (2817, 2819, 0), + (2876, 2876, 0), + (2878, 2884, 0), + (2887, 2888, 0), + (2891, 2893, 0), + (2901, 2903, 0), + (2914, 2915, 0), + (2946, 2946, 0), + (3006, 3010, 0), + (3014, 3016, 0), + (3018, 3021, 0), + (3031, 3031, 0), + (3072, 3076, 0), + (3132, 3132, 0), + (3134, 3140, 0), + (3142, 3144, 0), + (3146, 3149, 0), + (3157, 3158, 0), + (3170, 3171, 0), + (3201, 3203, 0), + (3260, 3260, 0), + (3262, 3268, 0), + (3270, 3272, 0), + (3274, 3277, 0), + (3285, 3286, 0), + (3298, 3299, 0), + (3315, 3315, 0), + (3328, 3331, 0), + (3387, 3388, 0), + (3390, 3396, 0), + (3398, 3400, 0), + (3402, 3405, 0), + (3415, 3415, 0), + (3426, 3427, 0), + (3457, 3459, 0), + (3530, 3530, 0), + (3535, 3540, 0), + (3542, 3542, 0), + (3544, 3551, 0), + (3570, 3571, 0), + (3633, 3633, 0), + (3636, 3642, 0), + (3655, 3662, 0), + (3761, 3761, 0), + (3764, 3772, 0), + (3784, 3790, 0), + (3864, 3865, 0), + (3893, 3893, 0), + (3895, 3895, 0), + (3897, 3897, 0), + (3902, 3903, 0), + (3953, 3972, 0), + (3974, 3975, 0), + (3981, 3991, 0), + (3993, 4028, 0), + (4038, 4038, 0), + (4139, 4158, 0), + (4182, 4185, 0), + (4190, 4192, 0), + (4194, 4196, 0), + (4199, 4205, 0), + (4209, 4212, 0), + (4226, 4237, 0), + (4239, 4239, 0), + (4250, 4253, 0), + (4352, 4447, 2), + (4448, 4607, 0), + (4957, 4959, 0), + (5906, 5909, 0), + (5938, 5940, 0), + (5970, 5971, 0), + (6002, 6003, 0), + (6068, 6099, 0), + (6109, 6109, 0), + (6155, 6159, 0), + (6277, 6278, 0), + (6313, 6313, 0), + (6432, 6443, 0), + (6448, 6459, 0), + (6679, 6683, 0), + (6741, 6750, 0), + (6752, 6780, 0), + (6783, 6783, 0), + (6832, 6862, 0), + (6912, 6916, 0), + (6964, 6980, 0), + (7019, 7027, 0), + (7040, 7042, 0), + (7073, 7085, 0), + (7142, 7155, 0), + (7204, 7223, 0), + (7376, 7378, 0), + (7380, 7400, 0), + (7405, 7405, 0), + (7412, 7412, 0), + (7415, 7417, 0), + (7616, 7679, 0), + (8203, 8207, 0), + (8232, 8238, 0), + (8288, 8292, 0), + (8294, 8303, 0), + (8400, 8432, 0), + (8986, 8987, 2), + (9001, 9002, 2), + (9193, 9196, 2), + (9200, 9200, 2), + (9203, 9203, 2), + (9725, 9726, 2), + (9748, 9749, 2), + (9800, 9811, 2), + (9855, 9855, 2), + (9875, 9875, 2), + (9889, 9889, 2), + (9898, 9899, 2), + (9917, 9918, 2), + (9924, 9925, 2), + (9934, 9934, 2), + (9940, 9940, 2), + (9962, 9962, 2), + (9970, 9971, 2), + (9973, 9973, 2), + (9978, 9978, 2), + (9981, 9981, 2), + (9989, 9989, 2), + (9994, 9995, 2), + (10024, 10024, 2), + (10060, 10060, 2), + (10062, 10062, 2), + (10067, 10069, 2), + (10071, 10071, 2), + (10133, 10135, 2), + (10160, 10160, 2), + (10175, 10175, 2), + (11035, 11036, 2), + (11088, 11088, 2), + (11093, 11093, 2), + (11503, 11505, 0), + (11647, 11647, 0), + (11744, 11775, 0), + (11904, 11929, 2), + (11931, 12019, 2), + (12032, 12245, 2), + (12272, 12329, 2), + (12330, 12335, 0), + (12336, 12350, 2), + (12353, 12438, 2), + (12441, 12442, 0), + (12443, 12543, 2), + (12549, 12591, 2), + (12593, 12686, 2), + (12688, 12771, 2), + (12783, 12830, 2), + (12832, 12871, 2), + (12880, 19903, 2), + (19968, 42124, 2), + (42128, 42182, 2), + (42607, 42610, 0), + (42612, 42621, 0), + (42654, 42655, 0), + (42736, 42737, 0), + (43010, 43010, 0), + (43014, 43014, 0), + (43019, 43019, 0), + (43043, 43047, 0), + (43052, 43052, 0), + (43136, 43137, 0), + (43188, 43205, 0), + (43232, 43249, 0), + (43263, 43263, 0), + (43302, 43309, 0), + (43335, 43347, 0), + (43360, 43388, 2), + (43392, 43395, 0), + (43443, 43456, 0), + (43493, 43493, 0), + (43561, 43574, 0), + (43587, 43587, 0), + (43596, 43597, 0), + (43643, 43645, 0), + (43696, 43696, 0), + (43698, 43700, 0), + (43703, 43704, 0), + (43710, 43711, 0), + (43713, 43713, 0), + (43755, 43759, 0), + (43765, 43766, 0), + (44003, 44010, 0), + (44012, 44013, 0), + (44032, 55203, 2), + (55216, 55295, 0), + (63744, 64255, 2), + (64286, 64286, 0), + (65024, 65039, 0), + (65040, 65049, 2), + (65056, 65071, 0), + (65072, 65106, 2), + (65108, 65126, 2), + (65128, 65131, 2), + (65279, 65279, 0), + (65281, 65376, 2), + (65504, 65510, 2), + (65529, 65531, 0), + (66045, 66045, 0), + (66272, 66272, 0), + (66422, 66426, 0), + (68097, 68099, 0), + (68101, 68102, 0), + (68108, 68111, 0), + (68152, 68154, 0), + (68159, 68159, 0), + (68325, 68326, 0), + (68900, 68903, 0), + (69291, 69292, 0), + (69373, 69375, 0), + (69446, 69456, 0), + (69506, 69509, 0), + (69632, 69634, 0), + (69688, 69702, 0), + (69744, 69744, 0), + (69747, 69748, 0), + (69759, 69762, 0), + (69808, 69818, 0), + (69821, 69821, 0), + (69826, 69826, 0), + (69837, 69837, 0), + (69888, 69890, 0), + (69927, 69940, 0), + (69957, 69958, 0), + (70003, 70003, 0), + (70016, 70018, 0), + (70067, 70080, 0), + (70089, 70092, 0), + (70094, 70095, 0), + (70188, 70199, 0), + (70206, 70206, 0), + (70209, 70209, 0), + (70367, 70378, 0), + (70400, 70403, 0), + (70459, 70460, 0), + (70462, 70468, 0), + (70471, 70472, 0), + (70475, 70477, 0), + (70487, 70487, 0), + (70498, 70499, 0), + (70502, 70508, 0), + (70512, 70516, 0), + (70709, 70726, 0), + (70750, 70750, 0), + (70832, 70851, 0), + (71087, 71093, 0), + (71096, 71104, 0), + (71132, 71133, 0), + (71216, 71232, 0), + (71339, 71351, 0), + (71453, 71467, 0), + (71724, 71738, 0), + (71984, 71989, 0), + (71991, 71992, 0), + (71995, 71998, 0), + (72000, 72000, 0), + (72002, 72003, 0), + (72145, 72151, 0), + (72154, 72160, 0), + (72164, 72164, 0), + (72193, 72202, 0), + (72243, 72249, 0), + (72251, 72254, 0), + (72263, 72263, 0), + (72273, 72283, 0), + (72330, 72345, 0), + (72751, 72758, 0), + (72760, 72767, 0), + (72850, 72871, 0), + (72873, 72886, 0), + (73009, 73014, 0), + (73018, 73018, 0), + (73020, 73021, 0), + (73023, 73029, 0), + (73031, 73031, 0), + (73098, 73102, 0), + (73104, 73105, 0), + (73107, 73111, 0), + (73459, 73462, 0), + (73472, 73473, 0), + (73475, 73475, 0), + (73524, 73530, 0), + (73534, 73538, 0), + (78896, 78912, 0), + (78919, 78933, 0), + (92912, 92916, 0), + (92976, 92982, 0), + (94031, 94031, 0), + (94033, 94087, 0), + (94095, 94098, 0), + (94176, 94179, 2), + (94180, 94180, 0), + (94192, 94193, 0), + (94208, 100343, 2), + (100352, 101589, 2), + (101632, 101640, 2), + (110576, 110579, 2), + (110581, 110587, 2), + (110589, 110590, 2), + (110592, 110882, 2), + (110898, 110898, 2), + (110928, 110930, 2), + (110933, 110933, 2), + (110948, 110951, 2), + (110960, 111355, 2), + (113821, 113822, 0), + (113824, 113827, 0), + (118528, 118573, 0), + (118576, 118598, 0), + (119141, 119145, 0), + (119149, 119170, 0), + (119173, 119179, 0), + (119210, 119213, 0), + (119362, 119364, 0), + (121344, 121398, 0), + (121403, 121452, 0), + (121461, 121461, 0), + (121476, 121476, 0), + (121499, 121503, 0), + (121505, 121519, 0), + (122880, 122886, 0), + (122888, 122904, 0), + (122907, 122913, 0), + (122915, 122916, 0), + (122918, 122922, 0), + (123023, 123023, 0), + (123184, 123190, 0), + (123566, 123566, 0), + (123628, 123631, 0), + (124140, 124143, 0), + (125136, 125142, 0), + (125252, 125258, 0), + (126980, 126980, 2), + (127183, 127183, 2), + (127374, 127374, 2), + (127377, 127386, 2), + (127488, 127490, 2), + (127504, 127547, 2), + (127552, 127560, 2), + (127568, 127569, 2), + (127584, 127589, 2), + (127744, 127776, 2), + (127789, 127797, 2), + (127799, 127868, 2), + (127870, 127891, 2), + (127904, 127946, 2), + (127951, 127955, 2), + (127968, 127984, 2), + (127988, 127988, 2), + (127992, 127994, 2), + (127995, 127999, 0), + (128000, 128062, 2), + (128064, 128064, 2), + (128066, 128252, 2), + (128255, 128317, 2), + (128331, 128334, 2), + (128336, 128359, 2), + (128378, 128378, 2), + (128405, 128406, 2), + (128420, 128420, 2), + (128507, 128591, 2), + (128640, 128709, 2), + (128716, 128716, 2), + (128720, 128722, 2), + (128725, 128727, 2), + (128732, 128735, 2), + (128747, 128748, 2), + (128756, 128764, 2), + (128992, 129003, 2), + (129008, 129008, 2), + (129292, 129338, 2), + (129340, 129349, 2), + (129351, 129535, 2), + (129648, 129660, 2), + (129664, 129672, 2), + (129680, 129725, 2), + (129727, 129733, 2), + (129742, 129755, 2), + (129760, 129768, 2), + (129776, 129784, 2), + (131072, 196605, 2), + (196608, 262141, 2), + (917505, 917505, 0), + (917536, 917631, 0), + (917760, 917999, 0), + ], + narrow_to_wide=frozenset( + { + 9728, + 9729, + 9730, + 9731, + 11013, + 11014, + 9992, + 9996, + 9762, + 127780, + 127781, + 127782, + 127783, + 127784, + 127785, + 127786, + 127787, + 9774, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 9784, + 9785, + 10035, + 10548, + 128329, + 9823, + 10083, + 9829, + 128367, + 127344, + 128371, + 128372, + 128373, + 128374, + 128375, + 128376, + 127358, + 128394, + 128395, + 128396, + 9876, + 9877, + 9878, + 8596, + 8597, + 8598, + 8599, + 9883, + 8600, + 127894, + 127897, + 127898, + 127902, + 8617, + 9642, + 9904, + 128433, + 128450, + 128451, + 127947, + 127948, + 128717, + 128718, + 127949, + 128465, + 128466, + 127956, + 127957, + 127958, + 127959, + 127960, + 127961, + 127962, + 127963, + 127964, + 127965, + 127966, + 128476, + 128736, + 128737, + 128738, + 128739, + 128740, + 128477, + 9208, + 9197, + 9198, + 9968, + 9201, + 9975, + 9976, + 9209, + 9723, + } + ), +) diff --git a/rich/_unicode_data/unicode16-0-0.py b/rich/_unicode_data/unicode16-0-0.py new file mode 100644 index 0000000000..b184d9c5a2 --- /dev/null +++ b/rich/_unicode_data/unicode16-0-0.py @@ -0,0 +1,573 @@ +# Auto generated by tools/make_width_tables.py + +from rich.cell_string import CellTable + +cell_table = CellTable( + unicode_version="16.0.0", + widths=[ + (0, 0, 0), + (768, 879, 0), + (1155, 1161, 0), + (1425, 1469, 0), + (1471, 1471, 0), + (1473, 1474, 0), + (1476, 1477, 0), + (1479, 1479, 0), + (1536, 1541, 0), + (1552, 1562, 0), + (1564, 1564, 0), + (1611, 1631, 0), + (1648, 1648, 0), + (1750, 1757, 0), + (1759, 1764, 0), + (1767, 1768, 0), + (1770, 1773, 0), + (1807, 1807, 0), + (1809, 1809, 0), + (1840, 1866, 0), + (1958, 1968, 0), + (2027, 2035, 0), + (2045, 2045, 0), + (2070, 2073, 0), + (2075, 2083, 0), + (2085, 2087, 0), + (2089, 2093, 0), + (2137, 2139, 0), + (2192, 2193, 0), + (2199, 2207, 0), + (2250, 2307, 0), + (2362, 2364, 0), + (2366, 2383, 0), + (2385, 2391, 0), + (2402, 2403, 0), + (2433, 2435, 0), + (2492, 2492, 0), + (2494, 2500, 0), + (2503, 2504, 0), + (2507, 2509, 0), + (2519, 2519, 0), + (2530, 2531, 0), + (2558, 2558, 0), + (2561, 2563, 0), + (2620, 2620, 0), + (2622, 2626, 0), + (2631, 2632, 0), + (2635, 2637, 0), + (2641, 2641, 0), + (2672, 2673, 0), + (2677, 2677, 0), + (2689, 2691, 0), + (2748, 2748, 0), + (2750, 2757, 0), + (2759, 2761, 0), + (2763, 2765, 0), + (2786, 2787, 0), + (2810, 2815, 0), + (2817, 2819, 0), + (2876, 2876, 0), + (2878, 2884, 0), + (2887, 2888, 0), + (2891, 2893, 0), + (2901, 2903, 0), + (2914, 2915, 0), + (2946, 2946, 0), + (3006, 3010, 0), + (3014, 3016, 0), + (3018, 3021, 0), + (3031, 3031, 0), + (3072, 3076, 0), + (3132, 3132, 0), + (3134, 3140, 0), + (3142, 3144, 0), + (3146, 3149, 0), + (3157, 3158, 0), + (3170, 3171, 0), + (3201, 3203, 0), + (3260, 3260, 0), + (3262, 3268, 0), + (3270, 3272, 0), + (3274, 3277, 0), + (3285, 3286, 0), + (3298, 3299, 0), + (3315, 3315, 0), + (3328, 3331, 0), + (3387, 3388, 0), + (3390, 3396, 0), + (3398, 3400, 0), + (3402, 3405, 0), + (3415, 3415, 0), + (3426, 3427, 0), + (3457, 3459, 0), + (3530, 3530, 0), + (3535, 3540, 0), + (3542, 3542, 0), + (3544, 3551, 0), + (3570, 3571, 0), + (3633, 3633, 0), + (3636, 3642, 0), + (3655, 3662, 0), + (3761, 3761, 0), + (3764, 3772, 0), + (3784, 3790, 0), + (3864, 3865, 0), + (3893, 3893, 0), + (3895, 3895, 0), + (3897, 3897, 0), + (3902, 3903, 0), + (3953, 3972, 0), + (3974, 3975, 0), + (3981, 3991, 0), + (3993, 4028, 0), + (4038, 4038, 0), + (4139, 4158, 0), + (4182, 4185, 0), + (4190, 4192, 0), + (4194, 4196, 0), + (4199, 4205, 0), + (4209, 4212, 0), + (4226, 4237, 0), + (4239, 4239, 0), + (4250, 4253, 0), + (4352, 4447, 2), + (4448, 4607, 0), + (4957, 4959, 0), + (5906, 5909, 0), + (5938, 5940, 0), + (5970, 5971, 0), + (6002, 6003, 0), + (6068, 6099, 0), + (6109, 6109, 0), + (6155, 6159, 0), + (6277, 6278, 0), + (6313, 6313, 0), + (6432, 6443, 0), + (6448, 6459, 0), + (6679, 6683, 0), + (6741, 6750, 0), + (6752, 6780, 0), + (6783, 6783, 0), + (6832, 6862, 0), + (6912, 6916, 0), + (6964, 6980, 0), + (7019, 7027, 0), + (7040, 7042, 0), + (7073, 7085, 0), + (7142, 7155, 0), + (7204, 7223, 0), + (7376, 7378, 0), + (7380, 7400, 0), + (7405, 7405, 0), + (7412, 7412, 0), + (7415, 7417, 0), + (7616, 7679, 0), + (8203, 8207, 0), + (8232, 8238, 0), + (8288, 8292, 0), + (8294, 8303, 0), + (8400, 8432, 0), + (8986, 8987, 2), + (9001, 9002, 2), + (9193, 9196, 2), + (9200, 9200, 2), + (9203, 9203, 2), + (9725, 9726, 2), + (9748, 9749, 2), + (9776, 9783, 2), + (9800, 9811, 2), + (9855, 9855, 2), + (9866, 9871, 2), + (9875, 9875, 2), + (9889, 9889, 2), + (9898, 9899, 2), + (9917, 9918, 2), + (9924, 9925, 2), + (9934, 9934, 2), + (9940, 9940, 2), + (9962, 9962, 2), + (9970, 9971, 2), + (9973, 9973, 2), + (9978, 9978, 2), + (9981, 9981, 2), + (9989, 9989, 2), + (9994, 9995, 2), + (10024, 10024, 2), + (10060, 10060, 2), + (10062, 10062, 2), + (10067, 10069, 2), + (10071, 10071, 2), + (10133, 10135, 2), + (10160, 10160, 2), + (10175, 10175, 2), + (11035, 11036, 2), + (11088, 11088, 2), + (11093, 11093, 2), + (11503, 11505, 0), + (11647, 11647, 0), + (11744, 11775, 0), + (11904, 11929, 2), + (11931, 12019, 2), + (12032, 12245, 2), + (12272, 12329, 2), + (12330, 12335, 0), + (12336, 12350, 2), + (12353, 12438, 2), + (12441, 12442, 0), + (12443, 12543, 2), + (12549, 12591, 2), + (12593, 12686, 2), + (12688, 12773, 2), + (12783, 12830, 2), + (12832, 12871, 2), + (12880, 42124, 2), + (42128, 42182, 2), + (42607, 42610, 0), + (42612, 42621, 0), + (42654, 42655, 0), + (42736, 42737, 0), + (43010, 43010, 0), + (43014, 43014, 0), + (43019, 43019, 0), + (43043, 43047, 0), + (43052, 43052, 0), + (43136, 43137, 0), + (43188, 43205, 0), + (43232, 43249, 0), + (43263, 43263, 0), + (43302, 43309, 0), + (43335, 43347, 0), + (43360, 43388, 2), + (43392, 43395, 0), + (43443, 43456, 0), + (43493, 43493, 0), + (43561, 43574, 0), + (43587, 43587, 0), + (43596, 43597, 0), + (43643, 43645, 0), + (43696, 43696, 0), + (43698, 43700, 0), + (43703, 43704, 0), + (43710, 43711, 0), + (43713, 43713, 0), + (43755, 43759, 0), + (43765, 43766, 0), + (44003, 44010, 0), + (44012, 44013, 0), + (44032, 55203, 2), + (55216, 55295, 0), + (63744, 64255, 2), + (64286, 64286, 0), + (65024, 65039, 0), + (65040, 65049, 2), + (65056, 65071, 0), + (65072, 65106, 2), + (65108, 65126, 2), + (65128, 65131, 2), + (65279, 65279, 0), + (65281, 65376, 2), + (65504, 65510, 2), + (65529, 65531, 0), + (66045, 66045, 0), + (66272, 66272, 0), + (66422, 66426, 0), + (68097, 68099, 0), + (68101, 68102, 0), + (68108, 68111, 0), + (68152, 68154, 0), + (68159, 68159, 0), + (68325, 68326, 0), + (68900, 68903, 0), + (68969, 68973, 0), + (69291, 69292, 0), + (69372, 69375, 0), + (69446, 69456, 0), + (69506, 69509, 0), + (69632, 69634, 0), + (69688, 69702, 0), + (69744, 69744, 0), + (69747, 69748, 0), + (69759, 69762, 0), + (69808, 69818, 0), + (69821, 69821, 0), + (69826, 69826, 0), + (69837, 69837, 0), + (69888, 69890, 0), + (69927, 69940, 0), + (69957, 69958, 0), + (70003, 70003, 0), + (70016, 70018, 0), + (70067, 70080, 0), + (70089, 70092, 0), + (70094, 70095, 0), + (70188, 70199, 0), + (70206, 70206, 0), + (70209, 70209, 0), + (70367, 70378, 0), + (70400, 70403, 0), + (70459, 70460, 0), + (70462, 70468, 0), + (70471, 70472, 0), + (70475, 70477, 0), + (70487, 70487, 0), + (70498, 70499, 0), + (70502, 70508, 0), + (70512, 70516, 0), + (70584, 70592, 0), + (70594, 70594, 0), + (70597, 70597, 0), + (70599, 70602, 0), + (70604, 70608, 0), + (70610, 70610, 0), + (70625, 70626, 0), + (70709, 70726, 0), + (70750, 70750, 0), + (70832, 70851, 0), + (71087, 71093, 0), + (71096, 71104, 0), + (71132, 71133, 0), + (71216, 71232, 0), + (71339, 71351, 0), + (71453, 71467, 0), + (71724, 71738, 0), + (71984, 71989, 0), + (71991, 71992, 0), + (71995, 71998, 0), + (72000, 72000, 0), + (72002, 72003, 0), + (72145, 72151, 0), + (72154, 72160, 0), + (72164, 72164, 0), + (72193, 72202, 0), + (72243, 72249, 0), + (72251, 72254, 0), + (72263, 72263, 0), + (72273, 72283, 0), + (72330, 72345, 0), + (72751, 72758, 0), + (72760, 72767, 0), + (72850, 72871, 0), + (72873, 72886, 0), + (73009, 73014, 0), + (73018, 73018, 0), + (73020, 73021, 0), + (73023, 73029, 0), + (73031, 73031, 0), + (73098, 73102, 0), + (73104, 73105, 0), + (73107, 73111, 0), + (73459, 73462, 0), + (73472, 73473, 0), + (73475, 73475, 0), + (73524, 73530, 0), + (73534, 73538, 0), + (73562, 73562, 0), + (78896, 78912, 0), + (78919, 78933, 0), + (90398, 90415, 0), + (92912, 92916, 0), + (92976, 92982, 0), + (94031, 94031, 0), + (94033, 94087, 0), + (94095, 94098, 0), + (94176, 94179, 2), + (94180, 94180, 0), + (94192, 94193, 0), + (94208, 100343, 2), + (100352, 101589, 2), + (101631, 101640, 2), + (110576, 110579, 2), + (110581, 110587, 2), + (110589, 110590, 2), + (110592, 110882, 2), + (110898, 110898, 2), + (110928, 110930, 2), + (110933, 110933, 2), + (110948, 110951, 2), + (110960, 111355, 2), + (113821, 113822, 0), + (113824, 113827, 0), + (118528, 118573, 0), + (118576, 118598, 0), + (119141, 119145, 0), + (119149, 119170, 0), + (119173, 119179, 0), + (119210, 119213, 0), + (119362, 119364, 0), + (119552, 119638, 2), + (119648, 119670, 2), + (121344, 121398, 0), + (121403, 121452, 0), + (121461, 121461, 0), + (121476, 121476, 0), + (121499, 121503, 0), + (121505, 121519, 0), + (122880, 122886, 0), + (122888, 122904, 0), + (122907, 122913, 0), + (122915, 122916, 0), + (122918, 122922, 0), + (123023, 123023, 0), + (123184, 123190, 0), + (123566, 123566, 0), + (123628, 123631, 0), + (124140, 124143, 0), + (124398, 124399, 0), + (125136, 125142, 0), + (125252, 125258, 0), + (126980, 126980, 2), + (127183, 127183, 2), + (127374, 127374, 2), + (127377, 127386, 2), + (127488, 127490, 2), + (127504, 127547, 2), + (127552, 127560, 2), + (127568, 127569, 2), + (127584, 127589, 2), + (127744, 127776, 2), + (127789, 127797, 2), + (127799, 127868, 2), + (127870, 127891, 2), + (127904, 127946, 2), + (127951, 127955, 2), + (127968, 127984, 2), + (127988, 127988, 2), + (127992, 127994, 2), + (127995, 127999, 0), + (128000, 128062, 2), + (128064, 128064, 2), + (128066, 128252, 2), + (128255, 128317, 2), + (128331, 128334, 2), + (128336, 128359, 2), + (128378, 128378, 2), + (128405, 128406, 2), + (128420, 128420, 2), + (128507, 128591, 2), + (128640, 128709, 2), + (128716, 128716, 2), + (128720, 128722, 2), + (128725, 128727, 2), + (128732, 128735, 2), + (128747, 128748, 2), + (128756, 128764, 2), + (128992, 129003, 2), + (129008, 129008, 2), + (129292, 129338, 2), + (129340, 129349, 2), + (129351, 129535, 2), + (129648, 129660, 2), + (129664, 129673, 2), + (129679, 129734, 2), + (129742, 129756, 2), + (129759, 129769, 2), + (129776, 129784, 2), + (131072, 196605, 2), + (196608, 262141, 2), + (917505, 917505, 0), + (917536, 917631, 0), + (917760, 917999, 0), + ], + narrow_to_wide=frozenset( + { + 9728, + 9729, + 9730, + 9731, + 11013, + 11014, + 9992, + 9996, + 9762, + 127780, + 127781, + 127782, + 127783, + 127784, + 127785, + 127786, + 127787, + 9774, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 9784, + 9785, + 10035, + 10548, + 128329, + 9823, + 10083, + 9829, + 128367, + 127344, + 128371, + 128372, + 128373, + 128374, + 128375, + 128376, + 127358, + 128394, + 128395, + 128396, + 9876, + 9877, + 9878, + 8596, + 8597, + 8598, + 8599, + 9883, + 8600, + 127894, + 127897, + 127898, + 127902, + 8617, + 9642, + 9904, + 128433, + 128450, + 128451, + 127947, + 127948, + 128717, + 128718, + 127949, + 128465, + 128466, + 127956, + 127957, + 127958, + 127959, + 127960, + 127961, + 127962, + 127963, + 127964, + 127965, + 127966, + 128476, + 128736, + 128737, + 128738, + 128739, + 128740, + 128477, + 9208, + 9197, + 9198, + 9968, + 9201, + 9975, + 9976, + 9209, + 9723, + } + ), +) diff --git a/rich/_unicode_data/unicode17-0-0.py b/rich/_unicode_data/unicode17-0-0.py new file mode 100644 index 0000000000..59959bfd44 --- /dev/null +++ b/rich/_unicode_data/unicode17-0-0.py @@ -0,0 +1,581 @@ +# Auto generated by tools/make_width_tables.py + +from rich.cell_string import CellTable + +cell_table = CellTable( + unicode_version="17.0.0", + widths=[ + (0, 0, 0), + (768, 879, 0), + (1155, 1161, 0), + (1425, 1469, 0), + (1471, 1471, 0), + (1473, 1474, 0), + (1476, 1477, 0), + (1479, 1479, 0), + (1536, 1541, 0), + (1552, 1562, 0), + (1564, 1564, 0), + (1611, 1631, 0), + (1648, 1648, 0), + (1750, 1757, 0), + (1759, 1764, 0), + (1767, 1768, 0), + (1770, 1773, 0), + (1807, 1807, 0), + (1809, 1809, 0), + (1840, 1866, 0), + (1958, 1968, 0), + (2027, 2035, 0), + (2045, 2045, 0), + (2070, 2073, 0), + (2075, 2083, 0), + (2085, 2087, 0), + (2089, 2093, 0), + (2137, 2139, 0), + (2192, 2193, 0), + (2199, 2207, 0), + (2250, 2307, 0), + (2362, 2364, 0), + (2366, 2383, 0), + (2385, 2391, 0), + (2402, 2403, 0), + (2433, 2435, 0), + (2492, 2492, 0), + (2494, 2500, 0), + (2503, 2504, 0), + (2507, 2509, 0), + (2519, 2519, 0), + (2530, 2531, 0), + (2558, 2558, 0), + (2561, 2563, 0), + (2620, 2620, 0), + (2622, 2626, 0), + (2631, 2632, 0), + (2635, 2637, 0), + (2641, 2641, 0), + (2672, 2673, 0), + (2677, 2677, 0), + (2689, 2691, 0), + (2748, 2748, 0), + (2750, 2757, 0), + (2759, 2761, 0), + (2763, 2765, 0), + (2786, 2787, 0), + (2810, 2815, 0), + (2817, 2819, 0), + (2876, 2876, 0), + (2878, 2884, 0), + (2887, 2888, 0), + (2891, 2893, 0), + (2901, 2903, 0), + (2914, 2915, 0), + (2946, 2946, 0), + (3006, 3010, 0), + (3014, 3016, 0), + (3018, 3021, 0), + (3031, 3031, 0), + (3072, 3076, 0), + (3132, 3132, 0), + (3134, 3140, 0), + (3142, 3144, 0), + (3146, 3149, 0), + (3157, 3158, 0), + (3170, 3171, 0), + (3201, 3203, 0), + (3260, 3260, 0), + (3262, 3268, 0), + (3270, 3272, 0), + (3274, 3277, 0), + (3285, 3286, 0), + (3298, 3299, 0), + (3315, 3315, 0), + (3328, 3331, 0), + (3387, 3388, 0), + (3390, 3396, 0), + (3398, 3400, 0), + (3402, 3405, 0), + (3415, 3415, 0), + (3426, 3427, 0), + (3457, 3459, 0), + (3530, 3530, 0), + (3535, 3540, 0), + (3542, 3542, 0), + (3544, 3551, 0), + (3570, 3571, 0), + (3633, 3633, 0), + (3636, 3642, 0), + (3655, 3662, 0), + (3761, 3761, 0), + (3764, 3772, 0), + (3784, 3790, 0), + (3864, 3865, 0), + (3893, 3893, 0), + (3895, 3895, 0), + (3897, 3897, 0), + (3902, 3903, 0), + (3953, 3972, 0), + (3974, 3975, 0), + (3981, 3991, 0), + (3993, 4028, 0), + (4038, 4038, 0), + (4139, 4158, 0), + (4182, 4185, 0), + (4190, 4192, 0), + (4194, 4196, 0), + (4199, 4205, 0), + (4209, 4212, 0), + (4226, 4237, 0), + (4239, 4239, 0), + (4250, 4253, 0), + (4352, 4447, 2), + (4448, 4607, 0), + (4957, 4959, 0), + (5906, 5909, 0), + (5938, 5940, 0), + (5970, 5971, 0), + (6002, 6003, 0), + (6068, 6099, 0), + (6109, 6109, 0), + (6155, 6159, 0), + (6277, 6278, 0), + (6313, 6313, 0), + (6432, 6443, 0), + (6448, 6459, 0), + (6679, 6683, 0), + (6741, 6750, 0), + (6752, 6780, 0), + (6783, 6783, 0), + (6832, 6877, 0), + (6880, 6891, 0), + (6912, 6916, 0), + (6964, 6980, 0), + (7019, 7027, 0), + (7040, 7042, 0), + (7073, 7085, 0), + (7142, 7155, 0), + (7204, 7223, 0), + (7376, 7378, 0), + (7380, 7400, 0), + (7405, 7405, 0), + (7412, 7412, 0), + (7415, 7417, 0), + (7616, 7679, 0), + (8203, 8207, 0), + (8232, 8238, 0), + (8288, 8292, 0), + (8294, 8303, 0), + (8400, 8432, 0), + (8986, 8987, 2), + (9001, 9002, 2), + (9193, 9196, 2), + (9200, 9200, 2), + (9203, 9203, 2), + (9725, 9726, 2), + (9748, 9749, 2), + (9776, 9783, 2), + (9800, 9811, 2), + (9855, 9855, 2), + (9866, 9871, 2), + (9875, 9875, 2), + (9889, 9889, 2), + (9898, 9899, 2), + (9917, 9918, 2), + (9924, 9925, 2), + (9934, 9934, 2), + (9940, 9940, 2), + (9962, 9962, 2), + (9970, 9971, 2), + (9973, 9973, 2), + (9978, 9978, 2), + (9981, 9981, 2), + (9989, 9989, 2), + (9994, 9995, 2), + (10024, 10024, 2), + (10060, 10060, 2), + (10062, 10062, 2), + (10067, 10069, 2), + (10071, 10071, 2), + (10133, 10135, 2), + (10160, 10160, 2), + (10175, 10175, 2), + (11035, 11036, 2), + (11088, 11088, 2), + (11093, 11093, 2), + (11503, 11505, 0), + (11647, 11647, 0), + (11744, 11775, 0), + (11904, 11929, 2), + (11931, 12019, 2), + (12032, 12245, 2), + (12272, 12329, 2), + (12330, 12335, 0), + (12336, 12350, 2), + (12353, 12438, 2), + (12441, 12442, 0), + (12443, 12543, 2), + (12549, 12591, 2), + (12593, 12686, 2), + (12688, 12773, 2), + (12783, 12830, 2), + (12832, 12871, 2), + (12880, 42124, 2), + (42128, 42182, 2), + (42607, 42610, 0), + (42612, 42621, 0), + (42654, 42655, 0), + (42736, 42737, 0), + (43010, 43010, 0), + (43014, 43014, 0), + (43019, 43019, 0), + (43043, 43047, 0), + (43052, 43052, 0), + (43136, 43137, 0), + (43188, 43205, 0), + (43232, 43249, 0), + (43263, 43263, 0), + (43302, 43309, 0), + (43335, 43347, 0), + (43360, 43388, 2), + (43392, 43395, 0), + (43443, 43456, 0), + (43493, 43493, 0), + (43561, 43574, 0), + (43587, 43587, 0), + (43596, 43597, 0), + (43643, 43645, 0), + (43696, 43696, 0), + (43698, 43700, 0), + (43703, 43704, 0), + (43710, 43711, 0), + (43713, 43713, 0), + (43755, 43759, 0), + (43765, 43766, 0), + (44003, 44010, 0), + (44012, 44013, 0), + (44032, 55203, 2), + (55216, 55295, 0), + (63744, 64255, 2), + (64286, 64286, 0), + (65024, 65039, 0), + (65040, 65049, 2), + (65056, 65071, 0), + (65072, 65106, 2), + (65108, 65126, 2), + (65128, 65131, 2), + (65279, 65279, 0), + (65281, 65376, 2), + (65504, 65510, 2), + (65529, 65531, 0), + (66045, 66045, 0), + (66272, 66272, 0), + (66422, 66426, 0), + (68097, 68099, 0), + (68101, 68102, 0), + (68108, 68111, 0), + (68152, 68154, 0), + (68159, 68159, 0), + (68325, 68326, 0), + (68900, 68903, 0), + (68969, 68973, 0), + (69291, 69292, 0), + (69370, 69375, 0), + (69446, 69456, 0), + (69506, 69509, 0), + (69632, 69634, 0), + (69688, 69702, 0), + (69744, 69744, 0), + (69747, 69748, 0), + (69759, 69762, 0), + (69808, 69818, 0), + (69821, 69821, 0), + (69826, 69826, 0), + (69837, 69837, 0), + (69888, 69890, 0), + (69927, 69940, 0), + (69957, 69958, 0), + (70003, 70003, 0), + (70016, 70018, 0), + (70067, 70080, 0), + (70089, 70092, 0), + (70094, 70095, 0), + (70188, 70199, 0), + (70206, 70206, 0), + (70209, 70209, 0), + (70367, 70378, 0), + (70400, 70403, 0), + (70459, 70460, 0), + (70462, 70468, 0), + (70471, 70472, 0), + (70475, 70477, 0), + (70487, 70487, 0), + (70498, 70499, 0), + (70502, 70508, 0), + (70512, 70516, 0), + (70584, 70592, 0), + (70594, 70594, 0), + (70597, 70597, 0), + (70599, 70602, 0), + (70604, 70608, 0), + (70610, 70610, 0), + (70625, 70626, 0), + (70709, 70726, 0), + (70750, 70750, 0), + (70832, 70851, 0), + (71087, 71093, 0), + (71096, 71104, 0), + (71132, 71133, 0), + (71216, 71232, 0), + (71339, 71351, 0), + (71453, 71467, 0), + (71724, 71738, 0), + (71984, 71989, 0), + (71991, 71992, 0), + (71995, 71998, 0), + (72000, 72000, 0), + (72002, 72003, 0), + (72145, 72151, 0), + (72154, 72160, 0), + (72164, 72164, 0), + (72193, 72202, 0), + (72243, 72249, 0), + (72251, 72254, 0), + (72263, 72263, 0), + (72273, 72283, 0), + (72330, 72345, 0), + (72544, 72551, 0), + (72751, 72758, 0), + (72760, 72767, 0), + (72850, 72871, 0), + (72873, 72886, 0), + (73009, 73014, 0), + (73018, 73018, 0), + (73020, 73021, 0), + (73023, 73029, 0), + (73031, 73031, 0), + (73098, 73102, 0), + (73104, 73105, 0), + (73107, 73111, 0), + (73459, 73462, 0), + (73472, 73473, 0), + (73475, 73475, 0), + (73524, 73530, 0), + (73534, 73538, 0), + (73562, 73562, 0), + (78896, 78912, 0), + (78919, 78933, 0), + (90398, 90415, 0), + (92912, 92916, 0), + (92976, 92982, 0), + (94031, 94031, 0), + (94033, 94087, 0), + (94095, 94098, 0), + (94176, 94179, 2), + (94180, 94180, 0), + (94192, 94193, 0), + (94194, 94198, 2), + (94208, 101589, 2), + (101631, 101662, 2), + (101760, 101874, 2), + (110576, 110579, 2), + (110581, 110587, 2), + (110589, 110590, 2), + (110592, 110882, 2), + (110898, 110898, 2), + (110928, 110930, 2), + (110933, 110933, 2), + (110948, 110951, 2), + (110960, 111355, 2), + (113821, 113822, 0), + (113824, 113827, 0), + (118528, 118573, 0), + (118576, 118598, 0), + (119141, 119145, 0), + (119149, 119170, 0), + (119173, 119179, 0), + (119210, 119213, 0), + (119362, 119364, 0), + (119552, 119638, 2), + (119648, 119670, 2), + (121344, 121398, 0), + (121403, 121452, 0), + (121461, 121461, 0), + (121476, 121476, 0), + (121499, 121503, 0), + (121505, 121519, 0), + (122880, 122886, 0), + (122888, 122904, 0), + (122907, 122913, 0), + (122915, 122916, 0), + (122918, 122922, 0), + (123023, 123023, 0), + (123184, 123190, 0), + (123566, 123566, 0), + (123628, 123631, 0), + (124140, 124143, 0), + (124398, 124399, 0), + (124643, 124643, 0), + (124646, 124646, 0), + (124654, 124655, 0), + (124661, 124661, 0), + (125136, 125142, 0), + (125252, 125258, 0), + (126980, 126980, 2), + (127183, 127183, 2), + (127374, 127374, 2), + (127377, 127386, 2), + (127488, 127490, 2), + (127504, 127547, 2), + (127552, 127560, 2), + (127568, 127569, 2), + (127584, 127589, 2), + (127744, 127776, 2), + (127789, 127797, 2), + (127799, 127868, 2), + (127870, 127891, 2), + (127904, 127946, 2), + (127951, 127955, 2), + (127968, 127984, 2), + (127988, 127988, 2), + (127992, 127994, 2), + (127995, 127999, 0), + (128000, 128062, 2), + (128064, 128064, 2), + (128066, 128252, 2), + (128255, 128317, 2), + (128331, 128334, 2), + (128336, 128359, 2), + (128378, 128378, 2), + (128405, 128406, 2), + (128420, 128420, 2), + (128507, 128591, 2), + (128640, 128709, 2), + (128716, 128716, 2), + (128720, 128722, 2), + (128725, 128728, 2), + (128732, 128735, 2), + (128747, 128748, 2), + (128756, 128764, 2), + (128992, 129003, 2), + (129008, 129008, 2), + (129292, 129338, 2), + (129340, 129349, 2), + (129351, 129535, 2), + (129648, 129660, 2), + (129664, 129674, 2), + (129678, 129734, 2), + (129736, 129736, 2), + (129741, 129756, 2), + (129759, 129770, 2), + (129775, 129784, 2), + (131072, 196605, 2), + (196608, 262141, 2), + (917505, 917505, 0), + (917536, 917631, 0), + (917760, 917999, 0), + ], + narrow_to_wide=frozenset( + { + 9728, + 9729, + 9730, + 9731, + 11013, + 11014, + 9992, + 9996, + 9762, + 127780, + 127781, + 127782, + 127783, + 127784, + 127785, + 127786, + 127787, + 9774, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 9784, + 9785, + 10035, + 10548, + 128329, + 9823, + 10083, + 9829, + 128367, + 127344, + 128371, + 128372, + 128373, + 128374, + 128375, + 128376, + 127358, + 128394, + 128395, + 128396, + 9876, + 9877, + 9878, + 8596, + 8597, + 8598, + 8599, + 9883, + 8600, + 127894, + 127897, + 127898, + 127902, + 8617, + 9642, + 9904, + 128433, + 128450, + 128451, + 127947, + 127948, + 128717, + 128718, + 127949, + 128465, + 128466, + 127956, + 127957, + 127958, + 127959, + 127960, + 127961, + 127962, + 127963, + 127964, + 127965, + 127966, + 128476, + 128736, + 128737, + 128738, + 128739, + 128740, + 128477, + 9208, + 9197, + 9198, + 9968, + 9201, + 9975, + 9976, + 9209, + 9723, + } + ), +) diff --git a/rich/_unicode_data/unicode4-1-0.py b/rich/_unicode_data/unicode4-1-0.py new file mode 100644 index 0000000000..f500c8c7be --- /dev/null +++ b/rich/_unicode_data/unicode4-1-0.py @@ -0,0 +1,291 @@ +# Auto generated by tools/make_width_tables.py + +from rich.cell_string import CellTable + +cell_table = CellTable( + unicode_version="4.1.0", + widths=[ + (0, 0, 0), + (768, 879, 0), + (1155, 1158, 0), + (1160, 1161, 0), + (1425, 1465, 0), + (1467, 1469, 0), + (1471, 1471, 0), + (1473, 1474, 0), + (1476, 1477, 0), + (1479, 1479, 0), + (1536, 1539, 0), + (1552, 1557, 0), + (1611, 1630, 0), + (1648, 1648, 0), + (1750, 1764, 0), + (1767, 1768, 0), + (1770, 1773, 0), + (1807, 1807, 0), + (1809, 1809, 0), + (1840, 1866, 0), + (1958, 1968, 0), + (2305, 2307, 0), + (2364, 2364, 0), + (2366, 2381, 0), + (2385, 2388, 0), + (2402, 2403, 0), + (2433, 2435, 0), + (2492, 2492, 0), + (2494, 2500, 0), + (2503, 2504, 0), + (2507, 2509, 0), + (2519, 2519, 0), + (2530, 2531, 0), + (2561, 2563, 0), + (2620, 2620, 0), + (2622, 2626, 0), + (2631, 2632, 0), + (2635, 2637, 0), + (2672, 2673, 0), + (2689, 2691, 0), + (2748, 2748, 0), + (2750, 2757, 0), + (2759, 2761, 0), + (2763, 2765, 0), + (2786, 2787, 0), + (2817, 2819, 0), + (2876, 2876, 0), + (2878, 2883, 0), + (2887, 2888, 0), + (2891, 2893, 0), + (2902, 2903, 0), + (2946, 2946, 0), + (3006, 3010, 0), + (3014, 3016, 0), + (3018, 3021, 0), + (3031, 3031, 0), + (3073, 3075, 0), + (3134, 3140, 0), + (3142, 3144, 0), + (3146, 3149, 0), + (3157, 3158, 0), + (3202, 3203, 0), + (3260, 3260, 0), + (3262, 3268, 0), + (3270, 3272, 0), + (3274, 3277, 0), + (3285, 3286, 0), + (3330, 3331, 0), + (3390, 3395, 0), + (3398, 3400, 0), + (3402, 3405, 0), + (3415, 3415, 0), + (3458, 3459, 0), + (3530, 3530, 0), + (3535, 3540, 0), + (3542, 3542, 0), + (3544, 3551, 0), + (3570, 3571, 0), + (3633, 3633, 0), + (3636, 3642, 0), + (3655, 3662, 0), + (3761, 3761, 0), + (3764, 3769, 0), + (3771, 3772, 0), + (3784, 3789, 0), + (3864, 3865, 0), + (3893, 3893, 0), + (3895, 3895, 0), + (3897, 3897, 0), + (3902, 3903, 0), + (3953, 3972, 0), + (3974, 3975, 0), + (3984, 3991, 0), + (3993, 4028, 0), + (4038, 4038, 0), + (4140, 4146, 0), + (4150, 4153, 0), + (4182, 4185, 0), + (4352, 4441, 2), + (4447, 4447, 2), + (4448, 4607, 0), + (4959, 4959, 0), + (5906, 5908, 0), + (5938, 5940, 0), + (5970, 5971, 0), + (6002, 6003, 0), + (6068, 6099, 0), + (6109, 6109, 0), + (6155, 6157, 0), + (6313, 6313, 0), + (6432, 6443, 0), + (6448, 6459, 0), + (6576, 6592, 0), + (6600, 6601, 0), + (6679, 6683, 0), + (7616, 7619, 0), + (8203, 8207, 0), + (8232, 8238, 0), + (8288, 8291, 0), + (8298, 8303, 0), + (8400, 8427, 0), + (9001, 9002, 2), + (11904, 11929, 2), + (11931, 12019, 2), + (12032, 12245, 2), + (12272, 12283, 2), + (12288, 12329, 2), + (12330, 12335, 0), + (12336, 12350, 2), + (12353, 12438, 2), + (12441, 12442, 0), + (12443, 12543, 2), + (12549, 12588, 2), + (12593, 12686, 2), + (12688, 12727, 2), + (12736, 12751, 2), + (12784, 12830, 2), + (12832, 12867, 2), + (12880, 13054, 2), + (13056, 19893, 2), + (19968, 40891, 2), + (40960, 42124, 2), + (42128, 42182, 2), + (43010, 43010, 0), + (43014, 43014, 0), + (43019, 43019, 0), + (43043, 43047, 0), + (44032, 55203, 2), + (55216, 55295, 0), + (63744, 64045, 2), + (64048, 64106, 2), + (64112, 64217, 2), + (64286, 64286, 0), + (65024, 65039, 0), + (65040, 65049, 2), + (65056, 65059, 0), + (65072, 65106, 2), + (65108, 65126, 2), + (65128, 65131, 2), + (65279, 65279, 0), + (65281, 65376, 2), + (65504, 65510, 2), + (65529, 65531, 0), + (68097, 68099, 0), + (68101, 68102, 0), + (68108, 68111, 0), + (68152, 68154, 0), + (68159, 68159, 0), + (119141, 119145, 0), + (119149, 119170, 0), + (119173, 119179, 0), + (119210, 119213, 0), + (119362, 119364, 0), + (131072, 196605, 2), + (196608, 262141, 2), + (917505, 917505, 0), + (917536, 917631, 0), + (917760, 917999, 0), + ], + narrow_to_wide=frozenset( + { + 9728, + 9729, + 9730, + 9731, + 11013, + 11014, + 9992, + 9996, + 9762, + 127780, + 127781, + 127782, + 127783, + 127784, + 127785, + 127786, + 127787, + 9774, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 9784, + 9785, + 10035, + 10548, + 128329, + 9823, + 10083, + 9829, + 128367, + 127344, + 128371, + 128372, + 128373, + 128374, + 128375, + 128376, + 127358, + 128394, + 128395, + 128396, + 9876, + 9877, + 9878, + 8596, + 8597, + 8598, + 8599, + 9883, + 8600, + 127894, + 127897, + 127898, + 127902, + 8617, + 9642, + 9904, + 128433, + 128450, + 128451, + 127947, + 127948, + 128717, + 128718, + 127949, + 128465, + 128466, + 127956, + 127957, + 127958, + 127959, + 127960, + 127961, + 127962, + 127963, + 127964, + 127965, + 127966, + 128476, + 128736, + 128737, + 128738, + 128739, + 128740, + 128477, + 9208, + 9197, + 9198, + 9968, + 9201, + 9975, + 9976, + 9209, + 9723, + } + ), +) diff --git a/rich/_unicode_data/unicode5-0-0.py b/rich/_unicode_data/unicode5-0-0.py new file mode 100644 index 0000000000..5574a44e70 --- /dev/null +++ b/rich/_unicode_data/unicode5-0-0.py @@ -0,0 +1,296 @@ +# Auto generated by tools/make_width_tables.py + +from rich.cell_string import CellTable + +cell_table = CellTable( + unicode_version="5.0.0", + widths=[ + (0, 0, 0), + (768, 879, 0), + (1155, 1158, 0), + (1160, 1161, 0), + (1425, 1469, 0), + (1471, 1471, 0), + (1473, 1474, 0), + (1476, 1477, 0), + (1479, 1479, 0), + (1536, 1539, 0), + (1552, 1557, 0), + (1611, 1630, 0), + (1648, 1648, 0), + (1750, 1764, 0), + (1767, 1768, 0), + (1770, 1773, 0), + (1807, 1807, 0), + (1809, 1809, 0), + (1840, 1866, 0), + (1958, 1968, 0), + (2027, 2035, 0), + (2305, 2307, 0), + (2364, 2364, 0), + (2366, 2381, 0), + (2385, 2388, 0), + (2402, 2403, 0), + (2433, 2435, 0), + (2492, 2492, 0), + (2494, 2500, 0), + (2503, 2504, 0), + (2507, 2509, 0), + (2519, 2519, 0), + (2530, 2531, 0), + (2561, 2563, 0), + (2620, 2620, 0), + (2622, 2626, 0), + (2631, 2632, 0), + (2635, 2637, 0), + (2672, 2673, 0), + (2689, 2691, 0), + (2748, 2748, 0), + (2750, 2757, 0), + (2759, 2761, 0), + (2763, 2765, 0), + (2786, 2787, 0), + (2817, 2819, 0), + (2876, 2876, 0), + (2878, 2883, 0), + (2887, 2888, 0), + (2891, 2893, 0), + (2902, 2903, 0), + (2946, 2946, 0), + (3006, 3010, 0), + (3014, 3016, 0), + (3018, 3021, 0), + (3031, 3031, 0), + (3073, 3075, 0), + (3134, 3140, 0), + (3142, 3144, 0), + (3146, 3149, 0), + (3157, 3158, 0), + (3202, 3203, 0), + (3260, 3260, 0), + (3262, 3268, 0), + (3270, 3272, 0), + (3274, 3277, 0), + (3285, 3286, 0), + (3298, 3299, 0), + (3330, 3331, 0), + (3390, 3395, 0), + (3398, 3400, 0), + (3402, 3405, 0), + (3415, 3415, 0), + (3458, 3459, 0), + (3530, 3530, 0), + (3535, 3540, 0), + (3542, 3542, 0), + (3544, 3551, 0), + (3570, 3571, 0), + (3633, 3633, 0), + (3636, 3642, 0), + (3655, 3662, 0), + (3761, 3761, 0), + (3764, 3769, 0), + (3771, 3772, 0), + (3784, 3789, 0), + (3864, 3865, 0), + (3893, 3893, 0), + (3895, 3895, 0), + (3897, 3897, 0), + (3902, 3903, 0), + (3953, 3972, 0), + (3974, 3975, 0), + (3984, 3991, 0), + (3993, 4028, 0), + (4038, 4038, 0), + (4140, 4146, 0), + (4150, 4153, 0), + (4182, 4185, 0), + (4352, 4441, 2), + (4447, 4447, 2), + (4448, 4607, 0), + (4959, 4959, 0), + (5906, 5908, 0), + (5938, 5940, 0), + (5970, 5971, 0), + (6002, 6003, 0), + (6068, 6099, 0), + (6109, 6109, 0), + (6155, 6157, 0), + (6313, 6313, 0), + (6432, 6443, 0), + (6448, 6459, 0), + (6576, 6592, 0), + (6600, 6601, 0), + (6679, 6683, 0), + (6912, 6916, 0), + (6964, 6980, 0), + (7019, 7027, 0), + (7616, 7626, 0), + (7678, 7679, 0), + (8203, 8207, 0), + (8232, 8238, 0), + (8288, 8291, 0), + (8298, 8303, 0), + (8400, 8431, 0), + (9001, 9002, 2), + (11904, 11929, 2), + (11931, 12019, 2), + (12032, 12245, 2), + (12272, 12283, 2), + (12288, 12329, 2), + (12330, 12335, 0), + (12336, 12350, 2), + (12353, 12438, 2), + (12441, 12442, 0), + (12443, 12543, 2), + (12549, 12588, 2), + (12593, 12686, 2), + (12688, 12727, 2), + (12736, 12751, 2), + (12784, 12830, 2), + (12832, 12867, 2), + (12880, 13054, 2), + (13056, 19893, 2), + (19968, 40891, 2), + (40960, 42124, 2), + (42128, 42182, 2), + (43010, 43010, 0), + (43014, 43014, 0), + (43019, 43019, 0), + (43043, 43047, 0), + (44032, 55203, 2), + (55216, 55295, 0), + (63744, 64045, 2), + (64048, 64106, 2), + (64112, 64217, 2), + (64286, 64286, 0), + (65024, 65039, 0), + (65040, 65049, 2), + (65056, 65059, 0), + (65072, 65106, 2), + (65108, 65126, 2), + (65128, 65131, 2), + (65279, 65279, 0), + (65281, 65376, 2), + (65504, 65510, 2), + (65529, 65531, 0), + (68097, 68099, 0), + (68101, 68102, 0), + (68108, 68111, 0), + (68152, 68154, 0), + (68159, 68159, 0), + (119141, 119145, 0), + (119149, 119170, 0), + (119173, 119179, 0), + (119210, 119213, 0), + (119362, 119364, 0), + (131072, 196605, 2), + (196608, 262141, 2), + (917505, 917505, 0), + (917536, 917631, 0), + (917760, 917999, 0), + ], + narrow_to_wide=frozenset( + { + 9728, + 9729, + 9730, + 9731, + 11013, + 11014, + 9992, + 9996, + 9762, + 127780, + 127781, + 127782, + 127783, + 127784, + 127785, + 127786, + 127787, + 9774, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 9784, + 9785, + 10035, + 10548, + 128329, + 9823, + 10083, + 9829, + 128367, + 127344, + 128371, + 128372, + 128373, + 128374, + 128375, + 128376, + 127358, + 128394, + 128395, + 128396, + 9876, + 9877, + 9878, + 8596, + 8597, + 8598, + 8599, + 9883, + 8600, + 127894, + 127897, + 127898, + 127902, + 8617, + 9642, + 9904, + 128433, + 128450, + 128451, + 127947, + 127948, + 128717, + 128718, + 127949, + 128465, + 128466, + 127956, + 127957, + 127958, + 127959, + 127960, + 127961, + 127962, + 127963, + 127964, + 127965, + 127966, + 128476, + 128736, + 128737, + 128738, + 128739, + 128740, + 128477, + 9208, + 9197, + 9198, + 9968, + 9201, + 9975, + 9976, + 9209, + 9723, + } + ), +) diff --git a/rich/_unicode_data/unicode5-1-0.py b/rich/_unicode_data/unicode5-1-0.py new file mode 100644 index 0000000000..e5066245c9 --- /dev/null +++ b/rich/_unicode_data/unicode5-1-0.py @@ -0,0 +1,319 @@ +# Auto generated by tools/make_width_tables.py + +from rich.cell_string import CellTable + +cell_table = CellTable( + unicode_version="5.1.0", + widths=[ + (0, 0, 0), + (768, 879, 0), + (1155, 1161, 0), + (1425, 1469, 0), + (1471, 1471, 0), + (1473, 1474, 0), + (1476, 1477, 0), + (1479, 1479, 0), + (1536, 1539, 0), + (1552, 1562, 0), + (1611, 1630, 0), + (1648, 1648, 0), + (1750, 1764, 0), + (1767, 1768, 0), + (1770, 1773, 0), + (1807, 1807, 0), + (1809, 1809, 0), + (1840, 1866, 0), + (1958, 1968, 0), + (2027, 2035, 0), + (2305, 2307, 0), + (2364, 2364, 0), + (2366, 2381, 0), + (2385, 2388, 0), + (2402, 2403, 0), + (2433, 2435, 0), + (2492, 2492, 0), + (2494, 2500, 0), + (2503, 2504, 0), + (2507, 2509, 0), + (2519, 2519, 0), + (2530, 2531, 0), + (2561, 2563, 0), + (2620, 2620, 0), + (2622, 2626, 0), + (2631, 2632, 0), + (2635, 2637, 0), + (2641, 2641, 0), + (2672, 2673, 0), + (2677, 2677, 0), + (2689, 2691, 0), + (2748, 2748, 0), + (2750, 2757, 0), + (2759, 2761, 0), + (2763, 2765, 0), + (2786, 2787, 0), + (2817, 2819, 0), + (2876, 2876, 0), + (2878, 2884, 0), + (2887, 2888, 0), + (2891, 2893, 0), + (2902, 2903, 0), + (2914, 2915, 0), + (2946, 2946, 0), + (3006, 3010, 0), + (3014, 3016, 0), + (3018, 3021, 0), + (3031, 3031, 0), + (3073, 3075, 0), + (3134, 3140, 0), + (3142, 3144, 0), + (3146, 3149, 0), + (3157, 3158, 0), + (3170, 3171, 0), + (3202, 3203, 0), + (3260, 3260, 0), + (3262, 3268, 0), + (3270, 3272, 0), + (3274, 3277, 0), + (3285, 3286, 0), + (3298, 3299, 0), + (3330, 3331, 0), + (3390, 3396, 0), + (3398, 3400, 0), + (3402, 3405, 0), + (3415, 3415, 0), + (3426, 3427, 0), + (3458, 3459, 0), + (3530, 3530, 0), + (3535, 3540, 0), + (3542, 3542, 0), + (3544, 3551, 0), + (3570, 3571, 0), + (3633, 3633, 0), + (3636, 3642, 0), + (3655, 3662, 0), + (3761, 3761, 0), + (3764, 3769, 0), + (3771, 3772, 0), + (3784, 3789, 0), + (3864, 3865, 0), + (3893, 3893, 0), + (3895, 3895, 0), + (3897, 3897, 0), + (3902, 3903, 0), + (3953, 3972, 0), + (3974, 3975, 0), + (3984, 3991, 0), + (3993, 4028, 0), + (4038, 4038, 0), + (4139, 4158, 0), + (4182, 4185, 0), + (4190, 4192, 0), + (4194, 4196, 0), + (4199, 4205, 0), + (4209, 4212, 0), + (4226, 4237, 0), + (4239, 4239, 0), + (4352, 4441, 2), + (4447, 4447, 2), + (4448, 4607, 0), + (4959, 4959, 0), + (5906, 5908, 0), + (5938, 5940, 0), + (5970, 5971, 0), + (6002, 6003, 0), + (6068, 6099, 0), + (6109, 6109, 0), + (6155, 6157, 0), + (6313, 6313, 0), + (6432, 6443, 0), + (6448, 6459, 0), + (6576, 6592, 0), + (6600, 6601, 0), + (6679, 6683, 0), + (6912, 6916, 0), + (6964, 6980, 0), + (7019, 7027, 0), + (7040, 7042, 0), + (7073, 7082, 0), + (7204, 7223, 0), + (7616, 7654, 0), + (7678, 7679, 0), + (8203, 8207, 0), + (8232, 8238, 0), + (8288, 8292, 0), + (8298, 8303, 0), + (8400, 8432, 0), + (9001, 9002, 2), + (11744, 11775, 0), + (11904, 11929, 2), + (11931, 12019, 2), + (12032, 12245, 2), + (12272, 12283, 2), + (12288, 12329, 2), + (12330, 12335, 0), + (12336, 12350, 2), + (12353, 12438, 2), + (12441, 12442, 0), + (12443, 12543, 2), + (12549, 12589, 2), + (12593, 12686, 2), + (12688, 12727, 2), + (12736, 12771, 2), + (12784, 12830, 2), + (12832, 12867, 2), + (12880, 13054, 2), + (13056, 19893, 2), + (19968, 40899, 2), + (40960, 42124, 2), + (42128, 42182, 2), + (42607, 42610, 0), + (42620, 42621, 0), + (43010, 43010, 0), + (43014, 43014, 0), + (43019, 43019, 0), + (43043, 43047, 0), + (43136, 43137, 0), + (43188, 43204, 0), + (43302, 43309, 0), + (43335, 43347, 0), + (43561, 43574, 0), + (43587, 43587, 0), + (43596, 43597, 0), + (44032, 55203, 2), + (55216, 55295, 0), + (63744, 64045, 2), + (64048, 64106, 2), + (64112, 64217, 2), + (64286, 64286, 0), + (65024, 65039, 0), + (65040, 65049, 2), + (65056, 65062, 0), + (65072, 65106, 2), + (65108, 65126, 2), + (65128, 65131, 2), + (65279, 65279, 0), + (65281, 65376, 2), + (65504, 65510, 2), + (65529, 65531, 0), + (66045, 66045, 0), + (68097, 68099, 0), + (68101, 68102, 0), + (68108, 68111, 0), + (68152, 68154, 0), + (68159, 68159, 0), + (119141, 119145, 0), + (119149, 119170, 0), + (119173, 119179, 0), + (119210, 119213, 0), + (119362, 119364, 0), + (131072, 196605, 2), + (196608, 262141, 2), + (917505, 917505, 0), + (917536, 917631, 0), + (917760, 917999, 0), + ], + narrow_to_wide=frozenset( + { + 9728, + 9729, + 9730, + 9731, + 11013, + 11014, + 9992, + 9996, + 9762, + 127780, + 127781, + 127782, + 127783, + 127784, + 127785, + 127786, + 127787, + 9774, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 9784, + 9785, + 10035, + 10548, + 128329, + 9823, + 10083, + 9829, + 128367, + 127344, + 128371, + 128372, + 128373, + 128374, + 128375, + 128376, + 127358, + 128394, + 128395, + 128396, + 9876, + 9877, + 9878, + 8596, + 8597, + 8598, + 8599, + 9883, + 8600, + 127894, + 127897, + 127898, + 127902, + 8617, + 9642, + 9904, + 128433, + 128450, + 128451, + 127947, + 127948, + 128717, + 128718, + 127949, + 128465, + 128466, + 127956, + 127957, + 127958, + 127959, + 127960, + 127961, + 127962, + 127963, + 127964, + 127965, + 127966, + 128476, + 128736, + 128737, + 128738, + 128739, + 128740, + 128477, + 9208, + 9197, + 9198, + 9968, + 9201, + 9975, + 9976, + 9209, + 9723, + } + ), +) diff --git a/rich/_unicode_data/unicode5-2-0.py b/rich/_unicode_data/unicode5-2-0.py new file mode 100644 index 0000000000..c3365d088b --- /dev/null +++ b/rich/_unicode_data/unicode5-2-0.py @@ -0,0 +1,347 @@ +# Auto generated by tools/make_width_tables.py + +from rich.cell_string import CellTable + +cell_table = CellTable( + unicode_version="5.2.0", + widths=[ + (0, 0, 0), + (768, 879, 0), + (1155, 1161, 0), + (1425, 1469, 0), + (1471, 1471, 0), + (1473, 1474, 0), + (1476, 1477, 0), + (1479, 1479, 0), + (1536, 1539, 0), + (1552, 1562, 0), + (1611, 1630, 0), + (1648, 1648, 0), + (1750, 1764, 0), + (1767, 1768, 0), + (1770, 1773, 0), + (1807, 1807, 0), + (1809, 1809, 0), + (1840, 1866, 0), + (1958, 1968, 0), + (2027, 2035, 0), + (2070, 2073, 0), + (2075, 2083, 0), + (2085, 2087, 0), + (2089, 2093, 0), + (2304, 2307, 0), + (2364, 2364, 0), + (2366, 2382, 0), + (2385, 2389, 0), + (2402, 2403, 0), + (2433, 2435, 0), + (2492, 2492, 0), + (2494, 2500, 0), + (2503, 2504, 0), + (2507, 2509, 0), + (2519, 2519, 0), + (2530, 2531, 0), + (2561, 2563, 0), + (2620, 2620, 0), + (2622, 2626, 0), + (2631, 2632, 0), + (2635, 2637, 0), + (2641, 2641, 0), + (2672, 2673, 0), + (2677, 2677, 0), + (2689, 2691, 0), + (2748, 2748, 0), + (2750, 2757, 0), + (2759, 2761, 0), + (2763, 2765, 0), + (2786, 2787, 0), + (2817, 2819, 0), + (2876, 2876, 0), + (2878, 2884, 0), + (2887, 2888, 0), + (2891, 2893, 0), + (2902, 2903, 0), + (2914, 2915, 0), + (2946, 2946, 0), + (3006, 3010, 0), + (3014, 3016, 0), + (3018, 3021, 0), + (3031, 3031, 0), + (3073, 3075, 0), + (3134, 3140, 0), + (3142, 3144, 0), + (3146, 3149, 0), + (3157, 3158, 0), + (3170, 3171, 0), + (3202, 3203, 0), + (3260, 3260, 0), + (3262, 3268, 0), + (3270, 3272, 0), + (3274, 3277, 0), + (3285, 3286, 0), + (3298, 3299, 0), + (3330, 3331, 0), + (3390, 3396, 0), + (3398, 3400, 0), + (3402, 3405, 0), + (3415, 3415, 0), + (3426, 3427, 0), + (3458, 3459, 0), + (3530, 3530, 0), + (3535, 3540, 0), + (3542, 3542, 0), + (3544, 3551, 0), + (3570, 3571, 0), + (3633, 3633, 0), + (3636, 3642, 0), + (3655, 3662, 0), + (3761, 3761, 0), + (3764, 3769, 0), + (3771, 3772, 0), + (3784, 3789, 0), + (3864, 3865, 0), + (3893, 3893, 0), + (3895, 3895, 0), + (3897, 3897, 0), + (3902, 3903, 0), + (3953, 3972, 0), + (3974, 3975, 0), + (3984, 3991, 0), + (3993, 4028, 0), + (4038, 4038, 0), + (4139, 4158, 0), + (4182, 4185, 0), + (4190, 4192, 0), + (4194, 4196, 0), + (4199, 4205, 0), + (4209, 4212, 0), + (4226, 4237, 0), + (4239, 4239, 0), + (4250, 4253, 0), + (4352, 4447, 2), + (4448, 4607, 0), + (4959, 4959, 0), + (5906, 5908, 0), + (5938, 5940, 0), + (5970, 5971, 0), + (6002, 6003, 0), + (6068, 6099, 0), + (6109, 6109, 0), + (6155, 6157, 0), + (6313, 6313, 0), + (6432, 6443, 0), + (6448, 6459, 0), + (6576, 6592, 0), + (6600, 6601, 0), + (6679, 6683, 0), + (6741, 6750, 0), + (6752, 6780, 0), + (6783, 6783, 0), + (6912, 6916, 0), + (6964, 6980, 0), + (7019, 7027, 0), + (7040, 7042, 0), + (7073, 7082, 0), + (7204, 7223, 0), + (7376, 7378, 0), + (7380, 7400, 0), + (7405, 7405, 0), + (7410, 7410, 0), + (7616, 7654, 0), + (7677, 7679, 0), + (8203, 8207, 0), + (8232, 8238, 0), + (8288, 8292, 0), + (8298, 8303, 0), + (8400, 8432, 0), + (9001, 9002, 2), + (11503, 11505, 0), + (11744, 11775, 0), + (11904, 11929, 2), + (11931, 12019, 2), + (12032, 12245, 2), + (12272, 12283, 2), + (12288, 12329, 2), + (12330, 12335, 0), + (12336, 12350, 2), + (12353, 12438, 2), + (12441, 12442, 0), + (12443, 12543, 2), + (12549, 12589, 2), + (12593, 12686, 2), + (12688, 12727, 2), + (12736, 12771, 2), + (12784, 12830, 2), + (12832, 12871, 2), + (12880, 13054, 2), + (13056, 19903, 2), + (19968, 42124, 2), + (42128, 42182, 2), + (42607, 42610, 0), + (42620, 42621, 0), + (42736, 42737, 0), + (43010, 43010, 0), + (43014, 43014, 0), + (43019, 43019, 0), + (43043, 43047, 0), + (43136, 43137, 0), + (43188, 43204, 0), + (43232, 43249, 0), + (43302, 43309, 0), + (43335, 43347, 0), + (43360, 43388, 2), + (43392, 43395, 0), + (43443, 43456, 0), + (43561, 43574, 0), + (43587, 43587, 0), + (43596, 43597, 0), + (43643, 43643, 0), + (43696, 43696, 0), + (43698, 43700, 0), + (43703, 43704, 0), + (43710, 43711, 0), + (43713, 43713, 0), + (44003, 44010, 0), + (44012, 44013, 0), + (44032, 55203, 2), + (55216, 55295, 0), + (63744, 64255, 2), + (64286, 64286, 0), + (65024, 65039, 0), + (65040, 65049, 2), + (65056, 65062, 0), + (65072, 65106, 2), + (65108, 65126, 2), + (65128, 65131, 2), + (65279, 65279, 0), + (65281, 65376, 2), + (65504, 65510, 2), + (65529, 65531, 0), + (66045, 66045, 0), + (68097, 68099, 0), + (68101, 68102, 0), + (68108, 68111, 0), + (68152, 68154, 0), + (68159, 68159, 0), + (69760, 69762, 0), + (69808, 69818, 0), + (69821, 69821, 0), + (119141, 119145, 0), + (119149, 119170, 0), + (119173, 119179, 0), + (119210, 119213, 0), + (119362, 119364, 0), + (127488, 127488, 2), + (127504, 127537, 2), + (127552, 127560, 2), + (131072, 196605, 2), + (196608, 262141, 2), + (917505, 917505, 0), + (917536, 917631, 0), + (917760, 917999, 0), + ], + narrow_to_wide=frozenset( + { + 9728, + 9729, + 9730, + 9731, + 11013, + 11014, + 9992, + 9996, + 9762, + 127780, + 127781, + 127782, + 127783, + 127784, + 127785, + 127786, + 127787, + 9774, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 9784, + 9785, + 10035, + 10548, + 128329, + 9823, + 10083, + 9829, + 128367, + 127344, + 128371, + 128372, + 128373, + 128374, + 128375, + 128376, + 127358, + 128394, + 128395, + 128396, + 9876, + 9877, + 9878, + 8596, + 8597, + 8598, + 8599, + 9883, + 8600, + 127894, + 127897, + 127898, + 127902, + 8617, + 9642, + 9904, + 128433, + 128450, + 128451, + 127947, + 127948, + 128717, + 128718, + 127949, + 128465, + 128466, + 127956, + 127957, + 127958, + 127959, + 127960, + 127961, + 127962, + 127963, + 127964, + 127965, + 127966, + 128476, + 128736, + 128737, + 128738, + 128739, + 128740, + 128477, + 9208, + 9197, + 9198, + 9968, + 9201, + 9975, + 9976, + 9209, + 9723, + } + ), +) diff --git a/rich/_unicode_data/unicode6-0-0.py b/rich/_unicode_data/unicode6-0-0.py new file mode 100644 index 0000000000..19a9390772 --- /dev/null +++ b/rich/_unicode_data/unicode6-0-0.py @@ -0,0 +1,355 @@ +# Auto generated by tools/make_width_tables.py + +from rich.cell_string import CellTable + +cell_table = CellTable( + unicode_version="6.0.0", + widths=[ + (0, 0, 0), + (768, 879, 0), + (1155, 1161, 0), + (1425, 1469, 0), + (1471, 1471, 0), + (1473, 1474, 0), + (1476, 1477, 0), + (1479, 1479, 0), + (1536, 1539, 0), + (1552, 1562, 0), + (1611, 1631, 0), + (1648, 1648, 0), + (1750, 1757, 0), + (1759, 1764, 0), + (1767, 1768, 0), + (1770, 1773, 0), + (1807, 1807, 0), + (1809, 1809, 0), + (1840, 1866, 0), + (1958, 1968, 0), + (2027, 2035, 0), + (2070, 2073, 0), + (2075, 2083, 0), + (2085, 2087, 0), + (2089, 2093, 0), + (2137, 2139, 0), + (2304, 2307, 0), + (2362, 2364, 0), + (2366, 2383, 0), + (2385, 2391, 0), + (2402, 2403, 0), + (2433, 2435, 0), + (2492, 2492, 0), + (2494, 2500, 0), + (2503, 2504, 0), + (2507, 2509, 0), + (2519, 2519, 0), + (2530, 2531, 0), + (2561, 2563, 0), + (2620, 2620, 0), + (2622, 2626, 0), + (2631, 2632, 0), + (2635, 2637, 0), + (2641, 2641, 0), + (2672, 2673, 0), + (2677, 2677, 0), + (2689, 2691, 0), + (2748, 2748, 0), + (2750, 2757, 0), + (2759, 2761, 0), + (2763, 2765, 0), + (2786, 2787, 0), + (2817, 2819, 0), + (2876, 2876, 0), + (2878, 2884, 0), + (2887, 2888, 0), + (2891, 2893, 0), + (2902, 2903, 0), + (2914, 2915, 0), + (2946, 2946, 0), + (3006, 3010, 0), + (3014, 3016, 0), + (3018, 3021, 0), + (3031, 3031, 0), + (3073, 3075, 0), + (3134, 3140, 0), + (3142, 3144, 0), + (3146, 3149, 0), + (3157, 3158, 0), + (3170, 3171, 0), + (3202, 3203, 0), + (3260, 3260, 0), + (3262, 3268, 0), + (3270, 3272, 0), + (3274, 3277, 0), + (3285, 3286, 0), + (3298, 3299, 0), + (3330, 3331, 0), + (3390, 3396, 0), + (3398, 3400, 0), + (3402, 3405, 0), + (3415, 3415, 0), + (3426, 3427, 0), + (3458, 3459, 0), + (3530, 3530, 0), + (3535, 3540, 0), + (3542, 3542, 0), + (3544, 3551, 0), + (3570, 3571, 0), + (3633, 3633, 0), + (3636, 3642, 0), + (3655, 3662, 0), + (3761, 3761, 0), + (3764, 3769, 0), + (3771, 3772, 0), + (3784, 3789, 0), + (3864, 3865, 0), + (3893, 3893, 0), + (3895, 3895, 0), + (3897, 3897, 0), + (3902, 3903, 0), + (3953, 3972, 0), + (3974, 3975, 0), + (3981, 3991, 0), + (3993, 4028, 0), + (4038, 4038, 0), + (4139, 4158, 0), + (4182, 4185, 0), + (4190, 4192, 0), + (4194, 4196, 0), + (4199, 4205, 0), + (4209, 4212, 0), + (4226, 4237, 0), + (4239, 4239, 0), + (4250, 4253, 0), + (4352, 4447, 2), + (4448, 4607, 0), + (4957, 4959, 0), + (5906, 5908, 0), + (5938, 5940, 0), + (5970, 5971, 0), + (6002, 6003, 0), + (6068, 6099, 0), + (6109, 6109, 0), + (6155, 6157, 0), + (6313, 6313, 0), + (6432, 6443, 0), + (6448, 6459, 0), + (6576, 6592, 0), + (6600, 6601, 0), + (6679, 6683, 0), + (6741, 6750, 0), + (6752, 6780, 0), + (6783, 6783, 0), + (6912, 6916, 0), + (6964, 6980, 0), + (7019, 7027, 0), + (7040, 7042, 0), + (7073, 7082, 0), + (7142, 7155, 0), + (7204, 7223, 0), + (7376, 7378, 0), + (7380, 7400, 0), + (7405, 7405, 0), + (7410, 7410, 0), + (7616, 7654, 0), + (7676, 7679, 0), + (8203, 8207, 0), + (8232, 8238, 0), + (8288, 8292, 0), + (8298, 8303, 0), + (8400, 8432, 0), + (9001, 9002, 2), + (11503, 11505, 0), + (11647, 11647, 0), + (11744, 11775, 0), + (11904, 11929, 2), + (11931, 12019, 2), + (12032, 12245, 2), + (12272, 12283, 2), + (12288, 12329, 2), + (12330, 12335, 0), + (12336, 12350, 2), + (12353, 12438, 2), + (12441, 12442, 0), + (12443, 12543, 2), + (12549, 12589, 2), + (12593, 12686, 2), + (12688, 12730, 2), + (12736, 12771, 2), + (12784, 12830, 2), + (12832, 12871, 2), + (12880, 13054, 2), + (13056, 19903, 2), + (19968, 42124, 2), + (42128, 42182, 2), + (42607, 42610, 0), + (42620, 42621, 0), + (42736, 42737, 0), + (43010, 43010, 0), + (43014, 43014, 0), + (43019, 43019, 0), + (43043, 43047, 0), + (43136, 43137, 0), + (43188, 43204, 0), + (43232, 43249, 0), + (43302, 43309, 0), + (43335, 43347, 0), + (43360, 43388, 2), + (43392, 43395, 0), + (43443, 43456, 0), + (43561, 43574, 0), + (43587, 43587, 0), + (43596, 43597, 0), + (43643, 43643, 0), + (43696, 43696, 0), + (43698, 43700, 0), + (43703, 43704, 0), + (43710, 43711, 0), + (43713, 43713, 0), + (44003, 44010, 0), + (44012, 44013, 0), + (44032, 55203, 2), + (55216, 55295, 0), + (63744, 64255, 2), + (64286, 64286, 0), + (65024, 65039, 0), + (65040, 65049, 2), + (65056, 65062, 0), + (65072, 65106, 2), + (65108, 65126, 2), + (65128, 65131, 2), + (65279, 65279, 0), + (65281, 65376, 2), + (65504, 65510, 2), + (65529, 65531, 0), + (66045, 66045, 0), + (68097, 68099, 0), + (68101, 68102, 0), + (68108, 68111, 0), + (68152, 68154, 0), + (68159, 68159, 0), + (69632, 69634, 0), + (69688, 69702, 0), + (69760, 69762, 0), + (69808, 69818, 0), + (69821, 69821, 0), + (110592, 110593, 2), + (119141, 119145, 0), + (119149, 119170, 0), + (119173, 119179, 0), + (119210, 119213, 0), + (119362, 119364, 0), + (127488, 127490, 2), + (127504, 127546, 2), + (127552, 127560, 2), + (127568, 127569, 2), + (131072, 196605, 2), + (196608, 262141, 2), + (917505, 917505, 0), + (917536, 917631, 0), + (917760, 917999, 0), + ], + narrow_to_wide=frozenset( + { + 9728, + 9729, + 9730, + 9731, + 11013, + 11014, + 9992, + 9996, + 9762, + 127780, + 127781, + 127782, + 127783, + 127784, + 127785, + 127786, + 127787, + 9774, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 9784, + 9785, + 10035, + 10548, + 128329, + 9823, + 10083, + 9829, + 128367, + 127344, + 128371, + 128372, + 128373, + 128374, + 128375, + 128376, + 127358, + 128394, + 128395, + 128396, + 9876, + 9877, + 9878, + 8596, + 8597, + 8598, + 8599, + 9883, + 8600, + 127894, + 127897, + 127898, + 127902, + 8617, + 9642, + 9904, + 128433, + 128450, + 128451, + 127947, + 127948, + 128717, + 128718, + 127949, + 128465, + 128466, + 127956, + 127957, + 127958, + 127959, + 127960, + 127961, + 127962, + 127963, + 127964, + 127965, + 127966, + 128476, + 128736, + 128737, + 128738, + 128739, + 128740, + 128477, + 9208, + 9197, + 9198, + 9968, + 9201, + 9975, + 9976, + 9209, + 9723, + } + ), +) diff --git a/rich/_unicode_data/unicode6-1-0.py b/rich/_unicode_data/unicode6-1-0.py new file mode 100644 index 0000000000..2ea4685452 --- /dev/null +++ b/rich/_unicode_data/unicode6-1-0.py @@ -0,0 +1,366 @@ +# Auto generated by tools/make_width_tables.py + +from rich.cell_string import CellTable + +cell_table = CellTable( + unicode_version="6.1.0", + widths=[ + (0, 0, 0), + (768, 879, 0), + (1155, 1161, 0), + (1425, 1469, 0), + (1471, 1471, 0), + (1473, 1474, 0), + (1476, 1477, 0), + (1479, 1479, 0), + (1536, 1540, 0), + (1552, 1562, 0), + (1611, 1631, 0), + (1648, 1648, 0), + (1750, 1757, 0), + (1759, 1764, 0), + (1767, 1768, 0), + (1770, 1773, 0), + (1807, 1807, 0), + (1809, 1809, 0), + (1840, 1866, 0), + (1958, 1968, 0), + (2027, 2035, 0), + (2070, 2073, 0), + (2075, 2083, 0), + (2085, 2087, 0), + (2089, 2093, 0), + (2137, 2139, 0), + (2276, 2302, 0), + (2304, 2307, 0), + (2362, 2364, 0), + (2366, 2383, 0), + (2385, 2391, 0), + (2402, 2403, 0), + (2433, 2435, 0), + (2492, 2492, 0), + (2494, 2500, 0), + (2503, 2504, 0), + (2507, 2509, 0), + (2519, 2519, 0), + (2530, 2531, 0), + (2561, 2563, 0), + (2620, 2620, 0), + (2622, 2626, 0), + (2631, 2632, 0), + (2635, 2637, 0), + (2641, 2641, 0), + (2672, 2673, 0), + (2677, 2677, 0), + (2689, 2691, 0), + (2748, 2748, 0), + (2750, 2757, 0), + (2759, 2761, 0), + (2763, 2765, 0), + (2786, 2787, 0), + (2817, 2819, 0), + (2876, 2876, 0), + (2878, 2884, 0), + (2887, 2888, 0), + (2891, 2893, 0), + (2902, 2903, 0), + (2914, 2915, 0), + (2946, 2946, 0), + (3006, 3010, 0), + (3014, 3016, 0), + (3018, 3021, 0), + (3031, 3031, 0), + (3073, 3075, 0), + (3134, 3140, 0), + (3142, 3144, 0), + (3146, 3149, 0), + (3157, 3158, 0), + (3170, 3171, 0), + (3202, 3203, 0), + (3260, 3260, 0), + (3262, 3268, 0), + (3270, 3272, 0), + (3274, 3277, 0), + (3285, 3286, 0), + (3298, 3299, 0), + (3330, 3331, 0), + (3390, 3396, 0), + (3398, 3400, 0), + (3402, 3405, 0), + (3415, 3415, 0), + (3426, 3427, 0), + (3458, 3459, 0), + (3530, 3530, 0), + (3535, 3540, 0), + (3542, 3542, 0), + (3544, 3551, 0), + (3570, 3571, 0), + (3633, 3633, 0), + (3636, 3642, 0), + (3655, 3662, 0), + (3761, 3761, 0), + (3764, 3769, 0), + (3771, 3772, 0), + (3784, 3789, 0), + (3864, 3865, 0), + (3893, 3893, 0), + (3895, 3895, 0), + (3897, 3897, 0), + (3902, 3903, 0), + (3953, 3972, 0), + (3974, 3975, 0), + (3981, 3991, 0), + (3993, 4028, 0), + (4038, 4038, 0), + (4139, 4158, 0), + (4182, 4185, 0), + (4190, 4192, 0), + (4194, 4196, 0), + (4199, 4205, 0), + (4209, 4212, 0), + (4226, 4237, 0), + (4239, 4239, 0), + (4250, 4253, 0), + (4352, 4447, 2), + (4448, 4607, 0), + (4957, 4959, 0), + (5906, 5908, 0), + (5938, 5940, 0), + (5970, 5971, 0), + (6002, 6003, 0), + (6068, 6099, 0), + (6109, 6109, 0), + (6155, 6157, 0), + (6313, 6313, 0), + (6432, 6443, 0), + (6448, 6459, 0), + (6576, 6592, 0), + (6600, 6601, 0), + (6679, 6683, 0), + (6741, 6750, 0), + (6752, 6780, 0), + (6783, 6783, 0), + (6912, 6916, 0), + (6964, 6980, 0), + (7019, 7027, 0), + (7040, 7042, 0), + (7073, 7085, 0), + (7142, 7155, 0), + (7204, 7223, 0), + (7376, 7378, 0), + (7380, 7400, 0), + (7405, 7405, 0), + (7410, 7412, 0), + (7616, 7654, 0), + (7676, 7679, 0), + (8203, 8207, 0), + (8232, 8238, 0), + (8288, 8292, 0), + (8298, 8303, 0), + (8400, 8432, 0), + (9001, 9002, 2), + (11503, 11505, 0), + (11647, 11647, 0), + (11744, 11775, 0), + (11904, 11929, 2), + (11931, 12019, 2), + (12032, 12245, 2), + (12272, 12283, 2), + (12288, 12329, 2), + (12330, 12335, 0), + (12336, 12350, 2), + (12353, 12438, 2), + (12441, 12442, 0), + (12443, 12543, 2), + (12549, 12589, 2), + (12593, 12686, 2), + (12688, 12730, 2), + (12736, 12771, 2), + (12784, 12830, 2), + (12832, 12871, 2), + (12880, 13054, 2), + (13056, 19903, 2), + (19968, 42124, 2), + (42128, 42182, 2), + (42607, 42610, 0), + (42612, 42621, 0), + (42655, 42655, 0), + (42736, 42737, 0), + (43010, 43010, 0), + (43014, 43014, 0), + (43019, 43019, 0), + (43043, 43047, 0), + (43136, 43137, 0), + (43188, 43204, 0), + (43232, 43249, 0), + (43302, 43309, 0), + (43335, 43347, 0), + (43360, 43388, 2), + (43392, 43395, 0), + (43443, 43456, 0), + (43561, 43574, 0), + (43587, 43587, 0), + (43596, 43597, 0), + (43643, 43643, 0), + (43696, 43696, 0), + (43698, 43700, 0), + (43703, 43704, 0), + (43710, 43711, 0), + (43713, 43713, 0), + (43755, 43759, 0), + (43765, 43766, 0), + (44003, 44010, 0), + (44012, 44013, 0), + (44032, 55203, 2), + (55216, 55295, 0), + (63744, 64255, 2), + (64286, 64286, 0), + (65024, 65039, 0), + (65040, 65049, 2), + (65056, 65062, 0), + (65072, 65106, 2), + (65108, 65126, 2), + (65128, 65131, 2), + (65279, 65279, 0), + (65281, 65376, 2), + (65504, 65510, 2), + (65529, 65531, 0), + (66045, 66045, 0), + (68097, 68099, 0), + (68101, 68102, 0), + (68108, 68111, 0), + (68152, 68154, 0), + (68159, 68159, 0), + (69632, 69634, 0), + (69688, 69702, 0), + (69760, 69762, 0), + (69808, 69818, 0), + (69821, 69821, 0), + (69888, 69890, 0), + (69927, 69940, 0), + (70016, 70018, 0), + (70067, 70080, 0), + (71339, 71351, 0), + (94033, 94078, 0), + (94095, 94098, 0), + (110592, 110593, 2), + (119141, 119145, 0), + (119149, 119170, 0), + (119173, 119179, 0), + (119210, 119213, 0), + (119362, 119364, 0), + (127488, 127490, 2), + (127504, 127546, 2), + (127552, 127560, 2), + (127568, 127569, 2), + (131072, 196605, 2), + (196608, 262141, 2), + (917505, 917505, 0), + (917536, 917631, 0), + (917760, 917999, 0), + ], + narrow_to_wide=frozenset( + { + 9728, + 9729, + 9730, + 9731, + 11013, + 11014, + 9992, + 9996, + 9762, + 127780, + 127781, + 127782, + 127783, + 127784, + 127785, + 127786, + 127787, + 9774, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 9784, + 9785, + 10035, + 10548, + 128329, + 9823, + 10083, + 9829, + 128367, + 127344, + 128371, + 128372, + 128373, + 128374, + 128375, + 128376, + 127358, + 128394, + 128395, + 128396, + 9876, + 9877, + 9878, + 8596, + 8597, + 8598, + 8599, + 9883, + 8600, + 127894, + 127897, + 127898, + 127902, + 8617, + 9642, + 9904, + 128433, + 128450, + 128451, + 127947, + 127948, + 128717, + 128718, + 127949, + 128465, + 128466, + 127956, + 127957, + 127958, + 127959, + 127960, + 127961, + 127962, + 127963, + 127964, + 127965, + 127966, + 128476, + 128736, + 128737, + 128738, + 128739, + 128740, + 128477, + 9208, + 9197, + 9198, + 9968, + 9201, + 9975, + 9976, + 9209, + 9723, + } + ), +) diff --git a/rich/_unicode_data/unicode6-2-0.py b/rich/_unicode_data/unicode6-2-0.py new file mode 100644 index 0000000000..55410c3a63 --- /dev/null +++ b/rich/_unicode_data/unicode6-2-0.py @@ -0,0 +1,366 @@ +# Auto generated by tools/make_width_tables.py + +from rich.cell_string import CellTable + +cell_table = CellTable( + unicode_version="6.2.0", + widths=[ + (0, 0, 0), + (768, 879, 0), + (1155, 1161, 0), + (1425, 1469, 0), + (1471, 1471, 0), + (1473, 1474, 0), + (1476, 1477, 0), + (1479, 1479, 0), + (1536, 1540, 0), + (1552, 1562, 0), + (1611, 1631, 0), + (1648, 1648, 0), + (1750, 1757, 0), + (1759, 1764, 0), + (1767, 1768, 0), + (1770, 1773, 0), + (1807, 1807, 0), + (1809, 1809, 0), + (1840, 1866, 0), + (1958, 1968, 0), + (2027, 2035, 0), + (2070, 2073, 0), + (2075, 2083, 0), + (2085, 2087, 0), + (2089, 2093, 0), + (2137, 2139, 0), + (2276, 2302, 0), + (2304, 2307, 0), + (2362, 2364, 0), + (2366, 2383, 0), + (2385, 2391, 0), + (2402, 2403, 0), + (2433, 2435, 0), + (2492, 2492, 0), + (2494, 2500, 0), + (2503, 2504, 0), + (2507, 2509, 0), + (2519, 2519, 0), + (2530, 2531, 0), + (2561, 2563, 0), + (2620, 2620, 0), + (2622, 2626, 0), + (2631, 2632, 0), + (2635, 2637, 0), + (2641, 2641, 0), + (2672, 2673, 0), + (2677, 2677, 0), + (2689, 2691, 0), + (2748, 2748, 0), + (2750, 2757, 0), + (2759, 2761, 0), + (2763, 2765, 0), + (2786, 2787, 0), + (2817, 2819, 0), + (2876, 2876, 0), + (2878, 2884, 0), + (2887, 2888, 0), + (2891, 2893, 0), + (2902, 2903, 0), + (2914, 2915, 0), + (2946, 2946, 0), + (3006, 3010, 0), + (3014, 3016, 0), + (3018, 3021, 0), + (3031, 3031, 0), + (3073, 3075, 0), + (3134, 3140, 0), + (3142, 3144, 0), + (3146, 3149, 0), + (3157, 3158, 0), + (3170, 3171, 0), + (3202, 3203, 0), + (3260, 3260, 0), + (3262, 3268, 0), + (3270, 3272, 0), + (3274, 3277, 0), + (3285, 3286, 0), + (3298, 3299, 0), + (3330, 3331, 0), + (3390, 3396, 0), + (3398, 3400, 0), + (3402, 3405, 0), + (3415, 3415, 0), + (3426, 3427, 0), + (3458, 3459, 0), + (3530, 3530, 0), + (3535, 3540, 0), + (3542, 3542, 0), + (3544, 3551, 0), + (3570, 3571, 0), + (3633, 3633, 0), + (3636, 3642, 0), + (3655, 3662, 0), + (3761, 3761, 0), + (3764, 3769, 0), + (3771, 3772, 0), + (3784, 3789, 0), + (3864, 3865, 0), + (3893, 3893, 0), + (3895, 3895, 0), + (3897, 3897, 0), + (3902, 3903, 0), + (3953, 3972, 0), + (3974, 3975, 0), + (3981, 3991, 0), + (3993, 4028, 0), + (4038, 4038, 0), + (4139, 4158, 0), + (4182, 4185, 0), + (4190, 4192, 0), + (4194, 4196, 0), + (4199, 4205, 0), + (4209, 4212, 0), + (4226, 4237, 0), + (4239, 4239, 0), + (4250, 4253, 0), + (4352, 4447, 2), + (4448, 4607, 0), + (4957, 4959, 0), + (5906, 5908, 0), + (5938, 5940, 0), + (5970, 5971, 0), + (6002, 6003, 0), + (6068, 6099, 0), + (6109, 6109, 0), + (6155, 6157, 0), + (6313, 6313, 0), + (6432, 6443, 0), + (6448, 6459, 0), + (6576, 6592, 0), + (6600, 6601, 0), + (6679, 6683, 0), + (6741, 6750, 0), + (6752, 6780, 0), + (6783, 6783, 0), + (6912, 6916, 0), + (6964, 6980, 0), + (7019, 7027, 0), + (7040, 7042, 0), + (7073, 7085, 0), + (7142, 7155, 0), + (7204, 7223, 0), + (7376, 7378, 0), + (7380, 7400, 0), + (7405, 7405, 0), + (7410, 7412, 0), + (7616, 7654, 0), + (7676, 7679, 0), + (8203, 8207, 0), + (8232, 8238, 0), + (8288, 8292, 0), + (8298, 8303, 0), + (8400, 8432, 0), + (9001, 9002, 2), + (11503, 11505, 0), + (11647, 11647, 0), + (11744, 11775, 0), + (11904, 11929, 2), + (11931, 12019, 2), + (12032, 12245, 2), + (12272, 12283, 2), + (12288, 12329, 2), + (12330, 12335, 0), + (12336, 12350, 2), + (12353, 12438, 2), + (12441, 12442, 0), + (12443, 12543, 2), + (12549, 12589, 2), + (12593, 12686, 2), + (12688, 12730, 2), + (12736, 12771, 2), + (12784, 12830, 2), + (12832, 12871, 2), + (12880, 13054, 2), + (13056, 19903, 2), + (19968, 42124, 2), + (42128, 42182, 2), + (42607, 42610, 0), + (42612, 42621, 0), + (42655, 42655, 0), + (42736, 42737, 0), + (43010, 43010, 0), + (43014, 43014, 0), + (43019, 43019, 0), + (43043, 43047, 0), + (43136, 43137, 0), + (43188, 43204, 0), + (43232, 43249, 0), + (43302, 43309, 0), + (43335, 43347, 0), + (43360, 43388, 2), + (43392, 43395, 0), + (43443, 43456, 0), + (43561, 43574, 0), + (43587, 43587, 0), + (43596, 43597, 0), + (43643, 43643, 0), + (43696, 43696, 0), + (43698, 43700, 0), + (43703, 43704, 0), + (43710, 43711, 0), + (43713, 43713, 0), + (43755, 43759, 0), + (43765, 43766, 0), + (44003, 44010, 0), + (44012, 44013, 0), + (44032, 55203, 2), + (55216, 55295, 0), + (63744, 64255, 2), + (64286, 64286, 0), + (65024, 65039, 0), + (65040, 65049, 2), + (65056, 65062, 0), + (65072, 65106, 2), + (65108, 65126, 2), + (65128, 65131, 2), + (65279, 65279, 0), + (65281, 65376, 2), + (65504, 65510, 2), + (65529, 65531, 0), + (66045, 66045, 0), + (68097, 68099, 0), + (68101, 68102, 0), + (68108, 68111, 0), + (68152, 68154, 0), + (68159, 68159, 0), + (69632, 69634, 0), + (69688, 69702, 0), + (69760, 69762, 0), + (69808, 69818, 0), + (69821, 69821, 0), + (69888, 69890, 0), + (69927, 69940, 0), + (70016, 70018, 0), + (70067, 70080, 0), + (71339, 71351, 0), + (94033, 94078, 0), + (94095, 94098, 0), + (110592, 110593, 2), + (119141, 119145, 0), + (119149, 119170, 0), + (119173, 119179, 0), + (119210, 119213, 0), + (119362, 119364, 0), + (127488, 127490, 2), + (127504, 127546, 2), + (127552, 127560, 2), + (127568, 127569, 2), + (131072, 196605, 2), + (196608, 262141, 2), + (917505, 917505, 0), + (917536, 917631, 0), + (917760, 917999, 0), + ], + narrow_to_wide=frozenset( + { + 9728, + 9729, + 9730, + 9731, + 11013, + 11014, + 9992, + 9996, + 9762, + 127780, + 127781, + 127782, + 127783, + 127784, + 127785, + 127786, + 127787, + 9774, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 9784, + 9785, + 10035, + 10548, + 128329, + 9823, + 10083, + 9829, + 128367, + 127344, + 128371, + 128372, + 128373, + 128374, + 128375, + 128376, + 127358, + 128394, + 128395, + 128396, + 9876, + 9877, + 9878, + 8596, + 8597, + 8598, + 8599, + 9883, + 8600, + 127894, + 127897, + 127898, + 127902, + 8617, + 9642, + 9904, + 128433, + 128450, + 128451, + 127947, + 127948, + 128717, + 128718, + 127949, + 128465, + 128466, + 127956, + 127957, + 127958, + 127959, + 127960, + 127961, + 127962, + 127963, + 127964, + 127965, + 127966, + 128476, + 128736, + 128737, + 128738, + 128739, + 128740, + 128477, + 9208, + 9197, + 9198, + 9968, + 9201, + 9975, + 9976, + 9209, + 9723, + } + ), +) diff --git a/rich/_unicode_data/unicode6-3-0.py b/rich/_unicode_data/unicode6-3-0.py new file mode 100644 index 0000000000..5f9dfc9c8b --- /dev/null +++ b/rich/_unicode_data/unicode6-3-0.py @@ -0,0 +1,367 @@ +# Auto generated by tools/make_width_tables.py + +from rich.cell_string import CellTable + +cell_table = CellTable( + unicode_version="6.3.0", + widths=[ + (0, 0, 0), + (768, 879, 0), + (1155, 1161, 0), + (1425, 1469, 0), + (1471, 1471, 0), + (1473, 1474, 0), + (1476, 1477, 0), + (1479, 1479, 0), + (1536, 1540, 0), + (1552, 1562, 0), + (1564, 1564, 0), + (1611, 1631, 0), + (1648, 1648, 0), + (1750, 1757, 0), + (1759, 1764, 0), + (1767, 1768, 0), + (1770, 1773, 0), + (1807, 1807, 0), + (1809, 1809, 0), + (1840, 1866, 0), + (1958, 1968, 0), + (2027, 2035, 0), + (2070, 2073, 0), + (2075, 2083, 0), + (2085, 2087, 0), + (2089, 2093, 0), + (2137, 2139, 0), + (2276, 2302, 0), + (2304, 2307, 0), + (2362, 2364, 0), + (2366, 2383, 0), + (2385, 2391, 0), + (2402, 2403, 0), + (2433, 2435, 0), + (2492, 2492, 0), + (2494, 2500, 0), + (2503, 2504, 0), + (2507, 2509, 0), + (2519, 2519, 0), + (2530, 2531, 0), + (2561, 2563, 0), + (2620, 2620, 0), + (2622, 2626, 0), + (2631, 2632, 0), + (2635, 2637, 0), + (2641, 2641, 0), + (2672, 2673, 0), + (2677, 2677, 0), + (2689, 2691, 0), + (2748, 2748, 0), + (2750, 2757, 0), + (2759, 2761, 0), + (2763, 2765, 0), + (2786, 2787, 0), + (2817, 2819, 0), + (2876, 2876, 0), + (2878, 2884, 0), + (2887, 2888, 0), + (2891, 2893, 0), + (2902, 2903, 0), + (2914, 2915, 0), + (2946, 2946, 0), + (3006, 3010, 0), + (3014, 3016, 0), + (3018, 3021, 0), + (3031, 3031, 0), + (3073, 3075, 0), + (3134, 3140, 0), + (3142, 3144, 0), + (3146, 3149, 0), + (3157, 3158, 0), + (3170, 3171, 0), + (3202, 3203, 0), + (3260, 3260, 0), + (3262, 3268, 0), + (3270, 3272, 0), + (3274, 3277, 0), + (3285, 3286, 0), + (3298, 3299, 0), + (3330, 3331, 0), + (3390, 3396, 0), + (3398, 3400, 0), + (3402, 3405, 0), + (3415, 3415, 0), + (3426, 3427, 0), + (3458, 3459, 0), + (3530, 3530, 0), + (3535, 3540, 0), + (3542, 3542, 0), + (3544, 3551, 0), + (3570, 3571, 0), + (3633, 3633, 0), + (3636, 3642, 0), + (3655, 3662, 0), + (3761, 3761, 0), + (3764, 3769, 0), + (3771, 3772, 0), + (3784, 3789, 0), + (3864, 3865, 0), + (3893, 3893, 0), + (3895, 3895, 0), + (3897, 3897, 0), + (3902, 3903, 0), + (3953, 3972, 0), + (3974, 3975, 0), + (3981, 3991, 0), + (3993, 4028, 0), + (4038, 4038, 0), + (4139, 4158, 0), + (4182, 4185, 0), + (4190, 4192, 0), + (4194, 4196, 0), + (4199, 4205, 0), + (4209, 4212, 0), + (4226, 4237, 0), + (4239, 4239, 0), + (4250, 4253, 0), + (4352, 4447, 2), + (4448, 4607, 0), + (4957, 4959, 0), + (5906, 5908, 0), + (5938, 5940, 0), + (5970, 5971, 0), + (6002, 6003, 0), + (6068, 6099, 0), + (6109, 6109, 0), + (6155, 6158, 0), + (6313, 6313, 0), + (6432, 6443, 0), + (6448, 6459, 0), + (6576, 6592, 0), + (6600, 6601, 0), + (6679, 6683, 0), + (6741, 6750, 0), + (6752, 6780, 0), + (6783, 6783, 0), + (6912, 6916, 0), + (6964, 6980, 0), + (7019, 7027, 0), + (7040, 7042, 0), + (7073, 7085, 0), + (7142, 7155, 0), + (7204, 7223, 0), + (7376, 7378, 0), + (7380, 7400, 0), + (7405, 7405, 0), + (7410, 7412, 0), + (7616, 7654, 0), + (7676, 7679, 0), + (8203, 8207, 0), + (8232, 8238, 0), + (8288, 8292, 0), + (8294, 8303, 0), + (8400, 8432, 0), + (9001, 9002, 2), + (11503, 11505, 0), + (11647, 11647, 0), + (11744, 11775, 0), + (11904, 11929, 2), + (11931, 12019, 2), + (12032, 12245, 2), + (12272, 12283, 2), + (12288, 12329, 2), + (12330, 12335, 0), + (12336, 12350, 2), + (12353, 12438, 2), + (12441, 12442, 0), + (12443, 12543, 2), + (12549, 12589, 2), + (12593, 12686, 2), + (12688, 12730, 2), + (12736, 12771, 2), + (12784, 12830, 2), + (12832, 12871, 2), + (12880, 13054, 2), + (13056, 19903, 2), + (19968, 42124, 2), + (42128, 42182, 2), + (42607, 42610, 0), + (42612, 42621, 0), + (42655, 42655, 0), + (42736, 42737, 0), + (43010, 43010, 0), + (43014, 43014, 0), + (43019, 43019, 0), + (43043, 43047, 0), + (43136, 43137, 0), + (43188, 43204, 0), + (43232, 43249, 0), + (43302, 43309, 0), + (43335, 43347, 0), + (43360, 43388, 2), + (43392, 43395, 0), + (43443, 43456, 0), + (43561, 43574, 0), + (43587, 43587, 0), + (43596, 43597, 0), + (43643, 43643, 0), + (43696, 43696, 0), + (43698, 43700, 0), + (43703, 43704, 0), + (43710, 43711, 0), + (43713, 43713, 0), + (43755, 43759, 0), + (43765, 43766, 0), + (44003, 44010, 0), + (44012, 44013, 0), + (44032, 55203, 2), + (55216, 55295, 0), + (63744, 64255, 2), + (64286, 64286, 0), + (65024, 65039, 0), + (65040, 65049, 2), + (65056, 65062, 0), + (65072, 65106, 2), + (65108, 65126, 2), + (65128, 65131, 2), + (65279, 65279, 0), + (65281, 65376, 2), + (65504, 65510, 2), + (65529, 65531, 0), + (66045, 66045, 0), + (68097, 68099, 0), + (68101, 68102, 0), + (68108, 68111, 0), + (68152, 68154, 0), + (68159, 68159, 0), + (69632, 69634, 0), + (69688, 69702, 0), + (69760, 69762, 0), + (69808, 69818, 0), + (69821, 69821, 0), + (69888, 69890, 0), + (69927, 69940, 0), + (70016, 70018, 0), + (70067, 70080, 0), + (71339, 71351, 0), + (94033, 94078, 0), + (94095, 94098, 0), + (110592, 110593, 2), + (119141, 119145, 0), + (119149, 119170, 0), + (119173, 119179, 0), + (119210, 119213, 0), + (119362, 119364, 0), + (127488, 127490, 2), + (127504, 127546, 2), + (127552, 127560, 2), + (127568, 127569, 2), + (131072, 196605, 2), + (196608, 262141, 2), + (917505, 917505, 0), + (917536, 917631, 0), + (917760, 917999, 0), + ], + narrow_to_wide=frozenset( + { + 9728, + 9729, + 9730, + 9731, + 11013, + 11014, + 9992, + 9996, + 9762, + 127780, + 127781, + 127782, + 127783, + 127784, + 127785, + 127786, + 127787, + 9774, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 9784, + 9785, + 10035, + 10548, + 128329, + 9823, + 10083, + 9829, + 128367, + 127344, + 128371, + 128372, + 128373, + 128374, + 128375, + 128376, + 127358, + 128394, + 128395, + 128396, + 9876, + 9877, + 9878, + 8596, + 8597, + 8598, + 8599, + 9883, + 8600, + 127894, + 127897, + 127898, + 127902, + 8617, + 9642, + 9904, + 128433, + 128450, + 128451, + 127947, + 127948, + 128717, + 128718, + 127949, + 128465, + 128466, + 127956, + 127957, + 127958, + 127959, + 127960, + 127961, + 127962, + 127963, + 127964, + 127965, + 127966, + 128476, + 128736, + 128737, + 128738, + 128739, + 128740, + 128477, + 9208, + 9197, + 9198, + 9968, + 9201, + 9975, + 9976, + 9209, + 9723, + } + ), +) diff --git a/rich/_unicode_data/unicode7-0-0.py b/rich/_unicode_data/unicode7-0-0.py new file mode 100644 index 0000000000..eb474334d5 --- /dev/null +++ b/rich/_unicode_data/unicode7-0-0.py @@ -0,0 +1,393 @@ +# Auto generated by tools/make_width_tables.py + +from rich.cell_string import CellTable + +cell_table = CellTable( + unicode_version="7.0.0", + widths=[ + (0, 0, 0), + (768, 879, 0), + (1155, 1161, 0), + (1425, 1469, 0), + (1471, 1471, 0), + (1473, 1474, 0), + (1476, 1477, 0), + (1479, 1479, 0), + (1536, 1541, 0), + (1552, 1562, 0), + (1564, 1564, 0), + (1611, 1631, 0), + (1648, 1648, 0), + (1750, 1757, 0), + (1759, 1764, 0), + (1767, 1768, 0), + (1770, 1773, 0), + (1807, 1807, 0), + (1809, 1809, 0), + (1840, 1866, 0), + (1958, 1968, 0), + (2027, 2035, 0), + (2070, 2073, 0), + (2075, 2083, 0), + (2085, 2087, 0), + (2089, 2093, 0), + (2137, 2139, 0), + (2276, 2307, 0), + (2362, 2364, 0), + (2366, 2383, 0), + (2385, 2391, 0), + (2402, 2403, 0), + (2433, 2435, 0), + (2492, 2492, 0), + (2494, 2500, 0), + (2503, 2504, 0), + (2507, 2509, 0), + (2519, 2519, 0), + (2530, 2531, 0), + (2561, 2563, 0), + (2620, 2620, 0), + (2622, 2626, 0), + (2631, 2632, 0), + (2635, 2637, 0), + (2641, 2641, 0), + (2672, 2673, 0), + (2677, 2677, 0), + (2689, 2691, 0), + (2748, 2748, 0), + (2750, 2757, 0), + (2759, 2761, 0), + (2763, 2765, 0), + (2786, 2787, 0), + (2817, 2819, 0), + (2876, 2876, 0), + (2878, 2884, 0), + (2887, 2888, 0), + (2891, 2893, 0), + (2902, 2903, 0), + (2914, 2915, 0), + (2946, 2946, 0), + (3006, 3010, 0), + (3014, 3016, 0), + (3018, 3021, 0), + (3031, 3031, 0), + (3072, 3075, 0), + (3134, 3140, 0), + (3142, 3144, 0), + (3146, 3149, 0), + (3157, 3158, 0), + (3170, 3171, 0), + (3201, 3203, 0), + (3260, 3260, 0), + (3262, 3268, 0), + (3270, 3272, 0), + (3274, 3277, 0), + (3285, 3286, 0), + (3298, 3299, 0), + (3329, 3331, 0), + (3390, 3396, 0), + (3398, 3400, 0), + (3402, 3405, 0), + (3415, 3415, 0), + (3426, 3427, 0), + (3458, 3459, 0), + (3530, 3530, 0), + (3535, 3540, 0), + (3542, 3542, 0), + (3544, 3551, 0), + (3570, 3571, 0), + (3633, 3633, 0), + (3636, 3642, 0), + (3655, 3662, 0), + (3761, 3761, 0), + (3764, 3769, 0), + (3771, 3772, 0), + (3784, 3789, 0), + (3864, 3865, 0), + (3893, 3893, 0), + (3895, 3895, 0), + (3897, 3897, 0), + (3902, 3903, 0), + (3953, 3972, 0), + (3974, 3975, 0), + (3981, 3991, 0), + (3993, 4028, 0), + (4038, 4038, 0), + (4139, 4158, 0), + (4182, 4185, 0), + (4190, 4192, 0), + (4194, 4196, 0), + (4199, 4205, 0), + (4209, 4212, 0), + (4226, 4237, 0), + (4239, 4239, 0), + (4250, 4253, 0), + (4352, 4447, 2), + (4448, 4607, 0), + (4957, 4959, 0), + (5906, 5908, 0), + (5938, 5940, 0), + (5970, 5971, 0), + (6002, 6003, 0), + (6068, 6099, 0), + (6109, 6109, 0), + (6155, 6158, 0), + (6313, 6313, 0), + (6432, 6443, 0), + (6448, 6459, 0), + (6576, 6592, 0), + (6600, 6601, 0), + (6679, 6683, 0), + (6741, 6750, 0), + (6752, 6780, 0), + (6783, 6783, 0), + (6832, 6846, 0), + (6912, 6916, 0), + (6964, 6980, 0), + (7019, 7027, 0), + (7040, 7042, 0), + (7073, 7085, 0), + (7142, 7155, 0), + (7204, 7223, 0), + (7376, 7378, 0), + (7380, 7400, 0), + (7405, 7405, 0), + (7410, 7412, 0), + (7416, 7417, 0), + (7616, 7669, 0), + (7676, 7679, 0), + (8203, 8207, 0), + (8232, 8238, 0), + (8288, 8292, 0), + (8294, 8303, 0), + (8400, 8432, 0), + (9001, 9002, 2), + (11503, 11505, 0), + (11647, 11647, 0), + (11744, 11775, 0), + (11904, 11929, 2), + (11931, 12019, 2), + (12032, 12245, 2), + (12272, 12283, 2), + (12288, 12329, 2), + (12330, 12335, 0), + (12336, 12350, 2), + (12353, 12438, 2), + (12441, 12442, 0), + (12443, 12543, 2), + (12549, 12589, 2), + (12593, 12686, 2), + (12688, 12730, 2), + (12736, 12771, 2), + (12784, 12830, 2), + (12832, 12871, 2), + (12880, 13054, 2), + (13056, 19903, 2), + (19968, 42124, 2), + (42128, 42182, 2), + (42607, 42610, 0), + (42612, 42621, 0), + (42655, 42655, 0), + (42736, 42737, 0), + (43010, 43010, 0), + (43014, 43014, 0), + (43019, 43019, 0), + (43043, 43047, 0), + (43136, 43137, 0), + (43188, 43204, 0), + (43232, 43249, 0), + (43302, 43309, 0), + (43335, 43347, 0), + (43360, 43388, 2), + (43392, 43395, 0), + (43443, 43456, 0), + (43493, 43493, 0), + (43561, 43574, 0), + (43587, 43587, 0), + (43596, 43597, 0), + (43643, 43645, 0), + (43696, 43696, 0), + (43698, 43700, 0), + (43703, 43704, 0), + (43710, 43711, 0), + (43713, 43713, 0), + (43755, 43759, 0), + (43765, 43766, 0), + (44003, 44010, 0), + (44012, 44013, 0), + (44032, 55203, 2), + (55216, 55295, 0), + (63744, 64255, 2), + (64286, 64286, 0), + (65024, 65039, 0), + (65040, 65049, 2), + (65056, 65069, 0), + (65072, 65106, 2), + (65108, 65126, 2), + (65128, 65131, 2), + (65279, 65279, 0), + (65281, 65376, 2), + (65504, 65510, 2), + (65529, 65531, 0), + (66045, 66045, 0), + (66272, 66272, 0), + (66422, 66426, 0), + (68097, 68099, 0), + (68101, 68102, 0), + (68108, 68111, 0), + (68152, 68154, 0), + (68159, 68159, 0), + (68325, 68326, 0), + (69632, 69634, 0), + (69688, 69702, 0), + (69759, 69762, 0), + (69808, 69818, 0), + (69821, 69821, 0), + (69888, 69890, 0), + (69927, 69940, 0), + (70003, 70003, 0), + (70016, 70018, 0), + (70067, 70080, 0), + (70188, 70199, 0), + (70367, 70378, 0), + (70401, 70403, 0), + (70460, 70460, 0), + (70462, 70468, 0), + (70471, 70472, 0), + (70475, 70477, 0), + (70487, 70487, 0), + (70498, 70499, 0), + (70502, 70508, 0), + (70512, 70516, 0), + (70832, 70851, 0), + (71087, 71093, 0), + (71096, 71104, 0), + (71216, 71232, 0), + (71339, 71351, 0), + (92912, 92916, 0), + (92976, 92982, 0), + (94033, 94078, 0), + (94095, 94098, 0), + (110592, 110593, 2), + (113821, 113822, 0), + (113824, 113827, 0), + (119141, 119145, 0), + (119149, 119170, 0), + (119173, 119179, 0), + (119210, 119213, 0), + (119362, 119364, 0), + (125136, 125142, 0), + (127488, 127490, 2), + (127504, 127546, 2), + (127552, 127560, 2), + (127568, 127569, 2), + (131072, 196605, 2), + (196608, 262141, 2), + (917505, 917505, 0), + (917536, 917631, 0), + (917760, 917999, 0), + ], + narrow_to_wide=frozenset( + { + 9728, + 9729, + 9730, + 9731, + 11013, + 11014, + 9992, + 9996, + 9762, + 127780, + 127781, + 127782, + 127783, + 127784, + 127785, + 127786, + 127787, + 9774, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 9784, + 9785, + 10035, + 10548, + 128329, + 9823, + 10083, + 9829, + 128367, + 127344, + 128371, + 128372, + 128373, + 128374, + 128375, + 128376, + 127358, + 128394, + 128395, + 128396, + 9876, + 9877, + 9878, + 8596, + 8597, + 8598, + 8599, + 9883, + 8600, + 127894, + 127897, + 127898, + 127902, + 8617, + 9642, + 9904, + 128433, + 128450, + 128451, + 127947, + 127948, + 128717, + 128718, + 127949, + 128465, + 128466, + 127956, + 127957, + 127958, + 127959, + 127960, + 127961, + 127962, + 127963, + 127964, + 127965, + 127966, + 128476, + 128736, + 128737, + 128738, + 128739, + 128740, + 128477, + 9208, + 9197, + 9198, + 9968, + 9201, + 9975, + 9976, + 9209, + 9723, + } + ), +) diff --git a/rich/_unicode_data/unicode8-0-0.py b/rich/_unicode_data/unicode8-0-0.py new file mode 100644 index 0000000000..2af86faf92 --- /dev/null +++ b/rich/_unicode_data/unicode8-0-0.py @@ -0,0 +1,401 @@ +# Auto generated by tools/make_width_tables.py + +from rich.cell_string import CellTable + +cell_table = CellTable( + unicode_version="8.0.0", + widths=[ + (0, 0, 0), + (768, 879, 0), + (1155, 1161, 0), + (1425, 1469, 0), + (1471, 1471, 0), + (1473, 1474, 0), + (1476, 1477, 0), + (1479, 1479, 0), + (1536, 1541, 0), + (1552, 1562, 0), + (1564, 1564, 0), + (1611, 1631, 0), + (1648, 1648, 0), + (1750, 1757, 0), + (1759, 1764, 0), + (1767, 1768, 0), + (1770, 1773, 0), + (1807, 1807, 0), + (1809, 1809, 0), + (1840, 1866, 0), + (1958, 1968, 0), + (2027, 2035, 0), + (2070, 2073, 0), + (2075, 2083, 0), + (2085, 2087, 0), + (2089, 2093, 0), + (2137, 2139, 0), + (2275, 2307, 0), + (2362, 2364, 0), + (2366, 2383, 0), + (2385, 2391, 0), + (2402, 2403, 0), + (2433, 2435, 0), + (2492, 2492, 0), + (2494, 2500, 0), + (2503, 2504, 0), + (2507, 2509, 0), + (2519, 2519, 0), + (2530, 2531, 0), + (2561, 2563, 0), + (2620, 2620, 0), + (2622, 2626, 0), + (2631, 2632, 0), + (2635, 2637, 0), + (2641, 2641, 0), + (2672, 2673, 0), + (2677, 2677, 0), + (2689, 2691, 0), + (2748, 2748, 0), + (2750, 2757, 0), + (2759, 2761, 0), + (2763, 2765, 0), + (2786, 2787, 0), + (2817, 2819, 0), + (2876, 2876, 0), + (2878, 2884, 0), + (2887, 2888, 0), + (2891, 2893, 0), + (2902, 2903, 0), + (2914, 2915, 0), + (2946, 2946, 0), + (3006, 3010, 0), + (3014, 3016, 0), + (3018, 3021, 0), + (3031, 3031, 0), + (3072, 3075, 0), + (3134, 3140, 0), + (3142, 3144, 0), + (3146, 3149, 0), + (3157, 3158, 0), + (3170, 3171, 0), + (3201, 3203, 0), + (3260, 3260, 0), + (3262, 3268, 0), + (3270, 3272, 0), + (3274, 3277, 0), + (3285, 3286, 0), + (3298, 3299, 0), + (3329, 3331, 0), + (3390, 3396, 0), + (3398, 3400, 0), + (3402, 3405, 0), + (3415, 3415, 0), + (3426, 3427, 0), + (3458, 3459, 0), + (3530, 3530, 0), + (3535, 3540, 0), + (3542, 3542, 0), + (3544, 3551, 0), + (3570, 3571, 0), + (3633, 3633, 0), + (3636, 3642, 0), + (3655, 3662, 0), + (3761, 3761, 0), + (3764, 3769, 0), + (3771, 3772, 0), + (3784, 3789, 0), + (3864, 3865, 0), + (3893, 3893, 0), + (3895, 3895, 0), + (3897, 3897, 0), + (3902, 3903, 0), + (3953, 3972, 0), + (3974, 3975, 0), + (3981, 3991, 0), + (3993, 4028, 0), + (4038, 4038, 0), + (4139, 4158, 0), + (4182, 4185, 0), + (4190, 4192, 0), + (4194, 4196, 0), + (4199, 4205, 0), + (4209, 4212, 0), + (4226, 4237, 0), + (4239, 4239, 0), + (4250, 4253, 0), + (4352, 4447, 2), + (4448, 4607, 0), + (4957, 4959, 0), + (5906, 5908, 0), + (5938, 5940, 0), + (5970, 5971, 0), + (6002, 6003, 0), + (6068, 6099, 0), + (6109, 6109, 0), + (6155, 6158, 0), + (6313, 6313, 0), + (6432, 6443, 0), + (6448, 6459, 0), + (6679, 6683, 0), + (6741, 6750, 0), + (6752, 6780, 0), + (6783, 6783, 0), + (6832, 6846, 0), + (6912, 6916, 0), + (6964, 6980, 0), + (7019, 7027, 0), + (7040, 7042, 0), + (7073, 7085, 0), + (7142, 7155, 0), + (7204, 7223, 0), + (7376, 7378, 0), + (7380, 7400, 0), + (7405, 7405, 0), + (7410, 7412, 0), + (7416, 7417, 0), + (7616, 7669, 0), + (7676, 7679, 0), + (8203, 8207, 0), + (8232, 8238, 0), + (8288, 8292, 0), + (8294, 8303, 0), + (8400, 8432, 0), + (9001, 9002, 2), + (11503, 11505, 0), + (11647, 11647, 0), + (11744, 11775, 0), + (11904, 11929, 2), + (11931, 12019, 2), + (12032, 12245, 2), + (12272, 12283, 2), + (12288, 12329, 2), + (12330, 12335, 0), + (12336, 12350, 2), + (12353, 12438, 2), + (12441, 12442, 0), + (12443, 12543, 2), + (12549, 12589, 2), + (12593, 12686, 2), + (12688, 12730, 2), + (12736, 12771, 2), + (12784, 12830, 2), + (12832, 12871, 2), + (12880, 13054, 2), + (13056, 19903, 2), + (19968, 42124, 2), + (42128, 42182, 2), + (42607, 42610, 0), + (42612, 42621, 0), + (42654, 42655, 0), + (42736, 42737, 0), + (43010, 43010, 0), + (43014, 43014, 0), + (43019, 43019, 0), + (43043, 43047, 0), + (43136, 43137, 0), + (43188, 43204, 0), + (43232, 43249, 0), + (43302, 43309, 0), + (43335, 43347, 0), + (43360, 43388, 2), + (43392, 43395, 0), + (43443, 43456, 0), + (43493, 43493, 0), + (43561, 43574, 0), + (43587, 43587, 0), + (43596, 43597, 0), + (43643, 43645, 0), + (43696, 43696, 0), + (43698, 43700, 0), + (43703, 43704, 0), + (43710, 43711, 0), + (43713, 43713, 0), + (43755, 43759, 0), + (43765, 43766, 0), + (44003, 44010, 0), + (44012, 44013, 0), + (44032, 55203, 2), + (55216, 55295, 0), + (63744, 64255, 2), + (64286, 64286, 0), + (65024, 65039, 0), + (65040, 65049, 2), + (65056, 65071, 0), + (65072, 65106, 2), + (65108, 65126, 2), + (65128, 65131, 2), + (65279, 65279, 0), + (65281, 65376, 2), + (65504, 65510, 2), + (65529, 65531, 0), + (66045, 66045, 0), + (66272, 66272, 0), + (66422, 66426, 0), + (68097, 68099, 0), + (68101, 68102, 0), + (68108, 68111, 0), + (68152, 68154, 0), + (68159, 68159, 0), + (68325, 68326, 0), + (69632, 69634, 0), + (69688, 69702, 0), + (69759, 69762, 0), + (69808, 69818, 0), + (69821, 69821, 0), + (69888, 69890, 0), + (69927, 69940, 0), + (70003, 70003, 0), + (70016, 70018, 0), + (70067, 70080, 0), + (70090, 70092, 0), + (70188, 70199, 0), + (70367, 70378, 0), + (70400, 70403, 0), + (70460, 70460, 0), + (70462, 70468, 0), + (70471, 70472, 0), + (70475, 70477, 0), + (70487, 70487, 0), + (70498, 70499, 0), + (70502, 70508, 0), + (70512, 70516, 0), + (70832, 70851, 0), + (71087, 71093, 0), + (71096, 71104, 0), + (71132, 71133, 0), + (71216, 71232, 0), + (71339, 71351, 0), + (71453, 71467, 0), + (92912, 92916, 0), + (92976, 92982, 0), + (94033, 94078, 0), + (94095, 94098, 0), + (110592, 110593, 2), + (113821, 113822, 0), + (113824, 113827, 0), + (119141, 119145, 0), + (119149, 119170, 0), + (119173, 119179, 0), + (119210, 119213, 0), + (119362, 119364, 0), + (121344, 121398, 0), + (121403, 121452, 0), + (121461, 121461, 0), + (121476, 121476, 0), + (121499, 121503, 0), + (121505, 121519, 0), + (125136, 125142, 0), + (127488, 127490, 2), + (127504, 127546, 2), + (127552, 127560, 2), + (127568, 127569, 2), + (127995, 127999, 0), + (131072, 196605, 2), + (196608, 262141, 2), + (917505, 917505, 0), + (917536, 917631, 0), + (917760, 917999, 0), + ], + narrow_to_wide=frozenset( + { + 9728, + 9729, + 9730, + 9731, + 11013, + 11014, + 9992, + 9996, + 9762, + 127780, + 127781, + 127782, + 127783, + 127784, + 127785, + 127786, + 127787, + 9774, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 9784, + 9785, + 10035, + 10548, + 128329, + 9823, + 10083, + 9829, + 128367, + 127344, + 128371, + 128372, + 128373, + 128374, + 128375, + 128376, + 127358, + 128394, + 128395, + 128396, + 9876, + 9877, + 9878, + 8596, + 8597, + 8598, + 8599, + 9883, + 8600, + 127894, + 127897, + 127898, + 127902, + 8617, + 9642, + 9904, + 128433, + 128450, + 128451, + 127947, + 127948, + 128717, + 128718, + 127949, + 128465, + 128466, + 127956, + 127957, + 127958, + 127959, + 127960, + 127961, + 127962, + 127963, + 127964, + 127965, + 127966, + 128476, + 128736, + 128737, + 128738, + 128739, + 128740, + 128477, + 9208, + 9197, + 9198, + 9968, + 9201, + 9975, + 9976, + 9209, + 9723, + } + ), +) diff --git a/rich/_unicode_data/unicode9-0-0.py b/rich/_unicode_data/unicode9-0-0.py new file mode 100644 index 0000000000..a7b28f474e --- /dev/null +++ b/rich/_unicode_data/unicode9-0-0.py @@ -0,0 +1,486 @@ +# Auto generated by tools/make_width_tables.py + +from rich.cell_string import CellTable + +cell_table = CellTable( + unicode_version="9.0.0", + widths=[ + (0, 0, 0), + (768, 879, 0), + (1155, 1161, 0), + (1425, 1469, 0), + (1471, 1471, 0), + (1473, 1474, 0), + (1476, 1477, 0), + (1479, 1479, 0), + (1536, 1541, 0), + (1552, 1562, 0), + (1564, 1564, 0), + (1611, 1631, 0), + (1648, 1648, 0), + (1750, 1757, 0), + (1759, 1764, 0), + (1767, 1768, 0), + (1770, 1773, 0), + (1807, 1807, 0), + (1809, 1809, 0), + (1840, 1866, 0), + (1958, 1968, 0), + (2027, 2035, 0), + (2070, 2073, 0), + (2075, 2083, 0), + (2085, 2087, 0), + (2089, 2093, 0), + (2137, 2139, 0), + (2260, 2307, 0), + (2362, 2364, 0), + (2366, 2383, 0), + (2385, 2391, 0), + (2402, 2403, 0), + (2433, 2435, 0), + (2492, 2492, 0), + (2494, 2500, 0), + (2503, 2504, 0), + (2507, 2509, 0), + (2519, 2519, 0), + (2530, 2531, 0), + (2561, 2563, 0), + (2620, 2620, 0), + (2622, 2626, 0), + (2631, 2632, 0), + (2635, 2637, 0), + (2641, 2641, 0), + (2672, 2673, 0), + (2677, 2677, 0), + (2689, 2691, 0), + (2748, 2748, 0), + (2750, 2757, 0), + (2759, 2761, 0), + (2763, 2765, 0), + (2786, 2787, 0), + (2817, 2819, 0), + (2876, 2876, 0), + (2878, 2884, 0), + (2887, 2888, 0), + (2891, 2893, 0), + (2902, 2903, 0), + (2914, 2915, 0), + (2946, 2946, 0), + (3006, 3010, 0), + (3014, 3016, 0), + (3018, 3021, 0), + (3031, 3031, 0), + (3072, 3075, 0), + (3134, 3140, 0), + (3142, 3144, 0), + (3146, 3149, 0), + (3157, 3158, 0), + (3170, 3171, 0), + (3201, 3203, 0), + (3260, 3260, 0), + (3262, 3268, 0), + (3270, 3272, 0), + (3274, 3277, 0), + (3285, 3286, 0), + (3298, 3299, 0), + (3329, 3331, 0), + (3390, 3396, 0), + (3398, 3400, 0), + (3402, 3405, 0), + (3415, 3415, 0), + (3426, 3427, 0), + (3458, 3459, 0), + (3530, 3530, 0), + (3535, 3540, 0), + (3542, 3542, 0), + (3544, 3551, 0), + (3570, 3571, 0), + (3633, 3633, 0), + (3636, 3642, 0), + (3655, 3662, 0), + (3761, 3761, 0), + (3764, 3769, 0), + (3771, 3772, 0), + (3784, 3789, 0), + (3864, 3865, 0), + (3893, 3893, 0), + (3895, 3895, 0), + (3897, 3897, 0), + (3902, 3903, 0), + (3953, 3972, 0), + (3974, 3975, 0), + (3981, 3991, 0), + (3993, 4028, 0), + (4038, 4038, 0), + (4139, 4158, 0), + (4182, 4185, 0), + (4190, 4192, 0), + (4194, 4196, 0), + (4199, 4205, 0), + (4209, 4212, 0), + (4226, 4237, 0), + (4239, 4239, 0), + (4250, 4253, 0), + (4352, 4447, 2), + (4448, 4607, 0), + (4957, 4959, 0), + (5906, 5908, 0), + (5938, 5940, 0), + (5970, 5971, 0), + (6002, 6003, 0), + (6068, 6099, 0), + (6109, 6109, 0), + (6155, 6158, 0), + (6277, 6278, 0), + (6313, 6313, 0), + (6432, 6443, 0), + (6448, 6459, 0), + (6679, 6683, 0), + (6741, 6750, 0), + (6752, 6780, 0), + (6783, 6783, 0), + (6832, 6846, 0), + (6912, 6916, 0), + (6964, 6980, 0), + (7019, 7027, 0), + (7040, 7042, 0), + (7073, 7085, 0), + (7142, 7155, 0), + (7204, 7223, 0), + (7376, 7378, 0), + (7380, 7400, 0), + (7405, 7405, 0), + (7410, 7412, 0), + (7416, 7417, 0), + (7616, 7669, 0), + (7675, 7679, 0), + (8203, 8207, 0), + (8232, 8238, 0), + (8288, 8292, 0), + (8294, 8303, 0), + (8400, 8432, 0), + (8986, 8987, 2), + (9001, 9002, 2), + (9193, 9196, 2), + (9200, 9200, 2), + (9203, 9203, 2), + (9725, 9726, 2), + (9748, 9749, 2), + (9800, 9811, 2), + (9855, 9855, 2), + (9875, 9875, 2), + (9889, 9889, 2), + (9898, 9899, 2), + (9917, 9918, 2), + (9924, 9925, 2), + (9934, 9934, 2), + (9940, 9940, 2), + (9962, 9962, 2), + (9970, 9971, 2), + (9973, 9973, 2), + (9978, 9978, 2), + (9981, 9981, 2), + (9989, 9989, 2), + (9994, 9995, 2), + (10024, 10024, 2), + (10060, 10060, 2), + (10062, 10062, 2), + (10067, 10069, 2), + (10071, 10071, 2), + (10133, 10135, 2), + (10160, 10160, 2), + (10175, 10175, 2), + (11035, 11036, 2), + (11088, 11088, 2), + (11093, 11093, 2), + (11503, 11505, 0), + (11647, 11647, 0), + (11744, 11775, 0), + (11904, 11929, 2), + (11931, 12019, 2), + (12032, 12245, 2), + (12272, 12283, 2), + (12288, 12329, 2), + (12330, 12335, 0), + (12336, 12350, 2), + (12353, 12438, 2), + (12441, 12442, 0), + (12443, 12543, 2), + (12549, 12589, 2), + (12593, 12686, 2), + (12688, 12730, 2), + (12736, 12771, 2), + (12784, 12830, 2), + (12832, 12871, 2), + (12880, 13054, 2), + (13056, 19903, 2), + (19968, 42124, 2), + (42128, 42182, 2), + (42607, 42610, 0), + (42612, 42621, 0), + (42654, 42655, 0), + (42736, 42737, 0), + (43010, 43010, 0), + (43014, 43014, 0), + (43019, 43019, 0), + (43043, 43047, 0), + (43136, 43137, 0), + (43188, 43205, 0), + (43232, 43249, 0), + (43302, 43309, 0), + (43335, 43347, 0), + (43360, 43388, 2), + (43392, 43395, 0), + (43443, 43456, 0), + (43493, 43493, 0), + (43561, 43574, 0), + (43587, 43587, 0), + (43596, 43597, 0), + (43643, 43645, 0), + (43696, 43696, 0), + (43698, 43700, 0), + (43703, 43704, 0), + (43710, 43711, 0), + (43713, 43713, 0), + (43755, 43759, 0), + (43765, 43766, 0), + (44003, 44010, 0), + (44012, 44013, 0), + (44032, 55203, 2), + (55216, 55295, 0), + (63744, 64255, 2), + (64286, 64286, 0), + (65024, 65039, 0), + (65040, 65049, 2), + (65056, 65071, 0), + (65072, 65106, 2), + (65108, 65126, 2), + (65128, 65131, 2), + (65279, 65279, 0), + (65281, 65376, 2), + (65504, 65510, 2), + (65529, 65531, 0), + (66045, 66045, 0), + (66272, 66272, 0), + (66422, 66426, 0), + (68097, 68099, 0), + (68101, 68102, 0), + (68108, 68111, 0), + (68152, 68154, 0), + (68159, 68159, 0), + (68325, 68326, 0), + (69632, 69634, 0), + (69688, 69702, 0), + (69759, 69762, 0), + (69808, 69818, 0), + (69821, 69821, 0), + (69888, 69890, 0), + (69927, 69940, 0), + (70003, 70003, 0), + (70016, 70018, 0), + (70067, 70080, 0), + (70090, 70092, 0), + (70188, 70199, 0), + (70206, 70206, 0), + (70367, 70378, 0), + (70400, 70403, 0), + (70460, 70460, 0), + (70462, 70468, 0), + (70471, 70472, 0), + (70475, 70477, 0), + (70487, 70487, 0), + (70498, 70499, 0), + (70502, 70508, 0), + (70512, 70516, 0), + (70709, 70726, 0), + (70832, 70851, 0), + (71087, 71093, 0), + (71096, 71104, 0), + (71132, 71133, 0), + (71216, 71232, 0), + (71339, 71351, 0), + (71453, 71467, 0), + (72751, 72758, 0), + (72760, 72767, 0), + (72850, 72871, 0), + (72873, 72886, 0), + (92912, 92916, 0), + (92976, 92982, 0), + (94033, 94078, 0), + (94095, 94098, 0), + (94176, 94176, 2), + (94208, 100332, 2), + (100352, 101106, 2), + (110592, 110593, 2), + (113821, 113822, 0), + (113824, 113827, 0), + (119141, 119145, 0), + (119149, 119170, 0), + (119173, 119179, 0), + (119210, 119213, 0), + (119362, 119364, 0), + (121344, 121398, 0), + (121403, 121452, 0), + (121461, 121461, 0), + (121476, 121476, 0), + (121499, 121503, 0), + (121505, 121519, 0), + (122880, 122886, 0), + (122888, 122904, 0), + (122907, 122913, 0), + (122915, 122916, 0), + (122918, 122922, 0), + (125136, 125142, 0), + (125252, 125258, 0), + (126980, 126980, 2), + (127183, 127183, 2), + (127374, 127374, 2), + (127377, 127386, 2), + (127488, 127490, 2), + (127504, 127547, 2), + (127552, 127560, 2), + (127568, 127569, 2), + (127744, 127776, 2), + (127789, 127797, 2), + (127799, 127868, 2), + (127870, 127891, 2), + (127904, 127946, 2), + (127951, 127955, 2), + (127968, 127984, 2), + (127988, 127988, 2), + (127992, 127994, 2), + (127995, 127999, 0), + (128000, 128062, 2), + (128064, 128064, 2), + (128066, 128252, 2), + (128255, 128317, 2), + (128331, 128334, 2), + (128336, 128359, 2), + (128378, 128378, 2), + (128405, 128406, 2), + (128420, 128420, 2), + (128507, 128591, 2), + (128640, 128709, 2), + (128716, 128716, 2), + (128720, 128722, 2), + (128747, 128748, 2), + (128756, 128758, 2), + (129296, 129310, 2), + (129312, 129319, 2), + (129328, 129328, 2), + (129331, 129342, 2), + (129344, 129355, 2), + (129360, 129374, 2), + (129408, 129425, 2), + (129472, 129472, 2), + (131072, 196605, 2), + (196608, 262141, 2), + (917505, 917505, 0), + (917536, 917631, 0), + (917760, 917999, 0), + ], + narrow_to_wide=frozenset( + { + 9728, + 9729, + 9730, + 9731, + 11013, + 11014, + 9992, + 9996, + 9762, + 127780, + 127781, + 127782, + 127783, + 127784, + 127785, + 127786, + 127787, + 9774, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 9784, + 9785, + 10035, + 10548, + 128329, + 9823, + 10083, + 9829, + 128367, + 127344, + 128371, + 128372, + 128373, + 128374, + 128375, + 128376, + 127358, + 128394, + 128395, + 128396, + 9876, + 9877, + 9878, + 8596, + 8597, + 8598, + 8599, + 9883, + 8600, + 127894, + 127897, + 127898, + 127902, + 8617, + 9642, + 9904, + 128433, + 128450, + 128451, + 127947, + 127948, + 128717, + 128718, + 127949, + 128465, + 128466, + 127956, + 127957, + 127958, + 127959, + 127960, + 127961, + 127962, + 127963, + 127964, + 127965, + 127966, + 128476, + 128736, + 128737, + 128738, + 128739, + 128740, + 128477, + 9208, + 9197, + 9198, + 9968, + 9201, + 9975, + 9976, + 9209, + 9723, + } + ), +) From 5ffec68c91d460eff61105b736df4768234e40be Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Tue, 20 Jan 2026 11:27:10 +0000 Subject: [PATCH 04/29] split text --- rich/_unicode_data/__init__.py | 11 +- rich/cell_string.py | 313 ++++++++++++++++++++++++++------- 2 files changed, 258 insertions(+), 66 deletions(-) diff --git a/rich/_unicode_data/__init__.py b/rich/_unicode_data/__init__.py index bba493723e..1127c88d8b 100644 --- a/rich/_unicode_data/__init__.py +++ b/rich/_unicode_data/__init__.py @@ -1,10 +1,15 @@ +from __future__ import annotations + import bisect import os from functools import cache from importlib import import_module +from typing import TYPE_CHECKING from rich._unicode_data._versions import VERSIONS -from rich.cell_string import CellTable + +if TYPE_CHECKING: + from rich.cell_string import CellTable VERSION_ORDER = sorted( [ @@ -44,14 +49,14 @@ def _parse_version(version: str) -> tuple[int, int, int]: @cache -def load(unicode_version: str | None) -> CellTable: +def load(unicode_version: str = "auto") -> CellTable: """Load a cell table for the given unicode version. Args: unicode_version: Unicode version, or `None` to auto-detect. """ - if unicode_version is None: + if unicode_version == "auto": unicode_version = os.environ.get("UNICODE_VERSION", "latest") try: _parse_version(unicode_version) diff --git a/rich/cell_string.py b/rich/cell_string.py index e15d840f68..1c3241ec16 100644 --- a/rich/cell_string.py +++ b/rich/cell_string.py @@ -1,5 +1,13 @@ +from functools import lru_cache +from operator import itemgetter from typing import Callable, Generator, Iterator, NamedTuple, Sequence +from rich._unicode_data import load as load_cell_table + +Span = tuple[int, int, int] + +_span_get_cell_len = itemgetter(2) + # Ranges of unicode ordinals that produce a 1-cell wide character # This is non-exhaustive, but covers most common Western characters _SINGLE_CELL_UNICODE_RANGES: list[tuple[int, int]] = [ @@ -11,7 +19,7 @@ (0x02800, 0x028FF), # Braille ] -# A set of characters that are a single cell wide +# A frozen set of characters that are a single cell wide _SINGLE_CELLS = frozenset( [ character @@ -32,26 +40,30 @@ class CellTable(NamedTuple): widths: Sequence[tuple[int, int, int]] narrow_to_wide: frozenset[int] - def get_cell_size(self, character: str) -> None: - pass + def __hash__(self) -> int: + return hash(self.unicode_version) -def get_character_cell_size(character: str, cell_table: CellTable | None) -> int: +@lru_cache(maxsize=4096) +def get_character_cell_size(character: str, unicode_version: str = "auto") -> int: """Get the cell size of a character. Args: character (str): A single character. + unicode_version: Unicode version, `"auto"` to auto detect, `"latest"` for the latest unicode version. Returns: int: Number of cells (0, 1 or 2) occupied by that character. """ codepoint = ord(character) - _table = CELL_WIDTHS + table = load_cell_table(unicode_version).widths + if codepoint < table[0][0] or codepoint > table[-1][1]: + return 0 lower_bound = 0 - upper_bound = len(_table) - 1 + upper_bound = len(table) - 1 index = (lower_bound + upper_bound) // 2 while True: - start, end, width = _table[index] + start, end, width = table[index] if codepoint < start: upper_bound = index - 1 elif codepoint > end: @@ -64,65 +76,205 @@ def get_character_cell_size(character: str, cell_table: CellTable | None) -> int return 1 -def _bisearch(codepoint: int, table: Sequence[tuple[int, int, int]]) -> int: - """Binary search a codepoint table. +def cell_len(text: str, unicode_version: str = "auto") -> int: + """Get the cell length of a string (length as it appears in the terminal). Args: - codepoint: The codepoint of a character. - table: A codepoint table. + text: String to measure. + unicode_version: Unicode version, `"auto"` to auto detect, `"latest"` for the latest unicode version. + Returns: + Length of string in terminal cells. """ - lbound = 0 - ubound = len(table) - 1 - - if codepoint < table[0][0] or codepoint > table[ubound][1]: - return 0 - while ubound >= lbound: - mid = (lbound + ubound) // 2 - if codepoint > table[mid][1]: - lbound = mid + 1 - elif codepoint < table[mid][0]: - ubound = mid - 1 + if _is_single_cell_widths(text): + return len(text) + + # "\u200d" is zero width joiner + # "\ufe0f" is variation selector 16 + if "\u200d" not in text and "\ufe0f" not in text: + return sum( + get_character_cell_size(character, unicode_version) for character in text + ) + + cell_table = load_cell_table(unicode_version) + codepoint_count = len(text) + total_width = 0 + index = 0 + last_measured_character: str | None = None + + SPECIAL = {"\u200d", "\ufe0f"} + + while index < codepoint_count: + if (character := text[index]) in SPECIAL: + if character == "\u200d": + index += 2 + elif last_measured_character: + total_width += last_measured_character in cell_table.narrow_to_wide + last_measured_character = None + index += 1 else: - return 1 + if character_width := get_character_cell_size(character, unicode_version): + last_measured_character = character + total_width += character_width + index += 1 - return 0 + return total_width -def _binary_search(character: str) -> int: - """Get the cell size of a character. +def split_graphemes( + text: str, unicode_version: str = "auto" +) -> "tuple[list[Span], int]": + """Divide text in to spans that define a single grapheme. Args: - character (str): A single character. + text: String to split. + unicode_version: Unicode version, `"auto"` to auto detect, `"latest"` for the latest unicode version. Returns: - int: Number of cells (0, 1 or 2) occupied by that character. + List of spans. """ - codepoint = ord(character) - _table = CELL_WIDTHS - lower_bound = 0 - upper_bound = len(_table) - 1 - index = (lower_bound + upper_bound) // 2 + + cell_table = load_cell_table(unicode_version) + codepoint_count = len(text) + index = 0 + last_measured_character: str | None = None + + total_width = 0 + spans: list[tuple[int, int, int]] = [] + SPECIAL = {"\u200d", "\ufe0f"} + while index < codepoint_count: + if (character := text[index]) in SPECIAL: + if character == "\u200d": + # zero width joiner + index += 2 + if spans: + start, _end, cell_length = spans[-1] + spans[-1] = (start, index, cell_length) + elif last_measured_character: + # variation selector 16 + index += 1 + if spans: + start, _end, cell_length = spans[-1] + if last_measured_character in cell_table.narrow_to_wide: + last_measured_character = None + cell_length += 1 + total_width += 1 + spans[-1] = (start, index, cell_length) + continue + + if character_width := get_character_cell_size(character, unicode_version): + last_measured_character = character + spans.append((index, index := index + 1, character_width)) + total_width += character_width + elif spans: + # zero width characters are associated with the previous character + start, _end, cell_length = spans[-1] + spans[-1] = (start, index := index + 1, cell_length) + + return (spans, total_width) + + +def _split_text( + text: str, cell_position: int, unicode_version: str = "auto" +) -> tuple[str, str]: + """Split text by cell position. + + If the cell position falls within a double width character, it is converted to two spaces. + + Args: + text: Text to split. + cell_position Offset in cells. + unicode_version: Unicode version, `"auto"` to auto detect, `"latest"` for the latest unicode version. + + Returns: + Tuple to two split strings. + """ + if cell_position == 0: + return "", text + + spans, cell_length = split_graphemes(text, unicode_version) + + # Guess initial offset + offset = int((cell_position / cell_length) * len(spans)) + left_size = sum(map(_span_get_cell_len, spans[:offset])) + while True: - start, end, width = _table[index] - if codepoint < start: - upper_bound = index - 1 - elif codepoint > end: - lower_bound = index + 1 + if left_size == cell_position: + split_index = spans[offset][0] + return text[:split_index], text[split_index:] + if left_size < cell_position: + start, end, cell_size = spans[offset] + if left_size + cell_size > cell_position: + return text[:start] + " ", " " + text[end:] + offset += 1 + left_size += cell_size else: - return 0 if width == -1 else width - if upper_bound < lower_bound: - break - index = (lower_bound + upper_bound) // 2 - return 1 + start, end, cell_size = spans[offset] + if left_size - cell_size < cell_position: + return text[:start] + " ", " " + text[end:] + offset -= 1 + left_size -= cell_size + + +def split_text( + text: str, cell_position: int, unicode_version: str = "auto" +) -> tuple[str, str]: + """Split text by cell position. + If the cell position falls within a double width character, it is converted to two spaces. -class Span(NamedTuple): - """Defines a range of a single grapheme.""" + Args: + text: Text to split. + cell_position Offset in cells. + unicode_version: Unicode version, `"auto"` to auto detect, `"latest"` for the latest unicode version. + + Returns: + Tuple to two split strings. + """ + if _is_single_cell_widths(text): + return text[:cell_position], text[cell_position:] + return _split_text(text, cell_position, unicode_version) - start: int - end: int - cell_length: int + +def set_cell_size(text: str, total: int, unicode_version: str = "auto") -> str: + """Adjust a string by cropping or padding with spaces such that it fits within the given number of cells. + + Args: + text: String to adjust. + total: Desired size in cells. + unicode_version: Unicode version. + + Returns: + A string with cell size equal to total. + """ + if _is_single_cell_widths(text): + size = len(text) + if size < total: + return text + " " * (total - size) + return text[:total] + if total <= 0: + return "" + cell_size = cell_len(text) + if cell_size == total: + return text + if cell_size < total: + return text + " " * (total - cell_size) + text, _ = _split_text(text, total, unicode_version) + return text + + +def chop_cells(text: str, width: int) -> list[str]: + """Split text into lines such that each line fits within the available (cell) width. + + Args: + text: The text to fold such that it fits in the given width. + width: The width available (number of cells). + + Returns: + A list of strings such that each string in the list has cell width + less than or equal to the available width. + """ + # TODO class CellString: @@ -133,7 +285,8 @@ def __init__( text: str, *, cell_length: int | None = None, - spans: list[Span] | None = None, + spans: "list[Span] | None" = None, + unicode_version: str = "auto", ): """ @@ -141,6 +294,7 @@ def __init__( text: The plain text. cell_length: The cell length (as it appears in the terminal), if known. spans: List of spans which divide the text in to atomic units (single glyphs). + unicode_version: Unicode version, `"auto"` to auto detect, `"latest"` for the latest unicode version. """ self._text = text self._singles: bool = _is_single_cell_widths(text) @@ -148,7 +302,8 @@ def __init__( self._cell_length = len(text) if self._singles else None else: self._cell_length = cell_length - self._spans: list[Span] | None = spans + self._spans: "list[Span] | None" = spans + self._unicode_version = unicode_version @property def text(self) -> str: @@ -156,24 +311,41 @@ def text(self) -> str: return self._text @property - def spans(self) -> list[Span]: - if self._spans is not None: + def spans(self) -> "list[Span]": + if self._spans is None: if self._singles: self._spans = [ - Span(index, index + 1, 1) for index in range(len(self._text)) + (index, index + 1, 1) for index in range(len(self._text)) ] else: - # TODO: - self._spans = [] - + self._spans, self._cell_length = split_graphemes( + self._text, self._unicode_version + ) return self._spans @property def cell_length(self) -> int: + """The 'cell' length (length as displayed in the terminal).""" if self._cell_length is None: - self._cell_length = sum([cell_length for _, _, cell_length in self.spans]) + self._cell_length = cell_len(self._text) return self._cell_length + @property + def glyphs(self) -> list[str]: + """List of strings that make up atomic glyph.""" + text = self._text + glyphs = [text[start:end] for start, end, _ in self.spans] + return glyphs + + @property + def glyph_widths(self) -> list[tuple[str, int]]: + """List of strings that make up atomic glyph, and corresponding cell width.""" + text = self._text + glyph_widths = [ + (text[start:end], cell_length) for start, end, cell_length in self.spans + ] + return glyph_widths + def __bool__(self) -> bool: return bool(self._text) @@ -188,13 +360,13 @@ def __eq__(self, other: object) -> bool: def __add__(self, other: "CellString") -> "CellString": if self._singles and other._singles: return CellString(self._text + other._text) - spans: list[Span] | None + spans: "list[Span] | None" if self._spans is not None and other._spans is not None: self_length = len(self._text) spans = [ *self._spans, *[ - Span(start + self_length, end + self_length, cell_length) + (start + self_length, end + self_length, cell_length) for start, end, cell_length in other.spans ], ] @@ -206,7 +378,7 @@ def __iter__(self) -> Iterator[str]: if self._singles: return iter(self._text) - def iterate_text(text: str, spans: list[Span]) -> Generator[str]: + def iterate_text(text: str, spans: "list[Span]") -> Generator[str]: """Generator for the""" for start, end, _ in spans: yield text[start:end] @@ -217,7 +389,7 @@ def __reversed__(self) -> Iterator[str]: if self._singles: return reversed(self._text) - def iterate_text(text: str, spans: list[Span]): + def iterate_text(text: str, spans: "list[Span]"): for start, end, _ in reversed(spans): yield text[start:end] @@ -235,8 +407,8 @@ def __getitem__(self, index: int | slice) -> str: start, stop, stride = index.indices(len(self.spans)) if stride == 1: # Fast path for a stride of 1 - start_offset = self.spans[start] - stop_offset = self.spans[stop] + start_offset = self.spans[start][0] + stop_offset = self.spans[stop][1] return self._text[start_offset:stop_offset] else: # More involved case of a stride > 1 @@ -247,3 +419,18 @@ def __getitem__(self, index: int | slice) -> str: output.append(self._text[start_offset:end_offset]) span_offset += stride return "".join(output) + + +if __name__ == "__main__": + from rich import print + + print(CellString("Hello World").glyphs) + + print(CellString("Female mechanic: ๐Ÿ‘ฉ\u200d๐Ÿ”ง").glyphs) + print(CellString("Female mechanic: ๐Ÿ‘ฉ\u200d๐Ÿ”ง").glyph_widths) + + left, right = split_text("Hello ๐Ÿ‘ฉ\u200d๐Ÿ”ง World", 9) + print(repr(left)) + print(repr(right)) + print(left) + print(right) From 7001a52a356f8e51a3e1cc2ac48192ecb3b46d9d Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Tue, 20 Jan 2026 12:59:02 +0000 Subject: [PATCH 05/29] move to cells.py --- rich/_unicode_data/unicode10-0-0.py | 2 +- rich/_unicode_data/unicode11-0-0.py | 2 +- rich/_unicode_data/unicode12-0-0.py | 2 +- rich/_unicode_data/unicode12-1-0.py | 2 +- rich/_unicode_data/unicode13-0-0.py | 2 +- rich/_unicode_data/unicode14-0-0.py | 2 +- rich/_unicode_data/unicode15-0-0.py | 2 +- rich/_unicode_data/unicode15-1-0.py | 2 +- rich/_unicode_data/unicode16-0-0.py | 2 +- rich/_unicode_data/unicode17-0-0.py | 2 +- rich/_unicode_data/unicode4-1-0.py | 2 +- rich/_unicode_data/unicode5-0-0.py | 2 +- rich/_unicode_data/unicode5-1-0.py | 2 +- rich/_unicode_data/unicode5-2-0.py | 2 +- rich/_unicode_data/unicode6-0-0.py | 2 +- rich/_unicode_data/unicode6-1-0.py | 2 +- rich/_unicode_data/unicode6-2-0.py | 2 +- rich/_unicode_data/unicode6-3-0.py | 2 +- rich/_unicode_data/unicode7-0-0.py | 2 +- rich/_unicode_data/unicode8-0-0.py | 2 +- rich/_unicode_data/unicode9-0-0.py | 2 +- rich/cell_string.py | 436 -------------------------- rich/cells.py | 457 +++++++++++++++++++++++----- tests/test_cells.py | 25 +- tools/make_width_tables.py | 4 +- 25 files changed, 423 insertions(+), 541 deletions(-) delete mode 100644 rich/cell_string.py diff --git a/rich/_unicode_data/unicode10-0-0.py b/rich/_unicode_data/unicode10-0-0.py index c50b92e3d7..ee42a25397 100644 --- a/rich/_unicode_data/unicode10-0-0.py +++ b/rich/_unicode_data/unicode10-0-0.py @@ -1,6 +1,6 @@ # Auto generated by tools/make_width_tables.py -from rich.cell_string import CellTable +from rich.cells import CellTable cell_table = CellTable( unicode_version="10.0.0", diff --git a/rich/_unicode_data/unicode11-0-0.py b/rich/_unicode_data/unicode11-0-0.py index 9089a85aaa..05a2bd2867 100644 --- a/rich/_unicode_data/unicode11-0-0.py +++ b/rich/_unicode_data/unicode11-0-0.py @@ -1,6 +1,6 @@ # Auto generated by tools/make_width_tables.py -from rich.cell_string import CellTable +from rich.cells import CellTable cell_table = CellTable( unicode_version="11.0.0", diff --git a/rich/_unicode_data/unicode12-0-0.py b/rich/_unicode_data/unicode12-0-0.py index 7f073adc80..56177d0661 100644 --- a/rich/_unicode_data/unicode12-0-0.py +++ b/rich/_unicode_data/unicode12-0-0.py @@ -1,6 +1,6 @@ # Auto generated by tools/make_width_tables.py -from rich.cell_string import CellTable +from rich.cells import CellTable cell_table = CellTable( unicode_version="12.0.0", diff --git a/rich/_unicode_data/unicode12-1-0.py b/rich/_unicode_data/unicode12-1-0.py index e3996cf9f7..99ececb78d 100644 --- a/rich/_unicode_data/unicode12-1-0.py +++ b/rich/_unicode_data/unicode12-1-0.py @@ -1,6 +1,6 @@ # Auto generated by tools/make_width_tables.py -from rich.cell_string import CellTable +from rich.cells import CellTable cell_table = CellTable( unicode_version="12.1.0", diff --git a/rich/_unicode_data/unicode13-0-0.py b/rich/_unicode_data/unicode13-0-0.py index 9ea46893bc..39ed90aa3a 100644 --- a/rich/_unicode_data/unicode13-0-0.py +++ b/rich/_unicode_data/unicode13-0-0.py @@ -1,6 +1,6 @@ # Auto generated by tools/make_width_tables.py -from rich.cell_string import CellTable +from rich.cells import CellTable cell_table = CellTable( unicode_version="13.0.0", diff --git a/rich/_unicode_data/unicode14-0-0.py b/rich/_unicode_data/unicode14-0-0.py index 14860fa497..189865876a 100644 --- a/rich/_unicode_data/unicode14-0-0.py +++ b/rich/_unicode_data/unicode14-0-0.py @@ -1,6 +1,6 @@ # Auto generated by tools/make_width_tables.py -from rich.cell_string import CellTable +from rich.cells import CellTable cell_table = CellTable( unicode_version="14.0.0", diff --git a/rich/_unicode_data/unicode15-0-0.py b/rich/_unicode_data/unicode15-0-0.py index dea6b33196..6c3f2cf2dc 100644 --- a/rich/_unicode_data/unicode15-0-0.py +++ b/rich/_unicode_data/unicode15-0-0.py @@ -1,6 +1,6 @@ # Auto generated by tools/make_width_tables.py -from rich.cell_string import CellTable +from rich.cells import CellTable cell_table = CellTable( unicode_version="15.0.0", diff --git a/rich/_unicode_data/unicode15-1-0.py b/rich/_unicode_data/unicode15-1-0.py index 8572800028..c8749d74af 100644 --- a/rich/_unicode_data/unicode15-1-0.py +++ b/rich/_unicode_data/unicode15-1-0.py @@ -1,6 +1,6 @@ # Auto generated by tools/make_width_tables.py -from rich.cell_string import CellTable +from rich.cells import CellTable cell_table = CellTable( unicode_version="15.1.0", diff --git a/rich/_unicode_data/unicode16-0-0.py b/rich/_unicode_data/unicode16-0-0.py index b184d9c5a2..8f5ca49ce4 100644 --- a/rich/_unicode_data/unicode16-0-0.py +++ b/rich/_unicode_data/unicode16-0-0.py @@ -1,6 +1,6 @@ # Auto generated by tools/make_width_tables.py -from rich.cell_string import CellTable +from rich.cells import CellTable cell_table = CellTable( unicode_version="16.0.0", diff --git a/rich/_unicode_data/unicode17-0-0.py b/rich/_unicode_data/unicode17-0-0.py index 59959bfd44..5c86e6ea7e 100644 --- a/rich/_unicode_data/unicode17-0-0.py +++ b/rich/_unicode_data/unicode17-0-0.py @@ -1,6 +1,6 @@ # Auto generated by tools/make_width_tables.py -from rich.cell_string import CellTable +from rich.cells import CellTable cell_table = CellTable( unicode_version="17.0.0", diff --git a/rich/_unicode_data/unicode4-1-0.py b/rich/_unicode_data/unicode4-1-0.py index f500c8c7be..86438bc235 100644 --- a/rich/_unicode_data/unicode4-1-0.py +++ b/rich/_unicode_data/unicode4-1-0.py @@ -1,6 +1,6 @@ # Auto generated by tools/make_width_tables.py -from rich.cell_string import CellTable +from rich.cells import CellTable cell_table = CellTable( unicode_version="4.1.0", diff --git a/rich/_unicode_data/unicode5-0-0.py b/rich/_unicode_data/unicode5-0-0.py index 5574a44e70..e6f07b3239 100644 --- a/rich/_unicode_data/unicode5-0-0.py +++ b/rich/_unicode_data/unicode5-0-0.py @@ -1,6 +1,6 @@ # Auto generated by tools/make_width_tables.py -from rich.cell_string import CellTable +from rich.cells import CellTable cell_table = CellTable( unicode_version="5.0.0", diff --git a/rich/_unicode_data/unicode5-1-0.py b/rich/_unicode_data/unicode5-1-0.py index e5066245c9..308d5702d2 100644 --- a/rich/_unicode_data/unicode5-1-0.py +++ b/rich/_unicode_data/unicode5-1-0.py @@ -1,6 +1,6 @@ # Auto generated by tools/make_width_tables.py -from rich.cell_string import CellTable +from rich.cells import CellTable cell_table = CellTable( unicode_version="5.1.0", diff --git a/rich/_unicode_data/unicode5-2-0.py b/rich/_unicode_data/unicode5-2-0.py index c3365d088b..6e3eaadf6e 100644 --- a/rich/_unicode_data/unicode5-2-0.py +++ b/rich/_unicode_data/unicode5-2-0.py @@ -1,6 +1,6 @@ # Auto generated by tools/make_width_tables.py -from rich.cell_string import CellTable +from rich.cells import CellTable cell_table = CellTable( unicode_version="5.2.0", diff --git a/rich/_unicode_data/unicode6-0-0.py b/rich/_unicode_data/unicode6-0-0.py index 19a9390772..271c2d9756 100644 --- a/rich/_unicode_data/unicode6-0-0.py +++ b/rich/_unicode_data/unicode6-0-0.py @@ -1,6 +1,6 @@ # Auto generated by tools/make_width_tables.py -from rich.cell_string import CellTable +from rich.cells import CellTable cell_table = CellTable( unicode_version="6.0.0", diff --git a/rich/_unicode_data/unicode6-1-0.py b/rich/_unicode_data/unicode6-1-0.py index 2ea4685452..fb01a1c696 100644 --- a/rich/_unicode_data/unicode6-1-0.py +++ b/rich/_unicode_data/unicode6-1-0.py @@ -1,6 +1,6 @@ # Auto generated by tools/make_width_tables.py -from rich.cell_string import CellTable +from rich.cells import CellTable cell_table = CellTable( unicode_version="6.1.0", diff --git a/rich/_unicode_data/unicode6-2-0.py b/rich/_unicode_data/unicode6-2-0.py index 55410c3a63..6e2178c276 100644 --- a/rich/_unicode_data/unicode6-2-0.py +++ b/rich/_unicode_data/unicode6-2-0.py @@ -1,6 +1,6 @@ # Auto generated by tools/make_width_tables.py -from rich.cell_string import CellTable +from rich.cells import CellTable cell_table = CellTable( unicode_version="6.2.0", diff --git a/rich/_unicode_data/unicode6-3-0.py b/rich/_unicode_data/unicode6-3-0.py index 5f9dfc9c8b..36af2259e3 100644 --- a/rich/_unicode_data/unicode6-3-0.py +++ b/rich/_unicode_data/unicode6-3-0.py @@ -1,6 +1,6 @@ # Auto generated by tools/make_width_tables.py -from rich.cell_string import CellTable +from rich.cells import CellTable cell_table = CellTable( unicode_version="6.3.0", diff --git a/rich/_unicode_data/unicode7-0-0.py b/rich/_unicode_data/unicode7-0-0.py index eb474334d5..f82eec87b5 100644 --- a/rich/_unicode_data/unicode7-0-0.py +++ b/rich/_unicode_data/unicode7-0-0.py @@ -1,6 +1,6 @@ # Auto generated by tools/make_width_tables.py -from rich.cell_string import CellTable +from rich.cells import CellTable cell_table = CellTable( unicode_version="7.0.0", diff --git a/rich/_unicode_data/unicode8-0-0.py b/rich/_unicode_data/unicode8-0-0.py index 2af86faf92..7968386781 100644 --- a/rich/_unicode_data/unicode8-0-0.py +++ b/rich/_unicode_data/unicode8-0-0.py @@ -1,6 +1,6 @@ # Auto generated by tools/make_width_tables.py -from rich.cell_string import CellTable +from rich.cells import CellTable cell_table = CellTable( unicode_version="8.0.0", diff --git a/rich/_unicode_data/unicode9-0-0.py b/rich/_unicode_data/unicode9-0-0.py index a7b28f474e..2064202500 100644 --- a/rich/_unicode_data/unicode9-0-0.py +++ b/rich/_unicode_data/unicode9-0-0.py @@ -1,6 +1,6 @@ # Auto generated by tools/make_width_tables.py -from rich.cell_string import CellTable +from rich.cells import CellTable cell_table = CellTable( unicode_version="9.0.0", diff --git a/rich/cell_string.py b/rich/cell_string.py deleted file mode 100644 index 1c3241ec16..0000000000 --- a/rich/cell_string.py +++ /dev/null @@ -1,436 +0,0 @@ -from functools import lru_cache -from operator import itemgetter -from typing import Callable, Generator, Iterator, NamedTuple, Sequence - -from rich._unicode_data import load as load_cell_table - -Span = tuple[int, int, int] - -_span_get_cell_len = itemgetter(2) - -# Ranges of unicode ordinals that produce a 1-cell wide character -# This is non-exhaustive, but covers most common Western characters -_SINGLE_CELL_UNICODE_RANGES: list[tuple[int, int]] = [ - (0x20, 0x7E), # Latin (excluding non-printable) - (0xA0, 0xAC), - (0xAE, 0x002FF), - (0x00370, 0x00482), # Greek / Cyrillic - (0x02500, 0x025FC), # Box drawing, box elements, geometric shapes - (0x02800, 0x028FF), # Braille -] - -# A frozen set of characters that are a single cell wide -_SINGLE_CELLS = frozenset( - [ - character - for _start, _end in _SINGLE_CELL_UNICODE_RANGES - for character in map(chr, range(_start, _end + 1)) - ] -) - -# When called with a string this will return True if all -# characters are single-cell, otherwise False -_is_single_cell_widths: Callable[[str], bool] = _SINGLE_CELLS.issuperset - - -class CellTable(NamedTuple): - """Contains unicode data required to measure the cell widths of glyphs.""" - - unicode_version: str - widths: Sequence[tuple[int, int, int]] - narrow_to_wide: frozenset[int] - - def __hash__(self) -> int: - return hash(self.unicode_version) - - -@lru_cache(maxsize=4096) -def get_character_cell_size(character: str, unicode_version: str = "auto") -> int: - """Get the cell size of a character. - - Args: - character (str): A single character. - unicode_version: Unicode version, `"auto"` to auto detect, `"latest"` for the latest unicode version. - - Returns: - int: Number of cells (0, 1 or 2) occupied by that character. - """ - codepoint = ord(character) - table = load_cell_table(unicode_version).widths - if codepoint < table[0][0] or codepoint > table[-1][1]: - return 0 - lower_bound = 0 - upper_bound = len(table) - 1 - index = (lower_bound + upper_bound) // 2 - while True: - start, end, width = table[index] - if codepoint < start: - upper_bound = index - 1 - elif codepoint > end: - lower_bound = index + 1 - else: - return 0 if width == -1 else width - if upper_bound < lower_bound: - break - index = (lower_bound + upper_bound) // 2 - return 1 - - -def cell_len(text: str, unicode_version: str = "auto") -> int: - """Get the cell length of a string (length as it appears in the terminal). - - Args: - text: String to measure. - unicode_version: Unicode version, `"auto"` to auto detect, `"latest"` for the latest unicode version. - - Returns: - Length of string in terminal cells. - """ - if _is_single_cell_widths(text): - return len(text) - - # "\u200d" is zero width joiner - # "\ufe0f" is variation selector 16 - if "\u200d" not in text and "\ufe0f" not in text: - return sum( - get_character_cell_size(character, unicode_version) for character in text - ) - - cell_table = load_cell_table(unicode_version) - codepoint_count = len(text) - total_width = 0 - index = 0 - last_measured_character: str | None = None - - SPECIAL = {"\u200d", "\ufe0f"} - - while index < codepoint_count: - if (character := text[index]) in SPECIAL: - if character == "\u200d": - index += 2 - elif last_measured_character: - total_width += last_measured_character in cell_table.narrow_to_wide - last_measured_character = None - index += 1 - else: - if character_width := get_character_cell_size(character, unicode_version): - last_measured_character = character - total_width += character_width - index += 1 - - return total_width - - -def split_graphemes( - text: str, unicode_version: str = "auto" -) -> "tuple[list[Span], int]": - """Divide text in to spans that define a single grapheme. - - Args: - text: String to split. - unicode_version: Unicode version, `"auto"` to auto detect, `"latest"` for the latest unicode version. - - Returns: - List of spans. - """ - - cell_table = load_cell_table(unicode_version) - codepoint_count = len(text) - index = 0 - last_measured_character: str | None = None - - total_width = 0 - spans: list[tuple[int, int, int]] = [] - SPECIAL = {"\u200d", "\ufe0f"} - while index < codepoint_count: - if (character := text[index]) in SPECIAL: - if character == "\u200d": - # zero width joiner - index += 2 - if spans: - start, _end, cell_length = spans[-1] - spans[-1] = (start, index, cell_length) - elif last_measured_character: - # variation selector 16 - index += 1 - if spans: - start, _end, cell_length = spans[-1] - if last_measured_character in cell_table.narrow_to_wide: - last_measured_character = None - cell_length += 1 - total_width += 1 - spans[-1] = (start, index, cell_length) - continue - - if character_width := get_character_cell_size(character, unicode_version): - last_measured_character = character - spans.append((index, index := index + 1, character_width)) - total_width += character_width - elif spans: - # zero width characters are associated with the previous character - start, _end, cell_length = spans[-1] - spans[-1] = (start, index := index + 1, cell_length) - - return (spans, total_width) - - -def _split_text( - text: str, cell_position: int, unicode_version: str = "auto" -) -> tuple[str, str]: - """Split text by cell position. - - If the cell position falls within a double width character, it is converted to two spaces. - - Args: - text: Text to split. - cell_position Offset in cells. - unicode_version: Unicode version, `"auto"` to auto detect, `"latest"` for the latest unicode version. - - Returns: - Tuple to two split strings. - """ - if cell_position == 0: - return "", text - - spans, cell_length = split_graphemes(text, unicode_version) - - # Guess initial offset - offset = int((cell_position / cell_length) * len(spans)) - left_size = sum(map(_span_get_cell_len, spans[:offset])) - - while True: - if left_size == cell_position: - split_index = spans[offset][0] - return text[:split_index], text[split_index:] - if left_size < cell_position: - start, end, cell_size = spans[offset] - if left_size + cell_size > cell_position: - return text[:start] + " ", " " + text[end:] - offset += 1 - left_size += cell_size - else: - start, end, cell_size = spans[offset] - if left_size - cell_size < cell_position: - return text[:start] + " ", " " + text[end:] - offset -= 1 - left_size -= cell_size - - -def split_text( - text: str, cell_position: int, unicode_version: str = "auto" -) -> tuple[str, str]: - """Split text by cell position. - - If the cell position falls within a double width character, it is converted to two spaces. - - Args: - text: Text to split. - cell_position Offset in cells. - unicode_version: Unicode version, `"auto"` to auto detect, `"latest"` for the latest unicode version. - - Returns: - Tuple to two split strings. - """ - if _is_single_cell_widths(text): - return text[:cell_position], text[cell_position:] - return _split_text(text, cell_position, unicode_version) - - -def set_cell_size(text: str, total: int, unicode_version: str = "auto") -> str: - """Adjust a string by cropping or padding with spaces such that it fits within the given number of cells. - - Args: - text: String to adjust. - total: Desired size in cells. - unicode_version: Unicode version. - - Returns: - A string with cell size equal to total. - """ - if _is_single_cell_widths(text): - size = len(text) - if size < total: - return text + " " * (total - size) - return text[:total] - if total <= 0: - return "" - cell_size = cell_len(text) - if cell_size == total: - return text - if cell_size < total: - return text + " " * (total - cell_size) - text, _ = _split_text(text, total, unicode_version) - return text - - -def chop_cells(text: str, width: int) -> list[str]: - """Split text into lines such that each line fits within the available (cell) width. - - Args: - text: The text to fold such that it fits in the given width. - width: The width available (number of cells). - - Returns: - A list of strings such that each string in the list has cell width - less than or equal to the available width. - """ - # TODO - - -class CellString: - """A string-like object that takes graphemes into account.""" - - def __init__( - self, - text: str, - *, - cell_length: int | None = None, - spans: "list[Span] | None" = None, - unicode_version: str = "auto", - ): - """ - - Args: - text: The plain text. - cell_length: The cell length (as it appears in the terminal), if known. - spans: List of spans which divide the text in to atomic units (single glyphs). - unicode_version: Unicode version, `"auto"` to auto detect, `"latest"` for the latest unicode version. - """ - self._text = text - self._singles: bool = _is_single_cell_widths(text) - if cell_length is None: - self._cell_length = len(text) if self._singles else None - else: - self._cell_length = cell_length - self._spans: "list[Span] | None" = spans - self._unicode_version = unicode_version - - @property - def text(self) -> str: - """The raw text.""" - return self._text - - @property - def spans(self) -> "list[Span]": - if self._spans is None: - if self._singles: - self._spans = [ - (index, index + 1, 1) for index in range(len(self._text)) - ] - else: - self._spans, self._cell_length = split_graphemes( - self._text, self._unicode_version - ) - return self._spans - - @property - def cell_length(self) -> int: - """The 'cell' length (length as displayed in the terminal).""" - if self._cell_length is None: - self._cell_length = cell_len(self._text) - return self._cell_length - - @property - def glyphs(self) -> list[str]: - """List of strings that make up atomic glyph.""" - text = self._text - glyphs = [text[start:end] for start, end, _ in self.spans] - return glyphs - - @property - def glyph_widths(self) -> list[tuple[str, int]]: - """List of strings that make up atomic glyph, and corresponding cell width.""" - text = self._text - glyph_widths = [ - (text[start:end], cell_length) for start, end, cell_length in self.spans - ] - return glyph_widths - - def __bool__(self) -> bool: - return bool(self._text) - - def __hash__(self) -> int: - return hash(self._text) - - def __eq__(self, other: object) -> bool: - if isinstance(other, CellString): - return self._text == other._text - return NotImplemented - - def __add__(self, other: "CellString") -> "CellString": - if self._singles and other._singles: - return CellString(self._text + other._text) - spans: "list[Span] | None" - if self._spans is not None and other._spans is not None: - self_length = len(self._text) - spans = [ - *self._spans, - *[ - (start + self_length, end + self_length, cell_length) - for start, end, cell_length in other.spans - ], - ] - else: - spans = None - return CellString(self._text + other._text, spans=spans) - - def __iter__(self) -> Iterator[str]: - if self._singles: - return iter(self._text) - - def iterate_text(text: str, spans: "list[Span]") -> Generator[str]: - """Generator for the""" - for start, end, _ in spans: - yield text[start:end] - - return iter(iterate_text(self._text, self.spans)) - - def __reversed__(self) -> Iterator[str]: - if self._singles: - return reversed(self._text) - - def iterate_text(text: str, spans: "list[Span]"): - for start, end, _ in reversed(spans): - yield text[start:end] - - return iter(iterate_text(self._text, self.spans)) - - def __getitem__(self, index: int | slice) -> str: - if self._singles: - # Trivial case of single cell character strings - return self._text[index] - if isinstance(index, int): - # Single span is easy - start, end, _cell_length = self.spans[index] - return self._text[start:end] - - start, stop, stride = index.indices(len(self.spans)) - if stride == 1: - # Fast path for a stride of 1 - start_offset = self.spans[start][0] - stop_offset = self.spans[stop][1] - return self._text[start_offset:stop_offset] - else: - # More involved case of a stride > 1 - span_offset = start - output: list[str] = [] - while span_offset <= stop: - start_offset, end_offset, _ = self.spans[span_offset] - output.append(self._text[start_offset:end_offset]) - span_offset += stride - return "".join(output) - - -if __name__ == "__main__": - from rich import print - - print(CellString("Hello World").glyphs) - - print(CellString("Female mechanic: ๐Ÿ‘ฉ\u200d๐Ÿ”ง").glyphs) - print(CellString("Female mechanic: ๐Ÿ‘ฉ\u200d๐Ÿ”ง").glyph_widths) - - left, right = split_text("Hello ๐Ÿ‘ฉ\u200d๐Ÿ”ง World", 9) - print(repr(left)) - print(repr(right)) - print(left) - print(right) diff --git a/rich/cells.py b/rich/cells.py index a85462271c..145828394b 100644 --- a/rich/cells.py +++ b/rich/cells.py @@ -1,9 +1,12 @@ -from __future__ import annotations - from functools import lru_cache -from typing import Callable +from operator import itemgetter +from typing import Callable, Generator, Iterator, NamedTuple, Sequence + +from rich._unicode_data import load as load_cell_table + +CellSpan = tuple[int, int, int] -from ._cell_widths import CELL_WIDTHS +_span_get_cell_len = itemgetter(2) # Ranges of unicode ordinals that produce a 1-cell wide character # This is non-exhaustive, but covers most common Western characters @@ -16,7 +19,7 @@ (0x02800, 0x028FF), # Braille ] -# A set of characters that are a single cell wide +# A frozen set of characters that are a single cell wide _SINGLE_CELLS = frozenset( [ character @@ -30,6 +33,49 @@ _is_single_cell_widths: Callable[[str], bool] = _SINGLE_CELLS.issuperset +class CellTable(NamedTuple): + """Contains unicode data required to measure the cell widths of glyphs.""" + + unicode_version: str + widths: Sequence[tuple[int, int, int]] + narrow_to_wide: frozenset[int] + + def __hash__(self) -> int: + return hash(self.unicode_version) + + +@lru_cache(maxsize=4096) +def get_character_cell_size(character: str, unicode_version: str = "auto") -> int: + """Get the cell size of a character. + + Args: + character (str): A single character. + unicode_version: Unicode version, `"auto"` to auto detect, `"latest"` for the latest unicode version. + + Returns: + int: Number of cells (0, 1 or 2) occupied by that character. + """ + codepoint = ord(character) + table = load_cell_table(unicode_version).widths + if codepoint < table[0][0] or codepoint > table[-1][1]: + return 0 + lower_bound = 0 + upper_bound = len(table) - 1 + index = (lower_bound + upper_bound) // 2 + while True: + start, end, width = table[index] + if codepoint < start: + upper_bound = index - 1 + elif codepoint > end: + lower_bound = index + 1 + else: + return 0 if width == -1 else width + if upper_bound < lower_bound: + break + index = (lower_bound + upper_bound) // 2 + return 1 + + @lru_cache(4096) def cached_cell_len(text: str) -> int: """Get the number of cells required to display text. @@ -48,60 +94,182 @@ def cached_cell_len(text: str) -> int: return sum(map(get_character_cell_size, text)) -def cell_len(text: str, _cell_len: Callable[[str], int] = cached_cell_len) -> int: - """Get the number of cells required to display text. +def cell_len(text: str, unicode_version: str = "auto") -> int: + """Get the cell length of a string (length as it appears in the terminal). Args: - text (str): Text to display. + text: String to measure. + unicode_version: Unicode version, `"auto"` to auto detect, `"latest"` for the latest unicode version. Returns: - int: Get the number of cells required to display text. + Length of string in terminal cells. """ - if len(text) < 512: - return _cell_len(text) if _is_single_cell_widths(text): return len(text) - return sum(map(get_character_cell_size, text)) + # "\u200d" is zero width joiner + # "\ufe0f" is variation selector 16 + if "\u200d" not in text and "\ufe0f" not in text: + return sum( + get_character_cell_size(character, unicode_version) for character in text + ) + + cell_table = load_cell_table(unicode_version) + codepoint_count = len(text) + total_width = 0 + index = 0 + last_measured_character: str | None = None + + SPECIAL = {"\u200d", "\ufe0f"} + + while index < codepoint_count: + if (character := text[index]) in SPECIAL: + if character == "\u200d": + index += 2 + elif last_measured_character: + total_width += last_measured_character in cell_table.narrow_to_wide + last_measured_character = None + index += 1 + else: + if character_width := get_character_cell_size(character, unicode_version): + last_measured_character = character + total_width += character_width + index += 1 + + return total_width -@lru_cache(maxsize=4096) -def get_character_cell_size(character: str) -> int: - """Get the cell size of a character. + +def split_graphemes( + text: str, unicode_version: str = "auto" +) -> "tuple[list[CellSpan], int]": + """Divide text in to spans that define a single grapheme. Args: - character (str): A single character. + text: String to split. + unicode_version: Unicode version, `"auto"` to auto detect, `"latest"` for the latest unicode version. Returns: - int: Number of cells (0, 1 or 2) occupied by that character. + List of spans. """ - codepoint = ord(character) - _table = CELL_WIDTHS - lower_bound = 0 - upper_bound = len(_table) - 1 - index = (lower_bound + upper_bound) // 2 + + cell_table = load_cell_table(unicode_version) + codepoint_count = len(text) + index = 0 + last_measured_character: str | None = None + + total_width = 0 + spans: list[tuple[int, int, int]] = [] + SPECIAL = {"\u200d", "\ufe0f"} + while index < codepoint_count: + if (character := text[index]) in SPECIAL: + if character == "\u200d": + # zero width joiner + index += 2 + if spans: + start, _end, cell_length = spans[-1] + spans[-1] = (start, index, cell_length) + elif last_measured_character: + # variation selector 16 + index += 1 + if spans: + start, _end, cell_length = spans[-1] + if last_measured_character in cell_table.narrow_to_wide: + last_measured_character = None + cell_length += 1 + total_width += 1 + spans[-1] = (start, index, cell_length) + continue + + if character_width := get_character_cell_size(character, unicode_version): + last_measured_character = character + spans.append((index, index := index + 1, character_width)) + total_width += character_width + elif spans: + # zero width characters are associated with the previous character + start, _end, cell_length = spans[-1] + spans[-1] = (start, index := index + 1, cell_length) + + return (spans, total_width) + + +def _split_text( + text: str, cell_position: int, unicode_version: str = "auto" +) -> tuple[str, str]: + """Split text by cell position. + + If the cell position falls within a double width character, it is converted to two spaces. + + Args: + text: Text to split. + cell_position Offset in cells. + unicode_version: Unicode version, `"auto"` to auto detect, `"latest"` for the latest unicode version. + + Returns: + Tuple to two split strings. + """ + if cell_position == 0: + return "", text + + spans, cell_length = split_graphemes(text, unicode_version) + + # Guess initial offset + offset = int((cell_position / cell_length) * len(spans)) + left_size = sum(map(_span_get_cell_len, spans[:offset])) + while True: - start, end, width = _table[index] - if codepoint < start: - upper_bound = index - 1 - elif codepoint > end: - lower_bound = index + 1 + if left_size == cell_position: + split_index = spans[offset][0] + return text[:split_index], text[split_index:] + if left_size < cell_position: + start, end, cell_size = spans[offset] + if left_size + cell_size > cell_position: + return text[:start] + " ", " " + text[end:] + offset += 1 + left_size += cell_size else: - return 0 if width == -1 else width - if upper_bound < lower_bound: - break - index = (lower_bound + upper_bound) // 2 - return 1 + start, end, cell_size = spans[offset] + if left_size - cell_size < cell_position: + return text[:start] + " ", " " + text[end:] + offset -= 1 + left_size -= cell_size -def set_cell_size(text: str, total: int) -> str: - """Set the length of a string to fit within given number of cells.""" +def split_text( + text: str, cell_position: int, unicode_version: str = "auto" +) -> tuple[str, str]: + """Split text by cell position. + + If the cell position falls within a double width character, it is converted to two spaces. + + Args: + text: Text to split. + cell_position Offset in cells. + unicode_version: Unicode version, `"auto"` to auto detect, `"latest"` for the latest unicode version. + Returns: + Tuple to two split strings. + """ + if _is_single_cell_widths(text): + return text[:cell_position], text[cell_position:] + return _split_text(text, cell_position, unicode_version) + + +def set_cell_size(text: str, total: int, unicode_version: str = "auto") -> str: + """Adjust a string by cropping or padding with spaces such that it fits within the given number of cells. + + Args: + text: String to adjust. + total: Desired size in cells. + unicode_version: Unicode version. + + Returns: + A string with cell size equal to total. + """ if _is_single_cell_widths(text): size = len(text) if size < total: return text + " " * (total - size) return text[:total] - if total <= 0: return "" cell_size = cell_len(text) @@ -109,29 +277,11 @@ def set_cell_size(text: str, total: int) -> str: return text if cell_size < total: return text + " " * (total - cell_size) + text, _ = _split_text(text, total, unicode_version) + return text - start = 0 - end = len(text) - # Binary search until we find the right size - while True: - pos = (start + end) // 2 - before = text[: pos + 1] - before_len = cell_len(before) - if before_len == total + 1 and cell_len(before[-1]) == 2: - return before[:-1] + " " - if before_len == total: - return before - if before_len > total: - end = pos - else: - start = pos - - -def chop_cells( - text: str, - width: int, -) -> list[str]: +def chop_cells(text: str, width: int, unicode_version: str = "auto") -> list[str]: """Split text into lines such that each line fits within the available (cell) width. Args: @@ -142,33 +292,178 @@ def chop_cells( A list of strings such that each string in the list has cell width less than or equal to the available width. """ - _get_character_cell_size = get_character_cell_size - lines: list[list[str]] = [[]] - - append_new_line = lines.append - append_to_last_line = lines[-1].append - - total_width = 0 + if _is_single_cell_widths(text): + return [text[index : index + width] for index in range(0, len(text), width)] + spans, _ = split_graphemes(text, unicode_version) + line_size = 0 # Size of line in cells + lines: list[str] = [] + line_offset = 0 # Offset (in codepoints) of start of line + for start, end, cell_size in spans: + if line_size + cell_size > width: + lines.append(text[line_offset:start]) + line_offset = start + line_size = 0 + line_size += cell_size + if line_size: + lines.append(text[line_offset:]) + + return lines + + +class CellString: + """A string-like object that takes graphemes into account.""" + + def __init__( + self, + text: str, + *, + cell_length: int | None = None, + spans: "list[CellSpan] | None" = None, + unicode_version: str = "auto", + ): + """ + + Args: + text: The plain text. + cell_length: The cell length (as it appears in the terminal), if known. + spans: List of spans which divide the text in to atomic units (single glyphs). + unicode_version: Unicode version, `"auto"` to auto detect, `"latest"` for the latest unicode version. + """ + self._text = text + self._singles: bool = _is_single_cell_widths(text) + if cell_length is None: + self._cell_length = len(text) if self._singles else None + else: + self._cell_length = cell_length + self._spans: "list[CellSpan] | None" = spans + self._unicode_version = unicode_version + + @property + def text(self) -> str: + """The raw text.""" + return self._text + + @property + def spans(self) -> "list[CellSpan]": + if self._spans is None: + if self._singles: + self._spans = [ + (index, index + 1, 1) for index in range(len(self._text)) + ] + else: + self._spans, self._cell_length = split_graphemes( + self._text, self._unicode_version + ) + return self._spans + + @property + def cell_length(self) -> int: + """The 'cell' length (length as displayed in the terminal).""" + if self._cell_length is None: + self._cell_length = cell_len(self._text) + return self._cell_length + + @property + def glyphs(self) -> list[str]: + """List of strings that make up atomic glyph.""" + text = self._text + glyphs = [text[start:end] for start, end, _ in self.spans] + return glyphs + + @property + def glyph_widths(self) -> list[tuple[str, int]]: + """List of strings that make up atomic glyph, and corresponding cell width.""" + text = self._text + glyph_widths = [ + (text[start:end], cell_length) for start, end, cell_length in self.spans + ] + return glyph_widths + + def __bool__(self) -> bool: + return bool(self._text) + + def __hash__(self) -> int: + return hash(self._text) + + def __eq__(self, other: object) -> bool: + if isinstance(other, CellString): + return self._text == other._text + return NotImplemented + + def __add__(self, other: "CellString") -> "CellString": + if self._singles and other._singles: + return CellString(self._text + other._text) + spans: "list[CellSpan] | None" + if self._spans is not None and other._spans is not None: + self_length = len(self._text) + spans = [ + *self._spans, + *[ + (start + self_length, end + self_length, cell_length) + for start, end, cell_length in other.spans + ], + ] + else: + spans = None + return CellString(self._text + other._text, spans=spans) + + def __iter__(self) -> Iterator[str]: + if self._singles: + return iter(self._text) + + def iterate_text(text: str, spans: "list[CellSpan]") -> Generator[str]: + """Generator for the""" + for start, end, _ in spans: + yield text[start:end] + + return iter(iterate_text(self._text, self.spans)) + + def __reversed__(self) -> Iterator[str]: + if self._singles: + return reversed(self._text) + + def iterate_text(text: str, spans: "list[CellSpan]"): + for start, end, _ in reversed(spans): + yield text[start:end] + + return iter(iterate_text(self._text, self.spans)) + + def __getitem__(self, index: int | slice) -> str: + if self._singles: + # Trivial case of single cell character strings + return self._text[index] + if isinstance(index, int): + # Single span is easy + start, end, _cell_length = self.spans[index] + return self._text[start:end] + + start, stop, stride = index.indices(len(self.spans)) + if stride == 1: + # Fast path for a stride of 1 + start_offset = self.spans[start][0] + stop_offset = self.spans[stop][1] + return self._text[start_offset:stop_offset] + else: + # More involved case of a stride > 1 + span_offset = start + output: list[str] = [] + while span_offset <= stop: + start_offset, end_offset, _ = self.spans[span_offset] + output.append(self._text[start_offset:end_offset]) + span_offset += stride + return "".join(output) - for character in text: - cell_width = _get_character_cell_size(character) - char_doesnt_fit = total_width + cell_width > width - if char_doesnt_fit: - append_new_line([character]) - append_to_last_line = lines[-1].append - total_width = cell_width - else: - append_to_last_line(character) - total_width += cell_width +if __name__ == "__main__": + from rich import print - return ["".join(line) for line in lines] + print(CellString("Hello World").glyphs) + print(CellString("Female mechanic: ๐Ÿ‘ฉ\u200d๐Ÿ”ง").glyphs) + print(CellString("Female mechanic: ๐Ÿ‘ฉ\u200d๐Ÿ”ง").glyph_widths) -if __name__ == "__main__": # pragma: no cover - print(get_character_cell_size("๐Ÿ˜ฝ")) - for line in chop_cells("""่ฟ™ๆ˜ฏๅฏนไบšๆดฒ่ฏญ่จ€ๆ”ฏๆŒ็š„ๆต‹่ฏ•ใ€‚้ขๅฏนๆจกๆฃฑไธคๅฏ็š„ๆƒณๆณ•๏ผŒๆ‹’็ป็Œœๆต‹็š„่ฏฑๆƒ‘ใ€‚""", 8): - print(line) - for n in range(80, 1, -1): - print(set_cell_size("""่ฟ™ๆ˜ฏๅฏนไบšๆดฒ่ฏญ่จ€ๆ”ฏๆŒ็š„ๆต‹่ฏ•ใ€‚้ขๅฏนๆจกๆฃฑไธคๅฏ็š„ๆƒณๆณ•๏ผŒๆ‹’็ป็Œœๆต‹็š„่ฏฑๆƒ‘ใ€‚""", n) + "|") - print("x" * n) + left, right = split_text("Hello ๐Ÿ‘ฉ\u200d๐Ÿ”ง World", 9) + print(repr(left)) + print(repr(right)) + print(left) + print(right) diff --git a/tests/test_cells.py b/tests/test_cells.py index 8ba8169e35..51376e909b 100644 --- a/tests/test_cells.py +++ b/tests/test_cells.py @@ -1,7 +1,9 @@ import string +import pytest + from rich import cells -from rich.cells import _is_single_cell_widths, chop_cells +from rich.cells import CellSpan, _is_single_cell_widths, chop_cells, split_graphemes def test_cell_len_long_string(): @@ -79,3 +81,24 @@ def test_is_single_cell_widths() -> None: for character in "ใ‚ใ•ใณ": assert not _is_single_cell_widths(character) + + +@pytest.mark.parametrize( + "text,expected_spans,expected_cell_length", + [ + ("", [], 0), + ("a", [(0, 1, 1)], 1), + ("ab", [(0, 1, 1), (1, 2, 1)], 2), + ("๐Ÿ’ฉ", [(0, 1, 2)], 2), + ("ใ‚ใ•ใณ", [(0, 1, 2), (1, 2, 2), (2, 3, 2)], 6), + ("๐Ÿ‘ฉ\u200d๐Ÿ”ง", [(0, 3, 2)], 2), + ("a๐Ÿ‘ฉ\u200d๐Ÿ”ง", [(0, 1, 1), (1, 4, 2)], 3), + ("a๐Ÿ‘ฉ\u200d๐Ÿ”งb", [(0, 1, 1), (1, 4, 2), (4, 5, 1)], 4), + ], +) +def test_split_graphemes( + text: str, expected_spans: list[CellSpan], expected_cell_length: int +): + spans, cell_length = split_graphemes(text) + assert spans == expected_spans + assert cell_length == expected_cell_length diff --git a/tools/make_width_tables.py b/tools/make_width_tables.py index d49a4d7e24..f3a7047bee 100644 --- a/tools/make_width_tables.py +++ b/tools/make_width_tables.py @@ -6,7 +6,7 @@ from wcwidth.table_wide import WIDE_EASTASIAN from wcwidth.table_zero import ZERO_WIDTH -from rich.cell_string import CellTable +from rich.cells import CellTable UNICODE_VERSIONS: list[str] = list_versions() @@ -38,7 +38,7 @@ table_file = f"""# Auto generated by tools/make_width_tables.py -from rich.cell_string import CellTable +from rich.cells import CellTable cell_table = {cell_table!r} """ From 494ce86a0d7338fb34bc45b96ef4880990a15ece Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Tue, 20 Jan 2026 15:53:39 +0000 Subject: [PATCH 06/29] tables and tests --- rich/_unicode_data/unicode10-0-0.py | 313 +++++++++++++++++++--------- rich/_unicode_data/unicode11-0-0.py | 313 +++++++++++++++++++--------- rich/_unicode_data/unicode12-0-0.py | 313 +++++++++++++++++++--------- rich/_unicode_data/unicode12-1-0.py | 313 +++++++++++++++++++--------- rich/_unicode_data/unicode13-0-0.py | 313 +++++++++++++++++++--------- rich/_unicode_data/unicode14-0-0.py | 313 +++++++++++++++++++--------- rich/_unicode_data/unicode15-0-0.py | 313 +++++++++++++++++++--------- rich/_unicode_data/unicode15-1-0.py | 313 +++++++++++++++++++--------- rich/_unicode_data/unicode16-0-0.py | 313 +++++++++++++++++++--------- rich/_unicode_data/unicode17-0-0.py | 313 +++++++++++++++++++--------- rich/_unicode_data/unicode4-1-0.py | 313 +++++++++++++++++++--------- rich/_unicode_data/unicode5-0-0.py | 313 +++++++++++++++++++--------- rich/_unicode_data/unicode5-1-0.py | 313 +++++++++++++++++++--------- rich/_unicode_data/unicode5-2-0.py | 313 +++++++++++++++++++--------- rich/_unicode_data/unicode6-0-0.py | 313 +++++++++++++++++++--------- rich/_unicode_data/unicode6-1-0.py | 313 +++++++++++++++++++--------- rich/_unicode_data/unicode6-2-0.py | 313 +++++++++++++++++++--------- rich/_unicode_data/unicode6-3-0.py | 313 +++++++++++++++++++--------- rich/_unicode_data/unicode7-0-0.py | 313 +++++++++++++++++++--------- rich/_unicode_data/unicode8-0-0.py | 313 +++++++++++++++++++--------- rich/_unicode_data/unicode9-0-0.py | 313 +++++++++++++++++++--------- rich/cells.py | 4 +- tests/test_cells.py | 20 +- tools/make_width_tables.py | 4 +- 24 files changed, 4496 insertions(+), 2105 deletions(-) diff --git a/rich/_unicode_data/unicode10-0-0.py b/rich/_unicode_data/unicode10-0-0.py index ee42a25397..a09d64bcb5 100644 --- a/rich/_unicode_data/unicode10-0-0.py +++ b/rich/_unicode_data/unicode10-0-0.py @@ -394,106 +394,219 @@ ], narrow_to_wide=frozenset( { - 9728, - 9729, - 9730, - 9731, - 11013, - 11014, - 9992, - 9996, - 9762, - 127780, - 127781, - 127782, - 127783, - 127784, - 127785, - 127786, - 127787, - 9774, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 9784, - 9785, - 10035, - 10548, - 128329, - 9823, - 10083, - 9829, - 128367, - 127344, - 128371, - 128372, - 128373, - 128374, - 128375, - 128376, - 127358, - 128394, - 128395, - 128396, - 9876, - 9877, - 9878, - 8596, - 8597, - 8598, - 8599, - 9883, - 8600, - 127894, - 127897, - 127898, - 127902, - 8617, - 9642, - 9904, - 128433, - 128450, - 128451, - 127947, - 127948, - 128717, - 128718, - 127949, - 128465, - 128466, - 127956, - 127957, - 127958, - 127959, - 127960, - 127961, - 127962, - 127963, - 127964, - 127965, - 127966, - 128476, - 128736, - 128737, - 128738, - 128739, - 128740, - 128477, - 9208, - 9197, - 9198, - 9968, - 9201, - 9975, - 9976, - 9209, - 9723, + "๐Ÿ—", + "๐Ÿ“ฝ", + "๐Ÿ—’", + "๐Ÿ—œ", + "โ™€", + "๐ŸŽŸ", + "๐Ÿ›ฃ", + "โญ", + "โ„น", + "โ˜‚", + "โ˜บ", + "๐ŸŽ™", + "โธ", + "โžก", + "โ˜ƒ", + "๐Ÿ–ฒ", + "โ˜", + "๐Ÿ› ", + "โœณ", + "โ–ถ", + "โš ", + "๐Ÿ›ฐ", + "โ›ˆ", + "6", + "๐Ÿ…ฟ", + "๐ŸŽ–", + "โ›‘", + "๐Ÿ›ฉ", + "โ˜ช", + "๐Ÿ•ณ", + "9", + "๐Ÿท", + "โ˜€", + "โ˜ธ", + "โ™จ", + "โฌ…", + "โ‡", + "๐Ÿ—จ", + "โ™ฆ", + "#", + "โœ", + "โน", + "โ™Ÿ", + "๐Ÿ•‰", + "๐Ÿ—“", + "๐ŸŒถ", + "โบ", + "โ˜˜", + "โ€ผ", + "๐ŸŒฉ", + "๐Ÿ—‘", + "โ˜ฏ", + "๐Ÿ•ด", + "โœด", + "โ˜ข", + "๐Ÿ–ผ", + "๐ŸŒซ", + "๐Ÿ•ต", + "โšง", + "๐Ÿฝ", + "๐Ÿ—„", + "โœ”", + "๐Ÿ—ก", + "โฒ", + "๐ŸŒก", + "๐Ÿ–‹", + "๐Ÿ›ณ", + "๐Ÿ›‹", + "โ˜", + "๐Ÿ‘", + "โ“‚", + "โ†•", + "๐Ÿ›", + "โฏ", + "7", + "๐Ÿ–", + "โฑ", + "*", + "๐Ÿ—", + "โœ", + "๐Ÿ–Œ", + "โ†–", + "โ›น", + "๐Ÿ™", + "โ„", + "๐ŸŽš", + "๐Ÿš", + "โ‰", + "๐Ÿ”", + "๐Ÿฟ", + "๐Ÿ•", + "โ„ข", + "1", + "๐Ÿ›ค", + "๐Ÿ…ฑ", + "๐Ÿ–Š", + "โšฑ", + "โ›ธ", + "๐Ÿณ", + "๐Ÿ›", + "โฌ‡", + "๐Ÿ…ฐ", + "โ›ฉ", + "๐Ÿ—ณ", + "โ†™", + "๐Ÿ—‚", + "โ›ด", + "๐Ÿ‹", + "๐ŸŒฆ", + "ยฎ", + "๐Ÿ—ž", + "โ™ ", + "โคด", + "โœˆ", + "๐ŸŽž", + "โš•", + "โ›", + "๐Ÿ•ธ", + "๐Ÿ›ฅ", + "โšœ", + "โ˜ฎ", + "๐Ÿ—ฏ", + "โœก", + "โฎ", + "โšฐ", + "3", + "โ–ซ", + "๐Ÿ", + "โœ", + "โ†˜", + "โ†ช", + "โš›", + "๐Ÿ–‡", + "โœ–", + "๐Ÿ›ข", + "๐ŸŽ›", + "8", + "โ†—", + "๐Ÿ›ก", + "โ˜ฃ", + "โ›ฐ", + "โฃ", + "โœ‚", + "โ˜‘", + "โš™", + "โคต", + "โ™ป", + "๐ŸŒช", + "๐Ÿ–", + "๐Ÿ•ฏ", + "โœ‰", + "4", + "โœ’", + "๐ŸŒค", + "๐ŸŸ", + "โ™‚", + "๐Ÿ•ฐ", + "๐Ÿ›Ž", + "๐ŸŽ—", + "๐Ÿ•น", + "5", + "โš’", + "โค", + "๐Ÿ–", + "โš”", + "โš–", + "๐Ÿ–ฑ", + "๐Ÿ•Š", + "โ†”", + "2", + "๐Ÿ•ท", + "๐Ÿ…พ", + "โ˜น", + "๐Ÿ–ฅ", + "โ›ท", + "๐Ÿœ", + "โ˜Ž", + "๐ŸŒ", + "โ™พ", + "๐Ÿ›", + "โŒจ", + "๐ŸŽ", + "๐Ÿต", + "๐Ÿ–จ", + "โ™ฅ", + "โ—ป", + "๐ŸŒฅ", + "โ˜„", + "โ—ผ", + "โ›ฑ", + "โœŒ", + "โ†ฉ", + "ยฉ", + "โ", + "๐Ÿ", + "๐ŸŒง", + "โ˜ ", + "โฌ†", + "๐Ÿ˜", + "๐Ÿ—ƒ", + "โ–ช", + "โ˜ฆ", + "0", + "๐ŸŒจ", + "๐Ÿ—ฃ", + "๐Ÿ—บ", + "๐Ÿž", + "๐Ÿ•ถ", + "๐ŸŒฌ", + "โ™ฃ", + "โš—", + "โ—€", + "โ›“", } ), ) diff --git a/rich/_unicode_data/unicode11-0-0.py b/rich/_unicode_data/unicode11-0-0.py index 05a2bd2867..bc03c12f0b 100644 --- a/rich/_unicode_data/unicode11-0-0.py +++ b/rich/_unicode_data/unicode11-0-0.py @@ -409,106 +409,219 @@ ], narrow_to_wide=frozenset( { - 9728, - 9729, - 9730, - 9731, - 11013, - 11014, - 9992, - 9996, - 9762, - 127780, - 127781, - 127782, - 127783, - 127784, - 127785, - 127786, - 127787, - 9774, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 9784, - 9785, - 10035, - 10548, - 128329, - 9823, - 10083, - 9829, - 128367, - 127344, - 128371, - 128372, - 128373, - 128374, - 128375, - 128376, - 127358, - 128394, - 128395, - 128396, - 9876, - 9877, - 9878, - 8596, - 8597, - 8598, - 8599, - 9883, - 8600, - 127894, - 127897, - 127898, - 127902, - 8617, - 9642, - 9904, - 128433, - 128450, - 128451, - 127947, - 127948, - 128717, - 128718, - 127949, - 128465, - 128466, - 127956, - 127957, - 127958, - 127959, - 127960, - 127961, - 127962, - 127963, - 127964, - 127965, - 127966, - 128476, - 128736, - 128737, - 128738, - 128739, - 128740, - 128477, - 9208, - 9197, - 9198, - 9968, - 9201, - 9975, - 9976, - 9209, - 9723, + "๐Ÿ—", + "๐Ÿ“ฝ", + "๐Ÿ—’", + "๐Ÿ—œ", + "โ™€", + "๐ŸŽŸ", + "๐Ÿ›ฃ", + "โญ", + "โ„น", + "โ˜‚", + "โ˜บ", + "๐ŸŽ™", + "โธ", + "โžก", + "โ˜ƒ", + "๐Ÿ–ฒ", + "โ˜", + "๐Ÿ› ", + "โœณ", + "โ–ถ", + "โš ", + "๐Ÿ›ฐ", + "โ›ˆ", + "6", + "๐Ÿ…ฟ", + "๐ŸŽ–", + "โ›‘", + "๐Ÿ›ฉ", + "โ˜ช", + "๐Ÿ•ณ", + "9", + "๐Ÿท", + "โ˜€", + "โ˜ธ", + "โ™จ", + "โฌ…", + "โ‡", + "๐Ÿ—จ", + "โ™ฆ", + "#", + "โœ", + "โน", + "โ™Ÿ", + "๐Ÿ•‰", + "๐Ÿ—“", + "๐ŸŒถ", + "โบ", + "โ˜˜", + "โ€ผ", + "๐ŸŒฉ", + "๐Ÿ—‘", + "โ˜ฏ", + "๐Ÿ•ด", + "โœด", + "โ˜ข", + "๐Ÿ–ผ", + "๐ŸŒซ", + "๐Ÿ•ต", + "โšง", + "๐Ÿฝ", + "๐Ÿ—„", + "โœ”", + "๐Ÿ—ก", + "โฒ", + "๐ŸŒก", + "๐Ÿ–‹", + "๐Ÿ›ณ", + "๐Ÿ›‹", + "โ˜", + "๐Ÿ‘", + "โ“‚", + "โ†•", + "๐Ÿ›", + "โฏ", + "7", + "๐Ÿ–", + "โฑ", + "*", + "๐Ÿ—", + "โœ", + "๐Ÿ–Œ", + "โ†–", + "โ›น", + "๐Ÿ™", + "โ„", + "๐ŸŽš", + "๐Ÿš", + "โ‰", + "๐Ÿ”", + "๐Ÿฟ", + "๐Ÿ•", + "โ„ข", + "1", + "๐Ÿ›ค", + "๐Ÿ…ฑ", + "๐Ÿ–Š", + "โšฑ", + "โ›ธ", + "๐Ÿณ", + "๐Ÿ›", + "โฌ‡", + "๐Ÿ…ฐ", + "โ›ฉ", + "๐Ÿ—ณ", + "โ†™", + "๐Ÿ—‚", + "โ›ด", + "๐Ÿ‹", + "๐ŸŒฆ", + "ยฎ", + "๐Ÿ—ž", + "โ™ ", + "โคด", + "โœˆ", + "๐ŸŽž", + "โš•", + "โ›", + "๐Ÿ•ธ", + "๐Ÿ›ฅ", + "โšœ", + "โ˜ฎ", + "๐Ÿ—ฏ", + "โœก", + "โฎ", + "โšฐ", + "3", + "โ–ซ", + "๐Ÿ", + "โœ", + "โ†˜", + "โ†ช", + "โš›", + "๐Ÿ–‡", + "โœ–", + "๐Ÿ›ข", + "๐ŸŽ›", + "8", + "โ†—", + "๐Ÿ›ก", + "โ˜ฃ", + "โ›ฐ", + "โฃ", + "โœ‚", + "โ˜‘", + "โš™", + "โคต", + "โ™ป", + "๐ŸŒช", + "๐Ÿ–", + "๐Ÿ•ฏ", + "โœ‰", + "4", + "โœ’", + "๐ŸŒค", + "๐ŸŸ", + "โ™‚", + "๐Ÿ•ฐ", + "๐Ÿ›Ž", + "๐ŸŽ—", + "๐Ÿ•น", + "5", + "โš’", + "โค", + "๐Ÿ–", + "โš”", + "โš–", + "๐Ÿ–ฑ", + "๐Ÿ•Š", + "โ†”", + "2", + "๐Ÿ•ท", + "๐Ÿ…พ", + "โ˜น", + "๐Ÿ–ฅ", + "โ›ท", + "๐Ÿœ", + "โ˜Ž", + "๐ŸŒ", + "โ™พ", + "๐Ÿ›", + "โŒจ", + "๐ŸŽ", + "๐Ÿต", + "๐Ÿ–จ", + "โ™ฅ", + "โ—ป", + "๐ŸŒฅ", + "โ˜„", + "โ—ผ", + "โ›ฑ", + "โœŒ", + "โ†ฉ", + "ยฉ", + "โ", + "๐Ÿ", + "๐ŸŒง", + "โ˜ ", + "โฌ†", + "๐Ÿ˜", + "๐Ÿ—ƒ", + "โ–ช", + "โ˜ฆ", + "0", + "๐ŸŒจ", + "๐Ÿ—ฃ", + "๐Ÿ—บ", + "๐Ÿž", + "๐Ÿ•ถ", + "๐ŸŒฌ", + "โ™ฃ", + "โš—", + "โ—€", + "โ›“", } ), ) diff --git a/rich/_unicode_data/unicode12-0-0.py b/rich/_unicode_data/unicode12-0-0.py index 56177d0661..051ec577b3 100644 --- a/rich/_unicode_data/unicode12-0-0.py +++ b/rich/_unicode_data/unicode12-0-0.py @@ -421,106 +421,219 @@ ], narrow_to_wide=frozenset( { - 9728, - 9729, - 9730, - 9731, - 11013, - 11014, - 9992, - 9996, - 9762, - 127780, - 127781, - 127782, - 127783, - 127784, - 127785, - 127786, - 127787, - 9774, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 9784, - 9785, - 10035, - 10548, - 128329, - 9823, - 10083, - 9829, - 128367, - 127344, - 128371, - 128372, - 128373, - 128374, - 128375, - 128376, - 127358, - 128394, - 128395, - 128396, - 9876, - 9877, - 9878, - 8596, - 8597, - 8598, - 8599, - 9883, - 8600, - 127894, - 127897, - 127898, - 127902, - 8617, - 9642, - 9904, - 128433, - 128450, - 128451, - 127947, - 127948, - 128717, - 128718, - 127949, - 128465, - 128466, - 127956, - 127957, - 127958, - 127959, - 127960, - 127961, - 127962, - 127963, - 127964, - 127965, - 127966, - 128476, - 128736, - 128737, - 128738, - 128739, - 128740, - 128477, - 9208, - 9197, - 9198, - 9968, - 9201, - 9975, - 9976, - 9209, - 9723, + "๐Ÿ—", + "๐Ÿ“ฝ", + "๐Ÿ—’", + "๐Ÿ—œ", + "โ™€", + "๐ŸŽŸ", + "๐Ÿ›ฃ", + "โญ", + "โ„น", + "โ˜‚", + "โ˜บ", + "๐ŸŽ™", + "โธ", + "โžก", + "โ˜ƒ", + "๐Ÿ–ฒ", + "โ˜", + "๐Ÿ› ", + "โœณ", + "โ–ถ", + "โš ", + "๐Ÿ›ฐ", + "โ›ˆ", + "6", + "๐Ÿ…ฟ", + "๐ŸŽ–", + "โ›‘", + "๐Ÿ›ฉ", + "โ˜ช", + "๐Ÿ•ณ", + "9", + "๐Ÿท", + "โ˜€", + "โ˜ธ", + "โ™จ", + "โฌ…", + "โ‡", + "๐Ÿ—จ", + "โ™ฆ", + "#", + "โœ", + "โน", + "โ™Ÿ", + "๐Ÿ•‰", + "๐Ÿ—“", + "๐ŸŒถ", + "โบ", + "โ˜˜", + "โ€ผ", + "๐ŸŒฉ", + "๐Ÿ—‘", + "โ˜ฏ", + "๐Ÿ•ด", + "โœด", + "โ˜ข", + "๐Ÿ–ผ", + "๐ŸŒซ", + "๐Ÿ•ต", + "โšง", + "๐Ÿฝ", + "๐Ÿ—„", + "โœ”", + "๐Ÿ—ก", + "โฒ", + "๐ŸŒก", + "๐Ÿ–‹", + "๐Ÿ›ณ", + "๐Ÿ›‹", + "โ˜", + "๐Ÿ‘", + "โ“‚", + "โ†•", + "๐Ÿ›", + "โฏ", + "7", + "๐Ÿ–", + "โฑ", + "*", + "๐Ÿ—", + "โœ", + "๐Ÿ–Œ", + "โ†–", + "โ›น", + "๐Ÿ™", + "โ„", + "๐ŸŽš", + "๐Ÿš", + "โ‰", + "๐Ÿ”", + "๐Ÿฟ", + "๐Ÿ•", + "โ„ข", + "1", + "๐Ÿ›ค", + "๐Ÿ…ฑ", + "๐Ÿ–Š", + "โšฑ", + "โ›ธ", + "๐Ÿณ", + "๐Ÿ›", + "โฌ‡", + "๐Ÿ…ฐ", + "โ›ฉ", + "๐Ÿ—ณ", + "โ†™", + "๐Ÿ—‚", + "โ›ด", + "๐Ÿ‹", + "๐ŸŒฆ", + "ยฎ", + "๐Ÿ—ž", + "โ™ ", + "โคด", + "โœˆ", + "๐ŸŽž", + "โš•", + "โ›", + "๐Ÿ•ธ", + "๐Ÿ›ฅ", + "โšœ", + "โ˜ฎ", + "๐Ÿ—ฏ", + "โœก", + "โฎ", + "โšฐ", + "3", + "โ–ซ", + "๐Ÿ", + "โœ", + "โ†˜", + "โ†ช", + "โš›", + "๐Ÿ–‡", + "โœ–", + "๐Ÿ›ข", + "๐ŸŽ›", + "8", + "โ†—", + "๐Ÿ›ก", + "โ˜ฃ", + "โ›ฐ", + "โฃ", + "โœ‚", + "โ˜‘", + "โš™", + "โคต", + "โ™ป", + "๐ŸŒช", + "๐Ÿ–", + "๐Ÿ•ฏ", + "โœ‰", + "4", + "โœ’", + "๐ŸŒค", + "๐ŸŸ", + "โ™‚", + "๐Ÿ•ฐ", + "๐Ÿ›Ž", + "๐ŸŽ—", + "๐Ÿ•น", + "5", + "โš’", + "โค", + "๐Ÿ–", + "โš”", + "โš–", + "๐Ÿ–ฑ", + "๐Ÿ•Š", + "โ†”", + "2", + "๐Ÿ•ท", + "๐Ÿ…พ", + "โ˜น", + "๐Ÿ–ฅ", + "โ›ท", + "๐Ÿœ", + "โ˜Ž", + "๐ŸŒ", + "โ™พ", + "๐Ÿ›", + "โŒจ", + "๐ŸŽ", + "๐Ÿต", + "๐Ÿ–จ", + "โ™ฅ", + "โ—ป", + "๐ŸŒฅ", + "โ˜„", + "โ—ผ", + "โ›ฑ", + "โœŒ", + "โ†ฉ", + "ยฉ", + "โ", + "๐Ÿ", + "๐ŸŒง", + "โ˜ ", + "โฌ†", + "๐Ÿ˜", + "๐Ÿ—ƒ", + "โ–ช", + "โ˜ฆ", + "0", + "๐ŸŒจ", + "๐Ÿ—ฃ", + "๐Ÿ—บ", + "๐Ÿž", + "๐Ÿ•ถ", + "๐ŸŒฌ", + "โ™ฃ", + "โš—", + "โ—€", + "โ›“", } ), ) diff --git a/rich/_unicode_data/unicode12-1-0.py b/rich/_unicode_data/unicode12-1-0.py index 99ececb78d..5d9e47a6b2 100644 --- a/rich/_unicode_data/unicode12-1-0.py +++ b/rich/_unicode_data/unicode12-1-0.py @@ -420,106 +420,219 @@ ], narrow_to_wide=frozenset( { - 9728, - 9729, - 9730, - 9731, - 11013, - 11014, - 9992, - 9996, - 9762, - 127780, - 127781, - 127782, - 127783, - 127784, - 127785, - 127786, - 127787, - 9774, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 9784, - 9785, - 10035, - 10548, - 128329, - 9823, - 10083, - 9829, - 128367, - 127344, - 128371, - 128372, - 128373, - 128374, - 128375, - 128376, - 127358, - 128394, - 128395, - 128396, - 9876, - 9877, - 9878, - 8596, - 8597, - 8598, - 8599, - 9883, - 8600, - 127894, - 127897, - 127898, - 127902, - 8617, - 9642, - 9904, - 128433, - 128450, - 128451, - 127947, - 127948, - 128717, - 128718, - 127949, - 128465, - 128466, - 127956, - 127957, - 127958, - 127959, - 127960, - 127961, - 127962, - 127963, - 127964, - 127965, - 127966, - 128476, - 128736, - 128737, - 128738, - 128739, - 128740, - 128477, - 9208, - 9197, - 9198, - 9968, - 9201, - 9975, - 9976, - 9209, - 9723, + "๐Ÿ—", + "๐Ÿ“ฝ", + "๐Ÿ—’", + "๐Ÿ—œ", + "โ™€", + "๐ŸŽŸ", + "๐Ÿ›ฃ", + "โญ", + "โ„น", + "โ˜‚", + "โ˜บ", + "๐ŸŽ™", + "โธ", + "โžก", + "โ˜ƒ", + "๐Ÿ–ฒ", + "โ˜", + "๐Ÿ› ", + "โœณ", + "โ–ถ", + "โš ", + "๐Ÿ›ฐ", + "โ›ˆ", + "6", + "๐Ÿ…ฟ", + "๐ŸŽ–", + "โ›‘", + "๐Ÿ›ฉ", + "โ˜ช", + "๐Ÿ•ณ", + "9", + "๐Ÿท", + "โ˜€", + "โ˜ธ", + "โ™จ", + "โฌ…", + "โ‡", + "๐Ÿ—จ", + "โ™ฆ", + "#", + "โœ", + "โน", + "โ™Ÿ", + "๐Ÿ•‰", + "๐Ÿ—“", + "๐ŸŒถ", + "โบ", + "โ˜˜", + "โ€ผ", + "๐ŸŒฉ", + "๐Ÿ—‘", + "โ˜ฏ", + "๐Ÿ•ด", + "โœด", + "โ˜ข", + "๐Ÿ–ผ", + "๐ŸŒซ", + "๐Ÿ•ต", + "โšง", + "๐Ÿฝ", + "๐Ÿ—„", + "โœ”", + "๐Ÿ—ก", + "โฒ", + "๐ŸŒก", + "๐Ÿ–‹", + "๐Ÿ›ณ", + "๐Ÿ›‹", + "โ˜", + "๐Ÿ‘", + "โ“‚", + "โ†•", + "๐Ÿ›", + "โฏ", + "7", + "๐Ÿ–", + "โฑ", + "*", + "๐Ÿ—", + "โœ", + "๐Ÿ–Œ", + "โ†–", + "โ›น", + "๐Ÿ™", + "โ„", + "๐ŸŽš", + "๐Ÿš", + "โ‰", + "๐Ÿ”", + "๐Ÿฟ", + "๐Ÿ•", + "โ„ข", + "1", + "๐Ÿ›ค", + "๐Ÿ…ฑ", + "๐Ÿ–Š", + "โšฑ", + "โ›ธ", + "๐Ÿณ", + "๐Ÿ›", + "โฌ‡", + "๐Ÿ…ฐ", + "โ›ฉ", + "๐Ÿ—ณ", + "โ†™", + "๐Ÿ—‚", + "โ›ด", + "๐Ÿ‹", + "๐ŸŒฆ", + "ยฎ", + "๐Ÿ—ž", + "โ™ ", + "โคด", + "โœˆ", + "๐ŸŽž", + "โš•", + "โ›", + "๐Ÿ•ธ", + "๐Ÿ›ฅ", + "โšœ", + "โ˜ฎ", + "๐Ÿ—ฏ", + "โœก", + "โฎ", + "โšฐ", + "3", + "โ–ซ", + "๐Ÿ", + "โœ", + "โ†˜", + "โ†ช", + "โš›", + "๐Ÿ–‡", + "โœ–", + "๐Ÿ›ข", + "๐ŸŽ›", + "8", + "โ†—", + "๐Ÿ›ก", + "โ˜ฃ", + "โ›ฐ", + "โฃ", + "โœ‚", + "โ˜‘", + "โš™", + "โคต", + "โ™ป", + "๐ŸŒช", + "๐Ÿ–", + "๐Ÿ•ฏ", + "โœ‰", + "4", + "โœ’", + "๐ŸŒค", + "๐ŸŸ", + "โ™‚", + "๐Ÿ•ฐ", + "๐Ÿ›Ž", + "๐ŸŽ—", + "๐Ÿ•น", + "5", + "โš’", + "โค", + "๐Ÿ–", + "โš”", + "โš–", + "๐Ÿ–ฑ", + "๐Ÿ•Š", + "โ†”", + "2", + "๐Ÿ•ท", + "๐Ÿ…พ", + "โ˜น", + "๐Ÿ–ฅ", + "โ›ท", + "๐Ÿœ", + "โ˜Ž", + "๐ŸŒ", + "โ™พ", + "๐Ÿ›", + "โŒจ", + "๐ŸŽ", + "๐Ÿต", + "๐Ÿ–จ", + "โ™ฅ", + "โ—ป", + "๐ŸŒฅ", + "โ˜„", + "โ—ผ", + "โ›ฑ", + "โœŒ", + "โ†ฉ", + "ยฉ", + "โ", + "๐Ÿ", + "๐ŸŒง", + "โ˜ ", + "โฌ†", + "๐Ÿ˜", + "๐Ÿ—ƒ", + "โ–ช", + "โ˜ฆ", + "0", + "๐ŸŒจ", + "๐Ÿ—ฃ", + "๐Ÿ—บ", + "๐Ÿž", + "๐Ÿ•ถ", + "๐ŸŒฌ", + "โ™ฃ", + "โš—", + "โ—€", + "โ›“", } ), ) diff --git a/rich/_unicode_data/unicode13-0-0.py b/rich/_unicode_data/unicode13-0-0.py index 39ed90aa3a..518eaf687b 100644 --- a/rich/_unicode_data/unicode13-0-0.py +++ b/rich/_unicode_data/unicode13-0-0.py @@ -432,106 +432,219 @@ ], narrow_to_wide=frozenset( { - 9728, - 9729, - 9730, - 9731, - 11013, - 11014, - 9992, - 9996, - 9762, - 127780, - 127781, - 127782, - 127783, - 127784, - 127785, - 127786, - 127787, - 9774, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 9784, - 9785, - 10035, - 10548, - 128329, - 9823, - 10083, - 9829, - 128367, - 127344, - 128371, - 128372, - 128373, - 128374, - 128375, - 128376, - 127358, - 128394, - 128395, - 128396, - 9876, - 9877, - 9878, - 8596, - 8597, - 8598, - 8599, - 9883, - 8600, - 127894, - 127897, - 127898, - 127902, - 8617, - 9642, - 9904, - 128433, - 128450, - 128451, - 127947, - 127948, - 128717, - 128718, - 127949, - 128465, - 128466, - 127956, - 127957, - 127958, - 127959, - 127960, - 127961, - 127962, - 127963, - 127964, - 127965, - 127966, - 128476, - 128736, - 128737, - 128738, - 128739, - 128740, - 128477, - 9208, - 9197, - 9198, - 9968, - 9201, - 9975, - 9976, - 9209, - 9723, + "๐Ÿ—", + "๐Ÿ“ฝ", + "๐Ÿ—’", + "๐Ÿ—œ", + "โ™€", + "๐ŸŽŸ", + "๐Ÿ›ฃ", + "โญ", + "โ„น", + "โ˜‚", + "โ˜บ", + "๐ŸŽ™", + "โธ", + "โžก", + "โ˜ƒ", + "๐Ÿ–ฒ", + "โ˜", + "๐Ÿ› ", + "โœณ", + "โ–ถ", + "โš ", + "๐Ÿ›ฐ", + "โ›ˆ", + "6", + "๐Ÿ…ฟ", + "๐ŸŽ–", + "โ›‘", + "๐Ÿ›ฉ", + "โ˜ช", + "๐Ÿ•ณ", + "9", + "๐Ÿท", + "โ˜€", + "โ˜ธ", + "โ™จ", + "โฌ…", + "โ‡", + "๐Ÿ—จ", + "โ™ฆ", + "#", + "โœ", + "โน", + "โ™Ÿ", + "๐Ÿ•‰", + "๐Ÿ—“", + "๐ŸŒถ", + "โบ", + "โ˜˜", + "โ€ผ", + "๐ŸŒฉ", + "๐Ÿ—‘", + "โ˜ฏ", + "๐Ÿ•ด", + "โœด", + "โ˜ข", + "๐Ÿ–ผ", + "๐ŸŒซ", + "๐Ÿ•ต", + "โšง", + "๐Ÿฝ", + "๐Ÿ—„", + "โœ”", + "๐Ÿ—ก", + "โฒ", + "๐ŸŒก", + "๐Ÿ–‹", + "๐Ÿ›ณ", + "๐Ÿ›‹", + "โ˜", + "๐Ÿ‘", + "โ“‚", + "โ†•", + "๐Ÿ›", + "โฏ", + "7", + "๐Ÿ–", + "โฑ", + "*", + "๐Ÿ—", + "โœ", + "๐Ÿ–Œ", + "โ†–", + "โ›น", + "๐Ÿ™", + "โ„", + "๐ŸŽš", + "๐Ÿš", + "โ‰", + "๐Ÿ”", + "๐Ÿฟ", + "๐Ÿ•", + "โ„ข", + "1", + "๐Ÿ›ค", + "๐Ÿ…ฑ", + "๐Ÿ–Š", + "โšฑ", + "โ›ธ", + "๐Ÿณ", + "๐Ÿ›", + "โฌ‡", + "๐Ÿ…ฐ", + "โ›ฉ", + "๐Ÿ—ณ", + "โ†™", + "๐Ÿ—‚", + "โ›ด", + "๐Ÿ‹", + "๐ŸŒฆ", + "ยฎ", + "๐Ÿ—ž", + "โ™ ", + "โคด", + "โœˆ", + "๐ŸŽž", + "โš•", + "โ›", + "๐Ÿ•ธ", + "๐Ÿ›ฅ", + "โšœ", + "โ˜ฎ", + "๐Ÿ—ฏ", + "โœก", + "โฎ", + "โšฐ", + "3", + "โ–ซ", + "๐Ÿ", + "โœ", + "โ†˜", + "โ†ช", + "โš›", + "๐Ÿ–‡", + "โœ–", + "๐Ÿ›ข", + "๐ŸŽ›", + "8", + "โ†—", + "๐Ÿ›ก", + "โ˜ฃ", + "โ›ฐ", + "โฃ", + "โœ‚", + "โ˜‘", + "โš™", + "โคต", + "โ™ป", + "๐ŸŒช", + "๐Ÿ–", + "๐Ÿ•ฏ", + "โœ‰", + "4", + "โœ’", + "๐ŸŒค", + "๐ŸŸ", + "โ™‚", + "๐Ÿ•ฐ", + "๐Ÿ›Ž", + "๐ŸŽ—", + "๐Ÿ•น", + "5", + "โš’", + "โค", + "๐Ÿ–", + "โš”", + "โš–", + "๐Ÿ–ฑ", + "๐Ÿ•Š", + "โ†”", + "2", + "๐Ÿ•ท", + "๐Ÿ…พ", + "โ˜น", + "๐Ÿ–ฅ", + "โ›ท", + "๐Ÿœ", + "โ˜Ž", + "๐ŸŒ", + "โ™พ", + "๐Ÿ›", + "โŒจ", + "๐ŸŽ", + "๐Ÿต", + "๐Ÿ–จ", + "โ™ฅ", + "โ—ป", + "๐ŸŒฅ", + "โ˜„", + "โ—ผ", + "โ›ฑ", + "โœŒ", + "โ†ฉ", + "ยฉ", + "โ", + "๐Ÿ", + "๐ŸŒง", + "โ˜ ", + "โฌ†", + "๐Ÿ˜", + "๐Ÿ—ƒ", + "โ–ช", + "โ˜ฆ", + "0", + "๐ŸŒจ", + "๐Ÿ—ฃ", + "๐Ÿ—บ", + "๐Ÿž", + "๐Ÿ•ถ", + "๐ŸŒฌ", + "โ™ฃ", + "โš—", + "โ—€", + "โ›“", } ), ) diff --git a/rich/_unicode_data/unicode14-0-0.py b/rich/_unicode_data/unicode14-0-0.py index 189865876a..0caa82ac91 100644 --- a/rich/_unicode_data/unicode14-0-0.py +++ b/rich/_unicode_data/unicode14-0-0.py @@ -446,106 +446,219 @@ ], narrow_to_wide=frozenset( { - 9728, - 9729, - 9730, - 9731, - 11013, - 11014, - 9992, - 9996, - 9762, - 127780, - 127781, - 127782, - 127783, - 127784, - 127785, - 127786, - 127787, - 9774, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 9784, - 9785, - 10035, - 10548, - 128329, - 9823, - 10083, - 9829, - 128367, - 127344, - 128371, - 128372, - 128373, - 128374, - 128375, - 128376, - 127358, - 128394, - 128395, - 128396, - 9876, - 9877, - 9878, - 8596, - 8597, - 8598, - 8599, - 9883, - 8600, - 127894, - 127897, - 127898, - 127902, - 8617, - 9642, - 9904, - 128433, - 128450, - 128451, - 127947, - 127948, - 128717, - 128718, - 127949, - 128465, - 128466, - 127956, - 127957, - 127958, - 127959, - 127960, - 127961, - 127962, - 127963, - 127964, - 127965, - 127966, - 128476, - 128736, - 128737, - 128738, - 128739, - 128740, - 128477, - 9208, - 9197, - 9198, - 9968, - 9201, - 9975, - 9976, - 9209, - 9723, + "๐Ÿ—", + "๐Ÿ“ฝ", + "๐Ÿ—’", + "๐Ÿ—œ", + "โ™€", + "๐ŸŽŸ", + "๐Ÿ›ฃ", + "โญ", + "โ„น", + "โ˜‚", + "โ˜บ", + "๐ŸŽ™", + "โธ", + "โžก", + "โ˜ƒ", + "๐Ÿ–ฒ", + "โ˜", + "๐Ÿ› ", + "โœณ", + "โ–ถ", + "โš ", + "๐Ÿ›ฐ", + "โ›ˆ", + "6", + "๐Ÿ…ฟ", + "๐ŸŽ–", + "โ›‘", + "๐Ÿ›ฉ", + "โ˜ช", + "๐Ÿ•ณ", + "9", + "๐Ÿท", + "โ˜€", + "โ˜ธ", + "โ™จ", + "โฌ…", + "โ‡", + "๐Ÿ—จ", + "โ™ฆ", + "#", + "โœ", + "โน", + "โ™Ÿ", + "๐Ÿ•‰", + "๐Ÿ—“", + "๐ŸŒถ", + "โบ", + "โ˜˜", + "โ€ผ", + "๐ŸŒฉ", + "๐Ÿ—‘", + "โ˜ฏ", + "๐Ÿ•ด", + "โœด", + "โ˜ข", + "๐Ÿ–ผ", + "๐ŸŒซ", + "๐Ÿ•ต", + "โšง", + "๐Ÿฝ", + "๐Ÿ—„", + "โœ”", + "๐Ÿ—ก", + "โฒ", + "๐ŸŒก", + "๐Ÿ–‹", + "๐Ÿ›ณ", + "๐Ÿ›‹", + "โ˜", + "๐Ÿ‘", + "โ“‚", + "โ†•", + "๐Ÿ›", + "โฏ", + "7", + "๐Ÿ–", + "โฑ", + "*", + "๐Ÿ—", + "โœ", + "๐Ÿ–Œ", + "โ†–", + "โ›น", + "๐Ÿ™", + "โ„", + "๐ŸŽš", + "๐Ÿš", + "โ‰", + "๐Ÿ”", + "๐Ÿฟ", + "๐Ÿ•", + "โ„ข", + "1", + "๐Ÿ›ค", + "๐Ÿ…ฑ", + "๐Ÿ–Š", + "โšฑ", + "โ›ธ", + "๐Ÿณ", + "๐Ÿ›", + "โฌ‡", + "๐Ÿ…ฐ", + "โ›ฉ", + "๐Ÿ—ณ", + "โ†™", + "๐Ÿ—‚", + "โ›ด", + "๐Ÿ‹", + "๐ŸŒฆ", + "ยฎ", + "๐Ÿ—ž", + "โ™ ", + "โคด", + "โœˆ", + "๐ŸŽž", + "โš•", + "โ›", + "๐Ÿ•ธ", + "๐Ÿ›ฅ", + "โšœ", + "โ˜ฎ", + "๐Ÿ—ฏ", + "โœก", + "โฎ", + "โšฐ", + "3", + "โ–ซ", + "๐Ÿ", + "โœ", + "โ†˜", + "โ†ช", + "โš›", + "๐Ÿ–‡", + "โœ–", + "๐Ÿ›ข", + "๐ŸŽ›", + "8", + "โ†—", + "๐Ÿ›ก", + "โ˜ฃ", + "โ›ฐ", + "โฃ", + "โœ‚", + "โ˜‘", + "โš™", + "โคต", + "โ™ป", + "๐ŸŒช", + "๐Ÿ–", + "๐Ÿ•ฏ", + "โœ‰", + "4", + "โœ’", + "๐ŸŒค", + "๐ŸŸ", + "โ™‚", + "๐Ÿ•ฐ", + "๐Ÿ›Ž", + "๐ŸŽ—", + "๐Ÿ•น", + "5", + "โš’", + "โค", + "๐Ÿ–", + "โš”", + "โš–", + "๐Ÿ–ฑ", + "๐Ÿ•Š", + "โ†”", + "2", + "๐Ÿ•ท", + "๐Ÿ…พ", + "โ˜น", + "๐Ÿ–ฅ", + "โ›ท", + "๐Ÿœ", + "โ˜Ž", + "๐ŸŒ", + "โ™พ", + "๐Ÿ›", + "โŒจ", + "๐ŸŽ", + "๐Ÿต", + "๐Ÿ–จ", + "โ™ฅ", + "โ—ป", + "๐ŸŒฅ", + "โ˜„", + "โ—ผ", + "โ›ฑ", + "โœŒ", + "โ†ฉ", + "ยฉ", + "โ", + "๐Ÿ", + "๐ŸŒง", + "โ˜ ", + "โฌ†", + "๐Ÿ˜", + "๐Ÿ—ƒ", + "โ–ช", + "โ˜ฆ", + "0", + "๐ŸŒจ", + "๐Ÿ—ฃ", + "๐Ÿ—บ", + "๐Ÿž", + "๐Ÿ•ถ", + "๐ŸŒฌ", + "โ™ฃ", + "โš—", + "โ—€", + "โ›“", } ), ) diff --git a/rich/_unicode_data/unicode15-0-0.py b/rich/_unicode_data/unicode15-0-0.py index 6c3f2cf2dc..ee76259155 100644 --- a/rich/_unicode_data/unicode15-0-0.py +++ b/rich/_unicode_data/unicode15-0-0.py @@ -456,106 +456,219 @@ ], narrow_to_wide=frozenset( { - 9728, - 9729, - 9730, - 9731, - 11013, - 11014, - 9992, - 9996, - 9762, - 127780, - 127781, - 127782, - 127783, - 127784, - 127785, - 127786, - 127787, - 9774, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 9784, - 9785, - 10035, - 10548, - 128329, - 9823, - 10083, - 9829, - 128367, - 127344, - 128371, - 128372, - 128373, - 128374, - 128375, - 128376, - 127358, - 128394, - 128395, - 128396, - 9876, - 9877, - 9878, - 8596, - 8597, - 8598, - 8599, - 9883, - 8600, - 127894, - 127897, - 127898, - 127902, - 8617, - 9642, - 9904, - 128433, - 128450, - 128451, - 127947, - 127948, - 128717, - 128718, - 127949, - 128465, - 128466, - 127956, - 127957, - 127958, - 127959, - 127960, - 127961, - 127962, - 127963, - 127964, - 127965, - 127966, - 128476, - 128736, - 128737, - 128738, - 128739, - 128740, - 128477, - 9208, - 9197, - 9198, - 9968, - 9201, - 9975, - 9976, - 9209, - 9723, + "๐Ÿ—", + "๐Ÿ“ฝ", + "๐Ÿ—’", + "๐Ÿ—œ", + "โ™€", + "๐ŸŽŸ", + "๐Ÿ›ฃ", + "โญ", + "โ„น", + "โ˜‚", + "โ˜บ", + "๐ŸŽ™", + "โธ", + "โžก", + "โ˜ƒ", + "๐Ÿ–ฒ", + "โ˜", + "๐Ÿ› ", + "โœณ", + "โ–ถ", + "โš ", + "๐Ÿ›ฐ", + "โ›ˆ", + "6", + "๐Ÿ…ฟ", + "๐ŸŽ–", + "โ›‘", + "๐Ÿ›ฉ", + "โ˜ช", + "๐Ÿ•ณ", + "9", + "๐Ÿท", + "โ˜€", + "โ˜ธ", + "โ™จ", + "โฌ…", + "โ‡", + "๐Ÿ—จ", + "โ™ฆ", + "#", + "โœ", + "โน", + "โ™Ÿ", + "๐Ÿ•‰", + "๐Ÿ—“", + "๐ŸŒถ", + "โบ", + "โ˜˜", + "โ€ผ", + "๐ŸŒฉ", + "๐Ÿ—‘", + "โ˜ฏ", + "๐Ÿ•ด", + "โœด", + "โ˜ข", + "๐Ÿ–ผ", + "๐ŸŒซ", + "๐Ÿ•ต", + "โšง", + "๐Ÿฝ", + "๐Ÿ—„", + "โœ”", + "๐Ÿ—ก", + "โฒ", + "๐ŸŒก", + "๐Ÿ–‹", + "๐Ÿ›ณ", + "๐Ÿ›‹", + "โ˜", + "๐Ÿ‘", + "โ“‚", + "โ†•", + "๐Ÿ›", + "โฏ", + "7", + "๐Ÿ–", + "โฑ", + "*", + "๐Ÿ—", + "โœ", + "๐Ÿ–Œ", + "โ†–", + "โ›น", + "๐Ÿ™", + "โ„", + "๐ŸŽš", + "๐Ÿš", + "โ‰", + "๐Ÿ”", + "๐Ÿฟ", + "๐Ÿ•", + "โ„ข", + "1", + "๐Ÿ›ค", + "๐Ÿ…ฑ", + "๐Ÿ–Š", + "โšฑ", + "โ›ธ", + "๐Ÿณ", + "๐Ÿ›", + "โฌ‡", + "๐Ÿ…ฐ", + "โ›ฉ", + "๐Ÿ—ณ", + "โ†™", + "๐Ÿ—‚", + "โ›ด", + "๐Ÿ‹", + "๐ŸŒฆ", + "ยฎ", + "๐Ÿ—ž", + "โ™ ", + "โคด", + "โœˆ", + "๐ŸŽž", + "โš•", + "โ›", + "๐Ÿ•ธ", + "๐Ÿ›ฅ", + "โšœ", + "โ˜ฎ", + "๐Ÿ—ฏ", + "โœก", + "โฎ", + "โšฐ", + "3", + "โ–ซ", + "๐Ÿ", + "โœ", + "โ†˜", + "โ†ช", + "โš›", + "๐Ÿ–‡", + "โœ–", + "๐Ÿ›ข", + "๐ŸŽ›", + "8", + "โ†—", + "๐Ÿ›ก", + "โ˜ฃ", + "โ›ฐ", + "โฃ", + "โœ‚", + "โ˜‘", + "โš™", + "โคต", + "โ™ป", + "๐ŸŒช", + "๐Ÿ–", + "๐Ÿ•ฏ", + "โœ‰", + "4", + "โœ’", + "๐ŸŒค", + "๐ŸŸ", + "โ™‚", + "๐Ÿ•ฐ", + "๐Ÿ›Ž", + "๐ŸŽ—", + "๐Ÿ•น", + "5", + "โš’", + "โค", + "๐Ÿ–", + "โš”", + "โš–", + "๐Ÿ–ฑ", + "๐Ÿ•Š", + "โ†”", + "2", + "๐Ÿ•ท", + "๐Ÿ…พ", + "โ˜น", + "๐Ÿ–ฅ", + "โ›ท", + "๐Ÿœ", + "โ˜Ž", + "๐ŸŒ", + "โ™พ", + "๐Ÿ›", + "โŒจ", + "๐ŸŽ", + "๐Ÿต", + "๐Ÿ–จ", + "โ™ฅ", + "โ—ป", + "๐ŸŒฅ", + "โ˜„", + "โ—ผ", + "โ›ฑ", + "โœŒ", + "โ†ฉ", + "ยฉ", + "โ", + "๐Ÿ", + "๐ŸŒง", + "โ˜ ", + "โฌ†", + "๐Ÿ˜", + "๐Ÿ—ƒ", + "โ–ช", + "โ˜ฆ", + "0", + "๐ŸŒจ", + "๐Ÿ—ฃ", + "๐Ÿ—บ", + "๐Ÿž", + "๐Ÿ•ถ", + "๐ŸŒฌ", + "โ™ฃ", + "โš—", + "โ—€", + "โ›“", } ), ) diff --git a/rich/_unicode_data/unicode15-1-0.py b/rich/_unicode_data/unicode15-1-0.py index c8749d74af..fe2eccfe6d 100644 --- a/rich/_unicode_data/unicode15-1-0.py +++ b/rich/_unicode_data/unicode15-1-0.py @@ -455,106 +455,219 @@ ], narrow_to_wide=frozenset( { - 9728, - 9729, - 9730, - 9731, - 11013, - 11014, - 9992, - 9996, - 9762, - 127780, - 127781, - 127782, - 127783, - 127784, - 127785, - 127786, - 127787, - 9774, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 9784, - 9785, - 10035, - 10548, - 128329, - 9823, - 10083, - 9829, - 128367, - 127344, - 128371, - 128372, - 128373, - 128374, - 128375, - 128376, - 127358, - 128394, - 128395, - 128396, - 9876, - 9877, - 9878, - 8596, - 8597, - 8598, - 8599, - 9883, - 8600, - 127894, - 127897, - 127898, - 127902, - 8617, - 9642, - 9904, - 128433, - 128450, - 128451, - 127947, - 127948, - 128717, - 128718, - 127949, - 128465, - 128466, - 127956, - 127957, - 127958, - 127959, - 127960, - 127961, - 127962, - 127963, - 127964, - 127965, - 127966, - 128476, - 128736, - 128737, - 128738, - 128739, - 128740, - 128477, - 9208, - 9197, - 9198, - 9968, - 9201, - 9975, - 9976, - 9209, - 9723, + "๐Ÿ—", + "๐Ÿ“ฝ", + "๐Ÿ—’", + "๐Ÿ—œ", + "โ™€", + "๐ŸŽŸ", + "๐Ÿ›ฃ", + "โญ", + "โ„น", + "โ˜‚", + "โ˜บ", + "๐ŸŽ™", + "โธ", + "โžก", + "โ˜ƒ", + "๐Ÿ–ฒ", + "โ˜", + "๐Ÿ› ", + "โœณ", + "โ–ถ", + "โš ", + "๐Ÿ›ฐ", + "โ›ˆ", + "6", + "๐Ÿ…ฟ", + "๐ŸŽ–", + "โ›‘", + "๐Ÿ›ฉ", + "โ˜ช", + "๐Ÿ•ณ", + "9", + "๐Ÿท", + "โ˜€", + "โ˜ธ", + "โ™จ", + "โฌ…", + "โ‡", + "๐Ÿ—จ", + "โ™ฆ", + "#", + "โœ", + "โน", + "โ™Ÿ", + "๐Ÿ•‰", + "๐Ÿ—“", + "๐ŸŒถ", + "โบ", + "โ˜˜", + "โ€ผ", + "๐ŸŒฉ", + "๐Ÿ—‘", + "โ˜ฏ", + "๐Ÿ•ด", + "โœด", + "โ˜ข", + "๐Ÿ–ผ", + "๐ŸŒซ", + "๐Ÿ•ต", + "โšง", + "๐Ÿฝ", + "๐Ÿ—„", + "โœ”", + "๐Ÿ—ก", + "โฒ", + "๐ŸŒก", + "๐Ÿ–‹", + "๐Ÿ›ณ", + "๐Ÿ›‹", + "โ˜", + "๐Ÿ‘", + "โ“‚", + "โ†•", + "๐Ÿ›", + "โฏ", + "7", + "๐Ÿ–", + "โฑ", + "*", + "๐Ÿ—", + "โœ", + "๐Ÿ–Œ", + "โ†–", + "โ›น", + "๐Ÿ™", + "โ„", + "๐ŸŽš", + "๐Ÿš", + "โ‰", + "๐Ÿ”", + "๐Ÿฟ", + "๐Ÿ•", + "โ„ข", + "1", + "๐Ÿ›ค", + "๐Ÿ…ฑ", + "๐Ÿ–Š", + "โšฑ", + "โ›ธ", + "๐Ÿณ", + "๐Ÿ›", + "โฌ‡", + "๐Ÿ…ฐ", + "โ›ฉ", + "๐Ÿ—ณ", + "โ†™", + "๐Ÿ—‚", + "โ›ด", + "๐Ÿ‹", + "๐ŸŒฆ", + "ยฎ", + "๐Ÿ—ž", + "โ™ ", + "โคด", + "โœˆ", + "๐ŸŽž", + "โš•", + "โ›", + "๐Ÿ•ธ", + "๐Ÿ›ฅ", + "โšœ", + "โ˜ฎ", + "๐Ÿ—ฏ", + "โœก", + "โฎ", + "โšฐ", + "3", + "โ–ซ", + "๐Ÿ", + "โœ", + "โ†˜", + "โ†ช", + "โš›", + "๐Ÿ–‡", + "โœ–", + "๐Ÿ›ข", + "๐ŸŽ›", + "8", + "โ†—", + "๐Ÿ›ก", + "โ˜ฃ", + "โ›ฐ", + "โฃ", + "โœ‚", + "โ˜‘", + "โš™", + "โคต", + "โ™ป", + "๐ŸŒช", + "๐Ÿ–", + "๐Ÿ•ฏ", + "โœ‰", + "4", + "โœ’", + "๐ŸŒค", + "๐ŸŸ", + "โ™‚", + "๐Ÿ•ฐ", + "๐Ÿ›Ž", + "๐ŸŽ—", + "๐Ÿ•น", + "5", + "โš’", + "โค", + "๐Ÿ–", + "โš”", + "โš–", + "๐Ÿ–ฑ", + "๐Ÿ•Š", + "โ†”", + "2", + "๐Ÿ•ท", + "๐Ÿ…พ", + "โ˜น", + "๐Ÿ–ฅ", + "โ›ท", + "๐Ÿœ", + "โ˜Ž", + "๐ŸŒ", + "โ™พ", + "๐Ÿ›", + "โŒจ", + "๐ŸŽ", + "๐Ÿต", + "๐Ÿ–จ", + "โ™ฅ", + "โ—ป", + "๐ŸŒฅ", + "โ˜„", + "โ—ผ", + "โ›ฑ", + "โœŒ", + "โ†ฉ", + "ยฉ", + "โ", + "๐Ÿ", + "๐ŸŒง", + "โ˜ ", + "โฌ†", + "๐Ÿ˜", + "๐Ÿ—ƒ", + "โ–ช", + "โ˜ฆ", + "0", + "๐ŸŒจ", + "๐Ÿ—ฃ", + "๐Ÿ—บ", + "๐Ÿž", + "๐Ÿ•ถ", + "๐ŸŒฌ", + "โ™ฃ", + "โš—", + "โ—€", + "โ›“", } ), ) diff --git a/rich/_unicode_data/unicode16-0-0.py b/rich/_unicode_data/unicode16-0-0.py index 8f5ca49ce4..1cf0848e3d 100644 --- a/rich/_unicode_data/unicode16-0-0.py +++ b/rich/_unicode_data/unicode16-0-0.py @@ -468,106 +468,219 @@ ], narrow_to_wide=frozenset( { - 9728, - 9729, - 9730, - 9731, - 11013, - 11014, - 9992, - 9996, - 9762, - 127780, - 127781, - 127782, - 127783, - 127784, - 127785, - 127786, - 127787, - 9774, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 9784, - 9785, - 10035, - 10548, - 128329, - 9823, - 10083, - 9829, - 128367, - 127344, - 128371, - 128372, - 128373, - 128374, - 128375, - 128376, - 127358, - 128394, - 128395, - 128396, - 9876, - 9877, - 9878, - 8596, - 8597, - 8598, - 8599, - 9883, - 8600, - 127894, - 127897, - 127898, - 127902, - 8617, - 9642, - 9904, - 128433, - 128450, - 128451, - 127947, - 127948, - 128717, - 128718, - 127949, - 128465, - 128466, - 127956, - 127957, - 127958, - 127959, - 127960, - 127961, - 127962, - 127963, - 127964, - 127965, - 127966, - 128476, - 128736, - 128737, - 128738, - 128739, - 128740, - 128477, - 9208, - 9197, - 9198, - 9968, - 9201, - 9975, - 9976, - 9209, - 9723, + "๐Ÿ—", + "๐Ÿ“ฝ", + "๐Ÿ—’", + "๐Ÿ—œ", + "โ™€", + "๐ŸŽŸ", + "๐Ÿ›ฃ", + "โญ", + "โ„น", + "โ˜‚", + "โ˜บ", + "๐ŸŽ™", + "โธ", + "โžก", + "โ˜ƒ", + "๐Ÿ–ฒ", + "โ˜", + "๐Ÿ› ", + "โœณ", + "โ–ถ", + "โš ", + "๐Ÿ›ฐ", + "โ›ˆ", + "6", + "๐Ÿ…ฟ", + "๐ŸŽ–", + "โ›‘", + "๐Ÿ›ฉ", + "โ˜ช", + "๐Ÿ•ณ", + "9", + "๐Ÿท", + "โ˜€", + "โ˜ธ", + "โ™จ", + "โฌ…", + "โ‡", + "๐Ÿ—จ", + "โ™ฆ", + "#", + "โœ", + "โน", + "โ™Ÿ", + "๐Ÿ•‰", + "๐Ÿ—“", + "๐ŸŒถ", + "โบ", + "โ˜˜", + "โ€ผ", + "๐ŸŒฉ", + "๐Ÿ—‘", + "โ˜ฏ", + "๐Ÿ•ด", + "โœด", + "โ˜ข", + "๐Ÿ–ผ", + "๐ŸŒซ", + "๐Ÿ•ต", + "โšง", + "๐Ÿฝ", + "๐Ÿ—„", + "โœ”", + "๐Ÿ—ก", + "โฒ", + "๐ŸŒก", + "๐Ÿ–‹", + "๐Ÿ›ณ", + "๐Ÿ›‹", + "โ˜", + "๐Ÿ‘", + "โ“‚", + "โ†•", + "๐Ÿ›", + "โฏ", + "7", + "๐Ÿ–", + "โฑ", + "*", + "๐Ÿ—", + "โœ", + "๐Ÿ–Œ", + "โ†–", + "โ›น", + "๐Ÿ™", + "โ„", + "๐ŸŽš", + "๐Ÿš", + "โ‰", + "๐Ÿ”", + "๐Ÿฟ", + "๐Ÿ•", + "โ„ข", + "1", + "๐Ÿ›ค", + "๐Ÿ…ฑ", + "๐Ÿ–Š", + "โšฑ", + "โ›ธ", + "๐Ÿณ", + "๐Ÿ›", + "โฌ‡", + "๐Ÿ…ฐ", + "โ›ฉ", + "๐Ÿ—ณ", + "โ†™", + "๐Ÿ—‚", + "โ›ด", + "๐Ÿ‹", + "๐ŸŒฆ", + "ยฎ", + "๐Ÿ—ž", + "โ™ ", + "โคด", + "โœˆ", + "๐ŸŽž", + "โš•", + "โ›", + "๐Ÿ•ธ", + "๐Ÿ›ฅ", + "โšœ", + "โ˜ฎ", + "๐Ÿ—ฏ", + "โœก", + "โฎ", + "โšฐ", + "3", + "โ–ซ", + "๐Ÿ", + "โœ", + "โ†˜", + "โ†ช", + "โš›", + "๐Ÿ–‡", + "โœ–", + "๐Ÿ›ข", + "๐ŸŽ›", + "8", + "โ†—", + "๐Ÿ›ก", + "โ˜ฃ", + "โ›ฐ", + "โฃ", + "โœ‚", + "โ˜‘", + "โš™", + "โคต", + "โ™ป", + "๐ŸŒช", + "๐Ÿ–", + "๐Ÿ•ฏ", + "โœ‰", + "4", + "โœ’", + "๐ŸŒค", + "๐ŸŸ", + "โ™‚", + "๐Ÿ•ฐ", + "๐Ÿ›Ž", + "๐ŸŽ—", + "๐Ÿ•น", + "5", + "โš’", + "โค", + "๐Ÿ–", + "โš”", + "โš–", + "๐Ÿ–ฑ", + "๐Ÿ•Š", + "โ†”", + "2", + "๐Ÿ•ท", + "๐Ÿ…พ", + "โ˜น", + "๐Ÿ–ฅ", + "โ›ท", + "๐Ÿœ", + "โ˜Ž", + "๐ŸŒ", + "โ™พ", + "๐Ÿ›", + "โŒจ", + "๐ŸŽ", + "๐Ÿต", + "๐Ÿ–จ", + "โ™ฅ", + "โ—ป", + "๐ŸŒฅ", + "โ˜„", + "โ—ผ", + "โ›ฑ", + "โœŒ", + "โ†ฉ", + "ยฉ", + "โ", + "๐Ÿ", + "๐ŸŒง", + "โ˜ ", + "โฌ†", + "๐Ÿ˜", + "๐Ÿ—ƒ", + "โ–ช", + "โ˜ฆ", + "0", + "๐ŸŒจ", + "๐Ÿ—ฃ", + "๐Ÿ—บ", + "๐Ÿž", + "๐Ÿ•ถ", + "๐ŸŒฌ", + "โ™ฃ", + "โš—", + "โ—€", + "โ›“", } ), ) diff --git a/rich/_unicode_data/unicode17-0-0.py b/rich/_unicode_data/unicode17-0-0.py index 5c86e6ea7e..3fde3d0ffb 100644 --- a/rich/_unicode_data/unicode17-0-0.py +++ b/rich/_unicode_data/unicode17-0-0.py @@ -476,106 +476,219 @@ ], narrow_to_wide=frozenset( { - 9728, - 9729, - 9730, - 9731, - 11013, - 11014, - 9992, - 9996, - 9762, - 127780, - 127781, - 127782, - 127783, - 127784, - 127785, - 127786, - 127787, - 9774, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 9784, - 9785, - 10035, - 10548, - 128329, - 9823, - 10083, - 9829, - 128367, - 127344, - 128371, - 128372, - 128373, - 128374, - 128375, - 128376, - 127358, - 128394, - 128395, - 128396, - 9876, - 9877, - 9878, - 8596, - 8597, - 8598, - 8599, - 9883, - 8600, - 127894, - 127897, - 127898, - 127902, - 8617, - 9642, - 9904, - 128433, - 128450, - 128451, - 127947, - 127948, - 128717, - 128718, - 127949, - 128465, - 128466, - 127956, - 127957, - 127958, - 127959, - 127960, - 127961, - 127962, - 127963, - 127964, - 127965, - 127966, - 128476, - 128736, - 128737, - 128738, - 128739, - 128740, - 128477, - 9208, - 9197, - 9198, - 9968, - 9201, - 9975, - 9976, - 9209, - 9723, + "๐Ÿ—", + "๐Ÿ“ฝ", + "๐Ÿ—’", + "๐Ÿ—œ", + "โ™€", + "๐ŸŽŸ", + "๐Ÿ›ฃ", + "โญ", + "โ„น", + "โ˜‚", + "โ˜บ", + "๐ŸŽ™", + "โธ", + "โžก", + "โ˜ƒ", + "๐Ÿ–ฒ", + "โ˜", + "๐Ÿ› ", + "โœณ", + "โ–ถ", + "โš ", + "๐Ÿ›ฐ", + "โ›ˆ", + "6", + "๐Ÿ…ฟ", + "๐ŸŽ–", + "โ›‘", + "๐Ÿ›ฉ", + "โ˜ช", + "๐Ÿ•ณ", + "9", + "๐Ÿท", + "โ˜€", + "โ˜ธ", + "โ™จ", + "โฌ…", + "โ‡", + "๐Ÿ—จ", + "โ™ฆ", + "#", + "โœ", + "โน", + "โ™Ÿ", + "๐Ÿ•‰", + "๐Ÿ—“", + "๐ŸŒถ", + "โบ", + "โ˜˜", + "โ€ผ", + "๐ŸŒฉ", + "๐Ÿ—‘", + "โ˜ฏ", + "๐Ÿ•ด", + "โœด", + "โ˜ข", + "๐Ÿ–ผ", + "๐ŸŒซ", + "๐Ÿ•ต", + "โšง", + "๐Ÿฝ", + "๐Ÿ—„", + "โœ”", + "๐Ÿ—ก", + "โฒ", + "๐ŸŒก", + "๐Ÿ–‹", + "๐Ÿ›ณ", + "๐Ÿ›‹", + "โ˜", + "๐Ÿ‘", + "โ“‚", + "โ†•", + "๐Ÿ›", + "โฏ", + "7", + "๐Ÿ–", + "โฑ", + "*", + "๐Ÿ—", + "โœ", + "๐Ÿ–Œ", + "โ†–", + "โ›น", + "๐Ÿ™", + "โ„", + "๐ŸŽš", + "๐Ÿš", + "โ‰", + "๐Ÿ”", + "๐Ÿฟ", + "๐Ÿ•", + "โ„ข", + "1", + "๐Ÿ›ค", + "๐Ÿ…ฑ", + "๐Ÿ–Š", + "โšฑ", + "โ›ธ", + "๐Ÿณ", + "๐Ÿ›", + "โฌ‡", + "๐Ÿ…ฐ", + "โ›ฉ", + "๐Ÿ—ณ", + "โ†™", + "๐Ÿ—‚", + "โ›ด", + "๐Ÿ‹", + "๐ŸŒฆ", + "ยฎ", + "๐Ÿ—ž", + "โ™ ", + "โคด", + "โœˆ", + "๐ŸŽž", + "โš•", + "โ›", + "๐Ÿ•ธ", + "๐Ÿ›ฅ", + "โšœ", + "โ˜ฎ", + "๐Ÿ—ฏ", + "โœก", + "โฎ", + "โšฐ", + "3", + "โ–ซ", + "๐Ÿ", + "โœ", + "โ†˜", + "โ†ช", + "โš›", + "๐Ÿ–‡", + "โœ–", + "๐Ÿ›ข", + "๐ŸŽ›", + "8", + "โ†—", + "๐Ÿ›ก", + "โ˜ฃ", + "โ›ฐ", + "โฃ", + "โœ‚", + "โ˜‘", + "โš™", + "โคต", + "โ™ป", + "๐ŸŒช", + "๐Ÿ–", + "๐Ÿ•ฏ", + "โœ‰", + "4", + "โœ’", + "๐ŸŒค", + "๐ŸŸ", + "โ™‚", + "๐Ÿ•ฐ", + "๐Ÿ›Ž", + "๐ŸŽ—", + "๐Ÿ•น", + "5", + "โš’", + "โค", + "๐Ÿ–", + "โš”", + "โš–", + "๐Ÿ–ฑ", + "๐Ÿ•Š", + "โ†”", + "2", + "๐Ÿ•ท", + "๐Ÿ…พ", + "โ˜น", + "๐Ÿ–ฅ", + "โ›ท", + "๐Ÿœ", + "โ˜Ž", + "๐ŸŒ", + "โ™พ", + "๐Ÿ›", + "โŒจ", + "๐ŸŽ", + "๐Ÿต", + "๐Ÿ–จ", + "โ™ฅ", + "โ—ป", + "๐ŸŒฅ", + "โ˜„", + "โ—ผ", + "โ›ฑ", + "โœŒ", + "โ†ฉ", + "ยฉ", + "โ", + "๐Ÿ", + "๐ŸŒง", + "โ˜ ", + "โฌ†", + "๐Ÿ˜", + "๐Ÿ—ƒ", + "โ–ช", + "โ˜ฆ", + "0", + "๐ŸŒจ", + "๐Ÿ—ฃ", + "๐Ÿ—บ", + "๐Ÿž", + "๐Ÿ•ถ", + "๐ŸŒฌ", + "โ™ฃ", + "โš—", + "โ—€", + "โ›“", } ), ) diff --git a/rich/_unicode_data/unicode4-1-0.py b/rich/_unicode_data/unicode4-1-0.py index 86438bc235..75cf1af893 100644 --- a/rich/_unicode_data/unicode4-1-0.py +++ b/rich/_unicode_data/unicode4-1-0.py @@ -186,106 +186,219 @@ ], narrow_to_wide=frozenset( { - 9728, - 9729, - 9730, - 9731, - 11013, - 11014, - 9992, - 9996, - 9762, - 127780, - 127781, - 127782, - 127783, - 127784, - 127785, - 127786, - 127787, - 9774, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 9784, - 9785, - 10035, - 10548, - 128329, - 9823, - 10083, - 9829, - 128367, - 127344, - 128371, - 128372, - 128373, - 128374, - 128375, - 128376, - 127358, - 128394, - 128395, - 128396, - 9876, - 9877, - 9878, - 8596, - 8597, - 8598, - 8599, - 9883, - 8600, - 127894, - 127897, - 127898, - 127902, - 8617, - 9642, - 9904, - 128433, - 128450, - 128451, - 127947, - 127948, - 128717, - 128718, - 127949, - 128465, - 128466, - 127956, - 127957, - 127958, - 127959, - 127960, - 127961, - 127962, - 127963, - 127964, - 127965, - 127966, - 128476, - 128736, - 128737, - 128738, - 128739, - 128740, - 128477, - 9208, - 9197, - 9198, - 9968, - 9201, - 9975, - 9976, - 9209, - 9723, + "๐Ÿ—", + "๐Ÿ“ฝ", + "๐Ÿ—’", + "๐Ÿ—œ", + "โ™€", + "๐ŸŽŸ", + "๐Ÿ›ฃ", + "โญ", + "โ„น", + "โ˜‚", + "โ˜บ", + "๐ŸŽ™", + "โธ", + "โžก", + "โ˜ƒ", + "๐Ÿ–ฒ", + "โ˜", + "๐Ÿ› ", + "โœณ", + "โ–ถ", + "โš ", + "๐Ÿ›ฐ", + "โ›ˆ", + "6", + "๐Ÿ…ฟ", + "๐ŸŽ–", + "โ›‘", + "๐Ÿ›ฉ", + "โ˜ช", + "๐Ÿ•ณ", + "9", + "๐Ÿท", + "โ˜€", + "โ˜ธ", + "โ™จ", + "โฌ…", + "โ‡", + "๐Ÿ—จ", + "โ™ฆ", + "#", + "โœ", + "โน", + "โ™Ÿ", + "๐Ÿ•‰", + "๐Ÿ—“", + "๐ŸŒถ", + "โบ", + "โ˜˜", + "โ€ผ", + "๐ŸŒฉ", + "๐Ÿ—‘", + "โ˜ฏ", + "๐Ÿ•ด", + "โœด", + "โ˜ข", + "๐Ÿ–ผ", + "๐ŸŒซ", + "๐Ÿ•ต", + "โšง", + "๐Ÿฝ", + "๐Ÿ—„", + "โœ”", + "๐Ÿ—ก", + "โฒ", + "๐ŸŒก", + "๐Ÿ–‹", + "๐Ÿ›ณ", + "๐Ÿ›‹", + "โ˜", + "๐Ÿ‘", + "โ“‚", + "โ†•", + "๐Ÿ›", + "โฏ", + "7", + "๐Ÿ–", + "โฑ", + "*", + "๐Ÿ—", + "โœ", + "๐Ÿ–Œ", + "โ†–", + "โ›น", + "๐Ÿ™", + "โ„", + "๐ŸŽš", + "๐Ÿš", + "โ‰", + "๐Ÿ”", + "๐Ÿฟ", + "๐Ÿ•", + "โ„ข", + "1", + "๐Ÿ›ค", + "๐Ÿ…ฑ", + "๐Ÿ–Š", + "โšฑ", + "โ›ธ", + "๐Ÿณ", + "๐Ÿ›", + "โฌ‡", + "๐Ÿ…ฐ", + "โ›ฉ", + "๐Ÿ—ณ", + "โ†™", + "๐Ÿ—‚", + "โ›ด", + "๐Ÿ‹", + "๐ŸŒฆ", + "ยฎ", + "๐Ÿ—ž", + "โ™ ", + "โคด", + "โœˆ", + "๐ŸŽž", + "โš•", + "โ›", + "๐Ÿ•ธ", + "๐Ÿ›ฅ", + "โšœ", + "โ˜ฎ", + "๐Ÿ—ฏ", + "โœก", + "โฎ", + "โšฐ", + "3", + "โ–ซ", + "๐Ÿ", + "โœ", + "โ†˜", + "โ†ช", + "โš›", + "๐Ÿ–‡", + "โœ–", + "๐Ÿ›ข", + "๐ŸŽ›", + "8", + "โ†—", + "๐Ÿ›ก", + "โ˜ฃ", + "โ›ฐ", + "โฃ", + "โœ‚", + "โ˜‘", + "โš™", + "โคต", + "โ™ป", + "๐ŸŒช", + "๐Ÿ–", + "๐Ÿ•ฏ", + "โœ‰", + "4", + "โœ’", + "๐ŸŒค", + "๐ŸŸ", + "โ™‚", + "๐Ÿ•ฐ", + "๐Ÿ›Ž", + "๐ŸŽ—", + "๐Ÿ•น", + "5", + "โš’", + "โค", + "๐Ÿ–", + "โš”", + "โš–", + "๐Ÿ–ฑ", + "๐Ÿ•Š", + "โ†”", + "2", + "๐Ÿ•ท", + "๐Ÿ…พ", + "โ˜น", + "๐Ÿ–ฅ", + "โ›ท", + "๐Ÿœ", + "โ˜Ž", + "๐ŸŒ", + "โ™พ", + "๐Ÿ›", + "โŒจ", + "๐ŸŽ", + "๐Ÿต", + "๐Ÿ–จ", + "โ™ฅ", + "โ—ป", + "๐ŸŒฅ", + "โ˜„", + "โ—ผ", + "โ›ฑ", + "โœŒ", + "โ†ฉ", + "ยฉ", + "โ", + "๐Ÿ", + "๐ŸŒง", + "โ˜ ", + "โฌ†", + "๐Ÿ˜", + "๐Ÿ—ƒ", + "โ–ช", + "โ˜ฆ", + "0", + "๐ŸŒจ", + "๐Ÿ—ฃ", + "๐Ÿ—บ", + "๐Ÿž", + "๐Ÿ•ถ", + "๐ŸŒฌ", + "โ™ฃ", + "โš—", + "โ—€", + "โ›“", } ), ) diff --git a/rich/_unicode_data/unicode5-0-0.py b/rich/_unicode_data/unicode5-0-0.py index e6f07b3239..4a9dd84cc1 100644 --- a/rich/_unicode_data/unicode5-0-0.py +++ b/rich/_unicode_data/unicode5-0-0.py @@ -191,106 +191,219 @@ ], narrow_to_wide=frozenset( { - 9728, - 9729, - 9730, - 9731, - 11013, - 11014, - 9992, - 9996, - 9762, - 127780, - 127781, - 127782, - 127783, - 127784, - 127785, - 127786, - 127787, - 9774, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 9784, - 9785, - 10035, - 10548, - 128329, - 9823, - 10083, - 9829, - 128367, - 127344, - 128371, - 128372, - 128373, - 128374, - 128375, - 128376, - 127358, - 128394, - 128395, - 128396, - 9876, - 9877, - 9878, - 8596, - 8597, - 8598, - 8599, - 9883, - 8600, - 127894, - 127897, - 127898, - 127902, - 8617, - 9642, - 9904, - 128433, - 128450, - 128451, - 127947, - 127948, - 128717, - 128718, - 127949, - 128465, - 128466, - 127956, - 127957, - 127958, - 127959, - 127960, - 127961, - 127962, - 127963, - 127964, - 127965, - 127966, - 128476, - 128736, - 128737, - 128738, - 128739, - 128740, - 128477, - 9208, - 9197, - 9198, - 9968, - 9201, - 9975, - 9976, - 9209, - 9723, + "๐Ÿ—", + "๐Ÿ“ฝ", + "๐Ÿ—’", + "๐Ÿ—œ", + "โ™€", + "๐ŸŽŸ", + "๐Ÿ›ฃ", + "โญ", + "โ„น", + "โ˜‚", + "โ˜บ", + "๐ŸŽ™", + "โธ", + "โžก", + "โ˜ƒ", + "๐Ÿ–ฒ", + "โ˜", + "๐Ÿ› ", + "โœณ", + "โ–ถ", + "โš ", + "๐Ÿ›ฐ", + "โ›ˆ", + "6", + "๐Ÿ…ฟ", + "๐ŸŽ–", + "โ›‘", + "๐Ÿ›ฉ", + "โ˜ช", + "๐Ÿ•ณ", + "9", + "๐Ÿท", + "โ˜€", + "โ˜ธ", + "โ™จ", + "โฌ…", + "โ‡", + "๐Ÿ—จ", + "โ™ฆ", + "#", + "โœ", + "โน", + "โ™Ÿ", + "๐Ÿ•‰", + "๐Ÿ—“", + "๐ŸŒถ", + "โบ", + "โ˜˜", + "โ€ผ", + "๐ŸŒฉ", + "๐Ÿ—‘", + "โ˜ฏ", + "๐Ÿ•ด", + "โœด", + "โ˜ข", + "๐Ÿ–ผ", + "๐ŸŒซ", + "๐Ÿ•ต", + "โšง", + "๐Ÿฝ", + "๐Ÿ—„", + "โœ”", + "๐Ÿ—ก", + "โฒ", + "๐ŸŒก", + "๐Ÿ–‹", + "๐Ÿ›ณ", + "๐Ÿ›‹", + "โ˜", + "๐Ÿ‘", + "โ“‚", + "โ†•", + "๐Ÿ›", + "โฏ", + "7", + "๐Ÿ–", + "โฑ", + "*", + "๐Ÿ—", + "โœ", + "๐Ÿ–Œ", + "โ†–", + "โ›น", + "๐Ÿ™", + "โ„", + "๐ŸŽš", + "๐Ÿš", + "โ‰", + "๐Ÿ”", + "๐Ÿฟ", + "๐Ÿ•", + "โ„ข", + "1", + "๐Ÿ›ค", + "๐Ÿ…ฑ", + "๐Ÿ–Š", + "โšฑ", + "โ›ธ", + "๐Ÿณ", + "๐Ÿ›", + "โฌ‡", + "๐Ÿ…ฐ", + "โ›ฉ", + "๐Ÿ—ณ", + "โ†™", + "๐Ÿ—‚", + "โ›ด", + "๐Ÿ‹", + "๐ŸŒฆ", + "ยฎ", + "๐Ÿ—ž", + "โ™ ", + "โคด", + "โœˆ", + "๐ŸŽž", + "โš•", + "โ›", + "๐Ÿ•ธ", + "๐Ÿ›ฅ", + "โšœ", + "โ˜ฎ", + "๐Ÿ—ฏ", + "โœก", + "โฎ", + "โšฐ", + "3", + "โ–ซ", + "๐Ÿ", + "โœ", + "โ†˜", + "โ†ช", + "โš›", + "๐Ÿ–‡", + "โœ–", + "๐Ÿ›ข", + "๐ŸŽ›", + "8", + "โ†—", + "๐Ÿ›ก", + "โ˜ฃ", + "โ›ฐ", + "โฃ", + "โœ‚", + "โ˜‘", + "โš™", + "โคต", + "โ™ป", + "๐ŸŒช", + "๐Ÿ–", + "๐Ÿ•ฏ", + "โœ‰", + "4", + "โœ’", + "๐ŸŒค", + "๐ŸŸ", + "โ™‚", + "๐Ÿ•ฐ", + "๐Ÿ›Ž", + "๐ŸŽ—", + "๐Ÿ•น", + "5", + "โš’", + "โค", + "๐Ÿ–", + "โš”", + "โš–", + "๐Ÿ–ฑ", + "๐Ÿ•Š", + "โ†”", + "2", + "๐Ÿ•ท", + "๐Ÿ…พ", + "โ˜น", + "๐Ÿ–ฅ", + "โ›ท", + "๐Ÿœ", + "โ˜Ž", + "๐ŸŒ", + "โ™พ", + "๐Ÿ›", + "โŒจ", + "๐ŸŽ", + "๐Ÿต", + "๐Ÿ–จ", + "โ™ฅ", + "โ—ป", + "๐ŸŒฅ", + "โ˜„", + "โ—ผ", + "โ›ฑ", + "โœŒ", + "โ†ฉ", + "ยฉ", + "โ", + "๐Ÿ", + "๐ŸŒง", + "โ˜ ", + "โฌ†", + "๐Ÿ˜", + "๐Ÿ—ƒ", + "โ–ช", + "โ˜ฆ", + "0", + "๐ŸŒจ", + "๐Ÿ—ฃ", + "๐Ÿ—บ", + "๐Ÿž", + "๐Ÿ•ถ", + "๐ŸŒฌ", + "โ™ฃ", + "โš—", + "โ—€", + "โ›“", } ), ) diff --git a/rich/_unicode_data/unicode5-1-0.py b/rich/_unicode_data/unicode5-1-0.py index 308d5702d2..b8bf504864 100644 --- a/rich/_unicode_data/unicode5-1-0.py +++ b/rich/_unicode_data/unicode5-1-0.py @@ -214,106 +214,219 @@ ], narrow_to_wide=frozenset( { - 9728, - 9729, - 9730, - 9731, - 11013, - 11014, - 9992, - 9996, - 9762, - 127780, - 127781, - 127782, - 127783, - 127784, - 127785, - 127786, - 127787, - 9774, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 9784, - 9785, - 10035, - 10548, - 128329, - 9823, - 10083, - 9829, - 128367, - 127344, - 128371, - 128372, - 128373, - 128374, - 128375, - 128376, - 127358, - 128394, - 128395, - 128396, - 9876, - 9877, - 9878, - 8596, - 8597, - 8598, - 8599, - 9883, - 8600, - 127894, - 127897, - 127898, - 127902, - 8617, - 9642, - 9904, - 128433, - 128450, - 128451, - 127947, - 127948, - 128717, - 128718, - 127949, - 128465, - 128466, - 127956, - 127957, - 127958, - 127959, - 127960, - 127961, - 127962, - 127963, - 127964, - 127965, - 127966, - 128476, - 128736, - 128737, - 128738, - 128739, - 128740, - 128477, - 9208, - 9197, - 9198, - 9968, - 9201, - 9975, - 9976, - 9209, - 9723, + "๐Ÿ—", + "๐Ÿ“ฝ", + "๐Ÿ—’", + "๐Ÿ—œ", + "โ™€", + "๐ŸŽŸ", + "๐Ÿ›ฃ", + "โญ", + "โ„น", + "โ˜‚", + "โ˜บ", + "๐ŸŽ™", + "โธ", + "โžก", + "โ˜ƒ", + "๐Ÿ–ฒ", + "โ˜", + "๐Ÿ› ", + "โœณ", + "โ–ถ", + "โš ", + "๐Ÿ›ฐ", + "โ›ˆ", + "6", + "๐Ÿ…ฟ", + "๐ŸŽ–", + "โ›‘", + "๐Ÿ›ฉ", + "โ˜ช", + "๐Ÿ•ณ", + "9", + "๐Ÿท", + "โ˜€", + "โ˜ธ", + "โ™จ", + "โฌ…", + "โ‡", + "๐Ÿ—จ", + "โ™ฆ", + "#", + "โœ", + "โน", + "โ™Ÿ", + "๐Ÿ•‰", + "๐Ÿ—“", + "๐ŸŒถ", + "โบ", + "โ˜˜", + "โ€ผ", + "๐ŸŒฉ", + "๐Ÿ—‘", + "โ˜ฏ", + "๐Ÿ•ด", + "โœด", + "โ˜ข", + "๐Ÿ–ผ", + "๐ŸŒซ", + "๐Ÿ•ต", + "โšง", + "๐Ÿฝ", + "๐Ÿ—„", + "โœ”", + "๐Ÿ—ก", + "โฒ", + "๐ŸŒก", + "๐Ÿ–‹", + "๐Ÿ›ณ", + "๐Ÿ›‹", + "โ˜", + "๐Ÿ‘", + "โ“‚", + "โ†•", + "๐Ÿ›", + "โฏ", + "7", + "๐Ÿ–", + "โฑ", + "*", + "๐Ÿ—", + "โœ", + "๐Ÿ–Œ", + "โ†–", + "โ›น", + "๐Ÿ™", + "โ„", + "๐ŸŽš", + "๐Ÿš", + "โ‰", + "๐Ÿ”", + "๐Ÿฟ", + "๐Ÿ•", + "โ„ข", + "1", + "๐Ÿ›ค", + "๐Ÿ…ฑ", + "๐Ÿ–Š", + "โšฑ", + "โ›ธ", + "๐Ÿณ", + "๐Ÿ›", + "โฌ‡", + "๐Ÿ…ฐ", + "โ›ฉ", + "๐Ÿ—ณ", + "โ†™", + "๐Ÿ—‚", + "โ›ด", + "๐Ÿ‹", + "๐ŸŒฆ", + "ยฎ", + "๐Ÿ—ž", + "โ™ ", + "โคด", + "โœˆ", + "๐ŸŽž", + "โš•", + "โ›", + "๐Ÿ•ธ", + "๐Ÿ›ฅ", + "โšœ", + "โ˜ฎ", + "๐Ÿ—ฏ", + "โœก", + "โฎ", + "โšฐ", + "3", + "โ–ซ", + "๐Ÿ", + "โœ", + "โ†˜", + "โ†ช", + "โš›", + "๐Ÿ–‡", + "โœ–", + "๐Ÿ›ข", + "๐ŸŽ›", + "8", + "โ†—", + "๐Ÿ›ก", + "โ˜ฃ", + "โ›ฐ", + "โฃ", + "โœ‚", + "โ˜‘", + "โš™", + "โคต", + "โ™ป", + "๐ŸŒช", + "๐Ÿ–", + "๐Ÿ•ฏ", + "โœ‰", + "4", + "โœ’", + "๐ŸŒค", + "๐ŸŸ", + "โ™‚", + "๐Ÿ•ฐ", + "๐Ÿ›Ž", + "๐ŸŽ—", + "๐Ÿ•น", + "5", + "โš’", + "โค", + "๐Ÿ–", + "โš”", + "โš–", + "๐Ÿ–ฑ", + "๐Ÿ•Š", + "โ†”", + "2", + "๐Ÿ•ท", + "๐Ÿ…พ", + "โ˜น", + "๐Ÿ–ฅ", + "โ›ท", + "๐Ÿœ", + "โ˜Ž", + "๐ŸŒ", + "โ™พ", + "๐Ÿ›", + "โŒจ", + "๐ŸŽ", + "๐Ÿต", + "๐Ÿ–จ", + "โ™ฅ", + "โ—ป", + "๐ŸŒฅ", + "โ˜„", + "โ—ผ", + "โ›ฑ", + "โœŒ", + "โ†ฉ", + "ยฉ", + "โ", + "๐Ÿ", + "๐ŸŒง", + "โ˜ ", + "โฌ†", + "๐Ÿ˜", + "๐Ÿ—ƒ", + "โ–ช", + "โ˜ฆ", + "0", + "๐ŸŒจ", + "๐Ÿ—ฃ", + "๐Ÿ—บ", + "๐Ÿž", + "๐Ÿ•ถ", + "๐ŸŒฌ", + "โ™ฃ", + "โš—", + "โ—€", + "โ›“", } ), ) diff --git a/rich/_unicode_data/unicode5-2-0.py b/rich/_unicode_data/unicode5-2-0.py index 6e3eaadf6e..149a7e659b 100644 --- a/rich/_unicode_data/unicode5-2-0.py +++ b/rich/_unicode_data/unicode5-2-0.py @@ -242,106 +242,219 @@ ], narrow_to_wide=frozenset( { - 9728, - 9729, - 9730, - 9731, - 11013, - 11014, - 9992, - 9996, - 9762, - 127780, - 127781, - 127782, - 127783, - 127784, - 127785, - 127786, - 127787, - 9774, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 9784, - 9785, - 10035, - 10548, - 128329, - 9823, - 10083, - 9829, - 128367, - 127344, - 128371, - 128372, - 128373, - 128374, - 128375, - 128376, - 127358, - 128394, - 128395, - 128396, - 9876, - 9877, - 9878, - 8596, - 8597, - 8598, - 8599, - 9883, - 8600, - 127894, - 127897, - 127898, - 127902, - 8617, - 9642, - 9904, - 128433, - 128450, - 128451, - 127947, - 127948, - 128717, - 128718, - 127949, - 128465, - 128466, - 127956, - 127957, - 127958, - 127959, - 127960, - 127961, - 127962, - 127963, - 127964, - 127965, - 127966, - 128476, - 128736, - 128737, - 128738, - 128739, - 128740, - 128477, - 9208, - 9197, - 9198, - 9968, - 9201, - 9975, - 9976, - 9209, - 9723, + "๐Ÿ—", + "๐Ÿ“ฝ", + "๐Ÿ—’", + "๐Ÿ—œ", + "โ™€", + "๐ŸŽŸ", + "๐Ÿ›ฃ", + "โญ", + "โ„น", + "โ˜‚", + "โ˜บ", + "๐ŸŽ™", + "โธ", + "โžก", + "โ˜ƒ", + "๐Ÿ–ฒ", + "โ˜", + "๐Ÿ› ", + "โœณ", + "โ–ถ", + "โš ", + "๐Ÿ›ฐ", + "โ›ˆ", + "6", + "๐Ÿ…ฟ", + "๐ŸŽ–", + "โ›‘", + "๐Ÿ›ฉ", + "โ˜ช", + "๐Ÿ•ณ", + "9", + "๐Ÿท", + "โ˜€", + "โ˜ธ", + "โ™จ", + "โฌ…", + "โ‡", + "๐Ÿ—จ", + "โ™ฆ", + "#", + "โœ", + "โน", + "โ™Ÿ", + "๐Ÿ•‰", + "๐Ÿ—“", + "๐ŸŒถ", + "โบ", + "โ˜˜", + "โ€ผ", + "๐ŸŒฉ", + "๐Ÿ—‘", + "โ˜ฏ", + "๐Ÿ•ด", + "โœด", + "โ˜ข", + "๐Ÿ–ผ", + "๐ŸŒซ", + "๐Ÿ•ต", + "โšง", + "๐Ÿฝ", + "๐Ÿ—„", + "โœ”", + "๐Ÿ—ก", + "โฒ", + "๐ŸŒก", + "๐Ÿ–‹", + "๐Ÿ›ณ", + "๐Ÿ›‹", + "โ˜", + "๐Ÿ‘", + "โ“‚", + "โ†•", + "๐Ÿ›", + "โฏ", + "7", + "๐Ÿ–", + "โฑ", + "*", + "๐Ÿ—", + "โœ", + "๐Ÿ–Œ", + "โ†–", + "โ›น", + "๐Ÿ™", + "โ„", + "๐ŸŽš", + "๐Ÿš", + "โ‰", + "๐Ÿ”", + "๐Ÿฟ", + "๐Ÿ•", + "โ„ข", + "1", + "๐Ÿ›ค", + "๐Ÿ…ฑ", + "๐Ÿ–Š", + "โšฑ", + "โ›ธ", + "๐Ÿณ", + "๐Ÿ›", + "โฌ‡", + "๐Ÿ…ฐ", + "โ›ฉ", + "๐Ÿ—ณ", + "โ†™", + "๐Ÿ—‚", + "โ›ด", + "๐Ÿ‹", + "๐ŸŒฆ", + "ยฎ", + "๐Ÿ—ž", + "โ™ ", + "โคด", + "โœˆ", + "๐ŸŽž", + "โš•", + "โ›", + "๐Ÿ•ธ", + "๐Ÿ›ฅ", + "โšœ", + "โ˜ฎ", + "๐Ÿ—ฏ", + "โœก", + "โฎ", + "โšฐ", + "3", + "โ–ซ", + "๐Ÿ", + "โœ", + "โ†˜", + "โ†ช", + "โš›", + "๐Ÿ–‡", + "โœ–", + "๐Ÿ›ข", + "๐ŸŽ›", + "8", + "โ†—", + "๐Ÿ›ก", + "โ˜ฃ", + "โ›ฐ", + "โฃ", + "โœ‚", + "โ˜‘", + "โš™", + "โคต", + "โ™ป", + "๐ŸŒช", + "๐Ÿ–", + "๐Ÿ•ฏ", + "โœ‰", + "4", + "โœ’", + "๐ŸŒค", + "๐ŸŸ", + "โ™‚", + "๐Ÿ•ฐ", + "๐Ÿ›Ž", + "๐ŸŽ—", + "๐Ÿ•น", + "5", + "โš’", + "โค", + "๐Ÿ–", + "โš”", + "โš–", + "๐Ÿ–ฑ", + "๐Ÿ•Š", + "โ†”", + "2", + "๐Ÿ•ท", + "๐Ÿ…พ", + "โ˜น", + "๐Ÿ–ฅ", + "โ›ท", + "๐Ÿœ", + "โ˜Ž", + "๐ŸŒ", + "โ™พ", + "๐Ÿ›", + "โŒจ", + "๐ŸŽ", + "๐Ÿต", + "๐Ÿ–จ", + "โ™ฅ", + "โ—ป", + "๐ŸŒฅ", + "โ˜„", + "โ—ผ", + "โ›ฑ", + "โœŒ", + "โ†ฉ", + "ยฉ", + "โ", + "๐Ÿ", + "๐ŸŒง", + "โ˜ ", + "โฌ†", + "๐Ÿ˜", + "๐Ÿ—ƒ", + "โ–ช", + "โ˜ฆ", + "0", + "๐ŸŒจ", + "๐Ÿ—ฃ", + "๐Ÿ—บ", + "๐Ÿž", + "๐Ÿ•ถ", + "๐ŸŒฌ", + "โ™ฃ", + "โš—", + "โ—€", + "โ›“", } ), ) diff --git a/rich/_unicode_data/unicode6-0-0.py b/rich/_unicode_data/unicode6-0-0.py index 271c2d9756..665e63706d 100644 --- a/rich/_unicode_data/unicode6-0-0.py +++ b/rich/_unicode_data/unicode6-0-0.py @@ -250,106 +250,219 @@ ], narrow_to_wide=frozenset( { - 9728, - 9729, - 9730, - 9731, - 11013, - 11014, - 9992, - 9996, - 9762, - 127780, - 127781, - 127782, - 127783, - 127784, - 127785, - 127786, - 127787, - 9774, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 9784, - 9785, - 10035, - 10548, - 128329, - 9823, - 10083, - 9829, - 128367, - 127344, - 128371, - 128372, - 128373, - 128374, - 128375, - 128376, - 127358, - 128394, - 128395, - 128396, - 9876, - 9877, - 9878, - 8596, - 8597, - 8598, - 8599, - 9883, - 8600, - 127894, - 127897, - 127898, - 127902, - 8617, - 9642, - 9904, - 128433, - 128450, - 128451, - 127947, - 127948, - 128717, - 128718, - 127949, - 128465, - 128466, - 127956, - 127957, - 127958, - 127959, - 127960, - 127961, - 127962, - 127963, - 127964, - 127965, - 127966, - 128476, - 128736, - 128737, - 128738, - 128739, - 128740, - 128477, - 9208, - 9197, - 9198, - 9968, - 9201, - 9975, - 9976, - 9209, - 9723, + "๐Ÿ—", + "๐Ÿ“ฝ", + "๐Ÿ—’", + "๐Ÿ—œ", + "โ™€", + "๐ŸŽŸ", + "๐Ÿ›ฃ", + "โญ", + "โ„น", + "โ˜‚", + "โ˜บ", + "๐ŸŽ™", + "โธ", + "โžก", + "โ˜ƒ", + "๐Ÿ–ฒ", + "โ˜", + "๐Ÿ› ", + "โœณ", + "โ–ถ", + "โš ", + "๐Ÿ›ฐ", + "โ›ˆ", + "6", + "๐Ÿ…ฟ", + "๐ŸŽ–", + "โ›‘", + "๐Ÿ›ฉ", + "โ˜ช", + "๐Ÿ•ณ", + "9", + "๐Ÿท", + "โ˜€", + "โ˜ธ", + "โ™จ", + "โฌ…", + "โ‡", + "๐Ÿ—จ", + "โ™ฆ", + "#", + "โœ", + "โน", + "โ™Ÿ", + "๐Ÿ•‰", + "๐Ÿ—“", + "๐ŸŒถ", + "โบ", + "โ˜˜", + "โ€ผ", + "๐ŸŒฉ", + "๐Ÿ—‘", + "โ˜ฏ", + "๐Ÿ•ด", + "โœด", + "โ˜ข", + "๐Ÿ–ผ", + "๐ŸŒซ", + "๐Ÿ•ต", + "โšง", + "๐Ÿฝ", + "๐Ÿ—„", + "โœ”", + "๐Ÿ—ก", + "โฒ", + "๐ŸŒก", + "๐Ÿ–‹", + "๐Ÿ›ณ", + "๐Ÿ›‹", + "โ˜", + "๐Ÿ‘", + "โ“‚", + "โ†•", + "๐Ÿ›", + "โฏ", + "7", + "๐Ÿ–", + "โฑ", + "*", + "๐Ÿ—", + "โœ", + "๐Ÿ–Œ", + "โ†–", + "โ›น", + "๐Ÿ™", + "โ„", + "๐ŸŽš", + "๐Ÿš", + "โ‰", + "๐Ÿ”", + "๐Ÿฟ", + "๐Ÿ•", + "โ„ข", + "1", + "๐Ÿ›ค", + "๐Ÿ…ฑ", + "๐Ÿ–Š", + "โšฑ", + "โ›ธ", + "๐Ÿณ", + "๐Ÿ›", + "โฌ‡", + "๐Ÿ…ฐ", + "โ›ฉ", + "๐Ÿ—ณ", + "โ†™", + "๐Ÿ—‚", + "โ›ด", + "๐Ÿ‹", + "๐ŸŒฆ", + "ยฎ", + "๐Ÿ—ž", + "โ™ ", + "โคด", + "โœˆ", + "๐ŸŽž", + "โš•", + "โ›", + "๐Ÿ•ธ", + "๐Ÿ›ฅ", + "โšœ", + "โ˜ฎ", + "๐Ÿ—ฏ", + "โœก", + "โฎ", + "โšฐ", + "3", + "โ–ซ", + "๐Ÿ", + "โœ", + "โ†˜", + "โ†ช", + "โš›", + "๐Ÿ–‡", + "โœ–", + "๐Ÿ›ข", + "๐ŸŽ›", + "8", + "โ†—", + "๐Ÿ›ก", + "โ˜ฃ", + "โ›ฐ", + "โฃ", + "โœ‚", + "โ˜‘", + "โš™", + "โคต", + "โ™ป", + "๐ŸŒช", + "๐Ÿ–", + "๐Ÿ•ฏ", + "โœ‰", + "4", + "โœ’", + "๐ŸŒค", + "๐ŸŸ", + "โ™‚", + "๐Ÿ•ฐ", + "๐Ÿ›Ž", + "๐ŸŽ—", + "๐Ÿ•น", + "5", + "โš’", + "โค", + "๐Ÿ–", + "โš”", + "โš–", + "๐Ÿ–ฑ", + "๐Ÿ•Š", + "โ†”", + "2", + "๐Ÿ•ท", + "๐Ÿ…พ", + "โ˜น", + "๐Ÿ–ฅ", + "โ›ท", + "๐Ÿœ", + "โ˜Ž", + "๐ŸŒ", + "โ™พ", + "๐Ÿ›", + "โŒจ", + "๐ŸŽ", + "๐Ÿต", + "๐Ÿ–จ", + "โ™ฅ", + "โ—ป", + "๐ŸŒฅ", + "โ˜„", + "โ—ผ", + "โ›ฑ", + "โœŒ", + "โ†ฉ", + "ยฉ", + "โ", + "๐Ÿ", + "๐ŸŒง", + "โ˜ ", + "โฌ†", + "๐Ÿ˜", + "๐Ÿ—ƒ", + "โ–ช", + "โ˜ฆ", + "0", + "๐ŸŒจ", + "๐Ÿ—ฃ", + "๐Ÿ—บ", + "๐Ÿž", + "๐Ÿ•ถ", + "๐ŸŒฌ", + "โ™ฃ", + "โš—", + "โ—€", + "โ›“", } ), ) diff --git a/rich/_unicode_data/unicode6-1-0.py b/rich/_unicode_data/unicode6-1-0.py index fb01a1c696..d6eb29fa28 100644 --- a/rich/_unicode_data/unicode6-1-0.py +++ b/rich/_unicode_data/unicode6-1-0.py @@ -261,106 +261,219 @@ ], narrow_to_wide=frozenset( { - 9728, - 9729, - 9730, - 9731, - 11013, - 11014, - 9992, - 9996, - 9762, - 127780, - 127781, - 127782, - 127783, - 127784, - 127785, - 127786, - 127787, - 9774, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 9784, - 9785, - 10035, - 10548, - 128329, - 9823, - 10083, - 9829, - 128367, - 127344, - 128371, - 128372, - 128373, - 128374, - 128375, - 128376, - 127358, - 128394, - 128395, - 128396, - 9876, - 9877, - 9878, - 8596, - 8597, - 8598, - 8599, - 9883, - 8600, - 127894, - 127897, - 127898, - 127902, - 8617, - 9642, - 9904, - 128433, - 128450, - 128451, - 127947, - 127948, - 128717, - 128718, - 127949, - 128465, - 128466, - 127956, - 127957, - 127958, - 127959, - 127960, - 127961, - 127962, - 127963, - 127964, - 127965, - 127966, - 128476, - 128736, - 128737, - 128738, - 128739, - 128740, - 128477, - 9208, - 9197, - 9198, - 9968, - 9201, - 9975, - 9976, - 9209, - 9723, + "๐Ÿ—", + "๐Ÿ“ฝ", + "๐Ÿ—’", + "๐Ÿ—œ", + "โ™€", + "๐ŸŽŸ", + "๐Ÿ›ฃ", + "โญ", + "โ„น", + "โ˜‚", + "โ˜บ", + "๐ŸŽ™", + "โธ", + "โžก", + "โ˜ƒ", + "๐Ÿ–ฒ", + "โ˜", + "๐Ÿ› ", + "โœณ", + "โ–ถ", + "โš ", + "๐Ÿ›ฐ", + "โ›ˆ", + "6", + "๐Ÿ…ฟ", + "๐ŸŽ–", + "โ›‘", + "๐Ÿ›ฉ", + "โ˜ช", + "๐Ÿ•ณ", + "9", + "๐Ÿท", + "โ˜€", + "โ˜ธ", + "โ™จ", + "โฌ…", + "โ‡", + "๐Ÿ—จ", + "โ™ฆ", + "#", + "โœ", + "โน", + "โ™Ÿ", + "๐Ÿ•‰", + "๐Ÿ—“", + "๐ŸŒถ", + "โบ", + "โ˜˜", + "โ€ผ", + "๐ŸŒฉ", + "๐Ÿ—‘", + "โ˜ฏ", + "๐Ÿ•ด", + "โœด", + "โ˜ข", + "๐Ÿ–ผ", + "๐ŸŒซ", + "๐Ÿ•ต", + "โšง", + "๐Ÿฝ", + "๐Ÿ—„", + "โœ”", + "๐Ÿ—ก", + "โฒ", + "๐ŸŒก", + "๐Ÿ–‹", + "๐Ÿ›ณ", + "๐Ÿ›‹", + "โ˜", + "๐Ÿ‘", + "โ“‚", + "โ†•", + "๐Ÿ›", + "โฏ", + "7", + "๐Ÿ–", + "โฑ", + "*", + "๐Ÿ—", + "โœ", + "๐Ÿ–Œ", + "โ†–", + "โ›น", + "๐Ÿ™", + "โ„", + "๐ŸŽš", + "๐Ÿš", + "โ‰", + "๐Ÿ”", + "๐Ÿฟ", + "๐Ÿ•", + "โ„ข", + "1", + "๐Ÿ›ค", + "๐Ÿ…ฑ", + "๐Ÿ–Š", + "โšฑ", + "โ›ธ", + "๐Ÿณ", + "๐Ÿ›", + "โฌ‡", + "๐Ÿ…ฐ", + "โ›ฉ", + "๐Ÿ—ณ", + "โ†™", + "๐Ÿ—‚", + "โ›ด", + "๐Ÿ‹", + "๐ŸŒฆ", + "ยฎ", + "๐Ÿ—ž", + "โ™ ", + "โคด", + "โœˆ", + "๐ŸŽž", + "โš•", + "โ›", + "๐Ÿ•ธ", + "๐Ÿ›ฅ", + "โšœ", + "โ˜ฎ", + "๐Ÿ—ฏ", + "โœก", + "โฎ", + "โšฐ", + "3", + "โ–ซ", + "๐Ÿ", + "โœ", + "โ†˜", + "โ†ช", + "โš›", + "๐Ÿ–‡", + "โœ–", + "๐Ÿ›ข", + "๐ŸŽ›", + "8", + "โ†—", + "๐Ÿ›ก", + "โ˜ฃ", + "โ›ฐ", + "โฃ", + "โœ‚", + "โ˜‘", + "โš™", + "โคต", + "โ™ป", + "๐ŸŒช", + "๐Ÿ–", + "๐Ÿ•ฏ", + "โœ‰", + "4", + "โœ’", + "๐ŸŒค", + "๐ŸŸ", + "โ™‚", + "๐Ÿ•ฐ", + "๐Ÿ›Ž", + "๐ŸŽ—", + "๐Ÿ•น", + "5", + "โš’", + "โค", + "๐Ÿ–", + "โš”", + "โš–", + "๐Ÿ–ฑ", + "๐Ÿ•Š", + "โ†”", + "2", + "๐Ÿ•ท", + "๐Ÿ…พ", + "โ˜น", + "๐Ÿ–ฅ", + "โ›ท", + "๐Ÿœ", + "โ˜Ž", + "๐ŸŒ", + "โ™พ", + "๐Ÿ›", + "โŒจ", + "๐ŸŽ", + "๐Ÿต", + "๐Ÿ–จ", + "โ™ฅ", + "โ—ป", + "๐ŸŒฅ", + "โ˜„", + "โ—ผ", + "โ›ฑ", + "โœŒ", + "โ†ฉ", + "ยฉ", + "โ", + "๐Ÿ", + "๐ŸŒง", + "โ˜ ", + "โฌ†", + "๐Ÿ˜", + "๐Ÿ—ƒ", + "โ–ช", + "โ˜ฆ", + "0", + "๐ŸŒจ", + "๐Ÿ—ฃ", + "๐Ÿ—บ", + "๐Ÿž", + "๐Ÿ•ถ", + "๐ŸŒฌ", + "โ™ฃ", + "โš—", + "โ—€", + "โ›“", } ), ) diff --git a/rich/_unicode_data/unicode6-2-0.py b/rich/_unicode_data/unicode6-2-0.py index 6e2178c276..6027e35969 100644 --- a/rich/_unicode_data/unicode6-2-0.py +++ b/rich/_unicode_data/unicode6-2-0.py @@ -261,106 +261,219 @@ ], narrow_to_wide=frozenset( { - 9728, - 9729, - 9730, - 9731, - 11013, - 11014, - 9992, - 9996, - 9762, - 127780, - 127781, - 127782, - 127783, - 127784, - 127785, - 127786, - 127787, - 9774, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 9784, - 9785, - 10035, - 10548, - 128329, - 9823, - 10083, - 9829, - 128367, - 127344, - 128371, - 128372, - 128373, - 128374, - 128375, - 128376, - 127358, - 128394, - 128395, - 128396, - 9876, - 9877, - 9878, - 8596, - 8597, - 8598, - 8599, - 9883, - 8600, - 127894, - 127897, - 127898, - 127902, - 8617, - 9642, - 9904, - 128433, - 128450, - 128451, - 127947, - 127948, - 128717, - 128718, - 127949, - 128465, - 128466, - 127956, - 127957, - 127958, - 127959, - 127960, - 127961, - 127962, - 127963, - 127964, - 127965, - 127966, - 128476, - 128736, - 128737, - 128738, - 128739, - 128740, - 128477, - 9208, - 9197, - 9198, - 9968, - 9201, - 9975, - 9976, - 9209, - 9723, + "๐Ÿ—", + "๐Ÿ“ฝ", + "๐Ÿ—’", + "๐Ÿ—œ", + "โ™€", + "๐ŸŽŸ", + "๐Ÿ›ฃ", + "โญ", + "โ„น", + "โ˜‚", + "โ˜บ", + "๐ŸŽ™", + "โธ", + "โžก", + "โ˜ƒ", + "๐Ÿ–ฒ", + "โ˜", + "๐Ÿ› ", + "โœณ", + "โ–ถ", + "โš ", + "๐Ÿ›ฐ", + "โ›ˆ", + "6", + "๐Ÿ…ฟ", + "๐ŸŽ–", + "โ›‘", + "๐Ÿ›ฉ", + "โ˜ช", + "๐Ÿ•ณ", + "9", + "๐Ÿท", + "โ˜€", + "โ˜ธ", + "โ™จ", + "โฌ…", + "โ‡", + "๐Ÿ—จ", + "โ™ฆ", + "#", + "โœ", + "โน", + "โ™Ÿ", + "๐Ÿ•‰", + "๐Ÿ—“", + "๐ŸŒถ", + "โบ", + "โ˜˜", + "โ€ผ", + "๐ŸŒฉ", + "๐Ÿ—‘", + "โ˜ฏ", + "๐Ÿ•ด", + "โœด", + "โ˜ข", + "๐Ÿ–ผ", + "๐ŸŒซ", + "๐Ÿ•ต", + "โšง", + "๐Ÿฝ", + "๐Ÿ—„", + "โœ”", + "๐Ÿ—ก", + "โฒ", + "๐ŸŒก", + "๐Ÿ–‹", + "๐Ÿ›ณ", + "๐Ÿ›‹", + "โ˜", + "๐Ÿ‘", + "โ“‚", + "โ†•", + "๐Ÿ›", + "โฏ", + "7", + "๐Ÿ–", + "โฑ", + "*", + "๐Ÿ—", + "โœ", + "๐Ÿ–Œ", + "โ†–", + "โ›น", + "๐Ÿ™", + "โ„", + "๐ŸŽš", + "๐Ÿš", + "โ‰", + "๐Ÿ”", + "๐Ÿฟ", + "๐Ÿ•", + "โ„ข", + "1", + "๐Ÿ›ค", + "๐Ÿ…ฑ", + "๐Ÿ–Š", + "โšฑ", + "โ›ธ", + "๐Ÿณ", + "๐Ÿ›", + "โฌ‡", + "๐Ÿ…ฐ", + "โ›ฉ", + "๐Ÿ—ณ", + "โ†™", + "๐Ÿ—‚", + "โ›ด", + "๐Ÿ‹", + "๐ŸŒฆ", + "ยฎ", + "๐Ÿ—ž", + "โ™ ", + "โคด", + "โœˆ", + "๐ŸŽž", + "โš•", + "โ›", + "๐Ÿ•ธ", + "๐Ÿ›ฅ", + "โšœ", + "โ˜ฎ", + "๐Ÿ—ฏ", + "โœก", + "โฎ", + "โšฐ", + "3", + "โ–ซ", + "๐Ÿ", + "โœ", + "โ†˜", + "โ†ช", + "โš›", + "๐Ÿ–‡", + "โœ–", + "๐Ÿ›ข", + "๐ŸŽ›", + "8", + "โ†—", + "๐Ÿ›ก", + "โ˜ฃ", + "โ›ฐ", + "โฃ", + "โœ‚", + "โ˜‘", + "โš™", + "โคต", + "โ™ป", + "๐ŸŒช", + "๐Ÿ–", + "๐Ÿ•ฏ", + "โœ‰", + "4", + "โœ’", + "๐ŸŒค", + "๐ŸŸ", + "โ™‚", + "๐Ÿ•ฐ", + "๐Ÿ›Ž", + "๐ŸŽ—", + "๐Ÿ•น", + "5", + "โš’", + "โค", + "๐Ÿ–", + "โš”", + "โš–", + "๐Ÿ–ฑ", + "๐Ÿ•Š", + "โ†”", + "2", + "๐Ÿ•ท", + "๐Ÿ…พ", + "โ˜น", + "๐Ÿ–ฅ", + "โ›ท", + "๐Ÿœ", + "โ˜Ž", + "๐ŸŒ", + "โ™พ", + "๐Ÿ›", + "โŒจ", + "๐ŸŽ", + "๐Ÿต", + "๐Ÿ–จ", + "โ™ฅ", + "โ—ป", + "๐ŸŒฅ", + "โ˜„", + "โ—ผ", + "โ›ฑ", + "โœŒ", + "โ†ฉ", + "ยฉ", + "โ", + "๐Ÿ", + "๐ŸŒง", + "โ˜ ", + "โฌ†", + "๐Ÿ˜", + "๐Ÿ—ƒ", + "โ–ช", + "โ˜ฆ", + "0", + "๐ŸŒจ", + "๐Ÿ—ฃ", + "๐Ÿ—บ", + "๐Ÿž", + "๐Ÿ•ถ", + "๐ŸŒฌ", + "โ™ฃ", + "โš—", + "โ—€", + "โ›“", } ), ) diff --git a/rich/_unicode_data/unicode6-3-0.py b/rich/_unicode_data/unicode6-3-0.py index 36af2259e3..16d7388e27 100644 --- a/rich/_unicode_data/unicode6-3-0.py +++ b/rich/_unicode_data/unicode6-3-0.py @@ -262,106 +262,219 @@ ], narrow_to_wide=frozenset( { - 9728, - 9729, - 9730, - 9731, - 11013, - 11014, - 9992, - 9996, - 9762, - 127780, - 127781, - 127782, - 127783, - 127784, - 127785, - 127786, - 127787, - 9774, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 9784, - 9785, - 10035, - 10548, - 128329, - 9823, - 10083, - 9829, - 128367, - 127344, - 128371, - 128372, - 128373, - 128374, - 128375, - 128376, - 127358, - 128394, - 128395, - 128396, - 9876, - 9877, - 9878, - 8596, - 8597, - 8598, - 8599, - 9883, - 8600, - 127894, - 127897, - 127898, - 127902, - 8617, - 9642, - 9904, - 128433, - 128450, - 128451, - 127947, - 127948, - 128717, - 128718, - 127949, - 128465, - 128466, - 127956, - 127957, - 127958, - 127959, - 127960, - 127961, - 127962, - 127963, - 127964, - 127965, - 127966, - 128476, - 128736, - 128737, - 128738, - 128739, - 128740, - 128477, - 9208, - 9197, - 9198, - 9968, - 9201, - 9975, - 9976, - 9209, - 9723, + "๐Ÿ—", + "๐Ÿ“ฝ", + "๐Ÿ—’", + "๐Ÿ—œ", + "โ™€", + "๐ŸŽŸ", + "๐Ÿ›ฃ", + "โญ", + "โ„น", + "โ˜‚", + "โ˜บ", + "๐ŸŽ™", + "โธ", + "โžก", + "โ˜ƒ", + "๐Ÿ–ฒ", + "โ˜", + "๐Ÿ› ", + "โœณ", + "โ–ถ", + "โš ", + "๐Ÿ›ฐ", + "โ›ˆ", + "6", + "๐Ÿ…ฟ", + "๐ŸŽ–", + "โ›‘", + "๐Ÿ›ฉ", + "โ˜ช", + "๐Ÿ•ณ", + "9", + "๐Ÿท", + "โ˜€", + "โ˜ธ", + "โ™จ", + "โฌ…", + "โ‡", + "๐Ÿ—จ", + "โ™ฆ", + "#", + "โœ", + "โน", + "โ™Ÿ", + "๐Ÿ•‰", + "๐Ÿ—“", + "๐ŸŒถ", + "โบ", + "โ˜˜", + "โ€ผ", + "๐ŸŒฉ", + "๐Ÿ—‘", + "โ˜ฏ", + "๐Ÿ•ด", + "โœด", + "โ˜ข", + "๐Ÿ–ผ", + "๐ŸŒซ", + "๐Ÿ•ต", + "โšง", + "๐Ÿฝ", + "๐Ÿ—„", + "โœ”", + "๐Ÿ—ก", + "โฒ", + "๐ŸŒก", + "๐Ÿ–‹", + "๐Ÿ›ณ", + "๐Ÿ›‹", + "โ˜", + "๐Ÿ‘", + "โ“‚", + "โ†•", + "๐Ÿ›", + "โฏ", + "7", + "๐Ÿ–", + "โฑ", + "*", + "๐Ÿ—", + "โœ", + "๐Ÿ–Œ", + "โ†–", + "โ›น", + "๐Ÿ™", + "โ„", + "๐ŸŽš", + "๐Ÿš", + "โ‰", + "๐Ÿ”", + "๐Ÿฟ", + "๐Ÿ•", + "โ„ข", + "1", + "๐Ÿ›ค", + "๐Ÿ…ฑ", + "๐Ÿ–Š", + "โšฑ", + "โ›ธ", + "๐Ÿณ", + "๐Ÿ›", + "โฌ‡", + "๐Ÿ…ฐ", + "โ›ฉ", + "๐Ÿ—ณ", + "โ†™", + "๐Ÿ—‚", + "โ›ด", + "๐Ÿ‹", + "๐ŸŒฆ", + "ยฎ", + "๐Ÿ—ž", + "โ™ ", + "โคด", + "โœˆ", + "๐ŸŽž", + "โš•", + "โ›", + "๐Ÿ•ธ", + "๐Ÿ›ฅ", + "โšœ", + "โ˜ฎ", + "๐Ÿ—ฏ", + "โœก", + "โฎ", + "โšฐ", + "3", + "โ–ซ", + "๐Ÿ", + "โœ", + "โ†˜", + "โ†ช", + "โš›", + "๐Ÿ–‡", + "โœ–", + "๐Ÿ›ข", + "๐ŸŽ›", + "8", + "โ†—", + "๐Ÿ›ก", + "โ˜ฃ", + "โ›ฐ", + "โฃ", + "โœ‚", + "โ˜‘", + "โš™", + "โคต", + "โ™ป", + "๐ŸŒช", + "๐Ÿ–", + "๐Ÿ•ฏ", + "โœ‰", + "4", + "โœ’", + "๐ŸŒค", + "๐ŸŸ", + "โ™‚", + "๐Ÿ•ฐ", + "๐Ÿ›Ž", + "๐ŸŽ—", + "๐Ÿ•น", + "5", + "โš’", + "โค", + "๐Ÿ–", + "โš”", + "โš–", + "๐Ÿ–ฑ", + "๐Ÿ•Š", + "โ†”", + "2", + "๐Ÿ•ท", + "๐Ÿ…พ", + "โ˜น", + "๐Ÿ–ฅ", + "โ›ท", + "๐Ÿœ", + "โ˜Ž", + "๐ŸŒ", + "โ™พ", + "๐Ÿ›", + "โŒจ", + "๐ŸŽ", + "๐Ÿต", + "๐Ÿ–จ", + "โ™ฅ", + "โ—ป", + "๐ŸŒฅ", + "โ˜„", + "โ—ผ", + "โ›ฑ", + "โœŒ", + "โ†ฉ", + "ยฉ", + "โ", + "๐Ÿ", + "๐ŸŒง", + "โ˜ ", + "โฌ†", + "๐Ÿ˜", + "๐Ÿ—ƒ", + "โ–ช", + "โ˜ฆ", + "0", + "๐ŸŒจ", + "๐Ÿ—ฃ", + "๐Ÿ—บ", + "๐Ÿž", + "๐Ÿ•ถ", + "๐ŸŒฌ", + "โ™ฃ", + "โš—", + "โ—€", + "โ›“", } ), ) diff --git a/rich/_unicode_data/unicode7-0-0.py b/rich/_unicode_data/unicode7-0-0.py index f82eec87b5..575147ecec 100644 --- a/rich/_unicode_data/unicode7-0-0.py +++ b/rich/_unicode_data/unicode7-0-0.py @@ -288,106 +288,219 @@ ], narrow_to_wide=frozenset( { - 9728, - 9729, - 9730, - 9731, - 11013, - 11014, - 9992, - 9996, - 9762, - 127780, - 127781, - 127782, - 127783, - 127784, - 127785, - 127786, - 127787, - 9774, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 9784, - 9785, - 10035, - 10548, - 128329, - 9823, - 10083, - 9829, - 128367, - 127344, - 128371, - 128372, - 128373, - 128374, - 128375, - 128376, - 127358, - 128394, - 128395, - 128396, - 9876, - 9877, - 9878, - 8596, - 8597, - 8598, - 8599, - 9883, - 8600, - 127894, - 127897, - 127898, - 127902, - 8617, - 9642, - 9904, - 128433, - 128450, - 128451, - 127947, - 127948, - 128717, - 128718, - 127949, - 128465, - 128466, - 127956, - 127957, - 127958, - 127959, - 127960, - 127961, - 127962, - 127963, - 127964, - 127965, - 127966, - 128476, - 128736, - 128737, - 128738, - 128739, - 128740, - 128477, - 9208, - 9197, - 9198, - 9968, - 9201, - 9975, - 9976, - 9209, - 9723, + "๐Ÿ—", + "๐Ÿ“ฝ", + "๐Ÿ—’", + "๐Ÿ—œ", + "โ™€", + "๐ŸŽŸ", + "๐Ÿ›ฃ", + "โญ", + "โ„น", + "โ˜‚", + "โ˜บ", + "๐ŸŽ™", + "โธ", + "โžก", + "โ˜ƒ", + "๐Ÿ–ฒ", + "โ˜", + "๐Ÿ› ", + "โœณ", + "โ–ถ", + "โš ", + "๐Ÿ›ฐ", + "โ›ˆ", + "6", + "๐Ÿ…ฟ", + "๐ŸŽ–", + "โ›‘", + "๐Ÿ›ฉ", + "โ˜ช", + "๐Ÿ•ณ", + "9", + "๐Ÿท", + "โ˜€", + "โ˜ธ", + "โ™จ", + "โฌ…", + "โ‡", + "๐Ÿ—จ", + "โ™ฆ", + "#", + "โœ", + "โน", + "โ™Ÿ", + "๐Ÿ•‰", + "๐Ÿ—“", + "๐ŸŒถ", + "โบ", + "โ˜˜", + "โ€ผ", + "๐ŸŒฉ", + "๐Ÿ—‘", + "โ˜ฏ", + "๐Ÿ•ด", + "โœด", + "โ˜ข", + "๐Ÿ–ผ", + "๐ŸŒซ", + "๐Ÿ•ต", + "โšง", + "๐Ÿฝ", + "๐Ÿ—„", + "โœ”", + "๐Ÿ—ก", + "โฒ", + "๐ŸŒก", + "๐Ÿ–‹", + "๐Ÿ›ณ", + "๐Ÿ›‹", + "โ˜", + "๐Ÿ‘", + "โ“‚", + "โ†•", + "๐Ÿ›", + "โฏ", + "7", + "๐Ÿ–", + "โฑ", + "*", + "๐Ÿ—", + "โœ", + "๐Ÿ–Œ", + "โ†–", + "โ›น", + "๐Ÿ™", + "โ„", + "๐ŸŽš", + "๐Ÿš", + "โ‰", + "๐Ÿ”", + "๐Ÿฟ", + "๐Ÿ•", + "โ„ข", + "1", + "๐Ÿ›ค", + "๐Ÿ…ฑ", + "๐Ÿ–Š", + "โšฑ", + "โ›ธ", + "๐Ÿณ", + "๐Ÿ›", + "โฌ‡", + "๐Ÿ…ฐ", + "โ›ฉ", + "๐Ÿ—ณ", + "โ†™", + "๐Ÿ—‚", + "โ›ด", + "๐Ÿ‹", + "๐ŸŒฆ", + "ยฎ", + "๐Ÿ—ž", + "โ™ ", + "โคด", + "โœˆ", + "๐ŸŽž", + "โš•", + "โ›", + "๐Ÿ•ธ", + "๐Ÿ›ฅ", + "โšœ", + "โ˜ฎ", + "๐Ÿ—ฏ", + "โœก", + "โฎ", + "โšฐ", + "3", + "โ–ซ", + "๐Ÿ", + "โœ", + "โ†˜", + "โ†ช", + "โš›", + "๐Ÿ–‡", + "โœ–", + "๐Ÿ›ข", + "๐ŸŽ›", + "8", + "โ†—", + "๐Ÿ›ก", + "โ˜ฃ", + "โ›ฐ", + "โฃ", + "โœ‚", + "โ˜‘", + "โš™", + "โคต", + "โ™ป", + "๐ŸŒช", + "๐Ÿ–", + "๐Ÿ•ฏ", + "โœ‰", + "4", + "โœ’", + "๐ŸŒค", + "๐ŸŸ", + "โ™‚", + "๐Ÿ•ฐ", + "๐Ÿ›Ž", + "๐ŸŽ—", + "๐Ÿ•น", + "5", + "โš’", + "โค", + "๐Ÿ–", + "โš”", + "โš–", + "๐Ÿ–ฑ", + "๐Ÿ•Š", + "โ†”", + "2", + "๐Ÿ•ท", + "๐Ÿ…พ", + "โ˜น", + "๐Ÿ–ฅ", + "โ›ท", + "๐Ÿœ", + "โ˜Ž", + "๐ŸŒ", + "โ™พ", + "๐Ÿ›", + "โŒจ", + "๐ŸŽ", + "๐Ÿต", + "๐Ÿ–จ", + "โ™ฅ", + "โ—ป", + "๐ŸŒฅ", + "โ˜„", + "โ—ผ", + "โ›ฑ", + "โœŒ", + "โ†ฉ", + "ยฉ", + "โ", + "๐Ÿ", + "๐ŸŒง", + "โ˜ ", + "โฌ†", + "๐Ÿ˜", + "๐Ÿ—ƒ", + "โ–ช", + "โ˜ฆ", + "0", + "๐ŸŒจ", + "๐Ÿ—ฃ", + "๐Ÿ—บ", + "๐Ÿž", + "๐Ÿ•ถ", + "๐ŸŒฌ", + "โ™ฃ", + "โš—", + "โ—€", + "โ›“", } ), ) diff --git a/rich/_unicode_data/unicode8-0-0.py b/rich/_unicode_data/unicode8-0-0.py index 7968386781..42c390db91 100644 --- a/rich/_unicode_data/unicode8-0-0.py +++ b/rich/_unicode_data/unicode8-0-0.py @@ -296,106 +296,219 @@ ], narrow_to_wide=frozenset( { - 9728, - 9729, - 9730, - 9731, - 11013, - 11014, - 9992, - 9996, - 9762, - 127780, - 127781, - 127782, - 127783, - 127784, - 127785, - 127786, - 127787, - 9774, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 9784, - 9785, - 10035, - 10548, - 128329, - 9823, - 10083, - 9829, - 128367, - 127344, - 128371, - 128372, - 128373, - 128374, - 128375, - 128376, - 127358, - 128394, - 128395, - 128396, - 9876, - 9877, - 9878, - 8596, - 8597, - 8598, - 8599, - 9883, - 8600, - 127894, - 127897, - 127898, - 127902, - 8617, - 9642, - 9904, - 128433, - 128450, - 128451, - 127947, - 127948, - 128717, - 128718, - 127949, - 128465, - 128466, - 127956, - 127957, - 127958, - 127959, - 127960, - 127961, - 127962, - 127963, - 127964, - 127965, - 127966, - 128476, - 128736, - 128737, - 128738, - 128739, - 128740, - 128477, - 9208, - 9197, - 9198, - 9968, - 9201, - 9975, - 9976, - 9209, - 9723, + "๐Ÿ—", + "๐Ÿ“ฝ", + "๐Ÿ—’", + "๐Ÿ—œ", + "โ™€", + "๐ŸŽŸ", + "๐Ÿ›ฃ", + "โญ", + "โ„น", + "โ˜‚", + "โ˜บ", + "๐ŸŽ™", + "โธ", + "โžก", + "โ˜ƒ", + "๐Ÿ–ฒ", + "โ˜", + "๐Ÿ› ", + "โœณ", + "โ–ถ", + "โš ", + "๐Ÿ›ฐ", + "โ›ˆ", + "6", + "๐Ÿ…ฟ", + "๐ŸŽ–", + "โ›‘", + "๐Ÿ›ฉ", + "โ˜ช", + "๐Ÿ•ณ", + "9", + "๐Ÿท", + "โ˜€", + "โ˜ธ", + "โ™จ", + "โฌ…", + "โ‡", + "๐Ÿ—จ", + "โ™ฆ", + "#", + "โœ", + "โน", + "โ™Ÿ", + "๐Ÿ•‰", + "๐Ÿ—“", + "๐ŸŒถ", + "โบ", + "โ˜˜", + "โ€ผ", + "๐ŸŒฉ", + "๐Ÿ—‘", + "โ˜ฏ", + "๐Ÿ•ด", + "โœด", + "โ˜ข", + "๐Ÿ–ผ", + "๐ŸŒซ", + "๐Ÿ•ต", + "โšง", + "๐Ÿฝ", + "๐Ÿ—„", + "โœ”", + "๐Ÿ—ก", + "โฒ", + "๐ŸŒก", + "๐Ÿ–‹", + "๐Ÿ›ณ", + "๐Ÿ›‹", + "โ˜", + "๐Ÿ‘", + "โ“‚", + "โ†•", + "๐Ÿ›", + "โฏ", + "7", + "๐Ÿ–", + "โฑ", + "*", + "๐Ÿ—", + "โœ", + "๐Ÿ–Œ", + "โ†–", + "โ›น", + "๐Ÿ™", + "โ„", + "๐ŸŽš", + "๐Ÿš", + "โ‰", + "๐Ÿ”", + "๐Ÿฟ", + "๐Ÿ•", + "โ„ข", + "1", + "๐Ÿ›ค", + "๐Ÿ…ฑ", + "๐Ÿ–Š", + "โšฑ", + "โ›ธ", + "๐Ÿณ", + "๐Ÿ›", + "โฌ‡", + "๐Ÿ…ฐ", + "โ›ฉ", + "๐Ÿ—ณ", + "โ†™", + "๐Ÿ—‚", + "โ›ด", + "๐Ÿ‹", + "๐ŸŒฆ", + "ยฎ", + "๐Ÿ—ž", + "โ™ ", + "โคด", + "โœˆ", + "๐ŸŽž", + "โš•", + "โ›", + "๐Ÿ•ธ", + "๐Ÿ›ฅ", + "โšœ", + "โ˜ฎ", + "๐Ÿ—ฏ", + "โœก", + "โฎ", + "โšฐ", + "3", + "โ–ซ", + "๐Ÿ", + "โœ", + "โ†˜", + "โ†ช", + "โš›", + "๐Ÿ–‡", + "โœ–", + "๐Ÿ›ข", + "๐ŸŽ›", + "8", + "โ†—", + "๐Ÿ›ก", + "โ˜ฃ", + "โ›ฐ", + "โฃ", + "โœ‚", + "โ˜‘", + "โš™", + "โคต", + "โ™ป", + "๐ŸŒช", + "๐Ÿ–", + "๐Ÿ•ฏ", + "โœ‰", + "4", + "โœ’", + "๐ŸŒค", + "๐ŸŸ", + "โ™‚", + "๐Ÿ•ฐ", + "๐Ÿ›Ž", + "๐ŸŽ—", + "๐Ÿ•น", + "5", + "โš’", + "โค", + "๐Ÿ–", + "โš”", + "โš–", + "๐Ÿ–ฑ", + "๐Ÿ•Š", + "โ†”", + "2", + "๐Ÿ•ท", + "๐Ÿ…พ", + "โ˜น", + "๐Ÿ–ฅ", + "โ›ท", + "๐Ÿœ", + "โ˜Ž", + "๐ŸŒ", + "โ™พ", + "๐Ÿ›", + "โŒจ", + "๐ŸŽ", + "๐Ÿต", + "๐Ÿ–จ", + "โ™ฅ", + "โ—ป", + "๐ŸŒฅ", + "โ˜„", + "โ—ผ", + "โ›ฑ", + "โœŒ", + "โ†ฉ", + "ยฉ", + "โ", + "๐Ÿ", + "๐ŸŒง", + "โ˜ ", + "โฌ†", + "๐Ÿ˜", + "๐Ÿ—ƒ", + "โ–ช", + "โ˜ฆ", + "0", + "๐ŸŒจ", + "๐Ÿ—ฃ", + "๐Ÿ—บ", + "๐Ÿž", + "๐Ÿ•ถ", + "๐ŸŒฌ", + "โ™ฃ", + "โš—", + "โ—€", + "โ›“", } ), ) diff --git a/rich/_unicode_data/unicode9-0-0.py b/rich/_unicode_data/unicode9-0-0.py index 2064202500..b6666d6340 100644 --- a/rich/_unicode_data/unicode9-0-0.py +++ b/rich/_unicode_data/unicode9-0-0.py @@ -381,106 +381,219 @@ ], narrow_to_wide=frozenset( { - 9728, - 9729, - 9730, - 9731, - 11013, - 11014, - 9992, - 9996, - 9762, - 127780, - 127781, - 127782, - 127783, - 127784, - 127785, - 127786, - 127787, - 9774, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 9784, - 9785, - 10035, - 10548, - 128329, - 9823, - 10083, - 9829, - 128367, - 127344, - 128371, - 128372, - 128373, - 128374, - 128375, - 128376, - 127358, - 128394, - 128395, - 128396, - 9876, - 9877, - 9878, - 8596, - 8597, - 8598, - 8599, - 9883, - 8600, - 127894, - 127897, - 127898, - 127902, - 8617, - 9642, - 9904, - 128433, - 128450, - 128451, - 127947, - 127948, - 128717, - 128718, - 127949, - 128465, - 128466, - 127956, - 127957, - 127958, - 127959, - 127960, - 127961, - 127962, - 127963, - 127964, - 127965, - 127966, - 128476, - 128736, - 128737, - 128738, - 128739, - 128740, - 128477, - 9208, - 9197, - 9198, - 9968, - 9201, - 9975, - 9976, - 9209, - 9723, + "๐Ÿ—", + "๐Ÿ“ฝ", + "๐Ÿ—’", + "๐Ÿ—œ", + "โ™€", + "๐ŸŽŸ", + "๐Ÿ›ฃ", + "โญ", + "โ„น", + "โ˜‚", + "โ˜บ", + "๐ŸŽ™", + "โธ", + "โžก", + "โ˜ƒ", + "๐Ÿ–ฒ", + "โ˜", + "๐Ÿ› ", + "โœณ", + "โ–ถ", + "โš ", + "๐Ÿ›ฐ", + "โ›ˆ", + "6", + "๐Ÿ…ฟ", + "๐ŸŽ–", + "โ›‘", + "๐Ÿ›ฉ", + "โ˜ช", + "๐Ÿ•ณ", + "9", + "๐Ÿท", + "โ˜€", + "โ˜ธ", + "โ™จ", + "โฌ…", + "โ‡", + "๐Ÿ—จ", + "โ™ฆ", + "#", + "โœ", + "โน", + "โ™Ÿ", + "๐Ÿ•‰", + "๐Ÿ—“", + "๐ŸŒถ", + "โบ", + "โ˜˜", + "โ€ผ", + "๐ŸŒฉ", + "๐Ÿ—‘", + "โ˜ฏ", + "๐Ÿ•ด", + "โœด", + "โ˜ข", + "๐Ÿ–ผ", + "๐ŸŒซ", + "๐Ÿ•ต", + "โšง", + "๐Ÿฝ", + "๐Ÿ—„", + "โœ”", + "๐Ÿ—ก", + "โฒ", + "๐ŸŒก", + "๐Ÿ–‹", + "๐Ÿ›ณ", + "๐Ÿ›‹", + "โ˜", + "๐Ÿ‘", + "โ“‚", + "โ†•", + "๐Ÿ›", + "โฏ", + "7", + "๐Ÿ–", + "โฑ", + "*", + "๐Ÿ—", + "โœ", + "๐Ÿ–Œ", + "โ†–", + "โ›น", + "๐Ÿ™", + "โ„", + "๐ŸŽš", + "๐Ÿš", + "โ‰", + "๐Ÿ”", + "๐Ÿฟ", + "๐Ÿ•", + "โ„ข", + "1", + "๐Ÿ›ค", + "๐Ÿ…ฑ", + "๐Ÿ–Š", + "โšฑ", + "โ›ธ", + "๐Ÿณ", + "๐Ÿ›", + "โฌ‡", + "๐Ÿ…ฐ", + "โ›ฉ", + "๐Ÿ—ณ", + "โ†™", + "๐Ÿ—‚", + "โ›ด", + "๐Ÿ‹", + "๐ŸŒฆ", + "ยฎ", + "๐Ÿ—ž", + "โ™ ", + "โคด", + "โœˆ", + "๐ŸŽž", + "โš•", + "โ›", + "๐Ÿ•ธ", + "๐Ÿ›ฅ", + "โšœ", + "โ˜ฎ", + "๐Ÿ—ฏ", + "โœก", + "โฎ", + "โšฐ", + "3", + "โ–ซ", + "๐Ÿ", + "โœ", + "โ†˜", + "โ†ช", + "โš›", + "๐Ÿ–‡", + "โœ–", + "๐Ÿ›ข", + "๐ŸŽ›", + "8", + "โ†—", + "๐Ÿ›ก", + "โ˜ฃ", + "โ›ฐ", + "โฃ", + "โœ‚", + "โ˜‘", + "โš™", + "โคต", + "โ™ป", + "๐ŸŒช", + "๐Ÿ–", + "๐Ÿ•ฏ", + "โœ‰", + "4", + "โœ’", + "๐ŸŒค", + "๐ŸŸ", + "โ™‚", + "๐Ÿ•ฐ", + "๐Ÿ›Ž", + "๐ŸŽ—", + "๐Ÿ•น", + "5", + "โš’", + "โค", + "๐Ÿ–", + "โš”", + "โš–", + "๐Ÿ–ฑ", + "๐Ÿ•Š", + "โ†”", + "2", + "๐Ÿ•ท", + "๐Ÿ…พ", + "โ˜น", + "๐Ÿ–ฅ", + "โ›ท", + "๐Ÿœ", + "โ˜Ž", + "๐ŸŒ", + "โ™พ", + "๐Ÿ›", + "โŒจ", + "๐ŸŽ", + "๐Ÿต", + "๐Ÿ–จ", + "โ™ฅ", + "โ—ป", + "๐ŸŒฅ", + "โ˜„", + "โ—ผ", + "โ›ฑ", + "โœŒ", + "โ†ฉ", + "ยฉ", + "โ", + "๐Ÿ", + "๐ŸŒง", + "โ˜ ", + "โฌ†", + "๐Ÿ˜", + "๐Ÿ—ƒ", + "โ–ช", + "โ˜ฆ", + "0", + "๐ŸŒจ", + "๐Ÿ—ฃ", + "๐Ÿ—บ", + "๐Ÿž", + "๐Ÿ•ถ", + "๐ŸŒฌ", + "โ™ฃ", + "โš—", + "โ—€", + "โ›“", } ), ) diff --git a/rich/cells.py b/rich/cells.py index 145828394b..07faad9666 100644 --- a/rich/cells.py +++ b/rich/cells.py @@ -38,7 +38,7 @@ class CellTable(NamedTuple): unicode_version: str widths: Sequence[tuple[int, int, int]] - narrow_to_wide: frozenset[int] + narrow_to_wide: frozenset[str] def __hash__(self) -> int: return hash(self.unicode_version) @@ -104,12 +104,14 @@ def cell_len(text: str, unicode_version: str = "auto") -> int: Returns: Length of string in terminal cells. """ + if _is_single_cell_widths(text): return len(text) # "\u200d" is zero width joiner # "\ufe0f" is variation selector 16 if "\u200d" not in text and "\ufe0f" not in text: + # Simplest case with no unicode stuff that changes the size return sum( get_character_cell_size(character, unicode_version) for character in text ) diff --git a/tests/test_cells.py b/tests/test_cells.py index 51376e909b..ea1c849e2d 100644 --- a/tests/test_cells.py +++ b/tests/test_cells.py @@ -3,7 +3,13 @@ import pytest from rich import cells -from rich.cells import CellSpan, _is_single_cell_widths, chop_cells, split_graphemes +from rich.cells import ( + CellSpan, + _is_single_cell_widths, + cell_len, + chop_cells, + split_graphemes, +) def test_cell_len_long_string(): @@ -91,14 +97,24 @@ def test_is_single_cell_widths() -> None: ("ab", [(0, 1, 1), (1, 2, 1)], 2), ("๐Ÿ’ฉ", [(0, 1, 2)], 2), ("ใ‚ใ•ใณ", [(0, 1, 2), (1, 2, 2), (2, 3, 2)], 6), - ("๐Ÿ‘ฉ\u200d๐Ÿ”ง", [(0, 3, 2)], 2), + ( + "๐Ÿ‘ฉ\u200d๐Ÿ”ง", + [(0, 3, 2)], + 2, + ), # 3 code points for female mechanic: female, joiner, spanner ("a๐Ÿ‘ฉ\u200d๐Ÿ”ง", [(0, 1, 1), (1, 4, 2)], 3), ("a๐Ÿ‘ฉ\u200d๐Ÿ”งb", [(0, 1, 1), (1, 4, 2), (4, 5, 1)], 4), + ("โฌ‡", [(0, 1, 1)], 1), + ("โฌ‡๏ธ", [(0, 2, 2)], 2), # Variation selector, makes it double width + ("โ™ป", [(0, 1, 1)], 1), + ("โ™ป๏ธ", [(0, 2, 2)], 2), + ("โ™ปโ™ป๏ธ", [(0, 1, 1), (1, 3, 2)], 3), ], ) def test_split_graphemes( text: str, expected_spans: list[CellSpan], expected_cell_length: int ): spans, cell_length = split_graphemes(text) + assert cell_len(text) == expected_cell_length assert spans == expected_spans assert cell_length == expected_cell_length diff --git a/tools/make_width_tables.py b/tools/make_width_tables.py index f3a7047bee..67700402bc 100644 --- a/tools/make_width_tables.py +++ b/tools/make_width_tables.py @@ -20,9 +20,9 @@ init_file.write(init) -narrow_to_wide: set[int] = set() +narrow_to_wide: set[str] = set() for start, end in VS16_NARROW_TO_WIDE["9.0.0"]: - narrow_to_wide.update(range(start, end)) + narrow_to_wide.update(chr(codepoint) for codepoint in range(start, end + 1)) for version in UNICODE_VERSIONS: table: list[tuple[int, int, int]] = [] From 69cd81882b163cd7823621825b95603b4f49e4a6 Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Tue, 20 Jan 2026 15:57:19 +0000 Subject: [PATCH 07/29] remove reference to cell strings --- rich/_unicode_data/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rich/_unicode_data/__init__.py b/rich/_unicode_data/__init__.py index 1127c88d8b..3e21ca06e2 100644 --- a/rich/_unicode_data/__init__.py +++ b/rich/_unicode_data/__init__.py @@ -9,7 +9,7 @@ from rich._unicode_data._versions import VERSIONS if TYPE_CHECKING: - from rich.cell_string import CellTable + from rich.cells import CellTable VERSION_ORDER = sorted( [ From 7d4a115d8b9b641de0ae38a0fd9c1a855d2ab672 Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Tue, 20 Jan 2026 17:06:21 +0000 Subject: [PATCH 08/29] fix typing --- rich/_unicode_data/__init__.py | 10 ++++++---- rich/cells.py | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/rich/_unicode_data/__init__.py b/rich/_unicode_data/__init__.py index 3e21ca06e2..cd3cf5b1a9 100644 --- a/rich/_unicode_data/__init__.py +++ b/rich/_unicode_data/__init__.py @@ -4,7 +4,7 @@ import os from functools import cache from importlib import import_module -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, cast from rich._unicode_data._versions import VERSIONS @@ -19,7 +19,7 @@ for version in VERSIONS ] ) -VERSION_SET = frozenset(VERSION_ORDER) +VERSION_SET = frozenset(VERSIONS) def _parse_version(version: str) -> tuple[int, int, int]: @@ -34,6 +34,7 @@ def _parse_version(version: str) -> tuple[int, int, int]: Returns: A tuple of 3 integers. """ + version_integers: tuple[int, ...] try: version_integers = tuple( map(int, version.split(".")), @@ -43,8 +44,8 @@ def _parse_version(version: str) -> tuple[int, int, int]: f"unicode version string {version!r} is badly formatted" ) from None while len(version_integers) < 3: - version_integers = (version_integers, 0) - triple = version_integers[:3] + version_integers = version_integers + (0,) + triple = cast("tuple[int, int, int]", version_integers[:3]) return triple @@ -80,4 +81,5 @@ def load(unicode_version: str = "auto") -> CellTable: version_path_component = version.replace(".", "-") module_name = f".unicode{version_path_component}" module = import_module(module_name, "rich._unicode_data") + assert isinstance(module.cell_table, CellTable) return module.cell_table diff --git a/rich/cells.py b/rich/cells.py index 07faad9666..4411b3dcc0 100644 --- a/rich/cells.py +++ b/rich/cells.py @@ -424,7 +424,7 @@ def __reversed__(self) -> Iterator[str]: if self._singles: return reversed(self._text) - def iterate_text(text: str, spans: "list[CellSpan]"): + def iterate_text(text: str, spans: "list[CellSpan]") -> Generator[str]: for start, end, _ in reversed(spans): yield text[start:end] From 230fdacb8b4ba28d2f4379812e329f2198a10a6a Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Tue, 20 Jan 2026 17:30:48 +0000 Subject: [PATCH 09/29] test --- rich/_unicode_data/__init__.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/rich/_unicode_data/__init__.py b/rich/_unicode_data/__init__.py index cd3cf5b1a9..ac9a6ac8e2 100644 --- a/rich/_unicode_data/__init__.py +++ b/rich/_unicode_data/__init__.py @@ -69,17 +69,19 @@ def load(unicode_version: str = "auto") -> CellTable: if unicode_version == "latest": version = VERSIONS[-1] else: - if unicode_version in VERSION_SET: - version = unicode_version - else: - unicode_version_integers = _parse_version(unicode_version) - insert_position = bisect.bisect_left( - VERSION_ORDER, unicode_version_integers - ) + try: + version_numbers = _parse_version(unicode_version) + except ValueError: + version_numbers = _parse_version(VERSIONS[-1]) + major, minor, patch = version_numbers + version = f"{major}.{minor}.{patch}" + if version not in VERSION_SET: + insert_position = bisect.bisect_left(VERSION_ORDER, version_numbers) version = VERSIONS[max(0, insert_position - 1)] version_path_component = version.replace(".", "-") module_name = f".unicode{version_path_component}" module = import_module(module_name, "rich._unicode_data") - assert isinstance(module.cell_table, CellTable) + if TYPE_CHECKING: + assert isinstance(module.cell_table, CellTable) return module.cell_table From de762586f168907b2dd2092b49f0021d3579423e Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Tue, 20 Jan 2026 17:36:05 +0000 Subject: [PATCH 10/29] tests for unicode data --- tests/test_unicode_data.py | 56 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 tests/test_unicode_data.py diff --git a/tests/test_unicode_data.py b/tests/test_unicode_data.py new file mode 100644 index 0000000000..4e48bbb198 --- /dev/null +++ b/tests/test_unicode_data.py @@ -0,0 +1,56 @@ +import pytest + +from rich._unicode_data import _parse_version, load + + +@pytest.mark.parametrize( + "version_str,version_tuple", + [ + ("1", (1, 0, 0)), + ("1.0", (1, 0, 0)), + ("1.2", (1, 2, 0)), + ("1.2.3", (1, 2, 3)), + ], +) +def test_parse_version(version_str: str, version_tuple: tuple[str, ...]) -> None: + assert _parse_version(version_str) == version_tuple + + +@pytest.mark.parametrize( + "version_in,version_selected", + [ + # Lower versions will pick the first (4.1.0) + ("0", "4.1.0"), + ("1", "4.1.0"), + ("1.0", "4.1.0"), + ("1.0.0", "4.1.0"), + ("4.0.0", "4.1.0"), + ("4.0.2", "4.1.0"), + ("4.1.0", "4.1.0"), + ("4.1.1", "4.1.0"), + ("4.2.1", "4.1.0"), + # Nearest version lower + ("5", "5.0.0"), + ("5.0", "5.0.0"), + ("5.0.0", "5.0.0"), + ("5.0.1", "5.0.0"), + ("5.1.0", "5.1.0"), + ("5.1.1", "5.1.0"), + # Maximum version if greater than the maximum + ("17.0.0", "17.0.0"), + ("17.0.1", "17.0.0"), + ("17.1.0", "17.0.0"), + # Greater than the maximum + ("18.0.0", "17.0.0"), + ], +) +def test_load_version(version_in: str, version_selected: str) -> None: + """Test that load will pick the nearest lower version if it exists, or the lowest version if below the first available version.""" + assert load(version_in).unicode_version == version_selected + + +def test_load_version_invalid() -> None: + """Check that invalid versions load the latest unicode data.""" + assert load("foo").unicode_version == "17.0.0" + assert load("a.b.c").unicode_version == "17.0.0" + assert load("1.2.3a").unicode_version == "17.0.0" From 263d25b8e1419c38c57694a4ed8c60f8ae73008a Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Tue, 20 Jan 2026 17:38:08 +0000 Subject: [PATCH 11/29] future --- rich/cells.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rich/cells.py b/rich/cells.py index 4411b3dcc0..219612ef59 100644 --- a/rich/cells.py +++ b/rich/cells.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from functools import lru_cache from operator import itemgetter from typing import Callable, Generator, Iterator, NamedTuple, Sequence From b63cb57e4d9a287753c284a6b4886c064bf99c78 Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Tue, 20 Jan 2026 17:41:43 +0000 Subject: [PATCH 12/29] py3.8 fix --- rich/_unicode_data/__init__.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/rich/_unicode_data/__init__.py b/rich/_unicode_data/__init__.py index ac9a6ac8e2..b2659b5fe3 100644 --- a/rich/_unicode_data/__init__.py +++ b/rich/_unicode_data/__init__.py @@ -2,7 +2,13 @@ import bisect import os -from functools import cache + +try: + from functools import cache +except ImportError: + # No cache in Python 3.8, lru_cache works here too + from functools import lru_cache as cache + from importlib import import_module from typing import TYPE_CHECKING, cast From c7778bc68638fca6dae3fb64f47ed4c441615e9f Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Tue, 20 Jan 2026 17:46:31 +0000 Subject: [PATCH 13/29] typing issues --- rich/_unicode_data/__init__.py | 4 ++-- rich/cells.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/rich/_unicode_data/__init__.py b/rich/_unicode_data/__init__.py index b2659b5fe3..7139601c04 100644 --- a/rich/_unicode_data/__init__.py +++ b/rich/_unicode_data/__init__.py @@ -4,7 +4,7 @@ import os try: - from functools import cache + from functools import cache # type: ignore[attr-defined] except ImportError: # No cache in Python 3.8, lru_cache works here too from functools import lru_cache as cache @@ -55,7 +55,7 @@ def _parse_version(version: str) -> tuple[int, int, int]: return triple -@cache +@cache # type: ignore[misc] def load(unicode_version: str = "auto") -> CellTable: """Load a cell table for the given unicode version. diff --git a/rich/cells.py b/rich/cells.py index 219612ef59..b1751088c7 100644 --- a/rich/cells.py +++ b/rich/cells.py @@ -6,7 +6,7 @@ from rich._unicode_data import load as load_cell_table -CellSpan = tuple[int, int, int] +CellSpan = "tuple[int, int, int]" _span_get_cell_len = itemgetter(2) From 0d7f2ab7c54f32b79067133eb5bc97b8865fbf66 Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Tue, 20 Jan 2026 17:53:30 +0000 Subject: [PATCH 14/29] alternative typing --- rich/_unicode_data/__init__.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/rich/_unicode_data/__init__.py b/rich/_unicode_data/__init__.py index 7139601c04..e48fbd090a 100644 --- a/rich/_unicode_data/__init__.py +++ b/rich/_unicode_data/__init__.py @@ -2,12 +2,12 @@ import bisect import os +import sys -try: - from functools import cache # type: ignore[attr-defined] -except ImportError: - # No cache in Python 3.8, lru_cache works here too +if sys.version_info == (3, 8): from functools import lru_cache as cache +else: + from functools import cache from importlib import import_module from typing import TYPE_CHECKING, cast @@ -55,7 +55,7 @@ def _parse_version(version: str) -> tuple[int, int, int]: return triple -@cache # type: ignore[misc] +@cache def load(unicode_version: str = "auto") -> CellTable: """Load a cell table for the given unicode version. From ee796e1a0606a0820c6b13c0bf9b22c1e8c4c0bb Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Tue, 20 Jan 2026 17:58:34 +0000 Subject: [PATCH 15/29] typing --- rich/cells.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rich/cells.py b/rich/cells.py index b1751088c7..ab343d3079 100644 --- a/rich/cells.py +++ b/rich/cells.py @@ -2,11 +2,11 @@ from functools import lru_cache from operator import itemgetter -from typing import Callable, Generator, Iterator, NamedTuple, Sequence +from typing import Callable, Generator, Iterator, NamedTuple, Sequence, Tuple from rich._unicode_data import load as load_cell_table -CellSpan = "tuple[int, int, int]" +CellSpan = Tuple[int, int, int] _span_get_cell_len = itemgetter(2) From 19a6fada99b1012cf6925e46910052e260434d25 Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Tue, 20 Jan 2026 18:29:24 +0000 Subject: [PATCH 16/29] typing --- rich/_unicode_data/__init__.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rich/_unicode_data/__init__.py b/rich/_unicode_data/__init__.py index e48fbd090a..3524786622 100644 --- a/rich/_unicode_data/__init__.py +++ b/rich/_unicode_data/__init__.py @@ -4,10 +4,10 @@ import os import sys -if sys.version_info == (3, 8): - from functools import lru_cache as cache -else: +if sys.version_info >= (3, 9): from functools import cache +else: + from functools import lru_cache as cache from importlib import import_module from typing import TYPE_CHECKING, cast From 786e9de79413ff57ddccf382729ff4f14796db36 Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Wed, 21 Jan 2026 13:56:15 +0000 Subject: [PATCH 17/29] mypy fix --- rich/_unicode_data/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rich/_unicode_data/__init__.py b/rich/_unicode_data/__init__.py index 3524786622..da7f13939b 100644 --- a/rich/_unicode_data/__init__.py +++ b/rich/_unicode_data/__init__.py @@ -4,7 +4,7 @@ import os import sys -if sys.version_info >= (3, 9): +if sys.version_info[:2] >= (3, 9): from functools import cache else: from functools import lru_cache as cache From d09cc4f6d51c0787bb6f9d631dc6a91363aac58d Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Wed, 21 Jan 2026 14:02:19 +0000 Subject: [PATCH 18/29] typing --- tests/test_cells.py | 2 ++ tests/test_unicode_data.py | 2 ++ 2 files changed, 4 insertions(+) diff --git a/tests/test_cells.py b/tests/test_cells.py index ea1c849e2d..2ead9dfab7 100644 --- a/tests/test_cells.py +++ b/tests/test_cells.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import string import pytest diff --git a/tests/test_unicode_data.py b/tests/test_unicode_data.py index 4e48bbb198..8d0923e128 100644 --- a/tests/test_unicode_data.py +++ b/tests/test_unicode_data.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import pytest from rich._unicode_data import _parse_version, load From f924a21a314420a723a94a8d10b769dc855a67ec Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Thu, 22 Jan 2026 14:07:03 +0000 Subject: [PATCH 19/29] tests --- rich/__main__.py | 5 +- rich/_unicode_data/__init__.py | 2 +- rich/cells.py | 174 ++------------------------------- tests/test_cells.py | 61 ++++++++++++ tests/test_text.py | 22 +++++ tests/test_unicode_data.py | 8 +- 6 files changed, 101 insertions(+), 171 deletions(-) diff --git a/rich/__main__.py b/rich/__main__.py index 06683305d7..495c933d72 100644 --- a/rich/__main__.py +++ b/rich/__main__.py @@ -238,8 +238,9 @@ def iter_last(values: Iterable[T]) -> Iterable[Tuple[bool, T]]: "[b magenta]Hope you enjoy using Rich![/]\n\n" "Please consider sponsoring me if you get value from my work.\n\n" "Even the price of a โ˜• can brighten my day!\n\n" - "https://github.com/sponsors/willmcgugan", - border_style="red", + "[cyan]https://github.com/sponsors/willmcgugan[/cyan]", + border_style="green", title="Help ensure Rich is maintained", + padding=(1, 2), ) ) diff --git a/rich/_unicode_data/__init__.py b/rich/_unicode_data/__init__.py index da7f13939b..1689215c0f 100644 --- a/rich/_unicode_data/__init__.py +++ b/rich/_unicode_data/__init__.py @@ -7,7 +7,7 @@ if sys.version_info[:2] >= (3, 9): from functools import cache else: - from functools import lru_cache as cache + from functools import lru_cache as cache # pragma: no cover from importlib import import_module from typing import TYPE_CHECKING, cast diff --git a/rich/cells.py b/rich/cells.py index ab343d3079..d3eda9c0b7 100644 --- a/rich/cells.py +++ b/rich/cells.py @@ -2,7 +2,7 @@ from functools import lru_cache from operator import itemgetter -from typing import Callable, Generator, Iterator, NamedTuple, Sequence, Tuple +from typing import Callable, NamedTuple, Sequence, Tuple from rich._unicode_data import load as load_cell_table @@ -42,9 +42,6 @@ class CellTable(NamedTuple): widths: Sequence[tuple[int, int, int]] narrow_to_wide: frozenset[str] - def __hash__(self) -> int: - return hash(self.unicode_version) - @lru_cache(maxsize=4096) def get_character_cell_size(character: str, unicode_version: str = "auto") -> int: @@ -59,7 +56,7 @@ def get_character_cell_size(character: str, unicode_version: str = "auto") -> in """ codepoint = ord(character) table = load_cell_table(unicode_version).widths - if codepoint < table[0][0] or codepoint > table[-1][1]: + if codepoint > table[-1][1]: return 0 lower_bound = 0 upper_bound = len(table) - 1 @@ -211,7 +208,7 @@ def _split_text( Returns: Tuple to two split strings. """ - if cell_position == 0: + if cell_position <= 0: return "", text spans, cell_length = split_graphemes(text, unicode_version) @@ -222,6 +219,8 @@ def _split_text( while True: if left_size == cell_position: + if offset >= len(spans): + return text, "" split_index = spans[offset][0] return text[:split_index], text[split_index:] if left_size < cell_position: @@ -230,8 +229,8 @@ def _split_text( return text[:start] + " ", " " + text[end:] offset += 1 left_size += cell_size - else: - start, end, cell_size = spans[offset] + else: # left_size > cell_position + start, end, cell_size = spans[offset - 1] if left_size - cell_size < cell_position: return text[:start] + " ", " " + text[end:] offset -= 1 @@ -312,162 +311,3 @@ def chop_cells(text: str, width: int, unicode_version: str = "auto") -> list[str lines.append(text[line_offset:]) return lines - - -class CellString: - """A string-like object that takes graphemes into account.""" - - def __init__( - self, - text: str, - *, - cell_length: int | None = None, - spans: "list[CellSpan] | None" = None, - unicode_version: str = "auto", - ): - """ - - Args: - text: The plain text. - cell_length: The cell length (as it appears in the terminal), if known. - spans: List of spans which divide the text in to atomic units (single glyphs). - unicode_version: Unicode version, `"auto"` to auto detect, `"latest"` for the latest unicode version. - """ - self._text = text - self._singles: bool = _is_single_cell_widths(text) - if cell_length is None: - self._cell_length = len(text) if self._singles else None - else: - self._cell_length = cell_length - self._spans: "list[CellSpan] | None" = spans - self._unicode_version = unicode_version - - @property - def text(self) -> str: - """The raw text.""" - return self._text - - @property - def spans(self) -> "list[CellSpan]": - if self._spans is None: - if self._singles: - self._spans = [ - (index, index + 1, 1) for index in range(len(self._text)) - ] - else: - self._spans, self._cell_length = split_graphemes( - self._text, self._unicode_version - ) - return self._spans - - @property - def cell_length(self) -> int: - """The 'cell' length (length as displayed in the terminal).""" - if self._cell_length is None: - self._cell_length = cell_len(self._text) - return self._cell_length - - @property - def glyphs(self) -> list[str]: - """List of strings that make up atomic glyph.""" - text = self._text - glyphs = [text[start:end] for start, end, _ in self.spans] - return glyphs - - @property - def glyph_widths(self) -> list[tuple[str, int]]: - """List of strings that make up atomic glyph, and corresponding cell width.""" - text = self._text - glyph_widths = [ - (text[start:end], cell_length) for start, end, cell_length in self.spans - ] - return glyph_widths - - def __bool__(self) -> bool: - return bool(self._text) - - def __hash__(self) -> int: - return hash(self._text) - - def __eq__(self, other: object) -> bool: - if isinstance(other, CellString): - return self._text == other._text - return NotImplemented - - def __add__(self, other: "CellString") -> "CellString": - if self._singles and other._singles: - return CellString(self._text + other._text) - spans: "list[CellSpan] | None" - if self._spans is not None and other._spans is not None: - self_length = len(self._text) - spans = [ - *self._spans, - *[ - (start + self_length, end + self_length, cell_length) - for start, end, cell_length in other.spans - ], - ] - else: - spans = None - return CellString(self._text + other._text, spans=spans) - - def __iter__(self) -> Iterator[str]: - if self._singles: - return iter(self._text) - - def iterate_text(text: str, spans: "list[CellSpan]") -> Generator[str]: - """Generator for the""" - for start, end, _ in spans: - yield text[start:end] - - return iter(iterate_text(self._text, self.spans)) - - def __reversed__(self) -> Iterator[str]: - if self._singles: - return reversed(self._text) - - def iterate_text(text: str, spans: "list[CellSpan]") -> Generator[str]: - for start, end, _ in reversed(spans): - yield text[start:end] - - return iter(iterate_text(self._text, self.spans)) - - def __getitem__(self, index: int | slice) -> str: - if self._singles: - # Trivial case of single cell character strings - return self._text[index] - if isinstance(index, int): - # Single span is easy - start, end, _cell_length = self.spans[index] - return self._text[start:end] - - start, stop, stride = index.indices(len(self.spans)) - if stride == 1: - # Fast path for a stride of 1 - start_offset = self.spans[start][0] - stop_offset = self.spans[stop][1] - return self._text[start_offset:stop_offset] - else: - # More involved case of a stride > 1 - span_offset = start - output: list[str] = [] - while span_offset <= stop: - start_offset, end_offset, _ = self.spans[span_offset] - output.append(self._text[start_offset:end_offset]) - span_offset += stride - return "".join(output) - - -if __name__ == "__main__": - from rich import print - - print(CellString("Hello World").glyphs) - - print(CellString("Female mechanic: ๐Ÿ‘ฉ\u200d๐Ÿ”ง").glyphs) - print(CellString("Female mechanic: ๐Ÿ‘ฉ\u200d๐Ÿ”ง").glyph_widths) - - left, right = split_text("Hello ๐Ÿ‘ฉ\u200d๐Ÿ”ง World", 9) - print(repr(left)) - print(repr(right)) - print(left) - print(right) diff --git a/tests/test_cells.py b/tests/test_cells.py index 2ead9dfab7..84ff55f88f 100644 --- a/tests/test_cells.py +++ b/tests/test_cells.py @@ -10,10 +10,27 @@ _is_single_cell_widths, cell_len, chop_cells, + get_character_cell_size, split_graphemes, + split_text, ) +@pytest.mark.parametrize( + "character,size", + [ + ("\0", 0), + ("\u200d", 0), + ("a", 1), + ("๐Ÿ’ฉ", 2), + (chr(917999 + 1), 0), + ], +) +def test_get_character_cell_size(character: str, size: int) -> None: + """Test single character cell size.""" + assert get_character_cell_size(character) == size + + def test_cell_len_long_string(): # Long strings don't use cached cell length implementation assert cells.cell_len("abc" * 200) == 3 * 200 @@ -55,6 +72,50 @@ def test_set_cell_size_infinite(): ) +FM = "๐Ÿ‘ฉ\u200d๐Ÿ”ง" + + +@pytest.mark.parametrize( + "text,offset,left,right", + [ + # Edge cases + ("", -1, "", ""), + ("x", -1, "", "x"), + ("x", 1, "x", ""), + ("x", 2, "x", ""), + ("", 0, "", ""), + ("", 1, "", ""), + ("a", 0, "", "a"), + ("a", 1, "a", ""), + # Check simple double width character + ("๐Ÿ’ฉ", 0, "", "๐Ÿ’ฉ"), + ("๐Ÿ’ฉ", 1, " ", " "), # Split in the middle of a double wide results in spaces + ("๐Ÿ’ฉ", 2, "๐Ÿ’ฉ", ""), + ("๐Ÿ’ฉx", 1, " ", " x"), + ("๐Ÿ’ฉx", 2, "๐Ÿ’ฉ", "x"), + ("๐Ÿ’ฉx", 3, "๐Ÿ’ฉx", ""), + # Check same for multi-codepoint emoji + (FM, 0, "", FM), + (FM, 1, " ", " "), # Split in the middle of a double wide results in spaces + (FM, 2, FM, ""), + (FM + "x", 1, " ", " x"), + (FM + "x", 2, FM, "x"), + (FM + "x", 3, FM + "x", ""), + # Edge cases + ("xxxxxxxxxxxxxxx๐Ÿ’ฉ๐Ÿ’ฉ", 10, "xxxxxxxxxx", "xxxxx๐Ÿ’ฉ๐Ÿ’ฉ"), + ("xxxxxxxxxxxxxxx๐Ÿ’ฉ๐Ÿ’ฉ", 15, "xxxxxxxxxxxxxxx", "๐Ÿ’ฉ๐Ÿ’ฉ"), + ("xxxxxxxxxxxxxxx๐Ÿ’ฉ๐Ÿ’ฉ", 16, "xxxxxxxxxxxxxxx ", " ๐Ÿ’ฉ"), + ("๐Ÿ’ฉ๐Ÿ’ฉ", 3, "๐Ÿ’ฉ ", " "), + ("๐Ÿ’ฉ๐Ÿ’ฉxxxxxxxxxx", 2, "๐Ÿ’ฉ", "๐Ÿ’ฉxxxxxxxxxx"), + ("๐Ÿ’ฉ๐Ÿ’ฉxxxxxxxxxx", 3, "๐Ÿ’ฉ ", " xxxxxxxxxx"), + ("๐Ÿ’ฉ๐Ÿ’ฉxxxxxxxxxx", 4, "๐Ÿ’ฉ๐Ÿ’ฉ", "xxxxxxxxxx"), + ], +) +def test_split_text(text: str, offset: int, left: str, right: str) -> None: + """Check that split_text works on grapheme boundaries""" + assert split_text(text, offset) == (left, right) + + def test_chop_cells(): """Simple example of splitting cells into lines of width 3.""" text = "abcdefghijk" diff --git a/tests/test_text.py b/tests/test_text.py index 925803343c..93a98d7c0a 100644 --- a/tests/test_text.py +++ b/tests/test_text.py @@ -525,6 +525,16 @@ def test_wrap_long(): assert lines[2] == Text("bra ") +def test_wrap_long_multi_codepoint(): + female_mechanic = "๐Ÿ‘ฉ\u200d๐Ÿ”ง" + text = Text(female_mechanic * 5, justify="left") + lines = text.wrap(Console(), 4) + assert len(lines) == 3 + assert lines[0] == Text(female_mechanic * 2) + assert lines[1] == Text(female_mechanic * 2) + assert lines[2] == Text(female_mechanic + " ") + + def test_wrap_overflow(): text = Text("Some more words") lines = text.wrap(Console(), 4, overflow="ellipsis") @@ -605,6 +615,18 @@ def test_wrap_multiple_consecutive_spaces(): ] +def test_wrap_multi_codepoint(): + """Test wrapping of multi-codepoint characters.""" + female_mechanic = "๐Ÿ‘ฉ\u200d๐Ÿ”ง" + text = Text(female_mechanic * 6 + " " + female_mechanic * 4) + lines = text.wrap(Console(), 12) + print(repr(lines)) + assert lines._lines == [ + Text(female_mechanic * 6), + Text(female_mechanic * 4), + ] + + def test_wrap_long_words_justify_left(): text = Text("X 123456789", justify="left") lines = text.wrap(Console(), 4) diff --git a/tests/test_unicode_data.py b/tests/test_unicode_data.py index 8d0923e128..4531f2ed1a 100644 --- a/tests/test_unicode_data.py +++ b/tests/test_unicode_data.py @@ -2,7 +2,13 @@ import pytest -from rich._unicode_data import _parse_version, load +from rich._unicode_data import VERSIONS, _parse_version, load + + +def test_load(): + """Test all verions may be loaded.""" + for version in VERSIONS: + load(version) @pytest.mark.parametrize( From 3c8d89cf6b126b73c7fea89d93d6ab5f50a45a6d Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Thu, 22 Jan 2026 14:09:48 +0000 Subject: [PATCH 20/29] old code --- rich/_cell_widths.py | 454 ---------------------------------- tools/make_terminal_widths.py | 89 ------- 2 files changed, 543 deletions(-) delete mode 100644 rich/_cell_widths.py delete mode 100644 tools/make_terminal_widths.py diff --git a/rich/_cell_widths.py b/rich/_cell_widths.py deleted file mode 100644 index 608ae3a75d..0000000000 --- a/rich/_cell_widths.py +++ /dev/null @@ -1,454 +0,0 @@ -# Auto generated by make_terminal_widths.py - -CELL_WIDTHS = [ - (0, 0, 0), - (1, 31, -1), - (127, 159, -1), - (173, 173, 0), - (768, 879, 0), - (1155, 1161, 0), - (1425, 1469, 0), - (1471, 1471, 0), - (1473, 1474, 0), - (1476, 1477, 0), - (1479, 1479, 0), - (1536, 1541, 0), - (1552, 1562, 0), - (1564, 1564, 0), - (1611, 1631, 0), - (1648, 1648, 0), - (1750, 1757, 0), - (1759, 1764, 0), - (1767, 1768, 0), - (1770, 1773, 0), - (1807, 1807, 0), - (1809, 1809, 0), - (1840, 1866, 0), - (1958, 1968, 0), - (2027, 2035, 0), - (2045, 2045, 0), - (2070, 2073, 0), - (2075, 2083, 0), - (2085, 2087, 0), - (2089, 2093, 0), - (2137, 2139, 0), - (2192, 2193, 0), - (2200, 2207, 0), - (2250, 2307, 0), - (2362, 2364, 0), - (2366, 2383, 0), - (2385, 2391, 0), - (2402, 2403, 0), - (2433, 2435, 0), - (2492, 2492, 0), - (2494, 2500, 0), - (2503, 2504, 0), - (2507, 2509, 0), - (2519, 2519, 0), - (2530, 2531, 0), - (2558, 2558, 0), - (2561, 2563, 0), - (2620, 2620, 0), - (2622, 2626, 0), - (2631, 2632, 0), - (2635, 2637, 0), - (2641, 2641, 0), - (2672, 2673, 0), - (2677, 2677, 0), - (2689, 2691, 0), - (2748, 2748, 0), - (2750, 2757, 0), - (2759, 2761, 0), - (2763, 2765, 0), - (2786, 2787, 0), - (2810, 2815, 0), - (2817, 2819, 0), - (2876, 2876, 0), - (2878, 2884, 0), - (2887, 2888, 0), - (2891, 2893, 0), - (2901, 2903, 0), - (2914, 2915, 0), - (2946, 2946, 0), - (3006, 3010, 0), - (3014, 3016, 0), - (3018, 3021, 0), - (3031, 3031, 0), - (3072, 3076, 0), - (3132, 3132, 0), - (3134, 3140, 0), - (3142, 3144, 0), - (3146, 3149, 0), - (3157, 3158, 0), - (3170, 3171, 0), - (3201, 3203, 0), - (3260, 3260, 0), - (3262, 3268, 0), - (3270, 3272, 0), - (3274, 3277, 0), - (3285, 3286, 0), - (3298, 3299, 0), - (3315, 3315, 0), - (3328, 3331, 0), - (3387, 3388, 0), - (3390, 3396, 0), - (3398, 3400, 0), - (3402, 3405, 0), - (3415, 3415, 0), - (3426, 3427, 0), - (3457, 3459, 0), - (3530, 3530, 0), - (3535, 3540, 0), - (3542, 3542, 0), - (3544, 3551, 0), - (3570, 3571, 0), - (3633, 3633, 0), - (3636, 3642, 0), - (3655, 3662, 0), - (3761, 3761, 0), - (3764, 3772, 0), - (3784, 3790, 0), - (3864, 3865, 0), - (3893, 3893, 0), - (3895, 3895, 0), - (3897, 3897, 0), - (3902, 3903, 0), - (3953, 3972, 0), - (3974, 3975, 0), - (3981, 3991, 0), - (3993, 4028, 0), - (4038, 4038, 0), - (4139, 4158, 0), - (4182, 4185, 0), - (4190, 4192, 0), - (4194, 4196, 0), - (4199, 4205, 0), - (4209, 4212, 0), - (4226, 4237, 0), - (4239, 4239, 0), - (4250, 4253, 0), - (4352, 4447, 2), - (4448, 4607, 0), - (4957, 4959, 0), - (5906, 5909, 0), - (5938, 5940, 0), - (5970, 5971, 0), - (6002, 6003, 0), - (6068, 6099, 0), - (6109, 6109, 0), - (6155, 6159, 0), - (6277, 6278, 0), - (6313, 6313, 0), - (6432, 6443, 0), - (6448, 6459, 0), - (6679, 6683, 0), - (6741, 6750, 0), - (6752, 6780, 0), - (6783, 6783, 0), - (6832, 6862, 0), - (6912, 6916, 0), - (6964, 6980, 0), - (7019, 7027, 0), - (7040, 7042, 0), - (7073, 7085, 0), - (7142, 7155, 0), - (7204, 7223, 0), - (7376, 7378, 0), - (7380, 7400, 0), - (7405, 7405, 0), - (7412, 7412, 0), - (7415, 7417, 0), - (7616, 7679, 0), - (8203, 8207, 0), - (8232, 8238, 0), - (8288, 8292, 0), - (8294, 8303, 0), - (8400, 8432, 0), - (8986, 8987, 2), - (9001, 9002, 2), - (9193, 9196, 2), - (9200, 9200, 2), - (9203, 9203, 2), - (9725, 9726, 2), - (9748, 9749, 2), - (9800, 9811, 2), - (9855, 9855, 2), - (9875, 9875, 2), - (9889, 9889, 2), - (9898, 9899, 2), - (9917, 9918, 2), - (9924, 9925, 2), - (9934, 9934, 2), - (9940, 9940, 2), - (9962, 9962, 2), - (9970, 9971, 2), - (9973, 9973, 2), - (9978, 9978, 2), - (9981, 9981, 2), - (9989, 9989, 2), - (9994, 9995, 2), - (10024, 10024, 2), - (10060, 10060, 2), - (10062, 10062, 2), - (10067, 10069, 2), - (10071, 10071, 2), - (10133, 10135, 2), - (10160, 10160, 2), - (10175, 10175, 2), - (11035, 11036, 2), - (11088, 11088, 2), - (11093, 11093, 2), - (11503, 11505, 0), - (11647, 11647, 0), - (11744, 11775, 0), - (11904, 11929, 2), - (11931, 12019, 2), - (12032, 12245, 2), - (12272, 12329, 2), - (12330, 12335, 0), - (12336, 12350, 2), - (12353, 12438, 2), - (12441, 12442, 0), - (12443, 12543, 2), - (12549, 12591, 2), - (12593, 12686, 2), - (12688, 12771, 2), - (12783, 12830, 2), - (12832, 12871, 2), - (12880, 19903, 2), - (19968, 42124, 2), - (42128, 42182, 2), - (42607, 42610, 0), - (42612, 42621, 0), - (42654, 42655, 0), - (42736, 42737, 0), - (43010, 43010, 0), - (43014, 43014, 0), - (43019, 43019, 0), - (43043, 43047, 0), - (43052, 43052, 0), - (43136, 43137, 0), - (43188, 43205, 0), - (43232, 43249, 0), - (43263, 43263, 0), - (43302, 43309, 0), - (43335, 43347, 0), - (43360, 43388, 2), - (43392, 43395, 0), - (43443, 43456, 0), - (43493, 43493, 0), - (43561, 43574, 0), - (43587, 43587, 0), - (43596, 43597, 0), - (43643, 43645, 0), - (43696, 43696, 0), - (43698, 43700, 0), - (43703, 43704, 0), - (43710, 43711, 0), - (43713, 43713, 0), - (43755, 43759, 0), - (43765, 43766, 0), - (44003, 44010, 0), - (44012, 44013, 0), - (44032, 55203, 2), - (55216, 55295, 0), - (63744, 64255, 2), - (64286, 64286, 0), - (65024, 65039, 0), - (65040, 65049, 2), - (65056, 65071, 0), - (65072, 65106, 2), - (65108, 65126, 2), - (65128, 65131, 2), - (65279, 65279, 0), - (65281, 65376, 2), - (65504, 65510, 2), - (65529, 65531, 0), - (66045, 66045, 0), - (66272, 66272, 0), - (66422, 66426, 0), - (68097, 68099, 0), - (68101, 68102, 0), - (68108, 68111, 0), - (68152, 68154, 0), - (68159, 68159, 0), - (68325, 68326, 0), - (68900, 68903, 0), - (69291, 69292, 0), - (69373, 69375, 0), - (69446, 69456, 0), - (69506, 69509, 0), - (69632, 69634, 0), - (69688, 69702, 0), - (69744, 69744, 0), - (69747, 69748, 0), - (69759, 69762, 0), - (69808, 69818, 0), - (69821, 69821, 0), - (69826, 69826, 0), - (69837, 69837, 0), - (69888, 69890, 0), - (69927, 69940, 0), - (69957, 69958, 0), - (70003, 70003, 0), - (70016, 70018, 0), - (70067, 70080, 0), - (70089, 70092, 0), - (70094, 70095, 0), - (70188, 70199, 0), - (70206, 70206, 0), - (70209, 70209, 0), - (70367, 70378, 0), - (70400, 70403, 0), - (70459, 70460, 0), - (70462, 70468, 0), - (70471, 70472, 0), - (70475, 70477, 0), - (70487, 70487, 0), - (70498, 70499, 0), - (70502, 70508, 0), - (70512, 70516, 0), - (70709, 70726, 0), - (70750, 70750, 0), - (70832, 70851, 0), - (71087, 71093, 0), - (71096, 71104, 0), - (71132, 71133, 0), - (71216, 71232, 0), - (71339, 71351, 0), - (71453, 71467, 0), - (71724, 71738, 0), - (71984, 71989, 0), - (71991, 71992, 0), - (71995, 71998, 0), - (72000, 72000, 0), - (72002, 72003, 0), - (72145, 72151, 0), - (72154, 72160, 0), - (72164, 72164, 0), - (72193, 72202, 0), - (72243, 72249, 0), - (72251, 72254, 0), - (72263, 72263, 0), - (72273, 72283, 0), - (72330, 72345, 0), - (72751, 72758, 0), - (72760, 72767, 0), - (72850, 72871, 0), - (72873, 72886, 0), - (73009, 73014, 0), - (73018, 73018, 0), - (73020, 73021, 0), - (73023, 73029, 0), - (73031, 73031, 0), - (73098, 73102, 0), - (73104, 73105, 0), - (73107, 73111, 0), - (73459, 73462, 0), - (73472, 73473, 0), - (73475, 73475, 0), - (73524, 73530, 0), - (73534, 73538, 0), - (78896, 78912, 0), - (78919, 78933, 0), - (92912, 92916, 0), - (92976, 92982, 0), - (94031, 94031, 0), - (94033, 94087, 0), - (94095, 94098, 0), - (94176, 94179, 2), - (94180, 94180, 0), - (94192, 94193, 0), - (94208, 100343, 2), - (100352, 101589, 2), - (101632, 101640, 2), - (110576, 110579, 2), - (110581, 110587, 2), - (110589, 110590, 2), - (110592, 110882, 2), - (110898, 110898, 2), - (110928, 110930, 2), - (110933, 110933, 2), - (110948, 110951, 2), - (110960, 111355, 2), - (113821, 113822, 0), - (113824, 113827, 0), - (118528, 118573, 0), - (118576, 118598, 0), - (119141, 119145, 0), - (119149, 119170, 0), - (119173, 119179, 0), - (119210, 119213, 0), - (119362, 119364, 0), - (121344, 121398, 0), - (121403, 121452, 0), - (121461, 121461, 0), - (121476, 121476, 0), - (121499, 121503, 0), - (121505, 121519, 0), - (122880, 122886, 0), - (122888, 122904, 0), - (122907, 122913, 0), - (122915, 122916, 0), - (122918, 122922, 0), - (123023, 123023, 0), - (123184, 123190, 0), - (123566, 123566, 0), - (123628, 123631, 0), - (124140, 124143, 0), - (125136, 125142, 0), - (125252, 125258, 0), - (126980, 126980, 2), - (127183, 127183, 2), - (127374, 127374, 2), - (127377, 127386, 2), - (127488, 127490, 2), - (127504, 127547, 2), - (127552, 127560, 2), - (127568, 127569, 2), - (127584, 127589, 2), - (127744, 127776, 2), - (127789, 127797, 2), - (127799, 127868, 2), - (127870, 127891, 2), - (127904, 127946, 2), - (127951, 127955, 2), - (127968, 127984, 2), - (127988, 127988, 2), - (127992, 127994, 2), - (127995, 127999, 0), - (128000, 128062, 2), - (128064, 128064, 2), - (128066, 128252, 2), - (128255, 128317, 2), - (128331, 128334, 2), - (128336, 128359, 2), - (128378, 128378, 2), - (128405, 128406, 2), - (128420, 128420, 2), - (128507, 128591, 2), - (128640, 128709, 2), - (128716, 128716, 2), - (128720, 128722, 2), - (128725, 128727, 2), - (128732, 128735, 2), - (128747, 128748, 2), - (128756, 128764, 2), - (128992, 129003, 2), - (129008, 129008, 2), - (129292, 129338, 2), - (129340, 129349, 2), - (129351, 129535, 2), - (129648, 129660, 2), - (129664, 129672, 2), - (129680, 129725, 2), - (129727, 129733, 2), - (129742, 129755, 2), - (129760, 129768, 2), - (129776, 129784, 2), - (131072, 196605, 2), - (196608, 262141, 2), - (917505, 917505, 0), - (917536, 917631, 0), - (917760, 917999, 0), -] diff --git a/tools/make_terminal_widths.py b/tools/make_terminal_widths.py deleted file mode 100644 index 1e55683464..0000000000 --- a/tools/make_terminal_widths.py +++ /dev/null @@ -1,89 +0,0 @@ -import subprocess -from typing import List, Tuple -import sys - -from rich.progress import Progress - -from wcwidth import wcwidth - - -progress = Progress() - - -def make_widths_table() -> List[Tuple[int, int, int]]: - table: List[Tuple[int, int, int]] = [] - append = table.append - - make_table_task = progress.add_task("Calculating table...") - - widths = ( - (codepoint, wcwidth(chr(codepoint))) - for codepoint in range(0, sys.maxunicode + 1) - ) - - _widths = [(codepoint, width) for codepoint, width in widths if width != 1] - iter_widths = iter(_widths) - - endpoint, group_cell_size = next(iter_widths) - start_codepoint = end_codepoint = endpoint - for codepoint, cell_size in progress.track( - iter_widths, task_id=make_table_task, total=len(_widths) - 1 - ): - if cell_size != group_cell_size or codepoint != end_codepoint + 1: - append((start_codepoint, end_codepoint, group_cell_size)) - start_codepoint = end_codepoint = codepoint - group_cell_size = cell_size - else: - end_codepoint = codepoint - append((start_codepoint, end_codepoint, group_cell_size)) - return table - - -def get_cell_size(table: List[Tuple[int, int, int]], character: str) -> int: - codepoint = ord(character) - lower_bound = 0 - upper_bound = len(table) - 1 - index = (lower_bound + upper_bound) // 2 - while True: - start, end, width = table[index] - if codepoint < start: - upper_bound = index - 1 - elif codepoint > end: - lower_bound = index + 1 - else: - return width - if upper_bound < lower_bound: - break - index = (lower_bound + upper_bound) // 2 - return 1 - - -def test(widths_table): - for codepoint in progress.track( - range(0, sys.maxunicode + 1), description="Testing..." - ): - character = chr(codepoint) - width1 = get_cell_size(widths_table, character) - width2 = wcwidth(character) - if width1 != width2: - print(f"{width1} != {width2}") - break - - -def run(): - with progress: - widths_table = make_widths_table() - test(widths_table) - table_file = f"""# Auto generated by make_terminal_widths.py - -CELL_WIDTHS = {widths_table!r} - -""" - with open("../rich/_cell_widths.py", "wt") as fh: - fh.write(table_file) - - subprocess.run("black ../rich/_cell_widths.py", shell=True) - - -if __name__ == "__main__": - run() From 079a6a5ec979cd28f75f7fc0940a19a37e81c512 Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Thu, 22 Jan 2026 14:24:55 +0000 Subject: [PATCH 21/29] optimizations --- rich/cells.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/rich/cells.py b/rich/cells.py index d3eda9c0b7..f5272ca5e5 100644 --- a/rich/cells.py +++ b/rich/cells.py @@ -116,26 +116,24 @@ def cell_len(text: str, unicode_version: str = "auto") -> int: ) cell_table = load_cell_table(unicode_version) - codepoint_count = len(text) total_width = 0 - index = 0 last_measured_character: str | None = None SPECIAL = {"\u200d", "\ufe0f"} - while index < codepoint_count: - if (character := text[index]) in SPECIAL: + iter_characters = iter(text) + + for character in iter_characters: + if character in SPECIAL: if character == "\u200d": - index += 2 + next(iter_characters) elif last_measured_character: total_width += last_measured_character in cell_table.narrow_to_wide last_measured_character = None - index += 1 else: if character_width := get_character_cell_size(character, unicode_version): last_measured_character = character total_width += character_width - index += 1 return total_width From 9904f141ccdb59f6e655c5c9f0050294fd400c39 Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Thu, 22 Jan 2026 14:34:32 +0000 Subject: [PATCH 22/29] restore caching behavior --- rich/cells.py | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/rich/cells.py b/rich/cells.py index f5272ca5e5..2b21a341f5 100644 --- a/rich/cells.py +++ b/rich/cells.py @@ -76,7 +76,7 @@ def get_character_cell_size(character: str, unicode_version: str = "auto") -> in @lru_cache(4096) -def cached_cell_len(text: str) -> int: +def cached_cell_len(text: str, unicode_version: str = "auto") -> int: """Get the number of cells required to display text. This method always caches, which may use up a lot of memory. It is recommended to use @@ -84,18 +84,32 @@ def cached_cell_len(text: str) -> int: Args: text (str): Text to display. + unicode_version: Unicode version, `"auto"` to auto detect, `"latest"` for the latest unicode version. Returns: int: Get the number of cells required to display text. """ - if _is_single_cell_widths(text): - return len(text) - return sum(map(get_character_cell_size, text)) + return _cell_len(text, unicode_version) def cell_len(text: str, unicode_version: str = "auto") -> int: """Get the cell length of a string (length as it appears in the terminal). + Args: + text: String to measure. + unicode_version: Unicode version, `"auto"` to auto detect, `"latest"` for the latest unicode version. + + Returns: + Length of string in terminal cells. + """ + if len(text) < 512: + return cached_cell_len(text, unicode_version) + return _cell_len(text, unicode_version) + + +def _cell_len(text: str, unicode_version: str) -> int: + """Get the cell length of a string (length as it appears in the terminal). + Args: text: String to measure. unicode_version: Unicode version, `"auto"` to auto detect, `"latest"` for the latest unicode version. From 3b533b0a24b513f470911207a01e21654c739bd7 Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Thu, 22 Jan 2026 14:40:56 +0000 Subject: [PATCH 23/29] changelog --- CHANGELOG.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e53205666f..86ef2e2e4a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,15 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [14.3.0] + +### Added + +- Added support for some multi-codepopint glpyhs (will fix alignment issues for these characters) +- Added support for `UNICODE_VERSION` environment variable + + + ## [14.2.0] - 2025-10-09 ### Changed @@ -2147,6 +2156,7 @@ Major version bump for a breaking change to `Text.stylize signature`, which corr - First official release, API still to be stabilized +[14.2.0]: https://github.com/textualize/rich/compare/v14.2.0...v14.3.0 [14.1.0]: https://github.com/textualize/rich/compare/v14.1.0...v14.2.0 [14.0.0]: https://github.com/textualize/rich/compare/v14.0.0...v14.1.0 [14.0.0]: https://github.com/textualize/rich/compare/v13.9.4...v14.0.0 From 16c55757b1f7721f075c9abd5fba8c95a98c1f48 Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Thu, 22 Jan 2026 14:42:21 +0000 Subject: [PATCH 24/29] changelog --- CHANGELOG.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 86ef2e2e4a..e6648b0822 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,10 +9,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added -- Added support for some multi-codepopint glpyhs (will fix alignment issues for these characters) -- Added support for `UNICODE_VERSION` environment variable +- Added support for some multi-codepopint glpyhs (will fix alignment issues for these characters) https://github.com/Textualize/rich/pull/3930 +- Added support for `UNICODE_VERSION` environment variable https://github.com/Textualize/rich/pull/3930 +### Changed +- `cells.cell_len` now has a `unicode_version` parameter (that you probably should never change) https://github.com/Textualize/rich/pull/3930 ## [14.2.0] - 2025-10-09 From 2836d725b734bca429bf1dda738d3ba74aa5078a Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Thu, 22 Jan 2026 14:55:51 +0000 Subject: [PATCH 25/29] Update rich/_unicode_data/__init__.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- rich/_unicode_data/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rich/_unicode_data/__init__.py b/rich/_unicode_data/__init__.py index 1689215c0f..ce54baef4e 100644 --- a/rich/_unicode_data/__init__.py +++ b/rich/_unicode_data/__init__.py @@ -69,7 +69,7 @@ def load(unicode_version: str = "auto") -> CellTable: _parse_version(unicode_version) except ValueError: # The environment variable is invalid - # Fallback to using the latest version seems s + # Fallback to using the latest version seems reasonable unicode_version = "latest" if unicode_version == "latest": From 199a839fbd22bc06bfdeae92a64ed792b1ef02e4 Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Thu, 22 Jan 2026 14:56:01 +0000 Subject: [PATCH 26/29] Update tests/test_unicode_data.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- tests/test_unicode_data.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_unicode_data.py b/tests/test_unicode_data.py index 4531f2ed1a..88fc9390fd 100644 --- a/tests/test_unicode_data.py +++ b/tests/test_unicode_data.py @@ -6,7 +6,7 @@ def test_load(): - """Test all verions may be loaded.""" + """Test all versions may be loaded.""" for version in VERSIONS: load(version) From 49647d2e4e51e20a5bb8012c5e2d29b0b5081b79 Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Thu, 22 Jan 2026 15:05:28 +0000 Subject: [PATCH 27/29] typp --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e6648b0822..13ef9279ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added -- Added support for some multi-codepopint glpyhs (will fix alignment issues for these characters) https://github.com/Textualize/rich/pull/3930 +- Added support for some multi-codepopint glyphs (will fix alignment issues for these characters) https://github.com/Textualize/rich/pull/3930 - Added support for `UNICODE_VERSION` environment variable https://github.com/Textualize/rich/pull/3930 ### Changed From 219b4f2ee7c6105d73d7c4ccfe2aaf1025278f6c Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Thu, 22 Jan 2026 15:15:20 +0000 Subject: [PATCH 28/29] credit --- rich/_unicode_data/unicode10-0-0.py | 379 ++++++++++++++-------------- rich/_unicode_data/unicode11-0-0.py | 379 ++++++++++++++-------------- rich/_unicode_data/unicode12-0-0.py | 379 ++++++++++++++-------------- rich/_unicode_data/unicode12-1-0.py | 379 ++++++++++++++-------------- rich/_unicode_data/unicode13-0-0.py | 379 ++++++++++++++-------------- rich/_unicode_data/unicode14-0-0.py | 379 ++++++++++++++-------------- rich/_unicode_data/unicode15-0-0.py | 379 ++++++++++++++-------------- rich/_unicode_data/unicode15-1-0.py | 379 ++++++++++++++-------------- rich/_unicode_data/unicode16-0-0.py | 379 ++++++++++++++-------------- rich/_unicode_data/unicode17-0-0.py | 379 ++++++++++++++-------------- rich/_unicode_data/unicode4-1-0.py | 379 ++++++++++++++-------------- rich/_unicode_data/unicode5-0-0.py | 379 ++++++++++++++-------------- rich/_unicode_data/unicode5-1-0.py | 379 ++++++++++++++-------------- rich/_unicode_data/unicode5-2-0.py | 379 ++++++++++++++-------------- rich/_unicode_data/unicode6-0-0.py | 379 ++++++++++++++-------------- rich/_unicode_data/unicode6-1-0.py | 379 ++++++++++++++-------------- rich/_unicode_data/unicode6-2-0.py | 379 ++++++++++++++-------------- rich/_unicode_data/unicode6-3-0.py | 379 ++++++++++++++-------------- rich/_unicode_data/unicode7-0-0.py | 379 ++++++++++++++-------------- rich/_unicode_data/unicode8-0-0.py | 379 ++++++++++++++-------------- rich/_unicode_data/unicode9-0-0.py | 379 ++++++++++++++-------------- tools/make_width_tables.py | 3 + 22 files changed, 3993 insertions(+), 3969 deletions(-) diff --git a/rich/_unicode_data/unicode10-0-0.py b/rich/_unicode_data/unicode10-0-0.py index a09d64bcb5..f7498f5263 100644 --- a/rich/_unicode_data/unicode10-0-0.py +++ b/rich/_unicode_data/unicode10-0-0.py @@ -1,4 +1,5 @@ # Auto generated by tools/make_width_tables.py +# Data from wcwidth project (https://github.com/jquast/wcwidth) from rich.cells import CellTable @@ -394,219 +395,219 @@ ], narrow_to_wide=frozenset( { - "๐Ÿ—", - "๐Ÿ“ฝ", - "๐Ÿ—’", - "๐Ÿ—œ", - "โ™€", - "๐ŸŽŸ", - "๐Ÿ›ฃ", - "โญ", - "โ„น", - "โ˜‚", - "โ˜บ", - "๐ŸŽ™", - "โธ", - "โžก", - "โ˜ƒ", - "๐Ÿ–ฒ", - "โ˜", - "๐Ÿ› ", - "โœณ", - "โ–ถ", - "โš ", - "๐Ÿ›ฐ", - "โ›ˆ", - "6", - "๐Ÿ…ฟ", - "๐ŸŽ–", - "โ›‘", - "๐Ÿ›ฉ", + "2", + "โ†ช", + "โ˜", + "๐ŸŒง", + "๐Ÿ›ข", + "โ‰", + "โ™จ", + "โœ”", + "โ˜Ž", + "โ˜ฃ", + "๐Ÿ›", + "๐Ÿ…พ", + "๐Ÿ•ต", + "๐Ÿ—ฃ", + "โ™ฃ", + "๐Ÿ—ž", + "๐Ÿ…ฑ", "โ˜ช", + "๐Ÿ•", + "๐Ÿž", + "๐Ÿ›ฐ", + "0", + "๐Ÿ›ณ", "๐Ÿ•ณ", - "9", + "โ™ ", + "5", + "โŒจ", + "๐Ÿ›‹", + "๐Ÿ—’", + "โœณ", "๐Ÿท", - "โ˜€", + "๐ŸŒฉ", + "โšง", + "๐Ÿ", + "๐Ÿ•‰", + "โ˜ฆ", + "๐Ÿ‘", + "๐Ÿ›", + "๐Ÿ—บ", + "๐ŸŽ—", + "๐Ÿ…ฟ", + "โ™‚", + "โš›", + "๐Ÿ›ก", + "โฎ", + "๐Ÿณ", + "๐Ÿ—ƒ", + "๐Ÿ—", + "๐Ÿฟ", + "โ—ป", + "๐Ÿ™", + "๐Ÿ›ฅ", + "6", + "โฑ", + "โ›ฐ", + "๐ŸŽ", + "๐Ÿ•ฏ", + "๐Ÿต", + "๐Ÿ–", + "โœ–", + "๐Ÿ›Ž", + "โ˜‚", + "#", + "โฃ", + "โ™ป", + "๐Ÿ—„", + "3", + "โญ", "โ˜ธ", - "โ™จ", - "โฌ…", - "โ‡", - "๐Ÿ—จ", + "โ", + "โ›ธ", + "๐Ÿ–", + "โธ", "โ™ฆ", - "#", - "โœ", - "โน", - "โ™Ÿ", - "๐Ÿ•‰", - "๐Ÿ—“", - "๐ŸŒถ", - "โบ", - "โ˜˜", - "โ€ผ", - "๐ŸŒฉ", + "โ‡", + "โฏ", + "โ›น", + "โ˜ ", + "๐Ÿ”", + "๐Ÿ•ธ", + "โ†–", "๐Ÿ—‘", + "๐ŸŒก", + "โœˆ", + "โš’", + "7", + "โœ", + "๐Ÿ•ฐ", + "๐ŸŒซ", + "โ˜ฎ", "โ˜ฏ", - "๐Ÿ•ด", + "โฒ", + "๐Ÿ–", "โœด", - "โ˜ข", - "๐Ÿ–ผ", - "๐ŸŒซ", - "๐Ÿ•ต", - "โšง", + "โšฐ", "๐Ÿฝ", - "๐Ÿ—„", - "โœ”", + "โšฑ", + "๐Ÿœ", "๐Ÿ—ก", - "โฒ", - "๐ŸŒก", - "๐Ÿ–‹", - "๐Ÿ›ณ", - "๐Ÿ›‹", - "โ˜", - "๐Ÿ‘", + "๐Ÿ•ท", + "โ™€", + "โ„น", + "๐ŸŒจ", + "โšœ", + "โ˜„", + "โ˜‘", + "โš ", + "โœ", + "9", "โ“‚", - "โ†•", - "๐Ÿ›", - "โฏ", - "7", - "๐Ÿ–", - "โฑ", - "*", - "๐Ÿ—", - "โœ", - "๐Ÿ–Œ", - "โ†–", - "โ›น", - "๐Ÿ™", - "โ„", + "โ†ฉ", + "โ˜น", + "โ˜บ", + "4", + "โ—ผ", + "โš”", + "โ™Ÿ", + "โœ‰", + "โคต", + "๐ŸŽ–", + "โค", "๐ŸŽš", - "๐Ÿš", - "โ‰", - "๐Ÿ”", - "๐Ÿฟ", - "๐Ÿ•", - "โ„ข", - "1", - "๐Ÿ›ค", - "๐Ÿ…ฑ", - "๐Ÿ–Š", - "โšฑ", - "โ›ธ", - "๐Ÿณ", - "๐Ÿ›", - "โฌ‡", - "๐Ÿ…ฐ", - "โ›ฉ", - "๐Ÿ—ณ", - "โ†™", - "๐Ÿ—‚", - "โ›ด", + "๐Ÿ•Š", + "๐Ÿ—ฏ", "๐Ÿ‹", + "๐Ÿ—ณ", + "โ†•", + "โ„", + "โœ‚", + "โžก", + "๐Ÿ˜", + "โ›ฑ", + "โ™ฅ", + "๐Ÿ–‹", "๐ŸŒฆ", - "ยฎ", - "๐Ÿ—ž", - "โ™ ", + "โœ’", + "๐Ÿ“ฝ", + "โš–", + "๐Ÿ–Œ", + "โ˜€", + "โ›ท", + "โ†™", + "โ€ผ", + "๐Ÿ•ด", + "โ†”", + "โ›", "โคด", - "โœˆ", - "๐ŸŽž", "โš•", - "โ›", - "๐Ÿ•ธ", - "๐Ÿ›ฅ", - "โšœ", - "โ˜ฎ", - "๐Ÿ—ฏ", - "โœก", - "โฎ", - "โšฐ", - "3", - "โ–ซ", + "โน", + "๐Ÿ–ฑ", + "โฌ…", + "๐Ÿ›ค", + "๐Ÿ› ", + "๐Ÿ›ฉ", + "๐ŸŒช", "๐Ÿ", - "โœ", - "โ†˜", - "โ†ช", - "โš›", - "๐Ÿ–‡", - "โœ–", - "๐Ÿ›ข", + "โ–ช", + "โ›ฉ", + "๐Ÿ•ถ", + "๐Ÿ›ฃ", + "๐Ÿ–ฒ", + "๐Ÿ–ฅ", + "โš—", + "ยฉ", + "โ˜ข", + "โ†—", + "โœŒ", + "โ„ข", "๐ŸŽ›", + "โœ", + "โ›‘", + "๐ŸŽ™", + "1", + "โฌ‡", + "๐Ÿ—“", + "โ›ˆ", + "โœก", + "๐Ÿ–Š", + "๐Ÿ–ผ", + "๐Ÿ›", + "๐ŸŒฅ", + "๐ŸŒถ", + "๐Ÿ—", + "๐Ÿ–จ", + "โ™พ", + "โ›ด", + "โ˜", "8", - "โ†—", - "๐Ÿ›ก", - "โ˜ฃ", - "โ›ฐ", - "โฃ", - "โœ‚", - "โ˜‘", + "โ—€", + "๐ŸŽŸ", + "๐Ÿ•น", + "๐Ÿ—จ", + "ยฎ", "โš™", - "โคต", - "โ™ป", - "๐ŸŒช", - "๐Ÿ–", - "๐Ÿ•ฏ", - "โœ‰", - "4", - "โœ’", + "๐ŸŒ", + "๐Ÿ—œ", "๐ŸŒค", + "โบ", + "โ˜˜", + "๐Ÿ…ฐ", "๐ŸŸ", - "โ™‚", - "๐Ÿ•ฐ", - "๐Ÿ›Ž", - "๐ŸŽ—", - "๐Ÿ•น", - "5", - "โš’", - "โค", - "๐Ÿ–", - "โš”", - "โš–", - "๐Ÿ–ฑ", - "๐Ÿ•Š", - "โ†”", - "2", - "๐Ÿ•ท", - "๐Ÿ…พ", - "โ˜น", - "๐Ÿ–ฅ", - "โ›ท", - "๐Ÿœ", - "โ˜Ž", - "๐ŸŒ", - "โ™พ", - "๐Ÿ›", - "โŒจ", - "๐ŸŽ", - "๐Ÿต", - "๐Ÿ–จ", - "โ™ฅ", - "โ—ป", - "๐ŸŒฅ", - "โ˜„", - "โ—ผ", - "โ›ฑ", - "โœŒ", - "โ†ฉ", - "ยฉ", - "โ", - "๐Ÿ", - "๐ŸŒง", - "โ˜ ", - "โฌ†", - "๐Ÿ˜", - "๐Ÿ—ƒ", - "โ–ช", - "โ˜ฆ", - "0", - "๐ŸŒจ", - "๐Ÿ—ฃ", - "๐Ÿ—บ", - "๐Ÿž", - "๐Ÿ•ถ", + "โ–ถ", + "*", + "๐Ÿ–‡", "๐ŸŒฌ", - "โ™ฃ", - "โš—", - "โ—€", + "๐ŸŽž", + "๐Ÿ—‚", + "โ–ซ", + "โฌ†", + "๐Ÿš", + "โ†˜", "โ›“", + "โ˜ƒ", } ), ) diff --git a/rich/_unicode_data/unicode11-0-0.py b/rich/_unicode_data/unicode11-0-0.py index bc03c12f0b..07b3fdd0fe 100644 --- a/rich/_unicode_data/unicode11-0-0.py +++ b/rich/_unicode_data/unicode11-0-0.py @@ -1,4 +1,5 @@ # Auto generated by tools/make_width_tables.py +# Data from wcwidth project (https://github.com/jquast/wcwidth) from rich.cells import CellTable @@ -409,219 +410,219 @@ ], narrow_to_wide=frozenset( { - "๐Ÿ—", - "๐Ÿ“ฝ", - "๐Ÿ—’", - "๐Ÿ—œ", - "โ™€", - "๐ŸŽŸ", - "๐Ÿ›ฃ", - "โญ", - "โ„น", - "โ˜‚", - "โ˜บ", - "๐ŸŽ™", - "โธ", - "โžก", - "โ˜ƒ", - "๐Ÿ–ฒ", - "โ˜", - "๐Ÿ› ", - "โœณ", - "โ–ถ", - "โš ", - "๐Ÿ›ฐ", - "โ›ˆ", - "6", - "๐Ÿ…ฟ", - "๐ŸŽ–", - "โ›‘", - "๐Ÿ›ฉ", + "2", + "โ†ช", + "โ˜", + "๐ŸŒง", + "๐Ÿ›ข", + "โ‰", + "โ™จ", + "โœ”", + "โ˜Ž", + "โ˜ฃ", + "๐Ÿ›", + "๐Ÿ…พ", + "๐Ÿ•ต", + "๐Ÿ—ฃ", + "โ™ฃ", + "๐Ÿ—ž", + "๐Ÿ…ฑ", "โ˜ช", + "๐Ÿ•", + "๐Ÿž", + "๐Ÿ›ฐ", + "0", + "๐Ÿ›ณ", "๐Ÿ•ณ", - "9", + "โ™ ", + "5", + "โŒจ", + "๐Ÿ›‹", + "๐Ÿ—’", + "โœณ", "๐Ÿท", - "โ˜€", + "๐ŸŒฉ", + "โšง", + "๐Ÿ", + "๐Ÿ•‰", + "โ˜ฆ", + "๐Ÿ‘", + "๐Ÿ›", + "๐Ÿ—บ", + "๐ŸŽ—", + "๐Ÿ…ฟ", + "โ™‚", + "โš›", + "๐Ÿ›ก", + "โฎ", + "๐Ÿณ", + "๐Ÿ—ƒ", + "๐Ÿ—", + "๐Ÿฟ", + "โ—ป", + "๐Ÿ™", + "๐Ÿ›ฅ", + "6", + "โฑ", + "โ›ฐ", + "๐ŸŽ", + "๐Ÿ•ฏ", + "๐Ÿต", + "๐Ÿ–", + "โœ–", + "๐Ÿ›Ž", + "โ˜‚", + "#", + "โฃ", + "โ™ป", + "๐Ÿ—„", + "3", + "โญ", "โ˜ธ", - "โ™จ", - "โฌ…", - "โ‡", - "๐Ÿ—จ", + "โ", + "โ›ธ", + "๐Ÿ–", + "โธ", "โ™ฆ", - "#", - "โœ", - "โน", - "โ™Ÿ", - "๐Ÿ•‰", - "๐Ÿ—“", - "๐ŸŒถ", - "โบ", - "โ˜˜", - "โ€ผ", - "๐ŸŒฉ", + "โ‡", + "โฏ", + "โ›น", + "โ˜ ", + "๐Ÿ”", + "๐Ÿ•ธ", + "โ†–", "๐Ÿ—‘", + "๐ŸŒก", + "โœˆ", + "โš’", + "7", + "โœ", + "๐Ÿ•ฐ", + "๐ŸŒซ", + "โ˜ฎ", "โ˜ฏ", - "๐Ÿ•ด", + "โฒ", + "๐Ÿ–", "โœด", - "โ˜ข", - "๐Ÿ–ผ", - "๐ŸŒซ", - "๐Ÿ•ต", - "โšง", + "โšฐ", "๐Ÿฝ", - "๐Ÿ—„", - "โœ”", + "โšฑ", + "๐Ÿœ", "๐Ÿ—ก", - "โฒ", - "๐ŸŒก", - "๐Ÿ–‹", - "๐Ÿ›ณ", - "๐Ÿ›‹", - "โ˜", - "๐Ÿ‘", + "๐Ÿ•ท", + "โ™€", + "โ„น", + "๐ŸŒจ", + "โšœ", + "โ˜„", + "โ˜‘", + "โš ", + "โœ", + "9", "โ“‚", - "โ†•", - "๐Ÿ›", - "โฏ", - "7", - "๐Ÿ–", - "โฑ", - "*", - "๐Ÿ—", - "โœ", - "๐Ÿ–Œ", - "โ†–", - "โ›น", - "๐Ÿ™", - "โ„", + "โ†ฉ", + "โ˜น", + "โ˜บ", + "4", + "โ—ผ", + "โš”", + "โ™Ÿ", + "โœ‰", + "โคต", + "๐ŸŽ–", + "โค", "๐ŸŽš", - "๐Ÿš", - "โ‰", - "๐Ÿ”", - "๐Ÿฟ", - "๐Ÿ•", - "โ„ข", - "1", - "๐Ÿ›ค", - "๐Ÿ…ฑ", - "๐Ÿ–Š", - "โšฑ", - "โ›ธ", - "๐Ÿณ", - "๐Ÿ›", - "โฌ‡", - "๐Ÿ…ฐ", - "โ›ฉ", - "๐Ÿ—ณ", - "โ†™", - "๐Ÿ—‚", - "โ›ด", + "๐Ÿ•Š", + "๐Ÿ—ฏ", "๐Ÿ‹", + "๐Ÿ—ณ", + "โ†•", + "โ„", + "โœ‚", + "โžก", + "๐Ÿ˜", + "โ›ฑ", + "โ™ฅ", + "๐Ÿ–‹", "๐ŸŒฆ", - "ยฎ", - "๐Ÿ—ž", - "โ™ ", + "โœ’", + "๐Ÿ“ฝ", + "โš–", + "๐Ÿ–Œ", + "โ˜€", + "โ›ท", + "โ†™", + "โ€ผ", + "๐Ÿ•ด", + "โ†”", + "โ›", "โคด", - "โœˆ", - "๐ŸŽž", "โš•", - "โ›", - "๐Ÿ•ธ", - "๐Ÿ›ฅ", - "โšœ", - "โ˜ฎ", - "๐Ÿ—ฏ", - "โœก", - "โฎ", - "โšฐ", - "3", - "โ–ซ", + "โน", + "๐Ÿ–ฑ", + "โฌ…", + "๐Ÿ›ค", + "๐Ÿ› ", + "๐Ÿ›ฉ", + "๐ŸŒช", "๐Ÿ", - "โœ", - "โ†˜", - "โ†ช", - "โš›", - "๐Ÿ–‡", - "โœ–", - "๐Ÿ›ข", + "โ–ช", + "โ›ฉ", + "๐Ÿ•ถ", + "๐Ÿ›ฃ", + "๐Ÿ–ฒ", + "๐Ÿ–ฅ", + "โš—", + "ยฉ", + "โ˜ข", + "โ†—", + "โœŒ", + "โ„ข", "๐ŸŽ›", + "โœ", + "โ›‘", + "๐ŸŽ™", + "1", + "โฌ‡", + "๐Ÿ—“", + "โ›ˆ", + "โœก", + "๐Ÿ–Š", + "๐Ÿ–ผ", + "๐Ÿ›", + "๐ŸŒฅ", + "๐ŸŒถ", + "๐Ÿ—", + "๐Ÿ–จ", + "โ™พ", + "โ›ด", + "โ˜", "8", - "โ†—", - "๐Ÿ›ก", - "โ˜ฃ", - "โ›ฐ", - "โฃ", - "โœ‚", - "โ˜‘", + "โ—€", + "๐ŸŽŸ", + "๐Ÿ•น", + "๐Ÿ—จ", + "ยฎ", "โš™", - "โคต", - "โ™ป", - "๐ŸŒช", - "๐Ÿ–", - "๐Ÿ•ฏ", - "โœ‰", - "4", - "โœ’", + "๐ŸŒ", + "๐Ÿ—œ", "๐ŸŒค", + "โบ", + "โ˜˜", + "๐Ÿ…ฐ", "๐ŸŸ", - "โ™‚", - "๐Ÿ•ฐ", - "๐Ÿ›Ž", - "๐ŸŽ—", - "๐Ÿ•น", - "5", - "โš’", - "โค", - "๐Ÿ–", - "โš”", - "โš–", - "๐Ÿ–ฑ", - "๐Ÿ•Š", - "โ†”", - "2", - "๐Ÿ•ท", - "๐Ÿ…พ", - "โ˜น", - "๐Ÿ–ฅ", - "โ›ท", - "๐Ÿœ", - "โ˜Ž", - "๐ŸŒ", - "โ™พ", - "๐Ÿ›", - "โŒจ", - "๐ŸŽ", - "๐Ÿต", - "๐Ÿ–จ", - "โ™ฅ", - "โ—ป", - "๐ŸŒฅ", - "โ˜„", - "โ—ผ", - "โ›ฑ", - "โœŒ", - "โ†ฉ", - "ยฉ", - "โ", - "๐Ÿ", - "๐ŸŒง", - "โ˜ ", - "โฌ†", - "๐Ÿ˜", - "๐Ÿ—ƒ", - "โ–ช", - "โ˜ฆ", - "0", - "๐ŸŒจ", - "๐Ÿ—ฃ", - "๐Ÿ—บ", - "๐Ÿž", - "๐Ÿ•ถ", + "โ–ถ", + "*", + "๐Ÿ–‡", "๐ŸŒฌ", - "โ™ฃ", - "โš—", - "โ—€", + "๐ŸŽž", + "๐Ÿ—‚", + "โ–ซ", + "โฌ†", + "๐Ÿš", + "โ†˜", "โ›“", + "โ˜ƒ", } ), ) diff --git a/rich/_unicode_data/unicode12-0-0.py b/rich/_unicode_data/unicode12-0-0.py index 051ec577b3..2aa1ccaf89 100644 --- a/rich/_unicode_data/unicode12-0-0.py +++ b/rich/_unicode_data/unicode12-0-0.py @@ -1,4 +1,5 @@ # Auto generated by tools/make_width_tables.py +# Data from wcwidth project (https://github.com/jquast/wcwidth) from rich.cells import CellTable @@ -421,219 +422,219 @@ ], narrow_to_wide=frozenset( { - "๐Ÿ—", - "๐Ÿ“ฝ", - "๐Ÿ—’", - "๐Ÿ—œ", - "โ™€", - "๐ŸŽŸ", - "๐Ÿ›ฃ", - "โญ", - "โ„น", - "โ˜‚", - "โ˜บ", - "๐ŸŽ™", - "โธ", - "โžก", - "โ˜ƒ", - "๐Ÿ–ฒ", - "โ˜", - "๐Ÿ› ", - "โœณ", - "โ–ถ", - "โš ", - "๐Ÿ›ฐ", - "โ›ˆ", - "6", - "๐Ÿ…ฟ", - "๐ŸŽ–", - "โ›‘", - "๐Ÿ›ฉ", + "2", + "โ†ช", + "โ˜", + "๐ŸŒง", + "๐Ÿ›ข", + "โ‰", + "โ™จ", + "โœ”", + "โ˜Ž", + "โ˜ฃ", + "๐Ÿ›", + "๐Ÿ…พ", + "๐Ÿ•ต", + "๐Ÿ—ฃ", + "โ™ฃ", + "๐Ÿ—ž", + "๐Ÿ…ฑ", "โ˜ช", + "๐Ÿ•", + "๐Ÿž", + "๐Ÿ›ฐ", + "0", + "๐Ÿ›ณ", "๐Ÿ•ณ", - "9", + "โ™ ", + "5", + "โŒจ", + "๐Ÿ›‹", + "๐Ÿ—’", + "โœณ", "๐Ÿท", - "โ˜€", + "๐ŸŒฉ", + "โšง", + "๐Ÿ", + "๐Ÿ•‰", + "โ˜ฆ", + "๐Ÿ‘", + "๐Ÿ›", + "๐Ÿ—บ", + "๐ŸŽ—", + "๐Ÿ…ฟ", + "โ™‚", + "โš›", + "๐Ÿ›ก", + "โฎ", + "๐Ÿณ", + "๐Ÿ—ƒ", + "๐Ÿ—", + "๐Ÿฟ", + "โ—ป", + "๐Ÿ™", + "๐Ÿ›ฅ", + "6", + "โฑ", + "โ›ฐ", + "๐ŸŽ", + "๐Ÿ•ฏ", + "๐Ÿต", + "๐Ÿ–", + "โœ–", + "๐Ÿ›Ž", + "โ˜‚", + "#", + "โฃ", + "โ™ป", + "๐Ÿ—„", + "3", + "โญ", "โ˜ธ", - "โ™จ", - "โฌ…", - "โ‡", - "๐Ÿ—จ", + "โ", + "โ›ธ", + "๐Ÿ–", + "โธ", "โ™ฆ", - "#", - "โœ", - "โน", - "โ™Ÿ", - "๐Ÿ•‰", - "๐Ÿ—“", - "๐ŸŒถ", - "โบ", - "โ˜˜", - "โ€ผ", - "๐ŸŒฉ", + "โ‡", + "โฏ", + "โ›น", + "โ˜ ", + "๐Ÿ”", + "๐Ÿ•ธ", + "โ†–", "๐Ÿ—‘", + "๐ŸŒก", + "โœˆ", + "โš’", + "7", + "โœ", + "๐Ÿ•ฐ", + "๐ŸŒซ", + "โ˜ฎ", "โ˜ฏ", - "๐Ÿ•ด", + "โฒ", + "๐Ÿ–", "โœด", - "โ˜ข", - "๐Ÿ–ผ", - "๐ŸŒซ", - "๐Ÿ•ต", - "โšง", + "โšฐ", "๐Ÿฝ", - "๐Ÿ—„", - "โœ”", + "โšฑ", + "๐Ÿœ", "๐Ÿ—ก", - "โฒ", - "๐ŸŒก", - "๐Ÿ–‹", - "๐Ÿ›ณ", - "๐Ÿ›‹", - "โ˜", - "๐Ÿ‘", + "๐Ÿ•ท", + "โ™€", + "โ„น", + "๐ŸŒจ", + "โšœ", + "โ˜„", + "โ˜‘", + "โš ", + "โœ", + "9", "โ“‚", - "โ†•", - "๐Ÿ›", - "โฏ", - "7", - "๐Ÿ–", - "โฑ", - "*", - "๐Ÿ—", - "โœ", - "๐Ÿ–Œ", - "โ†–", - "โ›น", - "๐Ÿ™", - "โ„", + "โ†ฉ", + "โ˜น", + "โ˜บ", + "4", + "โ—ผ", + "โš”", + "โ™Ÿ", + "โœ‰", + "โคต", + "๐ŸŽ–", + "โค", "๐ŸŽš", - "๐Ÿš", - "โ‰", - "๐Ÿ”", - "๐Ÿฟ", - "๐Ÿ•", - "โ„ข", - "1", - "๐Ÿ›ค", - "๐Ÿ…ฑ", - "๐Ÿ–Š", - "โšฑ", - "โ›ธ", - "๐Ÿณ", - "๐Ÿ›", - "โฌ‡", - "๐Ÿ…ฐ", - "โ›ฉ", - "๐Ÿ—ณ", - "โ†™", - "๐Ÿ—‚", - "โ›ด", + "๐Ÿ•Š", + "๐Ÿ—ฏ", "๐Ÿ‹", + "๐Ÿ—ณ", + "โ†•", + "โ„", + "โœ‚", + "โžก", + "๐Ÿ˜", + "โ›ฑ", + "โ™ฅ", + "๐Ÿ–‹", "๐ŸŒฆ", - "ยฎ", - "๐Ÿ—ž", - "โ™ ", + "โœ’", + "๐Ÿ“ฝ", + "โš–", + "๐Ÿ–Œ", + "โ˜€", + "โ›ท", + "โ†™", + "โ€ผ", + "๐Ÿ•ด", + "โ†”", + "โ›", "โคด", - "โœˆ", - "๐ŸŽž", "โš•", - "โ›", - "๐Ÿ•ธ", - "๐Ÿ›ฅ", - "โšœ", - "โ˜ฎ", - "๐Ÿ—ฏ", - "โœก", - "โฎ", - "โšฐ", - "3", - "โ–ซ", + "โน", + "๐Ÿ–ฑ", + "โฌ…", + "๐Ÿ›ค", + "๐Ÿ› ", + "๐Ÿ›ฉ", + "๐ŸŒช", "๐Ÿ", - "โœ", - "โ†˜", - "โ†ช", - "โš›", - "๐Ÿ–‡", - "โœ–", - "๐Ÿ›ข", + "โ–ช", + "โ›ฉ", + "๐Ÿ•ถ", + "๐Ÿ›ฃ", + "๐Ÿ–ฒ", + "๐Ÿ–ฅ", + "โš—", + "ยฉ", + "โ˜ข", + "โ†—", + "โœŒ", + "โ„ข", "๐ŸŽ›", + "โœ", + "โ›‘", + "๐ŸŽ™", + "1", + "โฌ‡", + "๐Ÿ—“", + "โ›ˆ", + "โœก", + "๐Ÿ–Š", + "๐Ÿ–ผ", + "๐Ÿ›", + "๐ŸŒฅ", + "๐ŸŒถ", + "๐Ÿ—", + "๐Ÿ–จ", + "โ™พ", + "โ›ด", + "โ˜", "8", - "โ†—", - "๐Ÿ›ก", - "โ˜ฃ", - "โ›ฐ", - "โฃ", - "โœ‚", - "โ˜‘", + "โ—€", + "๐ŸŽŸ", + "๐Ÿ•น", + "๐Ÿ—จ", + "ยฎ", "โš™", - "โคต", - "โ™ป", - "๐ŸŒช", - "๐Ÿ–", - "๐Ÿ•ฏ", - "โœ‰", - "4", - "โœ’", + "๐ŸŒ", + "๐Ÿ—œ", "๐ŸŒค", + "โบ", + "โ˜˜", + "๐Ÿ…ฐ", "๐ŸŸ", - "โ™‚", - "๐Ÿ•ฐ", - "๐Ÿ›Ž", - "๐ŸŽ—", - "๐Ÿ•น", - "5", - "โš’", - "โค", - "๐Ÿ–", - "โš”", - "โš–", - "๐Ÿ–ฑ", - "๐Ÿ•Š", - "โ†”", - "2", - "๐Ÿ•ท", - "๐Ÿ…พ", - "โ˜น", - "๐Ÿ–ฅ", - "โ›ท", - "๐Ÿœ", - "โ˜Ž", - "๐ŸŒ", - "โ™พ", - "๐Ÿ›", - "โŒจ", - "๐ŸŽ", - "๐Ÿต", - "๐Ÿ–จ", - "โ™ฅ", - "โ—ป", - "๐ŸŒฅ", - "โ˜„", - "โ—ผ", - "โ›ฑ", - "โœŒ", - "โ†ฉ", - "ยฉ", - "โ", - "๐Ÿ", - "๐ŸŒง", - "โ˜ ", - "โฌ†", - "๐Ÿ˜", - "๐Ÿ—ƒ", - "โ–ช", - "โ˜ฆ", - "0", - "๐ŸŒจ", - "๐Ÿ—ฃ", - "๐Ÿ—บ", - "๐Ÿž", - "๐Ÿ•ถ", + "โ–ถ", + "*", + "๐Ÿ–‡", "๐ŸŒฌ", - "โ™ฃ", - "โš—", - "โ—€", + "๐ŸŽž", + "๐Ÿ—‚", + "โ–ซ", + "โฌ†", + "๐Ÿš", + "โ†˜", "โ›“", + "โ˜ƒ", } ), ) diff --git a/rich/_unicode_data/unicode12-1-0.py b/rich/_unicode_data/unicode12-1-0.py index 5d9e47a6b2..5c432c4499 100644 --- a/rich/_unicode_data/unicode12-1-0.py +++ b/rich/_unicode_data/unicode12-1-0.py @@ -1,4 +1,5 @@ # Auto generated by tools/make_width_tables.py +# Data from wcwidth project (https://github.com/jquast/wcwidth) from rich.cells import CellTable @@ -420,219 +421,219 @@ ], narrow_to_wide=frozenset( { - "๐Ÿ—", - "๐Ÿ“ฝ", - "๐Ÿ—’", - "๐Ÿ—œ", - "โ™€", - "๐ŸŽŸ", - "๐Ÿ›ฃ", - "โญ", - "โ„น", - "โ˜‚", - "โ˜บ", - "๐ŸŽ™", - "โธ", - "โžก", - "โ˜ƒ", - "๐Ÿ–ฒ", - "โ˜", - "๐Ÿ› ", - "โœณ", - "โ–ถ", - "โš ", - "๐Ÿ›ฐ", - "โ›ˆ", - "6", - "๐Ÿ…ฟ", - "๐ŸŽ–", - "โ›‘", - "๐Ÿ›ฉ", + "2", + "โ†ช", + "โ˜", + "๐ŸŒง", + "๐Ÿ›ข", + "โ‰", + "โ™จ", + "โœ”", + "โ˜Ž", + "โ˜ฃ", + "๐Ÿ›", + "๐Ÿ…พ", + "๐Ÿ•ต", + "๐Ÿ—ฃ", + "โ™ฃ", + "๐Ÿ—ž", + "๐Ÿ…ฑ", "โ˜ช", + "๐Ÿ•", + "๐Ÿž", + "๐Ÿ›ฐ", + "0", + "๐Ÿ›ณ", "๐Ÿ•ณ", - "9", + "โ™ ", + "5", + "โŒจ", + "๐Ÿ›‹", + "๐Ÿ—’", + "โœณ", "๐Ÿท", - "โ˜€", + "๐ŸŒฉ", + "โšง", + "๐Ÿ", + "๐Ÿ•‰", + "โ˜ฆ", + "๐Ÿ‘", + "๐Ÿ›", + "๐Ÿ—บ", + "๐ŸŽ—", + "๐Ÿ…ฟ", + "โ™‚", + "โš›", + "๐Ÿ›ก", + "โฎ", + "๐Ÿณ", + "๐Ÿ—ƒ", + "๐Ÿ—", + "๐Ÿฟ", + "โ—ป", + "๐Ÿ™", + "๐Ÿ›ฅ", + "6", + "โฑ", + "โ›ฐ", + "๐ŸŽ", + "๐Ÿ•ฏ", + "๐Ÿต", + "๐Ÿ–", + "โœ–", + "๐Ÿ›Ž", + "โ˜‚", + "#", + "โฃ", + "โ™ป", + "๐Ÿ—„", + "3", + "โญ", "โ˜ธ", - "โ™จ", - "โฌ…", - "โ‡", - "๐Ÿ—จ", + "โ", + "โ›ธ", + "๐Ÿ–", + "โธ", "โ™ฆ", - "#", - "โœ", - "โน", - "โ™Ÿ", - "๐Ÿ•‰", - "๐Ÿ—“", - "๐ŸŒถ", - "โบ", - "โ˜˜", - "โ€ผ", - "๐ŸŒฉ", + "โ‡", + "โฏ", + "โ›น", + "โ˜ ", + "๐Ÿ”", + "๐Ÿ•ธ", + "โ†–", "๐Ÿ—‘", + "๐ŸŒก", + "โœˆ", + "โš’", + "7", + "โœ", + "๐Ÿ•ฐ", + "๐ŸŒซ", + "โ˜ฎ", "โ˜ฏ", - "๐Ÿ•ด", + "โฒ", + "๐Ÿ–", "โœด", - "โ˜ข", - "๐Ÿ–ผ", - "๐ŸŒซ", - "๐Ÿ•ต", - "โšง", + "โšฐ", "๐Ÿฝ", - "๐Ÿ—„", - "โœ”", + "โšฑ", + "๐Ÿœ", "๐Ÿ—ก", - "โฒ", - "๐ŸŒก", - "๐Ÿ–‹", - "๐Ÿ›ณ", - "๐Ÿ›‹", - "โ˜", - "๐Ÿ‘", + "๐Ÿ•ท", + "โ™€", + "โ„น", + "๐ŸŒจ", + "โšœ", + "โ˜„", + "โ˜‘", + "โš ", + "โœ", + "9", "โ“‚", - "โ†•", - "๐Ÿ›", - "โฏ", - "7", - "๐Ÿ–", - "โฑ", - "*", - "๐Ÿ—", - "โœ", - "๐Ÿ–Œ", - "โ†–", - "โ›น", - "๐Ÿ™", - "โ„", + "โ†ฉ", + "โ˜น", + "โ˜บ", + "4", + "โ—ผ", + "โš”", + "โ™Ÿ", + "โœ‰", + "โคต", + "๐ŸŽ–", + "โค", "๐ŸŽš", - "๐Ÿš", - "โ‰", - "๐Ÿ”", - "๐Ÿฟ", - "๐Ÿ•", - "โ„ข", - "1", - "๐Ÿ›ค", - "๐Ÿ…ฑ", - "๐Ÿ–Š", - "โšฑ", - "โ›ธ", - "๐Ÿณ", - "๐Ÿ›", - "โฌ‡", - "๐Ÿ…ฐ", - "โ›ฉ", - "๐Ÿ—ณ", - "โ†™", - "๐Ÿ—‚", - "โ›ด", + "๐Ÿ•Š", + "๐Ÿ—ฏ", "๐Ÿ‹", + "๐Ÿ—ณ", + "โ†•", + "โ„", + "โœ‚", + "โžก", + "๐Ÿ˜", + "โ›ฑ", + "โ™ฅ", + "๐Ÿ–‹", "๐ŸŒฆ", - "ยฎ", - "๐Ÿ—ž", - "โ™ ", + "โœ’", + "๐Ÿ“ฝ", + "โš–", + "๐Ÿ–Œ", + "โ˜€", + "โ›ท", + "โ†™", + "โ€ผ", + "๐Ÿ•ด", + "โ†”", + "โ›", "โคด", - "โœˆ", - "๐ŸŽž", "โš•", - "โ›", - "๐Ÿ•ธ", - "๐Ÿ›ฅ", - "โšœ", - "โ˜ฎ", - "๐Ÿ—ฏ", - "โœก", - "โฎ", - "โšฐ", - "3", - "โ–ซ", + "โน", + "๐Ÿ–ฑ", + "โฌ…", + "๐Ÿ›ค", + "๐Ÿ› ", + "๐Ÿ›ฉ", + "๐ŸŒช", "๐Ÿ", - "โœ", - "โ†˜", - "โ†ช", - "โš›", - "๐Ÿ–‡", - "โœ–", - "๐Ÿ›ข", + "โ–ช", + "โ›ฉ", + "๐Ÿ•ถ", + "๐Ÿ›ฃ", + "๐Ÿ–ฒ", + "๐Ÿ–ฅ", + "โš—", + "ยฉ", + "โ˜ข", + "โ†—", + "โœŒ", + "โ„ข", "๐ŸŽ›", + "โœ", + "โ›‘", + "๐ŸŽ™", + "1", + "โฌ‡", + "๐Ÿ—“", + "โ›ˆ", + "โœก", + "๐Ÿ–Š", + "๐Ÿ–ผ", + "๐Ÿ›", + "๐ŸŒฅ", + "๐ŸŒถ", + "๐Ÿ—", + "๐Ÿ–จ", + "โ™พ", + "โ›ด", + "โ˜", "8", - "โ†—", - "๐Ÿ›ก", - "โ˜ฃ", - "โ›ฐ", - "โฃ", - "โœ‚", - "โ˜‘", + "โ—€", + "๐ŸŽŸ", + "๐Ÿ•น", + "๐Ÿ—จ", + "ยฎ", "โš™", - "โคต", - "โ™ป", - "๐ŸŒช", - "๐Ÿ–", - "๐Ÿ•ฏ", - "โœ‰", - "4", - "โœ’", + "๐ŸŒ", + "๐Ÿ—œ", "๐ŸŒค", + "โบ", + "โ˜˜", + "๐Ÿ…ฐ", "๐ŸŸ", - "โ™‚", - "๐Ÿ•ฐ", - "๐Ÿ›Ž", - "๐ŸŽ—", - "๐Ÿ•น", - "5", - "โš’", - "โค", - "๐Ÿ–", - "โš”", - "โš–", - "๐Ÿ–ฑ", - "๐Ÿ•Š", - "โ†”", - "2", - "๐Ÿ•ท", - "๐Ÿ…พ", - "โ˜น", - "๐Ÿ–ฅ", - "โ›ท", - "๐Ÿœ", - "โ˜Ž", - "๐ŸŒ", - "โ™พ", - "๐Ÿ›", - "โŒจ", - "๐ŸŽ", - "๐Ÿต", - "๐Ÿ–จ", - "โ™ฅ", - "โ—ป", - "๐ŸŒฅ", - "โ˜„", - "โ—ผ", - "โ›ฑ", - "โœŒ", - "โ†ฉ", - "ยฉ", - "โ", - "๐Ÿ", - "๐ŸŒง", - "โ˜ ", - "โฌ†", - "๐Ÿ˜", - "๐Ÿ—ƒ", - "โ–ช", - "โ˜ฆ", - "0", - "๐ŸŒจ", - "๐Ÿ—ฃ", - "๐Ÿ—บ", - "๐Ÿž", - "๐Ÿ•ถ", + "โ–ถ", + "*", + "๐Ÿ–‡", "๐ŸŒฌ", - "โ™ฃ", - "โš—", - "โ—€", + "๐ŸŽž", + "๐Ÿ—‚", + "โ–ซ", + "โฌ†", + "๐Ÿš", + "โ†˜", "โ›“", + "โ˜ƒ", } ), ) diff --git a/rich/_unicode_data/unicode13-0-0.py b/rich/_unicode_data/unicode13-0-0.py index 518eaf687b..6c47b69c77 100644 --- a/rich/_unicode_data/unicode13-0-0.py +++ b/rich/_unicode_data/unicode13-0-0.py @@ -1,4 +1,5 @@ # Auto generated by tools/make_width_tables.py +# Data from wcwidth project (https://github.com/jquast/wcwidth) from rich.cells import CellTable @@ -432,219 +433,219 @@ ], narrow_to_wide=frozenset( { - "๐Ÿ—", - "๐Ÿ“ฝ", - "๐Ÿ—’", - "๐Ÿ—œ", - "โ™€", - "๐ŸŽŸ", - "๐Ÿ›ฃ", - "โญ", - "โ„น", - "โ˜‚", - "โ˜บ", - "๐ŸŽ™", - "โธ", - "โžก", - "โ˜ƒ", - "๐Ÿ–ฒ", - "โ˜", - "๐Ÿ› ", - "โœณ", - "โ–ถ", - "โš ", - "๐Ÿ›ฐ", - "โ›ˆ", - "6", - "๐Ÿ…ฟ", - "๐ŸŽ–", - "โ›‘", - "๐Ÿ›ฉ", + "2", + "โ†ช", + "โ˜", + "๐ŸŒง", + "๐Ÿ›ข", + "โ‰", + "โ™จ", + "โœ”", + "โ˜Ž", + "โ˜ฃ", + "๐Ÿ›", + "๐Ÿ…พ", + "๐Ÿ•ต", + "๐Ÿ—ฃ", + "โ™ฃ", + "๐Ÿ—ž", + "๐Ÿ…ฑ", "โ˜ช", + "๐Ÿ•", + "๐Ÿž", + "๐Ÿ›ฐ", + "0", + "๐Ÿ›ณ", "๐Ÿ•ณ", - "9", + "โ™ ", + "5", + "โŒจ", + "๐Ÿ›‹", + "๐Ÿ—’", + "โœณ", "๐Ÿท", - "โ˜€", + "๐ŸŒฉ", + "โšง", + "๐Ÿ", + "๐Ÿ•‰", + "โ˜ฆ", + "๐Ÿ‘", + "๐Ÿ›", + "๐Ÿ—บ", + "๐ŸŽ—", + "๐Ÿ…ฟ", + "โ™‚", + "โš›", + "๐Ÿ›ก", + "โฎ", + "๐Ÿณ", + "๐Ÿ—ƒ", + "๐Ÿ—", + "๐Ÿฟ", + "โ—ป", + "๐Ÿ™", + "๐Ÿ›ฅ", + "6", + "โฑ", + "โ›ฐ", + "๐ŸŽ", + "๐Ÿ•ฏ", + "๐Ÿต", + "๐Ÿ–", + "โœ–", + "๐Ÿ›Ž", + "โ˜‚", + "#", + "โฃ", + "โ™ป", + "๐Ÿ—„", + "3", + "โญ", "โ˜ธ", - "โ™จ", - "โฌ…", - "โ‡", - "๐Ÿ—จ", + "โ", + "โ›ธ", + "๐Ÿ–", + "โธ", "โ™ฆ", - "#", - "โœ", - "โน", - "โ™Ÿ", - "๐Ÿ•‰", - "๐Ÿ—“", - "๐ŸŒถ", - "โบ", - "โ˜˜", - "โ€ผ", - "๐ŸŒฉ", + "โ‡", + "โฏ", + "โ›น", + "โ˜ ", + "๐Ÿ”", + "๐Ÿ•ธ", + "โ†–", "๐Ÿ—‘", + "๐ŸŒก", + "โœˆ", + "โš’", + "7", + "โœ", + "๐Ÿ•ฐ", + "๐ŸŒซ", + "โ˜ฎ", "โ˜ฏ", - "๐Ÿ•ด", + "โฒ", + "๐Ÿ–", "โœด", - "โ˜ข", - "๐Ÿ–ผ", - "๐ŸŒซ", - "๐Ÿ•ต", - "โšง", + "โšฐ", "๐Ÿฝ", - "๐Ÿ—„", - "โœ”", + "โšฑ", + "๐Ÿœ", "๐Ÿ—ก", - "โฒ", - "๐ŸŒก", - "๐Ÿ–‹", - "๐Ÿ›ณ", - "๐Ÿ›‹", - "โ˜", - "๐Ÿ‘", + "๐Ÿ•ท", + "โ™€", + "โ„น", + "๐ŸŒจ", + "โšœ", + "โ˜„", + "โ˜‘", + "โš ", + "โœ", + "9", "โ“‚", - "โ†•", - "๐Ÿ›", - "โฏ", - "7", - "๐Ÿ–", - "โฑ", - "*", - "๐Ÿ—", - "โœ", - "๐Ÿ–Œ", - "โ†–", - "โ›น", - "๐Ÿ™", - "โ„", + "โ†ฉ", + "โ˜น", + "โ˜บ", + "4", + "โ—ผ", + "โš”", + "โ™Ÿ", + "โœ‰", + "โคต", + "๐ŸŽ–", + "โค", "๐ŸŽš", - "๐Ÿš", - "โ‰", - "๐Ÿ”", - "๐Ÿฟ", - "๐Ÿ•", - "โ„ข", - "1", - "๐Ÿ›ค", - "๐Ÿ…ฑ", - "๐Ÿ–Š", - "โšฑ", - "โ›ธ", - "๐Ÿณ", - "๐Ÿ›", - "โฌ‡", - "๐Ÿ…ฐ", - "โ›ฉ", - "๐Ÿ—ณ", - "โ†™", - "๐Ÿ—‚", - "โ›ด", + "๐Ÿ•Š", + "๐Ÿ—ฏ", "๐Ÿ‹", + "๐Ÿ—ณ", + "โ†•", + "โ„", + "โœ‚", + "โžก", + "๐Ÿ˜", + "โ›ฑ", + "โ™ฅ", + "๐Ÿ–‹", "๐ŸŒฆ", - "ยฎ", - "๐Ÿ—ž", - "โ™ ", + "โœ’", + "๐Ÿ“ฝ", + "โš–", + "๐Ÿ–Œ", + "โ˜€", + "โ›ท", + "โ†™", + "โ€ผ", + "๐Ÿ•ด", + "โ†”", + "โ›", "โคด", - "โœˆ", - "๐ŸŽž", "โš•", - "โ›", - "๐Ÿ•ธ", - "๐Ÿ›ฅ", - "โšœ", - "โ˜ฎ", - "๐Ÿ—ฏ", - "โœก", - "โฎ", - "โšฐ", - "3", - "โ–ซ", + "โน", + "๐Ÿ–ฑ", + "โฌ…", + "๐Ÿ›ค", + "๐Ÿ› ", + "๐Ÿ›ฉ", + "๐ŸŒช", "๐Ÿ", - "โœ", - "โ†˜", - "โ†ช", - "โš›", - "๐Ÿ–‡", - "โœ–", - "๐Ÿ›ข", + "โ–ช", + "โ›ฉ", + "๐Ÿ•ถ", + "๐Ÿ›ฃ", + "๐Ÿ–ฒ", + "๐Ÿ–ฅ", + "โš—", + "ยฉ", + "โ˜ข", + "โ†—", + "โœŒ", + "โ„ข", "๐ŸŽ›", + "โœ", + "โ›‘", + "๐ŸŽ™", + "1", + "โฌ‡", + "๐Ÿ—“", + "โ›ˆ", + "โœก", + "๐Ÿ–Š", + "๐Ÿ–ผ", + "๐Ÿ›", + "๐ŸŒฅ", + "๐ŸŒถ", + "๐Ÿ—", + "๐Ÿ–จ", + "โ™พ", + "โ›ด", + "โ˜", "8", - "โ†—", - "๐Ÿ›ก", - "โ˜ฃ", - "โ›ฐ", - "โฃ", - "โœ‚", - "โ˜‘", + "โ—€", + "๐ŸŽŸ", + "๐Ÿ•น", + "๐Ÿ—จ", + "ยฎ", "โš™", - "โคต", - "โ™ป", - "๐ŸŒช", - "๐Ÿ–", - "๐Ÿ•ฏ", - "โœ‰", - "4", - "โœ’", + "๐ŸŒ", + "๐Ÿ—œ", "๐ŸŒค", + "โบ", + "โ˜˜", + "๐Ÿ…ฐ", "๐ŸŸ", - "โ™‚", - "๐Ÿ•ฐ", - "๐Ÿ›Ž", - "๐ŸŽ—", - "๐Ÿ•น", - "5", - "โš’", - "โค", - "๐Ÿ–", - "โš”", - "โš–", - "๐Ÿ–ฑ", - "๐Ÿ•Š", - "โ†”", - "2", - "๐Ÿ•ท", - "๐Ÿ…พ", - "โ˜น", - "๐Ÿ–ฅ", - "โ›ท", - "๐Ÿœ", - "โ˜Ž", - "๐ŸŒ", - "โ™พ", - "๐Ÿ›", - "โŒจ", - "๐ŸŽ", - "๐Ÿต", - "๐Ÿ–จ", - "โ™ฅ", - "โ—ป", - "๐ŸŒฅ", - "โ˜„", - "โ—ผ", - "โ›ฑ", - "โœŒ", - "โ†ฉ", - "ยฉ", - "โ", - "๐Ÿ", - "๐ŸŒง", - "โ˜ ", - "โฌ†", - "๐Ÿ˜", - "๐Ÿ—ƒ", - "โ–ช", - "โ˜ฆ", - "0", - "๐ŸŒจ", - "๐Ÿ—ฃ", - "๐Ÿ—บ", - "๐Ÿž", - "๐Ÿ•ถ", + "โ–ถ", + "*", + "๐Ÿ–‡", "๐ŸŒฌ", - "โ™ฃ", - "โš—", - "โ—€", + "๐ŸŽž", + "๐Ÿ—‚", + "โ–ซ", + "โฌ†", + "๐Ÿš", + "โ†˜", "โ›“", + "โ˜ƒ", } ), ) diff --git a/rich/_unicode_data/unicode14-0-0.py b/rich/_unicode_data/unicode14-0-0.py index 0caa82ac91..d2007494d5 100644 --- a/rich/_unicode_data/unicode14-0-0.py +++ b/rich/_unicode_data/unicode14-0-0.py @@ -1,4 +1,5 @@ # Auto generated by tools/make_width_tables.py +# Data from wcwidth project (https://github.com/jquast/wcwidth) from rich.cells import CellTable @@ -446,219 +447,219 @@ ], narrow_to_wide=frozenset( { - "๐Ÿ—", - "๐Ÿ“ฝ", - "๐Ÿ—’", - "๐Ÿ—œ", - "โ™€", - "๐ŸŽŸ", - "๐Ÿ›ฃ", - "โญ", - "โ„น", - "โ˜‚", - "โ˜บ", - "๐ŸŽ™", - "โธ", - "โžก", - "โ˜ƒ", - "๐Ÿ–ฒ", - "โ˜", - "๐Ÿ› ", - "โœณ", - "โ–ถ", - "โš ", - "๐Ÿ›ฐ", - "โ›ˆ", - "6", - "๐Ÿ…ฟ", - "๐ŸŽ–", - "โ›‘", - "๐Ÿ›ฉ", + "2", + "โ†ช", + "โ˜", + "๐ŸŒง", + "๐Ÿ›ข", + "โ‰", + "โ™จ", + "โœ”", + "โ˜Ž", + "โ˜ฃ", + "๐Ÿ›", + "๐Ÿ…พ", + "๐Ÿ•ต", + "๐Ÿ—ฃ", + "โ™ฃ", + "๐Ÿ—ž", + "๐Ÿ…ฑ", "โ˜ช", + "๐Ÿ•", + "๐Ÿž", + "๐Ÿ›ฐ", + "0", + "๐Ÿ›ณ", "๐Ÿ•ณ", - "9", + "โ™ ", + "5", + "โŒจ", + "๐Ÿ›‹", + "๐Ÿ—’", + "โœณ", "๐Ÿท", - "โ˜€", + "๐ŸŒฉ", + "โšง", + "๐Ÿ", + "๐Ÿ•‰", + "โ˜ฆ", + "๐Ÿ‘", + "๐Ÿ›", + "๐Ÿ—บ", + "๐ŸŽ—", + "๐Ÿ…ฟ", + "โ™‚", + "โš›", + "๐Ÿ›ก", + "โฎ", + "๐Ÿณ", + "๐Ÿ—ƒ", + "๐Ÿ—", + "๐Ÿฟ", + "โ—ป", + "๐Ÿ™", + "๐Ÿ›ฅ", + "6", + "โฑ", + "โ›ฐ", + "๐ŸŽ", + "๐Ÿ•ฏ", + "๐Ÿต", + "๐Ÿ–", + "โœ–", + "๐Ÿ›Ž", + "โ˜‚", + "#", + "โฃ", + "โ™ป", + "๐Ÿ—„", + "3", + "โญ", "โ˜ธ", - "โ™จ", - "โฌ…", - "โ‡", - "๐Ÿ—จ", + "โ", + "โ›ธ", + "๐Ÿ–", + "โธ", "โ™ฆ", - "#", - "โœ", - "โน", - "โ™Ÿ", - "๐Ÿ•‰", - "๐Ÿ—“", - "๐ŸŒถ", - "โบ", - "โ˜˜", - "โ€ผ", - "๐ŸŒฉ", + "โ‡", + "โฏ", + "โ›น", + "โ˜ ", + "๐Ÿ”", + "๐Ÿ•ธ", + "โ†–", "๐Ÿ—‘", + "๐ŸŒก", + "โœˆ", + "โš’", + "7", + "โœ", + "๐Ÿ•ฐ", + "๐ŸŒซ", + "โ˜ฎ", "โ˜ฏ", - "๐Ÿ•ด", + "โฒ", + "๐Ÿ–", "โœด", - "โ˜ข", - "๐Ÿ–ผ", - "๐ŸŒซ", - "๐Ÿ•ต", - "โšง", + "โšฐ", "๐Ÿฝ", - "๐Ÿ—„", - "โœ”", + "โšฑ", + "๐Ÿœ", "๐Ÿ—ก", - "โฒ", - "๐ŸŒก", - "๐Ÿ–‹", - "๐Ÿ›ณ", - "๐Ÿ›‹", - "โ˜", - "๐Ÿ‘", + "๐Ÿ•ท", + "โ™€", + "โ„น", + "๐ŸŒจ", + "โšœ", + "โ˜„", + "โ˜‘", + "โš ", + "โœ", + "9", "โ“‚", - "โ†•", - "๐Ÿ›", - "โฏ", - "7", - "๐Ÿ–", - "โฑ", - "*", - "๐Ÿ—", - "โœ", - "๐Ÿ–Œ", - "โ†–", - "โ›น", - "๐Ÿ™", - "โ„", + "โ†ฉ", + "โ˜น", + "โ˜บ", + "4", + "โ—ผ", + "โš”", + "โ™Ÿ", + "โœ‰", + "โคต", + "๐ŸŽ–", + "โค", "๐ŸŽš", - "๐Ÿš", - "โ‰", - "๐Ÿ”", - "๐Ÿฟ", - "๐Ÿ•", - "โ„ข", - "1", - "๐Ÿ›ค", - "๐Ÿ…ฑ", - "๐Ÿ–Š", - "โšฑ", - "โ›ธ", - "๐Ÿณ", - "๐Ÿ›", - "โฌ‡", - "๐Ÿ…ฐ", - "โ›ฉ", - "๐Ÿ—ณ", - "โ†™", - "๐Ÿ—‚", - "โ›ด", + "๐Ÿ•Š", + "๐Ÿ—ฏ", "๐Ÿ‹", + "๐Ÿ—ณ", + "โ†•", + "โ„", + "โœ‚", + "โžก", + "๐Ÿ˜", + "โ›ฑ", + "โ™ฅ", + "๐Ÿ–‹", "๐ŸŒฆ", - "ยฎ", - "๐Ÿ—ž", - "โ™ ", + "โœ’", + "๐Ÿ“ฝ", + "โš–", + "๐Ÿ–Œ", + "โ˜€", + "โ›ท", + "โ†™", + "โ€ผ", + "๐Ÿ•ด", + "โ†”", + "โ›", "โคด", - "โœˆ", - "๐ŸŽž", "โš•", - "โ›", - "๐Ÿ•ธ", - "๐Ÿ›ฅ", - "โšœ", - "โ˜ฎ", - "๐Ÿ—ฏ", - "โœก", - "โฎ", - "โšฐ", - "3", - "โ–ซ", + "โน", + "๐Ÿ–ฑ", + "โฌ…", + "๐Ÿ›ค", + "๐Ÿ› ", + "๐Ÿ›ฉ", + "๐ŸŒช", "๐Ÿ", - "โœ", - "โ†˜", - "โ†ช", - "โš›", - "๐Ÿ–‡", - "โœ–", - "๐Ÿ›ข", + "โ–ช", + "โ›ฉ", + "๐Ÿ•ถ", + "๐Ÿ›ฃ", + "๐Ÿ–ฒ", + "๐Ÿ–ฅ", + "โš—", + "ยฉ", + "โ˜ข", + "โ†—", + "โœŒ", + "โ„ข", "๐ŸŽ›", + "โœ", + "โ›‘", + "๐ŸŽ™", + "1", + "โฌ‡", + "๐Ÿ—“", + "โ›ˆ", + "โœก", + "๐Ÿ–Š", + "๐Ÿ–ผ", + "๐Ÿ›", + "๐ŸŒฅ", + "๐ŸŒถ", + "๐Ÿ—", + "๐Ÿ–จ", + "โ™พ", + "โ›ด", + "โ˜", "8", - "โ†—", - "๐Ÿ›ก", - "โ˜ฃ", - "โ›ฐ", - "โฃ", - "โœ‚", - "โ˜‘", + "โ—€", + "๐ŸŽŸ", + "๐Ÿ•น", + "๐Ÿ—จ", + "ยฎ", "โš™", - "โคต", - "โ™ป", - "๐ŸŒช", - "๐Ÿ–", - "๐Ÿ•ฏ", - "โœ‰", - "4", - "โœ’", + "๐ŸŒ", + "๐Ÿ—œ", "๐ŸŒค", + "โบ", + "โ˜˜", + "๐Ÿ…ฐ", "๐ŸŸ", - "โ™‚", - "๐Ÿ•ฐ", - "๐Ÿ›Ž", - "๐ŸŽ—", - "๐Ÿ•น", - "5", - "โš’", - "โค", - "๐Ÿ–", - "โš”", - "โš–", - "๐Ÿ–ฑ", - "๐Ÿ•Š", - "โ†”", - "2", - "๐Ÿ•ท", - "๐Ÿ…พ", - "โ˜น", - "๐Ÿ–ฅ", - "โ›ท", - "๐Ÿœ", - "โ˜Ž", - "๐ŸŒ", - "โ™พ", - "๐Ÿ›", - "โŒจ", - "๐ŸŽ", - "๐Ÿต", - "๐Ÿ–จ", - "โ™ฅ", - "โ—ป", - "๐ŸŒฅ", - "โ˜„", - "โ—ผ", - "โ›ฑ", - "โœŒ", - "โ†ฉ", - "ยฉ", - "โ", - "๐Ÿ", - "๐ŸŒง", - "โ˜ ", - "โฌ†", - "๐Ÿ˜", - "๐Ÿ—ƒ", - "โ–ช", - "โ˜ฆ", - "0", - "๐ŸŒจ", - "๐Ÿ—ฃ", - "๐Ÿ—บ", - "๐Ÿž", - "๐Ÿ•ถ", + "โ–ถ", + "*", + "๐Ÿ–‡", "๐ŸŒฌ", - "โ™ฃ", - "โš—", - "โ—€", + "๐ŸŽž", + "๐Ÿ—‚", + "โ–ซ", + "โฌ†", + "๐Ÿš", + "โ†˜", "โ›“", + "โ˜ƒ", } ), ) diff --git a/rich/_unicode_data/unicode15-0-0.py b/rich/_unicode_data/unicode15-0-0.py index ee76259155..547b152702 100644 --- a/rich/_unicode_data/unicode15-0-0.py +++ b/rich/_unicode_data/unicode15-0-0.py @@ -1,4 +1,5 @@ # Auto generated by tools/make_width_tables.py +# Data from wcwidth project (https://github.com/jquast/wcwidth) from rich.cells import CellTable @@ -456,219 +457,219 @@ ], narrow_to_wide=frozenset( { - "๐Ÿ—", - "๐Ÿ“ฝ", - "๐Ÿ—’", - "๐Ÿ—œ", - "โ™€", - "๐ŸŽŸ", - "๐Ÿ›ฃ", - "โญ", - "โ„น", - "โ˜‚", - "โ˜บ", - "๐ŸŽ™", - "โธ", - "โžก", - "โ˜ƒ", - "๐Ÿ–ฒ", - "โ˜", - "๐Ÿ› ", - "โœณ", - "โ–ถ", - "โš ", - "๐Ÿ›ฐ", - "โ›ˆ", - "6", - "๐Ÿ…ฟ", - "๐ŸŽ–", - "โ›‘", - "๐Ÿ›ฉ", + "2", + "โ†ช", + "โ˜", + "๐ŸŒง", + "๐Ÿ›ข", + "โ‰", + "โ™จ", + "โœ”", + "โ˜Ž", + "โ˜ฃ", + "๐Ÿ›", + "๐Ÿ…พ", + "๐Ÿ•ต", + "๐Ÿ—ฃ", + "โ™ฃ", + "๐Ÿ—ž", + "๐Ÿ…ฑ", "โ˜ช", + "๐Ÿ•", + "๐Ÿž", + "๐Ÿ›ฐ", + "0", + "๐Ÿ›ณ", "๐Ÿ•ณ", - "9", + "โ™ ", + "5", + "โŒจ", + "๐Ÿ›‹", + "๐Ÿ—’", + "โœณ", "๐Ÿท", - "โ˜€", + "๐ŸŒฉ", + "โšง", + "๐Ÿ", + "๐Ÿ•‰", + "โ˜ฆ", + "๐Ÿ‘", + "๐Ÿ›", + "๐Ÿ—บ", + "๐ŸŽ—", + "๐Ÿ…ฟ", + "โ™‚", + "โš›", + "๐Ÿ›ก", + "โฎ", + "๐Ÿณ", + "๐Ÿ—ƒ", + "๐Ÿ—", + "๐Ÿฟ", + "โ—ป", + "๐Ÿ™", + "๐Ÿ›ฅ", + "6", + "โฑ", + "โ›ฐ", + "๐ŸŽ", + "๐Ÿ•ฏ", + "๐Ÿต", + "๐Ÿ–", + "โœ–", + "๐Ÿ›Ž", + "โ˜‚", + "#", + "โฃ", + "โ™ป", + "๐Ÿ—„", + "3", + "โญ", "โ˜ธ", - "โ™จ", - "โฌ…", - "โ‡", - "๐Ÿ—จ", + "โ", + "โ›ธ", + "๐Ÿ–", + "โธ", "โ™ฆ", - "#", - "โœ", - "โน", - "โ™Ÿ", - "๐Ÿ•‰", - "๐Ÿ—“", - "๐ŸŒถ", - "โบ", - "โ˜˜", - "โ€ผ", - "๐ŸŒฉ", + "โ‡", + "โฏ", + "โ›น", + "โ˜ ", + "๐Ÿ”", + "๐Ÿ•ธ", + "โ†–", "๐Ÿ—‘", + "๐ŸŒก", + "โœˆ", + "โš’", + "7", + "โœ", + "๐Ÿ•ฐ", + "๐ŸŒซ", + "โ˜ฎ", "โ˜ฏ", - "๐Ÿ•ด", + "โฒ", + "๐Ÿ–", "โœด", - "โ˜ข", - "๐Ÿ–ผ", - "๐ŸŒซ", - "๐Ÿ•ต", - "โšง", + "โšฐ", "๐Ÿฝ", - "๐Ÿ—„", - "โœ”", + "โšฑ", + "๐Ÿœ", "๐Ÿ—ก", - "โฒ", - "๐ŸŒก", - "๐Ÿ–‹", - "๐Ÿ›ณ", - "๐Ÿ›‹", - "โ˜", - "๐Ÿ‘", + "๐Ÿ•ท", + "โ™€", + "โ„น", + "๐ŸŒจ", + "โšœ", + "โ˜„", + "โ˜‘", + "โš ", + "โœ", + "9", "โ“‚", - "โ†•", - "๐Ÿ›", - "โฏ", - "7", - "๐Ÿ–", - "โฑ", - "*", - "๐Ÿ—", - "โœ", - "๐Ÿ–Œ", - "โ†–", - "โ›น", - "๐Ÿ™", - "โ„", + "โ†ฉ", + "โ˜น", + "โ˜บ", + "4", + "โ—ผ", + "โš”", + "โ™Ÿ", + "โœ‰", + "โคต", + "๐ŸŽ–", + "โค", "๐ŸŽš", - "๐Ÿš", - "โ‰", - "๐Ÿ”", - "๐Ÿฟ", - "๐Ÿ•", - "โ„ข", - "1", - "๐Ÿ›ค", - "๐Ÿ…ฑ", - "๐Ÿ–Š", - "โšฑ", - "โ›ธ", - "๐Ÿณ", - "๐Ÿ›", - "โฌ‡", - "๐Ÿ…ฐ", - "โ›ฉ", - "๐Ÿ—ณ", - "โ†™", - "๐Ÿ—‚", - "โ›ด", + "๐Ÿ•Š", + "๐Ÿ—ฏ", "๐Ÿ‹", + "๐Ÿ—ณ", + "โ†•", + "โ„", + "โœ‚", + "โžก", + "๐Ÿ˜", + "โ›ฑ", + "โ™ฅ", + "๐Ÿ–‹", "๐ŸŒฆ", - "ยฎ", - "๐Ÿ—ž", - "โ™ ", + "โœ’", + "๐Ÿ“ฝ", + "โš–", + "๐Ÿ–Œ", + "โ˜€", + "โ›ท", + "โ†™", + "โ€ผ", + "๐Ÿ•ด", + "โ†”", + "โ›", "โคด", - "โœˆ", - "๐ŸŽž", "โš•", - "โ›", - "๐Ÿ•ธ", - "๐Ÿ›ฅ", - "โšœ", - "โ˜ฎ", - "๐Ÿ—ฏ", - "โœก", - "โฎ", - "โšฐ", - "3", - "โ–ซ", + "โน", + "๐Ÿ–ฑ", + "โฌ…", + "๐Ÿ›ค", + "๐Ÿ› ", + "๐Ÿ›ฉ", + "๐ŸŒช", "๐Ÿ", - "โœ", - "โ†˜", - "โ†ช", - "โš›", - "๐Ÿ–‡", - "โœ–", - "๐Ÿ›ข", + "โ–ช", + "โ›ฉ", + "๐Ÿ•ถ", + "๐Ÿ›ฃ", + "๐Ÿ–ฒ", + "๐Ÿ–ฅ", + "โš—", + "ยฉ", + "โ˜ข", + "โ†—", + "โœŒ", + "โ„ข", "๐ŸŽ›", + "โœ", + "โ›‘", + "๐ŸŽ™", + "1", + "โฌ‡", + "๐Ÿ—“", + "โ›ˆ", + "โœก", + "๐Ÿ–Š", + "๐Ÿ–ผ", + "๐Ÿ›", + "๐ŸŒฅ", + "๐ŸŒถ", + "๐Ÿ—", + "๐Ÿ–จ", + "โ™พ", + "โ›ด", + "โ˜", "8", - "โ†—", - "๐Ÿ›ก", - "โ˜ฃ", - "โ›ฐ", - "โฃ", - "โœ‚", - "โ˜‘", + "โ—€", + "๐ŸŽŸ", + "๐Ÿ•น", + "๐Ÿ—จ", + "ยฎ", "โš™", - "โคต", - "โ™ป", - "๐ŸŒช", - "๐Ÿ–", - "๐Ÿ•ฏ", - "โœ‰", - "4", - "โœ’", + "๐ŸŒ", + "๐Ÿ—œ", "๐ŸŒค", + "โบ", + "โ˜˜", + "๐Ÿ…ฐ", "๐ŸŸ", - "โ™‚", - "๐Ÿ•ฐ", - "๐Ÿ›Ž", - "๐ŸŽ—", - "๐Ÿ•น", - "5", - "โš’", - "โค", - "๐Ÿ–", - "โš”", - "โš–", - "๐Ÿ–ฑ", - "๐Ÿ•Š", - "โ†”", - "2", - "๐Ÿ•ท", - "๐Ÿ…พ", - "โ˜น", - "๐Ÿ–ฅ", - "โ›ท", - "๐Ÿœ", - "โ˜Ž", - "๐ŸŒ", - "โ™พ", - "๐Ÿ›", - "โŒจ", - "๐ŸŽ", - "๐Ÿต", - "๐Ÿ–จ", - "โ™ฅ", - "โ—ป", - "๐ŸŒฅ", - "โ˜„", - "โ—ผ", - "โ›ฑ", - "โœŒ", - "โ†ฉ", - "ยฉ", - "โ", - "๐Ÿ", - "๐ŸŒง", - "โ˜ ", - "โฌ†", - "๐Ÿ˜", - "๐Ÿ—ƒ", - "โ–ช", - "โ˜ฆ", - "0", - "๐ŸŒจ", - "๐Ÿ—ฃ", - "๐Ÿ—บ", - "๐Ÿž", - "๐Ÿ•ถ", + "โ–ถ", + "*", + "๐Ÿ–‡", "๐ŸŒฌ", - "โ™ฃ", - "โš—", - "โ—€", + "๐ŸŽž", + "๐Ÿ—‚", + "โ–ซ", + "โฌ†", + "๐Ÿš", + "โ†˜", "โ›“", + "โ˜ƒ", } ), ) diff --git a/rich/_unicode_data/unicode15-1-0.py b/rich/_unicode_data/unicode15-1-0.py index fe2eccfe6d..50af2f99be 100644 --- a/rich/_unicode_data/unicode15-1-0.py +++ b/rich/_unicode_data/unicode15-1-0.py @@ -1,4 +1,5 @@ # Auto generated by tools/make_width_tables.py +# Data from wcwidth project (https://github.com/jquast/wcwidth) from rich.cells import CellTable @@ -455,219 +456,219 @@ ], narrow_to_wide=frozenset( { - "๐Ÿ—", - "๐Ÿ“ฝ", - "๐Ÿ—’", - "๐Ÿ—œ", - "โ™€", - "๐ŸŽŸ", - "๐Ÿ›ฃ", - "โญ", - "โ„น", - "โ˜‚", - "โ˜บ", - "๐ŸŽ™", - "โธ", - "โžก", - "โ˜ƒ", - "๐Ÿ–ฒ", - "โ˜", - "๐Ÿ› ", - "โœณ", - "โ–ถ", - "โš ", - "๐Ÿ›ฐ", - "โ›ˆ", - "6", - "๐Ÿ…ฟ", - "๐ŸŽ–", - "โ›‘", - "๐Ÿ›ฉ", + "2", + "โ†ช", + "โ˜", + "๐ŸŒง", + "๐Ÿ›ข", + "โ‰", + "โ™จ", + "โœ”", + "โ˜Ž", + "โ˜ฃ", + "๐Ÿ›", + "๐Ÿ…พ", + "๐Ÿ•ต", + "๐Ÿ—ฃ", + "โ™ฃ", + "๐Ÿ—ž", + "๐Ÿ…ฑ", "โ˜ช", + "๐Ÿ•", + "๐Ÿž", + "๐Ÿ›ฐ", + "0", + "๐Ÿ›ณ", "๐Ÿ•ณ", - "9", + "โ™ ", + "5", + "โŒจ", + "๐Ÿ›‹", + "๐Ÿ—’", + "โœณ", "๐Ÿท", - "โ˜€", + "๐ŸŒฉ", + "โšง", + "๐Ÿ", + "๐Ÿ•‰", + "โ˜ฆ", + "๐Ÿ‘", + "๐Ÿ›", + "๐Ÿ—บ", + "๐ŸŽ—", + "๐Ÿ…ฟ", + "โ™‚", + "โš›", + "๐Ÿ›ก", + "โฎ", + "๐Ÿณ", + "๐Ÿ—ƒ", + "๐Ÿ—", + "๐Ÿฟ", + "โ—ป", + "๐Ÿ™", + "๐Ÿ›ฅ", + "6", + "โฑ", + "โ›ฐ", + "๐ŸŽ", + "๐Ÿ•ฏ", + "๐Ÿต", + "๐Ÿ–", + "โœ–", + "๐Ÿ›Ž", + "โ˜‚", + "#", + "โฃ", + "โ™ป", + "๐Ÿ—„", + "3", + "โญ", "โ˜ธ", - "โ™จ", - "โฌ…", - "โ‡", - "๐Ÿ—จ", + "โ", + "โ›ธ", + "๐Ÿ–", + "โธ", "โ™ฆ", - "#", - "โœ", - "โน", - "โ™Ÿ", - "๐Ÿ•‰", - "๐Ÿ—“", - "๐ŸŒถ", - "โบ", - "โ˜˜", - "โ€ผ", - "๐ŸŒฉ", + "โ‡", + "โฏ", + "โ›น", + "โ˜ ", + "๐Ÿ”", + "๐Ÿ•ธ", + "โ†–", "๐Ÿ—‘", + "๐ŸŒก", + "โœˆ", + "โš’", + "7", + "โœ", + "๐Ÿ•ฐ", + "๐ŸŒซ", + "โ˜ฎ", "โ˜ฏ", - "๐Ÿ•ด", + "โฒ", + "๐Ÿ–", "โœด", - "โ˜ข", - "๐Ÿ–ผ", - "๐ŸŒซ", - "๐Ÿ•ต", - "โšง", + "โšฐ", "๐Ÿฝ", - "๐Ÿ—„", - "โœ”", + "โšฑ", + "๐Ÿœ", "๐Ÿ—ก", - "โฒ", - "๐ŸŒก", - "๐Ÿ–‹", - "๐Ÿ›ณ", - "๐Ÿ›‹", - "โ˜", - "๐Ÿ‘", + "๐Ÿ•ท", + "โ™€", + "โ„น", + "๐ŸŒจ", + "โšœ", + "โ˜„", + "โ˜‘", + "โš ", + "โœ", + "9", "โ“‚", - "โ†•", - "๐Ÿ›", - "โฏ", - "7", - "๐Ÿ–", - "โฑ", - "*", - "๐Ÿ—", - "โœ", - "๐Ÿ–Œ", - "โ†–", - "โ›น", - "๐Ÿ™", - "โ„", + "โ†ฉ", + "โ˜น", + "โ˜บ", + "4", + "โ—ผ", + "โš”", + "โ™Ÿ", + "โœ‰", + "โคต", + "๐ŸŽ–", + "โค", "๐ŸŽš", - "๐Ÿš", - "โ‰", - "๐Ÿ”", - "๐Ÿฟ", - "๐Ÿ•", - "โ„ข", - "1", - "๐Ÿ›ค", - "๐Ÿ…ฑ", - "๐Ÿ–Š", - "โšฑ", - "โ›ธ", - "๐Ÿณ", - "๐Ÿ›", - "โฌ‡", - "๐Ÿ…ฐ", - "โ›ฉ", - "๐Ÿ—ณ", - "โ†™", - "๐Ÿ—‚", - "โ›ด", + "๐Ÿ•Š", + "๐Ÿ—ฏ", "๐Ÿ‹", + "๐Ÿ—ณ", + "โ†•", + "โ„", + "โœ‚", + "โžก", + "๐Ÿ˜", + "โ›ฑ", + "โ™ฅ", + "๐Ÿ–‹", "๐ŸŒฆ", - "ยฎ", - "๐Ÿ—ž", - "โ™ ", + "โœ’", + "๐Ÿ“ฝ", + "โš–", + "๐Ÿ–Œ", + "โ˜€", + "โ›ท", + "โ†™", + "โ€ผ", + "๐Ÿ•ด", + "โ†”", + "โ›", "โคด", - "โœˆ", - "๐ŸŽž", "โš•", - "โ›", - "๐Ÿ•ธ", - "๐Ÿ›ฅ", - "โšœ", - "โ˜ฎ", - "๐Ÿ—ฏ", - "โœก", - "โฎ", - "โšฐ", - "3", - "โ–ซ", + "โน", + "๐Ÿ–ฑ", + "โฌ…", + "๐Ÿ›ค", + "๐Ÿ› ", + "๐Ÿ›ฉ", + "๐ŸŒช", "๐Ÿ", - "โœ", - "โ†˜", - "โ†ช", - "โš›", - "๐Ÿ–‡", - "โœ–", - "๐Ÿ›ข", + "โ–ช", + "โ›ฉ", + "๐Ÿ•ถ", + "๐Ÿ›ฃ", + "๐Ÿ–ฒ", + "๐Ÿ–ฅ", + "โš—", + "ยฉ", + "โ˜ข", + "โ†—", + "โœŒ", + "โ„ข", "๐ŸŽ›", + "โœ", + "โ›‘", + "๐ŸŽ™", + "1", + "โฌ‡", + "๐Ÿ—“", + "โ›ˆ", + "โœก", + "๐Ÿ–Š", + "๐Ÿ–ผ", + "๐Ÿ›", + "๐ŸŒฅ", + "๐ŸŒถ", + "๐Ÿ—", + "๐Ÿ–จ", + "โ™พ", + "โ›ด", + "โ˜", "8", - "โ†—", - "๐Ÿ›ก", - "โ˜ฃ", - "โ›ฐ", - "โฃ", - "โœ‚", - "โ˜‘", + "โ—€", + "๐ŸŽŸ", + "๐Ÿ•น", + "๐Ÿ—จ", + "ยฎ", "โš™", - "โคต", - "โ™ป", - "๐ŸŒช", - "๐Ÿ–", - "๐Ÿ•ฏ", - "โœ‰", - "4", - "โœ’", + "๐ŸŒ", + "๐Ÿ—œ", "๐ŸŒค", + "โบ", + "โ˜˜", + "๐Ÿ…ฐ", "๐ŸŸ", - "โ™‚", - "๐Ÿ•ฐ", - "๐Ÿ›Ž", - "๐ŸŽ—", - "๐Ÿ•น", - "5", - "โš’", - "โค", - "๐Ÿ–", - "โš”", - "โš–", - "๐Ÿ–ฑ", - "๐Ÿ•Š", - "โ†”", - "2", - "๐Ÿ•ท", - "๐Ÿ…พ", - "โ˜น", - "๐Ÿ–ฅ", - "โ›ท", - "๐Ÿœ", - "โ˜Ž", - "๐ŸŒ", - "โ™พ", - "๐Ÿ›", - "โŒจ", - "๐ŸŽ", - "๐Ÿต", - "๐Ÿ–จ", - "โ™ฅ", - "โ—ป", - "๐ŸŒฅ", - "โ˜„", - "โ—ผ", - "โ›ฑ", - "โœŒ", - "โ†ฉ", - "ยฉ", - "โ", - "๐Ÿ", - "๐ŸŒง", - "โ˜ ", - "โฌ†", - "๐Ÿ˜", - "๐Ÿ—ƒ", - "โ–ช", - "โ˜ฆ", - "0", - "๐ŸŒจ", - "๐Ÿ—ฃ", - "๐Ÿ—บ", - "๐Ÿž", - "๐Ÿ•ถ", + "โ–ถ", + "*", + "๐Ÿ–‡", "๐ŸŒฌ", - "โ™ฃ", - "โš—", - "โ—€", + "๐ŸŽž", + "๐Ÿ—‚", + "โ–ซ", + "โฌ†", + "๐Ÿš", + "โ†˜", "โ›“", + "โ˜ƒ", } ), ) diff --git a/rich/_unicode_data/unicode16-0-0.py b/rich/_unicode_data/unicode16-0-0.py index 1cf0848e3d..e7a88a3bef 100644 --- a/rich/_unicode_data/unicode16-0-0.py +++ b/rich/_unicode_data/unicode16-0-0.py @@ -1,4 +1,5 @@ # Auto generated by tools/make_width_tables.py +# Data from wcwidth project (https://github.com/jquast/wcwidth) from rich.cells import CellTable @@ -468,219 +469,219 @@ ], narrow_to_wide=frozenset( { - "๐Ÿ—", - "๐Ÿ“ฝ", - "๐Ÿ—’", - "๐Ÿ—œ", - "โ™€", - "๐ŸŽŸ", - "๐Ÿ›ฃ", - "โญ", - "โ„น", - "โ˜‚", - "โ˜บ", - "๐ŸŽ™", - "โธ", - "โžก", - "โ˜ƒ", - "๐Ÿ–ฒ", - "โ˜", - "๐Ÿ› ", - "โœณ", - "โ–ถ", - "โš ", - "๐Ÿ›ฐ", - "โ›ˆ", - "6", - "๐Ÿ…ฟ", - "๐ŸŽ–", - "โ›‘", - "๐Ÿ›ฉ", + "2", + "โ†ช", + "โ˜", + "๐ŸŒง", + "๐Ÿ›ข", + "โ‰", + "โ™จ", + "โœ”", + "โ˜Ž", + "โ˜ฃ", + "๐Ÿ›", + "๐Ÿ…พ", + "๐Ÿ•ต", + "๐Ÿ—ฃ", + "โ™ฃ", + "๐Ÿ—ž", + "๐Ÿ…ฑ", "โ˜ช", + "๐Ÿ•", + "๐Ÿž", + "๐Ÿ›ฐ", + "0", + "๐Ÿ›ณ", "๐Ÿ•ณ", - "9", + "โ™ ", + "5", + "โŒจ", + "๐Ÿ›‹", + "๐Ÿ—’", + "โœณ", "๐Ÿท", - "โ˜€", + "๐ŸŒฉ", + "โšง", + "๐Ÿ", + "๐Ÿ•‰", + "โ˜ฆ", + "๐Ÿ‘", + "๐Ÿ›", + "๐Ÿ—บ", + "๐ŸŽ—", + "๐Ÿ…ฟ", + "โ™‚", + "โš›", + "๐Ÿ›ก", + "โฎ", + "๐Ÿณ", + "๐Ÿ—ƒ", + "๐Ÿ—", + "๐Ÿฟ", + "โ—ป", + "๐Ÿ™", + "๐Ÿ›ฅ", + "6", + "โฑ", + "โ›ฐ", + "๐ŸŽ", + "๐Ÿ•ฏ", + "๐Ÿต", + "๐Ÿ–", + "โœ–", + "๐Ÿ›Ž", + "โ˜‚", + "#", + "โฃ", + "โ™ป", + "๐Ÿ—„", + "3", + "โญ", "โ˜ธ", - "โ™จ", - "โฌ…", - "โ‡", - "๐Ÿ—จ", + "โ", + "โ›ธ", + "๐Ÿ–", + "โธ", "โ™ฆ", - "#", - "โœ", - "โน", - "โ™Ÿ", - "๐Ÿ•‰", - "๐Ÿ—“", - "๐ŸŒถ", - "โบ", - "โ˜˜", - "โ€ผ", - "๐ŸŒฉ", + "โ‡", + "โฏ", + "โ›น", + "โ˜ ", + "๐Ÿ”", + "๐Ÿ•ธ", + "โ†–", "๐Ÿ—‘", + "๐ŸŒก", + "โœˆ", + "โš’", + "7", + "โœ", + "๐Ÿ•ฐ", + "๐ŸŒซ", + "โ˜ฎ", "โ˜ฏ", - "๐Ÿ•ด", + "โฒ", + "๐Ÿ–", "โœด", - "โ˜ข", - "๐Ÿ–ผ", - "๐ŸŒซ", - "๐Ÿ•ต", - "โšง", + "โšฐ", "๐Ÿฝ", - "๐Ÿ—„", - "โœ”", + "โšฑ", + "๐Ÿœ", "๐Ÿ—ก", - "โฒ", - "๐ŸŒก", - "๐Ÿ–‹", - "๐Ÿ›ณ", - "๐Ÿ›‹", - "โ˜", - "๐Ÿ‘", + "๐Ÿ•ท", + "โ™€", + "โ„น", + "๐ŸŒจ", + "โšœ", + "โ˜„", + "โ˜‘", + "โš ", + "โœ", + "9", "โ“‚", - "โ†•", - "๐Ÿ›", - "โฏ", - "7", - "๐Ÿ–", - "โฑ", - "*", - "๐Ÿ—", - "โœ", - "๐Ÿ–Œ", - "โ†–", - "โ›น", - "๐Ÿ™", - "โ„", + "โ†ฉ", + "โ˜น", + "โ˜บ", + "4", + "โ—ผ", + "โš”", + "โ™Ÿ", + "โœ‰", + "โคต", + "๐ŸŽ–", + "โค", "๐ŸŽš", - "๐Ÿš", - "โ‰", - "๐Ÿ”", - "๐Ÿฟ", - "๐Ÿ•", - "โ„ข", - "1", - "๐Ÿ›ค", - "๐Ÿ…ฑ", - "๐Ÿ–Š", - "โšฑ", - "โ›ธ", - "๐Ÿณ", - "๐Ÿ›", - "โฌ‡", - "๐Ÿ…ฐ", - "โ›ฉ", - "๐Ÿ—ณ", - "โ†™", - "๐Ÿ—‚", - "โ›ด", + "๐Ÿ•Š", + "๐Ÿ—ฏ", "๐Ÿ‹", + "๐Ÿ—ณ", + "โ†•", + "โ„", + "โœ‚", + "โžก", + "๐Ÿ˜", + "โ›ฑ", + "โ™ฅ", + "๐Ÿ–‹", "๐ŸŒฆ", - "ยฎ", - "๐Ÿ—ž", - "โ™ ", + "โœ’", + "๐Ÿ“ฝ", + "โš–", + "๐Ÿ–Œ", + "โ˜€", + "โ›ท", + "โ†™", + "โ€ผ", + "๐Ÿ•ด", + "โ†”", + "โ›", "โคด", - "โœˆ", - "๐ŸŽž", "โš•", - "โ›", - "๐Ÿ•ธ", - "๐Ÿ›ฅ", - "โšœ", - "โ˜ฎ", - "๐Ÿ—ฏ", - "โœก", - "โฎ", - "โšฐ", - "3", - "โ–ซ", + "โน", + "๐Ÿ–ฑ", + "โฌ…", + "๐Ÿ›ค", + "๐Ÿ› ", + "๐Ÿ›ฉ", + "๐ŸŒช", "๐Ÿ", - "โœ", - "โ†˜", - "โ†ช", - "โš›", - "๐Ÿ–‡", - "โœ–", - "๐Ÿ›ข", + "โ–ช", + "โ›ฉ", + "๐Ÿ•ถ", + "๐Ÿ›ฃ", + "๐Ÿ–ฒ", + "๐Ÿ–ฅ", + "โš—", + "ยฉ", + "โ˜ข", + "โ†—", + "โœŒ", + "โ„ข", "๐ŸŽ›", + "โœ", + "โ›‘", + "๐ŸŽ™", + "1", + "โฌ‡", + "๐Ÿ—“", + "โ›ˆ", + "โœก", + "๐Ÿ–Š", + "๐Ÿ–ผ", + "๐Ÿ›", + "๐ŸŒฅ", + "๐ŸŒถ", + "๐Ÿ—", + "๐Ÿ–จ", + "โ™พ", + "โ›ด", + "โ˜", "8", - "โ†—", - "๐Ÿ›ก", - "โ˜ฃ", - "โ›ฐ", - "โฃ", - "โœ‚", - "โ˜‘", + "โ—€", + "๐ŸŽŸ", + "๐Ÿ•น", + "๐Ÿ—จ", + "ยฎ", "โš™", - "โคต", - "โ™ป", - "๐ŸŒช", - "๐Ÿ–", - "๐Ÿ•ฏ", - "โœ‰", - "4", - "โœ’", + "๐ŸŒ", + "๐Ÿ—œ", "๐ŸŒค", + "โบ", + "โ˜˜", + "๐Ÿ…ฐ", "๐ŸŸ", - "โ™‚", - "๐Ÿ•ฐ", - "๐Ÿ›Ž", - "๐ŸŽ—", - "๐Ÿ•น", - "5", - "โš’", - "โค", - "๐Ÿ–", - "โš”", - "โš–", - "๐Ÿ–ฑ", - "๐Ÿ•Š", - "โ†”", - "2", - "๐Ÿ•ท", - "๐Ÿ…พ", - "โ˜น", - "๐Ÿ–ฅ", - "โ›ท", - "๐Ÿœ", - "โ˜Ž", - "๐ŸŒ", - "โ™พ", - "๐Ÿ›", - "โŒจ", - "๐ŸŽ", - "๐Ÿต", - "๐Ÿ–จ", - "โ™ฅ", - "โ—ป", - "๐ŸŒฅ", - "โ˜„", - "โ—ผ", - "โ›ฑ", - "โœŒ", - "โ†ฉ", - "ยฉ", - "โ", - "๐Ÿ", - "๐ŸŒง", - "โ˜ ", - "โฌ†", - "๐Ÿ˜", - "๐Ÿ—ƒ", - "โ–ช", - "โ˜ฆ", - "0", - "๐ŸŒจ", - "๐Ÿ—ฃ", - "๐Ÿ—บ", - "๐Ÿž", - "๐Ÿ•ถ", + "โ–ถ", + "*", + "๐Ÿ–‡", "๐ŸŒฌ", - "โ™ฃ", - "โš—", - "โ—€", + "๐ŸŽž", + "๐Ÿ—‚", + "โ–ซ", + "โฌ†", + "๐Ÿš", + "โ†˜", "โ›“", + "โ˜ƒ", } ), ) diff --git a/rich/_unicode_data/unicode17-0-0.py b/rich/_unicode_data/unicode17-0-0.py index 3fde3d0ffb..e394008360 100644 --- a/rich/_unicode_data/unicode17-0-0.py +++ b/rich/_unicode_data/unicode17-0-0.py @@ -1,4 +1,5 @@ # Auto generated by tools/make_width_tables.py +# Data from wcwidth project (https://github.com/jquast/wcwidth) from rich.cells import CellTable @@ -476,219 +477,219 @@ ], narrow_to_wide=frozenset( { - "๐Ÿ—", - "๐Ÿ“ฝ", - "๐Ÿ—’", - "๐Ÿ—œ", - "โ™€", - "๐ŸŽŸ", - "๐Ÿ›ฃ", - "โญ", - "โ„น", - "โ˜‚", - "โ˜บ", - "๐ŸŽ™", - "โธ", - "โžก", - "โ˜ƒ", - "๐Ÿ–ฒ", - "โ˜", - "๐Ÿ› ", - "โœณ", - "โ–ถ", - "โš ", - "๐Ÿ›ฐ", - "โ›ˆ", - "6", - "๐Ÿ…ฟ", - "๐ŸŽ–", - "โ›‘", - "๐Ÿ›ฉ", + "2", + "โ†ช", + "โ˜", + "๐ŸŒง", + "๐Ÿ›ข", + "โ‰", + "โ™จ", + "โœ”", + "โ˜Ž", + "โ˜ฃ", + "๐Ÿ›", + "๐Ÿ…พ", + "๐Ÿ•ต", + "๐Ÿ—ฃ", + "โ™ฃ", + "๐Ÿ—ž", + "๐Ÿ…ฑ", "โ˜ช", + "๐Ÿ•", + "๐Ÿž", + "๐Ÿ›ฐ", + "0", + "๐Ÿ›ณ", "๐Ÿ•ณ", - "9", + "โ™ ", + "5", + "โŒจ", + "๐Ÿ›‹", + "๐Ÿ—’", + "โœณ", "๐Ÿท", - "โ˜€", + "๐ŸŒฉ", + "โšง", + "๐Ÿ", + "๐Ÿ•‰", + "โ˜ฆ", + "๐Ÿ‘", + "๐Ÿ›", + "๐Ÿ—บ", + "๐ŸŽ—", + "๐Ÿ…ฟ", + "โ™‚", + "โš›", + "๐Ÿ›ก", + "โฎ", + "๐Ÿณ", + "๐Ÿ—ƒ", + "๐Ÿ—", + "๐Ÿฟ", + "โ—ป", + "๐Ÿ™", + "๐Ÿ›ฅ", + "6", + "โฑ", + "โ›ฐ", + "๐ŸŽ", + "๐Ÿ•ฏ", + "๐Ÿต", + "๐Ÿ–", + "โœ–", + "๐Ÿ›Ž", + "โ˜‚", + "#", + "โฃ", + "โ™ป", + "๐Ÿ—„", + "3", + "โญ", "โ˜ธ", - "โ™จ", - "โฌ…", - "โ‡", - "๐Ÿ—จ", + "โ", + "โ›ธ", + "๐Ÿ–", + "โธ", "โ™ฆ", - "#", - "โœ", - "โน", - "โ™Ÿ", - "๐Ÿ•‰", - "๐Ÿ—“", - "๐ŸŒถ", - "โบ", - "โ˜˜", - "โ€ผ", - "๐ŸŒฉ", + "โ‡", + "โฏ", + "โ›น", + "โ˜ ", + "๐Ÿ”", + "๐Ÿ•ธ", + "โ†–", "๐Ÿ—‘", + "๐ŸŒก", + "โœˆ", + "โš’", + "7", + "โœ", + "๐Ÿ•ฐ", + "๐ŸŒซ", + "โ˜ฎ", "โ˜ฏ", - "๐Ÿ•ด", + "โฒ", + "๐Ÿ–", "โœด", - "โ˜ข", - "๐Ÿ–ผ", - "๐ŸŒซ", - "๐Ÿ•ต", - "โšง", + "โšฐ", "๐Ÿฝ", - "๐Ÿ—„", - "โœ”", + "โšฑ", + "๐Ÿœ", "๐Ÿ—ก", - "โฒ", - "๐ŸŒก", - "๐Ÿ–‹", - "๐Ÿ›ณ", - "๐Ÿ›‹", - "โ˜", - "๐Ÿ‘", + "๐Ÿ•ท", + "โ™€", + "โ„น", + "๐ŸŒจ", + "โšœ", + "โ˜„", + "โ˜‘", + "โš ", + "โœ", + "9", "โ“‚", - "โ†•", - "๐Ÿ›", - "โฏ", - "7", - "๐Ÿ–", - "โฑ", - "*", - "๐Ÿ—", - "โœ", - "๐Ÿ–Œ", - "โ†–", - "โ›น", - "๐Ÿ™", - "โ„", + "โ†ฉ", + "โ˜น", + "โ˜บ", + "4", + "โ—ผ", + "โš”", + "โ™Ÿ", + "โœ‰", + "โคต", + "๐ŸŽ–", + "โค", "๐ŸŽš", - "๐Ÿš", - "โ‰", - "๐Ÿ”", - "๐Ÿฟ", - "๐Ÿ•", - "โ„ข", - "1", - "๐Ÿ›ค", - "๐Ÿ…ฑ", - "๐Ÿ–Š", - "โšฑ", - "โ›ธ", - "๐Ÿณ", - "๐Ÿ›", - "โฌ‡", - "๐Ÿ…ฐ", - "โ›ฉ", - "๐Ÿ—ณ", - "โ†™", - "๐Ÿ—‚", - "โ›ด", + "๐Ÿ•Š", + "๐Ÿ—ฏ", "๐Ÿ‹", + "๐Ÿ—ณ", + "โ†•", + "โ„", + "โœ‚", + "โžก", + "๐Ÿ˜", + "โ›ฑ", + "โ™ฅ", + "๐Ÿ–‹", "๐ŸŒฆ", - "ยฎ", - "๐Ÿ—ž", - "โ™ ", + "โœ’", + "๐Ÿ“ฝ", + "โš–", + "๐Ÿ–Œ", + "โ˜€", + "โ›ท", + "โ†™", + "โ€ผ", + "๐Ÿ•ด", + "โ†”", + "โ›", "โคด", - "โœˆ", - "๐ŸŽž", "โš•", - "โ›", - "๐Ÿ•ธ", - "๐Ÿ›ฅ", - "โšœ", - "โ˜ฎ", - "๐Ÿ—ฏ", - "โœก", - "โฎ", - "โšฐ", - "3", - "โ–ซ", + "โน", + "๐Ÿ–ฑ", + "โฌ…", + "๐Ÿ›ค", + "๐Ÿ› ", + "๐Ÿ›ฉ", + "๐ŸŒช", "๐Ÿ", - "โœ", - "โ†˜", - "โ†ช", - "โš›", - "๐Ÿ–‡", - "โœ–", - "๐Ÿ›ข", + "โ–ช", + "โ›ฉ", + "๐Ÿ•ถ", + "๐Ÿ›ฃ", + "๐Ÿ–ฒ", + "๐Ÿ–ฅ", + "โš—", + "ยฉ", + "โ˜ข", + "โ†—", + "โœŒ", + "โ„ข", "๐ŸŽ›", + "โœ", + "โ›‘", + "๐ŸŽ™", + "1", + "โฌ‡", + "๐Ÿ—“", + "โ›ˆ", + "โœก", + "๐Ÿ–Š", + "๐Ÿ–ผ", + "๐Ÿ›", + "๐ŸŒฅ", + "๐ŸŒถ", + "๐Ÿ—", + "๐Ÿ–จ", + "โ™พ", + "โ›ด", + "โ˜", "8", - "โ†—", - "๐Ÿ›ก", - "โ˜ฃ", - "โ›ฐ", - "โฃ", - "โœ‚", - "โ˜‘", + "โ—€", + "๐ŸŽŸ", + "๐Ÿ•น", + "๐Ÿ—จ", + "ยฎ", "โš™", - "โคต", - "โ™ป", - "๐ŸŒช", - "๐Ÿ–", - "๐Ÿ•ฏ", - "โœ‰", - "4", - "โœ’", + "๐ŸŒ", + "๐Ÿ—œ", "๐ŸŒค", + "โบ", + "โ˜˜", + "๐Ÿ…ฐ", "๐ŸŸ", - "โ™‚", - "๐Ÿ•ฐ", - "๐Ÿ›Ž", - "๐ŸŽ—", - "๐Ÿ•น", - "5", - "โš’", - "โค", - "๐Ÿ–", - "โš”", - "โš–", - "๐Ÿ–ฑ", - "๐Ÿ•Š", - "โ†”", - "2", - "๐Ÿ•ท", - "๐Ÿ…พ", - "โ˜น", - "๐Ÿ–ฅ", - "โ›ท", - "๐Ÿœ", - "โ˜Ž", - "๐ŸŒ", - "โ™พ", - "๐Ÿ›", - "โŒจ", - "๐ŸŽ", - "๐Ÿต", - "๐Ÿ–จ", - "โ™ฅ", - "โ—ป", - "๐ŸŒฅ", - "โ˜„", - "โ—ผ", - "โ›ฑ", - "โœŒ", - "โ†ฉ", - "ยฉ", - "โ", - "๐Ÿ", - "๐ŸŒง", - "โ˜ ", - "โฌ†", - "๐Ÿ˜", - "๐Ÿ—ƒ", - "โ–ช", - "โ˜ฆ", - "0", - "๐ŸŒจ", - "๐Ÿ—ฃ", - "๐Ÿ—บ", - "๐Ÿž", - "๐Ÿ•ถ", + "โ–ถ", + "*", + "๐Ÿ–‡", "๐ŸŒฌ", - "โ™ฃ", - "โš—", - "โ—€", + "๐ŸŽž", + "๐Ÿ—‚", + "โ–ซ", + "โฌ†", + "๐Ÿš", + "โ†˜", "โ›“", + "โ˜ƒ", } ), ) diff --git a/rich/_unicode_data/unicode4-1-0.py b/rich/_unicode_data/unicode4-1-0.py index 75cf1af893..06612e1eea 100644 --- a/rich/_unicode_data/unicode4-1-0.py +++ b/rich/_unicode_data/unicode4-1-0.py @@ -1,4 +1,5 @@ # Auto generated by tools/make_width_tables.py +# Data from wcwidth project (https://github.com/jquast/wcwidth) from rich.cells import CellTable @@ -186,219 +187,219 @@ ], narrow_to_wide=frozenset( { - "๐Ÿ—", - "๐Ÿ“ฝ", - "๐Ÿ—’", - "๐Ÿ—œ", - "โ™€", - "๐ŸŽŸ", - "๐Ÿ›ฃ", - "โญ", - "โ„น", - "โ˜‚", - "โ˜บ", - "๐ŸŽ™", - "โธ", - "โžก", - "โ˜ƒ", - "๐Ÿ–ฒ", - "โ˜", - "๐Ÿ› ", - "โœณ", - "โ–ถ", - "โš ", - "๐Ÿ›ฐ", - "โ›ˆ", - "6", - "๐Ÿ…ฟ", - "๐ŸŽ–", - "โ›‘", - "๐Ÿ›ฉ", + "2", + "โ†ช", + "โ˜", + "๐ŸŒง", + "๐Ÿ›ข", + "โ‰", + "โ™จ", + "โœ”", + "โ˜Ž", + "โ˜ฃ", + "๐Ÿ›", + "๐Ÿ…พ", + "๐Ÿ•ต", + "๐Ÿ—ฃ", + "โ™ฃ", + "๐Ÿ—ž", + "๐Ÿ…ฑ", "โ˜ช", + "๐Ÿ•", + "๐Ÿž", + "๐Ÿ›ฐ", + "0", + "๐Ÿ›ณ", "๐Ÿ•ณ", - "9", + "โ™ ", + "5", + "โŒจ", + "๐Ÿ›‹", + "๐Ÿ—’", + "โœณ", "๐Ÿท", - "โ˜€", + "๐ŸŒฉ", + "โšง", + "๐Ÿ", + "๐Ÿ•‰", + "โ˜ฆ", + "๐Ÿ‘", + "๐Ÿ›", + "๐Ÿ—บ", + "๐ŸŽ—", + "๐Ÿ…ฟ", + "โ™‚", + "โš›", + "๐Ÿ›ก", + "โฎ", + "๐Ÿณ", + "๐Ÿ—ƒ", + "๐Ÿ—", + "๐Ÿฟ", + "โ—ป", + "๐Ÿ™", + "๐Ÿ›ฅ", + "6", + "โฑ", + "โ›ฐ", + "๐ŸŽ", + "๐Ÿ•ฏ", + "๐Ÿต", + "๐Ÿ–", + "โœ–", + "๐Ÿ›Ž", + "โ˜‚", + "#", + "โฃ", + "โ™ป", + "๐Ÿ—„", + "3", + "โญ", "โ˜ธ", - "โ™จ", - "โฌ…", - "โ‡", - "๐Ÿ—จ", + "โ", + "โ›ธ", + "๐Ÿ–", + "โธ", "โ™ฆ", - "#", - "โœ", - "โน", - "โ™Ÿ", - "๐Ÿ•‰", - "๐Ÿ—“", - "๐ŸŒถ", - "โบ", - "โ˜˜", - "โ€ผ", - "๐ŸŒฉ", + "โ‡", + "โฏ", + "โ›น", + "โ˜ ", + "๐Ÿ”", + "๐Ÿ•ธ", + "โ†–", "๐Ÿ—‘", + "๐ŸŒก", + "โœˆ", + "โš’", + "7", + "โœ", + "๐Ÿ•ฐ", + "๐ŸŒซ", + "โ˜ฎ", "โ˜ฏ", - "๐Ÿ•ด", + "โฒ", + "๐Ÿ–", "โœด", - "โ˜ข", - "๐Ÿ–ผ", - "๐ŸŒซ", - "๐Ÿ•ต", - "โšง", + "โšฐ", "๐Ÿฝ", - "๐Ÿ—„", - "โœ”", + "โšฑ", + "๐Ÿœ", "๐Ÿ—ก", - "โฒ", - "๐ŸŒก", - "๐Ÿ–‹", - "๐Ÿ›ณ", - "๐Ÿ›‹", - "โ˜", - "๐Ÿ‘", + "๐Ÿ•ท", + "โ™€", + "โ„น", + "๐ŸŒจ", + "โšœ", + "โ˜„", + "โ˜‘", + "โš ", + "โœ", + "9", "โ“‚", - "โ†•", - "๐Ÿ›", - "โฏ", - "7", - "๐Ÿ–", - "โฑ", - "*", - "๐Ÿ—", - "โœ", - "๐Ÿ–Œ", - "โ†–", - "โ›น", - "๐Ÿ™", - "โ„", + "โ†ฉ", + "โ˜น", + "โ˜บ", + "4", + "โ—ผ", + "โš”", + "โ™Ÿ", + "โœ‰", + "โคต", + "๐ŸŽ–", + "โค", "๐ŸŽš", - "๐Ÿš", - "โ‰", - "๐Ÿ”", - "๐Ÿฟ", - "๐Ÿ•", - "โ„ข", - "1", - "๐Ÿ›ค", - "๐Ÿ…ฑ", - "๐Ÿ–Š", - "โšฑ", - "โ›ธ", - "๐Ÿณ", - "๐Ÿ›", - "โฌ‡", - "๐Ÿ…ฐ", - "โ›ฉ", - "๐Ÿ—ณ", - "โ†™", - "๐Ÿ—‚", - "โ›ด", + "๐Ÿ•Š", + "๐Ÿ—ฏ", "๐Ÿ‹", + "๐Ÿ—ณ", + "โ†•", + "โ„", + "โœ‚", + "โžก", + "๐Ÿ˜", + "โ›ฑ", + "โ™ฅ", + "๐Ÿ–‹", "๐ŸŒฆ", - "ยฎ", - "๐Ÿ—ž", - "โ™ ", + "โœ’", + "๐Ÿ“ฝ", + "โš–", + "๐Ÿ–Œ", + "โ˜€", + "โ›ท", + "โ†™", + "โ€ผ", + "๐Ÿ•ด", + "โ†”", + "โ›", "โคด", - "โœˆ", - "๐ŸŽž", "โš•", - "โ›", - "๐Ÿ•ธ", - "๐Ÿ›ฅ", - "โšœ", - "โ˜ฎ", - "๐Ÿ—ฏ", - "โœก", - "โฎ", - "โšฐ", - "3", - "โ–ซ", + "โน", + "๐Ÿ–ฑ", + "โฌ…", + "๐Ÿ›ค", + "๐Ÿ› ", + "๐Ÿ›ฉ", + "๐ŸŒช", "๐Ÿ", - "โœ", - "โ†˜", - "โ†ช", - "โš›", - "๐Ÿ–‡", - "โœ–", - "๐Ÿ›ข", + "โ–ช", + "โ›ฉ", + "๐Ÿ•ถ", + "๐Ÿ›ฃ", + "๐Ÿ–ฒ", + "๐Ÿ–ฅ", + "โš—", + "ยฉ", + "โ˜ข", + "โ†—", + "โœŒ", + "โ„ข", "๐ŸŽ›", + "โœ", + "โ›‘", + "๐ŸŽ™", + "1", + "โฌ‡", + "๐Ÿ—“", + "โ›ˆ", + "โœก", + "๐Ÿ–Š", + "๐Ÿ–ผ", + "๐Ÿ›", + "๐ŸŒฅ", + "๐ŸŒถ", + "๐Ÿ—", + "๐Ÿ–จ", + "โ™พ", + "โ›ด", + "โ˜", "8", - "โ†—", - "๐Ÿ›ก", - "โ˜ฃ", - "โ›ฐ", - "โฃ", - "โœ‚", - "โ˜‘", + "โ—€", + "๐ŸŽŸ", + "๐Ÿ•น", + "๐Ÿ—จ", + "ยฎ", "โš™", - "โคต", - "โ™ป", - "๐ŸŒช", - "๐Ÿ–", - "๐Ÿ•ฏ", - "โœ‰", - "4", - "โœ’", + "๐ŸŒ", + "๐Ÿ—œ", "๐ŸŒค", + "โบ", + "โ˜˜", + "๐Ÿ…ฐ", "๐ŸŸ", - "โ™‚", - "๐Ÿ•ฐ", - "๐Ÿ›Ž", - "๐ŸŽ—", - "๐Ÿ•น", - "5", - "โš’", - "โค", - "๐Ÿ–", - "โš”", - "โš–", - "๐Ÿ–ฑ", - "๐Ÿ•Š", - "โ†”", - "2", - "๐Ÿ•ท", - "๐Ÿ…พ", - "โ˜น", - "๐Ÿ–ฅ", - "โ›ท", - "๐Ÿœ", - "โ˜Ž", - "๐ŸŒ", - "โ™พ", - "๐Ÿ›", - "โŒจ", - "๐ŸŽ", - "๐Ÿต", - "๐Ÿ–จ", - "โ™ฅ", - "โ—ป", - "๐ŸŒฅ", - "โ˜„", - "โ—ผ", - "โ›ฑ", - "โœŒ", - "โ†ฉ", - "ยฉ", - "โ", - "๐Ÿ", - "๐ŸŒง", - "โ˜ ", - "โฌ†", - "๐Ÿ˜", - "๐Ÿ—ƒ", - "โ–ช", - "โ˜ฆ", - "0", - "๐ŸŒจ", - "๐Ÿ—ฃ", - "๐Ÿ—บ", - "๐Ÿž", - "๐Ÿ•ถ", + "โ–ถ", + "*", + "๐Ÿ–‡", "๐ŸŒฌ", - "โ™ฃ", - "โš—", - "โ—€", + "๐ŸŽž", + "๐Ÿ—‚", + "โ–ซ", + "โฌ†", + "๐Ÿš", + "โ†˜", "โ›“", + "โ˜ƒ", } ), ) diff --git a/rich/_unicode_data/unicode5-0-0.py b/rich/_unicode_data/unicode5-0-0.py index 4a9dd84cc1..1de377de9f 100644 --- a/rich/_unicode_data/unicode5-0-0.py +++ b/rich/_unicode_data/unicode5-0-0.py @@ -1,4 +1,5 @@ # Auto generated by tools/make_width_tables.py +# Data from wcwidth project (https://github.com/jquast/wcwidth) from rich.cells import CellTable @@ -191,219 +192,219 @@ ], narrow_to_wide=frozenset( { - "๐Ÿ—", - "๐Ÿ“ฝ", - "๐Ÿ—’", - "๐Ÿ—œ", - "โ™€", - "๐ŸŽŸ", - "๐Ÿ›ฃ", - "โญ", - "โ„น", - "โ˜‚", - "โ˜บ", - "๐ŸŽ™", - "โธ", - "โžก", - "โ˜ƒ", - "๐Ÿ–ฒ", - "โ˜", - "๐Ÿ› ", - "โœณ", - "โ–ถ", - "โš ", - "๐Ÿ›ฐ", - "โ›ˆ", - "6", - "๐Ÿ…ฟ", - "๐ŸŽ–", - "โ›‘", - "๐Ÿ›ฉ", + "2", + "โ†ช", + "โ˜", + "๐ŸŒง", + "๐Ÿ›ข", + "โ‰", + "โ™จ", + "โœ”", + "โ˜Ž", + "โ˜ฃ", + "๐Ÿ›", + "๐Ÿ…พ", + "๐Ÿ•ต", + "๐Ÿ—ฃ", + "โ™ฃ", + "๐Ÿ—ž", + "๐Ÿ…ฑ", "โ˜ช", + "๐Ÿ•", + "๐Ÿž", + "๐Ÿ›ฐ", + "0", + "๐Ÿ›ณ", "๐Ÿ•ณ", - "9", + "โ™ ", + "5", + "โŒจ", + "๐Ÿ›‹", + "๐Ÿ—’", + "โœณ", "๐Ÿท", - "โ˜€", + "๐ŸŒฉ", + "โšง", + "๐Ÿ", + "๐Ÿ•‰", + "โ˜ฆ", + "๐Ÿ‘", + "๐Ÿ›", + "๐Ÿ—บ", + "๐ŸŽ—", + "๐Ÿ…ฟ", + "โ™‚", + "โš›", + "๐Ÿ›ก", + "โฎ", + "๐Ÿณ", + "๐Ÿ—ƒ", + "๐Ÿ—", + "๐Ÿฟ", + "โ—ป", + "๐Ÿ™", + "๐Ÿ›ฅ", + "6", + "โฑ", + "โ›ฐ", + "๐ŸŽ", + "๐Ÿ•ฏ", + "๐Ÿต", + "๐Ÿ–", + "โœ–", + "๐Ÿ›Ž", + "โ˜‚", + "#", + "โฃ", + "โ™ป", + "๐Ÿ—„", + "3", + "โญ", "โ˜ธ", - "โ™จ", - "โฌ…", - "โ‡", - "๐Ÿ—จ", + "โ", + "โ›ธ", + "๐Ÿ–", + "โธ", "โ™ฆ", - "#", - "โœ", - "โน", - "โ™Ÿ", - "๐Ÿ•‰", - "๐Ÿ—“", - "๐ŸŒถ", - "โบ", - "โ˜˜", - "โ€ผ", - "๐ŸŒฉ", + "โ‡", + "โฏ", + "โ›น", + "โ˜ ", + "๐Ÿ”", + "๐Ÿ•ธ", + "โ†–", "๐Ÿ—‘", + "๐ŸŒก", + "โœˆ", + "โš’", + "7", + "โœ", + "๐Ÿ•ฐ", + "๐ŸŒซ", + "โ˜ฎ", "โ˜ฏ", - "๐Ÿ•ด", + "โฒ", + "๐Ÿ–", "โœด", - "โ˜ข", - "๐Ÿ–ผ", - "๐ŸŒซ", - "๐Ÿ•ต", - "โšง", + "โšฐ", "๐Ÿฝ", - "๐Ÿ—„", - "โœ”", + "โšฑ", + "๐Ÿœ", "๐Ÿ—ก", - "โฒ", - "๐ŸŒก", - "๐Ÿ–‹", - "๐Ÿ›ณ", - "๐Ÿ›‹", - "โ˜", - "๐Ÿ‘", + "๐Ÿ•ท", + "โ™€", + "โ„น", + "๐ŸŒจ", + "โšœ", + "โ˜„", + "โ˜‘", + "โš ", + "โœ", + "9", "โ“‚", - "โ†•", - "๐Ÿ›", - "โฏ", - "7", - "๐Ÿ–", - "โฑ", - "*", - "๐Ÿ—", - "โœ", - "๐Ÿ–Œ", - "โ†–", - "โ›น", - "๐Ÿ™", - "โ„", + "โ†ฉ", + "โ˜น", + "โ˜บ", + "4", + "โ—ผ", + "โš”", + "โ™Ÿ", + "โœ‰", + "โคต", + "๐ŸŽ–", + "โค", "๐ŸŽš", - "๐Ÿš", - "โ‰", - "๐Ÿ”", - "๐Ÿฟ", - "๐Ÿ•", - "โ„ข", - "1", - "๐Ÿ›ค", - "๐Ÿ…ฑ", - "๐Ÿ–Š", - "โšฑ", - "โ›ธ", - "๐Ÿณ", - "๐Ÿ›", - "โฌ‡", - "๐Ÿ…ฐ", - "โ›ฉ", - "๐Ÿ—ณ", - "โ†™", - "๐Ÿ—‚", - "โ›ด", + "๐Ÿ•Š", + "๐Ÿ—ฏ", "๐Ÿ‹", + "๐Ÿ—ณ", + "โ†•", + "โ„", + "โœ‚", + "โžก", + "๐Ÿ˜", + "โ›ฑ", + "โ™ฅ", + "๐Ÿ–‹", "๐ŸŒฆ", - "ยฎ", - "๐Ÿ—ž", - "โ™ ", + "โœ’", + "๐Ÿ“ฝ", + "โš–", + "๐Ÿ–Œ", + "โ˜€", + "โ›ท", + "โ†™", + "โ€ผ", + "๐Ÿ•ด", + "โ†”", + "โ›", "โคด", - "โœˆ", - "๐ŸŽž", "โš•", - "โ›", - "๐Ÿ•ธ", - "๐Ÿ›ฅ", - "โšœ", - "โ˜ฎ", - "๐Ÿ—ฏ", - "โœก", - "โฎ", - "โšฐ", - "3", - "โ–ซ", + "โน", + "๐Ÿ–ฑ", + "โฌ…", + "๐Ÿ›ค", + "๐Ÿ› ", + "๐Ÿ›ฉ", + "๐ŸŒช", "๐Ÿ", - "โœ", - "โ†˜", - "โ†ช", - "โš›", - "๐Ÿ–‡", - "โœ–", - "๐Ÿ›ข", + "โ–ช", + "โ›ฉ", + "๐Ÿ•ถ", + "๐Ÿ›ฃ", + "๐Ÿ–ฒ", + "๐Ÿ–ฅ", + "โš—", + "ยฉ", + "โ˜ข", + "โ†—", + "โœŒ", + "โ„ข", "๐ŸŽ›", + "โœ", + "โ›‘", + "๐ŸŽ™", + "1", + "โฌ‡", + "๐Ÿ—“", + "โ›ˆ", + "โœก", + "๐Ÿ–Š", + "๐Ÿ–ผ", + "๐Ÿ›", + "๐ŸŒฅ", + "๐ŸŒถ", + "๐Ÿ—", + "๐Ÿ–จ", + "โ™พ", + "โ›ด", + "โ˜", "8", - "โ†—", - "๐Ÿ›ก", - "โ˜ฃ", - "โ›ฐ", - "โฃ", - "โœ‚", - "โ˜‘", + "โ—€", + "๐ŸŽŸ", + "๐Ÿ•น", + "๐Ÿ—จ", + "ยฎ", "โš™", - "โคต", - "โ™ป", - "๐ŸŒช", - "๐Ÿ–", - "๐Ÿ•ฏ", - "โœ‰", - "4", - "โœ’", + "๐ŸŒ", + "๐Ÿ—œ", "๐ŸŒค", + "โบ", + "โ˜˜", + "๐Ÿ…ฐ", "๐ŸŸ", - "โ™‚", - "๐Ÿ•ฐ", - "๐Ÿ›Ž", - "๐ŸŽ—", - "๐Ÿ•น", - "5", - "โš’", - "โค", - "๐Ÿ–", - "โš”", - "โš–", - "๐Ÿ–ฑ", - "๐Ÿ•Š", - "โ†”", - "2", - "๐Ÿ•ท", - "๐Ÿ…พ", - "โ˜น", - "๐Ÿ–ฅ", - "โ›ท", - "๐Ÿœ", - "โ˜Ž", - "๐ŸŒ", - "โ™พ", - "๐Ÿ›", - "โŒจ", - "๐ŸŽ", - "๐Ÿต", - "๐Ÿ–จ", - "โ™ฅ", - "โ—ป", - "๐ŸŒฅ", - "โ˜„", - "โ—ผ", - "โ›ฑ", - "โœŒ", - "โ†ฉ", - "ยฉ", - "โ", - "๐Ÿ", - "๐ŸŒง", - "โ˜ ", - "โฌ†", - "๐Ÿ˜", - "๐Ÿ—ƒ", - "โ–ช", - "โ˜ฆ", - "0", - "๐ŸŒจ", - "๐Ÿ—ฃ", - "๐Ÿ—บ", - "๐Ÿž", - "๐Ÿ•ถ", + "โ–ถ", + "*", + "๐Ÿ–‡", "๐ŸŒฌ", - "โ™ฃ", - "โš—", - "โ—€", + "๐ŸŽž", + "๐Ÿ—‚", + "โ–ซ", + "โฌ†", + "๐Ÿš", + "โ†˜", "โ›“", + "โ˜ƒ", } ), ) diff --git a/rich/_unicode_data/unicode5-1-0.py b/rich/_unicode_data/unicode5-1-0.py index b8bf504864..abebcc4819 100644 --- a/rich/_unicode_data/unicode5-1-0.py +++ b/rich/_unicode_data/unicode5-1-0.py @@ -1,4 +1,5 @@ # Auto generated by tools/make_width_tables.py +# Data from wcwidth project (https://github.com/jquast/wcwidth) from rich.cells import CellTable @@ -214,219 +215,219 @@ ], narrow_to_wide=frozenset( { - "๐Ÿ—", - "๐Ÿ“ฝ", - "๐Ÿ—’", - "๐Ÿ—œ", - "โ™€", - "๐ŸŽŸ", - "๐Ÿ›ฃ", - "โญ", - "โ„น", - "โ˜‚", - "โ˜บ", - "๐ŸŽ™", - "โธ", - "โžก", - "โ˜ƒ", - "๐Ÿ–ฒ", - "โ˜", - "๐Ÿ› ", - "โœณ", - "โ–ถ", - "โš ", - "๐Ÿ›ฐ", - "โ›ˆ", - "6", - "๐Ÿ…ฟ", - "๐ŸŽ–", - "โ›‘", - "๐Ÿ›ฉ", + "2", + "โ†ช", + "โ˜", + "๐ŸŒง", + "๐Ÿ›ข", + "โ‰", + "โ™จ", + "โœ”", + "โ˜Ž", + "โ˜ฃ", + "๐Ÿ›", + "๐Ÿ…พ", + "๐Ÿ•ต", + "๐Ÿ—ฃ", + "โ™ฃ", + "๐Ÿ—ž", + "๐Ÿ…ฑ", "โ˜ช", + "๐Ÿ•", + "๐Ÿž", + "๐Ÿ›ฐ", + "0", + "๐Ÿ›ณ", "๐Ÿ•ณ", - "9", + "โ™ ", + "5", + "โŒจ", + "๐Ÿ›‹", + "๐Ÿ—’", + "โœณ", "๐Ÿท", - "โ˜€", + "๐ŸŒฉ", + "โšง", + "๐Ÿ", + "๐Ÿ•‰", + "โ˜ฆ", + "๐Ÿ‘", + "๐Ÿ›", + "๐Ÿ—บ", + "๐ŸŽ—", + "๐Ÿ…ฟ", + "โ™‚", + "โš›", + "๐Ÿ›ก", + "โฎ", + "๐Ÿณ", + "๐Ÿ—ƒ", + "๐Ÿ—", + "๐Ÿฟ", + "โ—ป", + "๐Ÿ™", + "๐Ÿ›ฅ", + "6", + "โฑ", + "โ›ฐ", + "๐ŸŽ", + "๐Ÿ•ฏ", + "๐Ÿต", + "๐Ÿ–", + "โœ–", + "๐Ÿ›Ž", + "โ˜‚", + "#", + "โฃ", + "โ™ป", + "๐Ÿ—„", + "3", + "โญ", "โ˜ธ", - "โ™จ", - "โฌ…", - "โ‡", - "๐Ÿ—จ", + "โ", + "โ›ธ", + "๐Ÿ–", + "โธ", "โ™ฆ", - "#", - "โœ", - "โน", - "โ™Ÿ", - "๐Ÿ•‰", - "๐Ÿ—“", - "๐ŸŒถ", - "โบ", - "โ˜˜", - "โ€ผ", - "๐ŸŒฉ", + "โ‡", + "โฏ", + "โ›น", + "โ˜ ", + "๐Ÿ”", + "๐Ÿ•ธ", + "โ†–", "๐Ÿ—‘", + "๐ŸŒก", + "โœˆ", + "โš’", + "7", + "โœ", + "๐Ÿ•ฐ", + "๐ŸŒซ", + "โ˜ฎ", "โ˜ฏ", - "๐Ÿ•ด", + "โฒ", + "๐Ÿ–", "โœด", - "โ˜ข", - "๐Ÿ–ผ", - "๐ŸŒซ", - "๐Ÿ•ต", - "โšง", + "โšฐ", "๐Ÿฝ", - "๐Ÿ—„", - "โœ”", + "โšฑ", + "๐Ÿœ", "๐Ÿ—ก", - "โฒ", - "๐ŸŒก", - "๐Ÿ–‹", - "๐Ÿ›ณ", - "๐Ÿ›‹", - "โ˜", - "๐Ÿ‘", + "๐Ÿ•ท", + "โ™€", + "โ„น", + "๐ŸŒจ", + "โšœ", + "โ˜„", + "โ˜‘", + "โš ", + "โœ", + "9", "โ“‚", - "โ†•", - "๐Ÿ›", - "โฏ", - "7", - "๐Ÿ–", - "โฑ", - "*", - "๐Ÿ—", - "โœ", - "๐Ÿ–Œ", - "โ†–", - "โ›น", - "๐Ÿ™", - "โ„", + "โ†ฉ", + "โ˜น", + "โ˜บ", + "4", + "โ—ผ", + "โš”", + "โ™Ÿ", + "โœ‰", + "โคต", + "๐ŸŽ–", + "โค", "๐ŸŽš", - "๐Ÿš", - "โ‰", - "๐Ÿ”", - "๐Ÿฟ", - "๐Ÿ•", - "โ„ข", - "1", - "๐Ÿ›ค", - "๐Ÿ…ฑ", - "๐Ÿ–Š", - "โšฑ", - "โ›ธ", - "๐Ÿณ", - "๐Ÿ›", - "โฌ‡", - "๐Ÿ…ฐ", - "โ›ฉ", - "๐Ÿ—ณ", - "โ†™", - "๐Ÿ—‚", - "โ›ด", + "๐Ÿ•Š", + "๐Ÿ—ฏ", "๐Ÿ‹", + "๐Ÿ—ณ", + "โ†•", + "โ„", + "โœ‚", + "โžก", + "๐Ÿ˜", + "โ›ฑ", + "โ™ฅ", + "๐Ÿ–‹", "๐ŸŒฆ", - "ยฎ", - "๐Ÿ—ž", - "โ™ ", + "โœ’", + "๐Ÿ“ฝ", + "โš–", + "๐Ÿ–Œ", + "โ˜€", + "โ›ท", + "โ†™", + "โ€ผ", + "๐Ÿ•ด", + "โ†”", + "โ›", "โคด", - "โœˆ", - "๐ŸŽž", "โš•", - "โ›", - "๐Ÿ•ธ", - "๐Ÿ›ฅ", - "โšœ", - "โ˜ฎ", - "๐Ÿ—ฏ", - "โœก", - "โฎ", - "โšฐ", - "3", - "โ–ซ", + "โน", + "๐Ÿ–ฑ", + "โฌ…", + "๐Ÿ›ค", + "๐Ÿ› ", + "๐Ÿ›ฉ", + "๐ŸŒช", "๐Ÿ", - "โœ", - "โ†˜", - "โ†ช", - "โš›", - "๐Ÿ–‡", - "โœ–", - "๐Ÿ›ข", + "โ–ช", + "โ›ฉ", + "๐Ÿ•ถ", + "๐Ÿ›ฃ", + "๐Ÿ–ฒ", + "๐Ÿ–ฅ", + "โš—", + "ยฉ", + "โ˜ข", + "โ†—", + "โœŒ", + "โ„ข", "๐ŸŽ›", + "โœ", + "โ›‘", + "๐ŸŽ™", + "1", + "โฌ‡", + "๐Ÿ—“", + "โ›ˆ", + "โœก", + "๐Ÿ–Š", + "๐Ÿ–ผ", + "๐Ÿ›", + "๐ŸŒฅ", + "๐ŸŒถ", + "๐Ÿ—", + "๐Ÿ–จ", + "โ™พ", + "โ›ด", + "โ˜", "8", - "โ†—", - "๐Ÿ›ก", - "โ˜ฃ", - "โ›ฐ", - "โฃ", - "โœ‚", - "โ˜‘", + "โ—€", + "๐ŸŽŸ", + "๐Ÿ•น", + "๐Ÿ—จ", + "ยฎ", "โš™", - "โคต", - "โ™ป", - "๐ŸŒช", - "๐Ÿ–", - "๐Ÿ•ฏ", - "โœ‰", - "4", - "โœ’", + "๐ŸŒ", + "๐Ÿ—œ", "๐ŸŒค", + "โบ", + "โ˜˜", + "๐Ÿ…ฐ", "๐ŸŸ", - "โ™‚", - "๐Ÿ•ฐ", - "๐Ÿ›Ž", - "๐ŸŽ—", - "๐Ÿ•น", - "5", - "โš’", - "โค", - "๐Ÿ–", - "โš”", - "โš–", - "๐Ÿ–ฑ", - "๐Ÿ•Š", - "โ†”", - "2", - "๐Ÿ•ท", - "๐Ÿ…พ", - "โ˜น", - "๐Ÿ–ฅ", - "โ›ท", - "๐Ÿœ", - "โ˜Ž", - "๐ŸŒ", - "โ™พ", - "๐Ÿ›", - "โŒจ", - "๐ŸŽ", - "๐Ÿต", - "๐Ÿ–จ", - "โ™ฅ", - "โ—ป", - "๐ŸŒฅ", - "โ˜„", - "โ—ผ", - "โ›ฑ", - "โœŒ", - "โ†ฉ", - "ยฉ", - "โ", - "๐Ÿ", - "๐ŸŒง", - "โ˜ ", - "โฌ†", - "๐Ÿ˜", - "๐Ÿ—ƒ", - "โ–ช", - "โ˜ฆ", - "0", - "๐ŸŒจ", - "๐Ÿ—ฃ", - "๐Ÿ—บ", - "๐Ÿž", - "๐Ÿ•ถ", + "โ–ถ", + "*", + "๐Ÿ–‡", "๐ŸŒฌ", - "โ™ฃ", - "โš—", - "โ—€", + "๐ŸŽž", + "๐Ÿ—‚", + "โ–ซ", + "โฌ†", + "๐Ÿš", + "โ†˜", "โ›“", + "โ˜ƒ", } ), ) diff --git a/rich/_unicode_data/unicode5-2-0.py b/rich/_unicode_data/unicode5-2-0.py index 149a7e659b..fefd155f5f 100644 --- a/rich/_unicode_data/unicode5-2-0.py +++ b/rich/_unicode_data/unicode5-2-0.py @@ -1,4 +1,5 @@ # Auto generated by tools/make_width_tables.py +# Data from wcwidth project (https://github.com/jquast/wcwidth) from rich.cells import CellTable @@ -242,219 +243,219 @@ ], narrow_to_wide=frozenset( { - "๐Ÿ—", - "๐Ÿ“ฝ", - "๐Ÿ—’", - "๐Ÿ—œ", - "โ™€", - "๐ŸŽŸ", - "๐Ÿ›ฃ", - "โญ", - "โ„น", - "โ˜‚", - "โ˜บ", - "๐ŸŽ™", - "โธ", - "โžก", - "โ˜ƒ", - "๐Ÿ–ฒ", - "โ˜", - "๐Ÿ› ", - "โœณ", - "โ–ถ", - "โš ", - "๐Ÿ›ฐ", - "โ›ˆ", - "6", - "๐Ÿ…ฟ", - "๐ŸŽ–", - "โ›‘", - "๐Ÿ›ฉ", + "2", + "โ†ช", + "โ˜", + "๐ŸŒง", + "๐Ÿ›ข", + "โ‰", + "โ™จ", + "โœ”", + "โ˜Ž", + "โ˜ฃ", + "๐Ÿ›", + "๐Ÿ…พ", + "๐Ÿ•ต", + "๐Ÿ—ฃ", + "โ™ฃ", + "๐Ÿ—ž", + "๐Ÿ…ฑ", "โ˜ช", + "๐Ÿ•", + "๐Ÿž", + "๐Ÿ›ฐ", + "0", + "๐Ÿ›ณ", "๐Ÿ•ณ", - "9", + "โ™ ", + "5", + "โŒจ", + "๐Ÿ›‹", + "๐Ÿ—’", + "โœณ", "๐Ÿท", - "โ˜€", + "๐ŸŒฉ", + "โšง", + "๐Ÿ", + "๐Ÿ•‰", + "โ˜ฆ", + "๐Ÿ‘", + "๐Ÿ›", + "๐Ÿ—บ", + "๐ŸŽ—", + "๐Ÿ…ฟ", + "โ™‚", + "โš›", + "๐Ÿ›ก", + "โฎ", + "๐Ÿณ", + "๐Ÿ—ƒ", + "๐Ÿ—", + "๐Ÿฟ", + "โ—ป", + "๐Ÿ™", + "๐Ÿ›ฅ", + "6", + "โฑ", + "โ›ฐ", + "๐ŸŽ", + "๐Ÿ•ฏ", + "๐Ÿต", + "๐Ÿ–", + "โœ–", + "๐Ÿ›Ž", + "โ˜‚", + "#", + "โฃ", + "โ™ป", + "๐Ÿ—„", + "3", + "โญ", "โ˜ธ", - "โ™จ", - "โฌ…", - "โ‡", - "๐Ÿ—จ", + "โ", + "โ›ธ", + "๐Ÿ–", + "โธ", "โ™ฆ", - "#", - "โœ", - "โน", - "โ™Ÿ", - "๐Ÿ•‰", - "๐Ÿ—“", - "๐ŸŒถ", - "โบ", - "โ˜˜", - "โ€ผ", - "๐ŸŒฉ", + "โ‡", + "โฏ", + "โ›น", + "โ˜ ", + "๐Ÿ”", + "๐Ÿ•ธ", + "โ†–", "๐Ÿ—‘", + "๐ŸŒก", + "โœˆ", + "โš’", + "7", + "โœ", + "๐Ÿ•ฐ", + "๐ŸŒซ", + "โ˜ฎ", "โ˜ฏ", - "๐Ÿ•ด", + "โฒ", + "๐Ÿ–", "โœด", - "โ˜ข", - "๐Ÿ–ผ", - "๐ŸŒซ", - "๐Ÿ•ต", - "โšง", + "โšฐ", "๐Ÿฝ", - "๐Ÿ—„", - "โœ”", + "โšฑ", + "๐Ÿœ", "๐Ÿ—ก", - "โฒ", - "๐ŸŒก", - "๐Ÿ–‹", - "๐Ÿ›ณ", - "๐Ÿ›‹", - "โ˜", - "๐Ÿ‘", + "๐Ÿ•ท", + "โ™€", + "โ„น", + "๐ŸŒจ", + "โšœ", + "โ˜„", + "โ˜‘", + "โš ", + "โœ", + "9", "โ“‚", - "โ†•", - "๐Ÿ›", - "โฏ", - "7", - "๐Ÿ–", - "โฑ", - "*", - "๐Ÿ—", - "โœ", - "๐Ÿ–Œ", - "โ†–", - "โ›น", - "๐Ÿ™", - "โ„", + "โ†ฉ", + "โ˜น", + "โ˜บ", + "4", + "โ—ผ", + "โš”", + "โ™Ÿ", + "โœ‰", + "โคต", + "๐ŸŽ–", + "โค", "๐ŸŽš", - "๐Ÿš", - "โ‰", - "๐Ÿ”", - "๐Ÿฟ", - "๐Ÿ•", - "โ„ข", - "1", - "๐Ÿ›ค", - "๐Ÿ…ฑ", - "๐Ÿ–Š", - "โšฑ", - "โ›ธ", - "๐Ÿณ", - "๐Ÿ›", - "โฌ‡", - "๐Ÿ…ฐ", - "โ›ฉ", - "๐Ÿ—ณ", - "โ†™", - "๐Ÿ—‚", - "โ›ด", + "๐Ÿ•Š", + "๐Ÿ—ฏ", "๐Ÿ‹", + "๐Ÿ—ณ", + "โ†•", + "โ„", + "โœ‚", + "โžก", + "๐Ÿ˜", + "โ›ฑ", + "โ™ฅ", + "๐Ÿ–‹", "๐ŸŒฆ", - "ยฎ", - "๐Ÿ—ž", - "โ™ ", + "โœ’", + "๐Ÿ“ฝ", + "โš–", + "๐Ÿ–Œ", + "โ˜€", + "โ›ท", + "โ†™", + "โ€ผ", + "๐Ÿ•ด", + "โ†”", + "โ›", "โคด", - "โœˆ", - "๐ŸŽž", "โš•", - "โ›", - "๐Ÿ•ธ", - "๐Ÿ›ฅ", - "โšœ", - "โ˜ฎ", - "๐Ÿ—ฏ", - "โœก", - "โฎ", - "โšฐ", - "3", - "โ–ซ", + "โน", + "๐Ÿ–ฑ", + "โฌ…", + "๐Ÿ›ค", + "๐Ÿ› ", + "๐Ÿ›ฉ", + "๐ŸŒช", "๐Ÿ", - "โœ", - "โ†˜", - "โ†ช", - "โš›", - "๐Ÿ–‡", - "โœ–", - "๐Ÿ›ข", + "โ–ช", + "โ›ฉ", + "๐Ÿ•ถ", + "๐Ÿ›ฃ", + "๐Ÿ–ฒ", + "๐Ÿ–ฅ", + "โš—", + "ยฉ", + "โ˜ข", + "โ†—", + "โœŒ", + "โ„ข", "๐ŸŽ›", + "โœ", + "โ›‘", + "๐ŸŽ™", + "1", + "โฌ‡", + "๐Ÿ—“", + "โ›ˆ", + "โœก", + "๐Ÿ–Š", + "๐Ÿ–ผ", + "๐Ÿ›", + "๐ŸŒฅ", + "๐ŸŒถ", + "๐Ÿ—", + "๐Ÿ–จ", + "โ™พ", + "โ›ด", + "โ˜", "8", - "โ†—", - "๐Ÿ›ก", - "โ˜ฃ", - "โ›ฐ", - "โฃ", - "โœ‚", - "โ˜‘", + "โ—€", + "๐ŸŽŸ", + "๐Ÿ•น", + "๐Ÿ—จ", + "ยฎ", "โš™", - "โคต", - "โ™ป", - "๐ŸŒช", - "๐Ÿ–", - "๐Ÿ•ฏ", - "โœ‰", - "4", - "โœ’", + "๐ŸŒ", + "๐Ÿ—œ", "๐ŸŒค", + "โบ", + "โ˜˜", + "๐Ÿ…ฐ", "๐ŸŸ", - "โ™‚", - "๐Ÿ•ฐ", - "๐Ÿ›Ž", - "๐ŸŽ—", - "๐Ÿ•น", - "5", - "โš’", - "โค", - "๐Ÿ–", - "โš”", - "โš–", - "๐Ÿ–ฑ", - "๐Ÿ•Š", - "โ†”", - "2", - "๐Ÿ•ท", - "๐Ÿ…พ", - "โ˜น", - "๐Ÿ–ฅ", - "โ›ท", - "๐Ÿœ", - "โ˜Ž", - "๐ŸŒ", - "โ™พ", - "๐Ÿ›", - "โŒจ", - "๐ŸŽ", - "๐Ÿต", - "๐Ÿ–จ", - "โ™ฅ", - "โ—ป", - "๐ŸŒฅ", - "โ˜„", - "โ—ผ", - "โ›ฑ", - "โœŒ", - "โ†ฉ", - "ยฉ", - "โ", - "๐Ÿ", - "๐ŸŒง", - "โ˜ ", - "โฌ†", - "๐Ÿ˜", - "๐Ÿ—ƒ", - "โ–ช", - "โ˜ฆ", - "0", - "๐ŸŒจ", - "๐Ÿ—ฃ", - "๐Ÿ—บ", - "๐Ÿž", - "๐Ÿ•ถ", + "โ–ถ", + "*", + "๐Ÿ–‡", "๐ŸŒฌ", - "โ™ฃ", - "โš—", - "โ—€", + "๐ŸŽž", + "๐Ÿ—‚", + "โ–ซ", + "โฌ†", + "๐Ÿš", + "โ†˜", "โ›“", + "โ˜ƒ", } ), ) diff --git a/rich/_unicode_data/unicode6-0-0.py b/rich/_unicode_data/unicode6-0-0.py index 665e63706d..039c08df0a 100644 --- a/rich/_unicode_data/unicode6-0-0.py +++ b/rich/_unicode_data/unicode6-0-0.py @@ -1,4 +1,5 @@ # Auto generated by tools/make_width_tables.py +# Data from wcwidth project (https://github.com/jquast/wcwidth) from rich.cells import CellTable @@ -250,219 +251,219 @@ ], narrow_to_wide=frozenset( { - "๐Ÿ—", - "๐Ÿ“ฝ", - "๐Ÿ—’", - "๐Ÿ—œ", - "โ™€", - "๐ŸŽŸ", - "๐Ÿ›ฃ", - "โญ", - "โ„น", - "โ˜‚", - "โ˜บ", - "๐ŸŽ™", - "โธ", - "โžก", - "โ˜ƒ", - "๐Ÿ–ฒ", - "โ˜", - "๐Ÿ› ", - "โœณ", - "โ–ถ", - "โš ", - "๐Ÿ›ฐ", - "โ›ˆ", - "6", - "๐Ÿ…ฟ", - "๐ŸŽ–", - "โ›‘", - "๐Ÿ›ฉ", + "2", + "โ†ช", + "โ˜", + "๐ŸŒง", + "๐Ÿ›ข", + "โ‰", + "โ™จ", + "โœ”", + "โ˜Ž", + "โ˜ฃ", + "๐Ÿ›", + "๐Ÿ…พ", + "๐Ÿ•ต", + "๐Ÿ—ฃ", + "โ™ฃ", + "๐Ÿ—ž", + "๐Ÿ…ฑ", "โ˜ช", + "๐Ÿ•", + "๐Ÿž", + "๐Ÿ›ฐ", + "0", + "๐Ÿ›ณ", "๐Ÿ•ณ", - "9", + "โ™ ", + "5", + "โŒจ", + "๐Ÿ›‹", + "๐Ÿ—’", + "โœณ", "๐Ÿท", - "โ˜€", + "๐ŸŒฉ", + "โšง", + "๐Ÿ", + "๐Ÿ•‰", + "โ˜ฆ", + "๐Ÿ‘", + "๐Ÿ›", + "๐Ÿ—บ", + "๐ŸŽ—", + "๐Ÿ…ฟ", + "โ™‚", + "โš›", + "๐Ÿ›ก", + "โฎ", + "๐Ÿณ", + "๐Ÿ—ƒ", + "๐Ÿ—", + "๐Ÿฟ", + "โ—ป", + "๐Ÿ™", + "๐Ÿ›ฅ", + "6", + "โฑ", + "โ›ฐ", + "๐ŸŽ", + "๐Ÿ•ฏ", + "๐Ÿต", + "๐Ÿ–", + "โœ–", + "๐Ÿ›Ž", + "โ˜‚", + "#", + "โฃ", + "โ™ป", + "๐Ÿ—„", + "3", + "โญ", "โ˜ธ", - "โ™จ", - "โฌ…", - "โ‡", - "๐Ÿ—จ", + "โ", + "โ›ธ", + "๐Ÿ–", + "โธ", "โ™ฆ", - "#", - "โœ", - "โน", - "โ™Ÿ", - "๐Ÿ•‰", - "๐Ÿ—“", - "๐ŸŒถ", - "โบ", - "โ˜˜", - "โ€ผ", - "๐ŸŒฉ", + "โ‡", + "โฏ", + "โ›น", + "โ˜ ", + "๐Ÿ”", + "๐Ÿ•ธ", + "โ†–", "๐Ÿ—‘", + "๐ŸŒก", + "โœˆ", + "โš’", + "7", + "โœ", + "๐Ÿ•ฐ", + "๐ŸŒซ", + "โ˜ฎ", "โ˜ฏ", - "๐Ÿ•ด", + "โฒ", + "๐Ÿ–", "โœด", - "โ˜ข", - "๐Ÿ–ผ", - "๐ŸŒซ", - "๐Ÿ•ต", - "โšง", + "โšฐ", "๐Ÿฝ", - "๐Ÿ—„", - "โœ”", + "โšฑ", + "๐Ÿœ", "๐Ÿ—ก", - "โฒ", - "๐ŸŒก", - "๐Ÿ–‹", - "๐Ÿ›ณ", - "๐Ÿ›‹", - "โ˜", - "๐Ÿ‘", + "๐Ÿ•ท", + "โ™€", + "โ„น", + "๐ŸŒจ", + "โšœ", + "โ˜„", + "โ˜‘", + "โš ", + "โœ", + "9", "โ“‚", - "โ†•", - "๐Ÿ›", - "โฏ", - "7", - "๐Ÿ–", - "โฑ", - "*", - "๐Ÿ—", - "โœ", - "๐Ÿ–Œ", - "โ†–", - "โ›น", - "๐Ÿ™", - "โ„", + "โ†ฉ", + "โ˜น", + "โ˜บ", + "4", + "โ—ผ", + "โš”", + "โ™Ÿ", + "โœ‰", + "โคต", + "๐ŸŽ–", + "โค", "๐ŸŽš", - "๐Ÿš", - "โ‰", - "๐Ÿ”", - "๐Ÿฟ", - "๐Ÿ•", - "โ„ข", - "1", - "๐Ÿ›ค", - "๐Ÿ…ฑ", - "๐Ÿ–Š", - "โšฑ", - "โ›ธ", - "๐Ÿณ", - "๐Ÿ›", - "โฌ‡", - "๐Ÿ…ฐ", - "โ›ฉ", - "๐Ÿ—ณ", - "โ†™", - "๐Ÿ—‚", - "โ›ด", + "๐Ÿ•Š", + "๐Ÿ—ฏ", "๐Ÿ‹", + "๐Ÿ—ณ", + "โ†•", + "โ„", + "โœ‚", + "โžก", + "๐Ÿ˜", + "โ›ฑ", + "โ™ฅ", + "๐Ÿ–‹", "๐ŸŒฆ", - "ยฎ", - "๐Ÿ—ž", - "โ™ ", + "โœ’", + "๐Ÿ“ฝ", + "โš–", + "๐Ÿ–Œ", + "โ˜€", + "โ›ท", + "โ†™", + "โ€ผ", + "๐Ÿ•ด", + "โ†”", + "โ›", "โคด", - "โœˆ", - "๐ŸŽž", "โš•", - "โ›", - "๐Ÿ•ธ", - "๐Ÿ›ฅ", - "โšœ", - "โ˜ฎ", - "๐Ÿ—ฏ", - "โœก", - "โฎ", - "โšฐ", - "3", - "โ–ซ", + "โน", + "๐Ÿ–ฑ", + "โฌ…", + "๐Ÿ›ค", + "๐Ÿ› ", + "๐Ÿ›ฉ", + "๐ŸŒช", "๐Ÿ", - "โœ", - "โ†˜", - "โ†ช", - "โš›", - "๐Ÿ–‡", - "โœ–", - "๐Ÿ›ข", + "โ–ช", + "โ›ฉ", + "๐Ÿ•ถ", + "๐Ÿ›ฃ", + "๐Ÿ–ฒ", + "๐Ÿ–ฅ", + "โš—", + "ยฉ", + "โ˜ข", + "โ†—", + "โœŒ", + "โ„ข", "๐ŸŽ›", + "โœ", + "โ›‘", + "๐ŸŽ™", + "1", + "โฌ‡", + "๐Ÿ—“", + "โ›ˆ", + "โœก", + "๐Ÿ–Š", + "๐Ÿ–ผ", + "๐Ÿ›", + "๐ŸŒฅ", + "๐ŸŒถ", + "๐Ÿ—", + "๐Ÿ–จ", + "โ™พ", + "โ›ด", + "โ˜", "8", - "โ†—", - "๐Ÿ›ก", - "โ˜ฃ", - "โ›ฐ", - "โฃ", - "โœ‚", - "โ˜‘", + "โ—€", + "๐ŸŽŸ", + "๐Ÿ•น", + "๐Ÿ—จ", + "ยฎ", "โš™", - "โคต", - "โ™ป", - "๐ŸŒช", - "๐Ÿ–", - "๐Ÿ•ฏ", - "โœ‰", - "4", - "โœ’", + "๐ŸŒ", + "๐Ÿ—œ", "๐ŸŒค", + "โบ", + "โ˜˜", + "๐Ÿ…ฐ", "๐ŸŸ", - "โ™‚", - "๐Ÿ•ฐ", - "๐Ÿ›Ž", - "๐ŸŽ—", - "๐Ÿ•น", - "5", - "โš’", - "โค", - "๐Ÿ–", - "โš”", - "โš–", - "๐Ÿ–ฑ", - "๐Ÿ•Š", - "โ†”", - "2", - "๐Ÿ•ท", - "๐Ÿ…พ", - "โ˜น", - "๐Ÿ–ฅ", - "โ›ท", - "๐Ÿœ", - "โ˜Ž", - "๐ŸŒ", - "โ™พ", - "๐Ÿ›", - "โŒจ", - "๐ŸŽ", - "๐Ÿต", - "๐Ÿ–จ", - "โ™ฅ", - "โ—ป", - "๐ŸŒฅ", - "โ˜„", - "โ—ผ", - "โ›ฑ", - "โœŒ", - "โ†ฉ", - "ยฉ", - "โ", - "๐Ÿ", - "๐ŸŒง", - "โ˜ ", - "โฌ†", - "๐Ÿ˜", - "๐Ÿ—ƒ", - "โ–ช", - "โ˜ฆ", - "0", - "๐ŸŒจ", - "๐Ÿ—ฃ", - "๐Ÿ—บ", - "๐Ÿž", - "๐Ÿ•ถ", + "โ–ถ", + "*", + "๐Ÿ–‡", "๐ŸŒฌ", - "โ™ฃ", - "โš—", - "โ—€", + "๐ŸŽž", + "๐Ÿ—‚", + "โ–ซ", + "โฌ†", + "๐Ÿš", + "โ†˜", "โ›“", + "โ˜ƒ", } ), ) diff --git a/rich/_unicode_data/unicode6-1-0.py b/rich/_unicode_data/unicode6-1-0.py index d6eb29fa28..cb47985180 100644 --- a/rich/_unicode_data/unicode6-1-0.py +++ b/rich/_unicode_data/unicode6-1-0.py @@ -1,4 +1,5 @@ # Auto generated by tools/make_width_tables.py +# Data from wcwidth project (https://github.com/jquast/wcwidth) from rich.cells import CellTable @@ -261,219 +262,219 @@ ], narrow_to_wide=frozenset( { - "๐Ÿ—", - "๐Ÿ“ฝ", - "๐Ÿ—’", - "๐Ÿ—œ", - "โ™€", - "๐ŸŽŸ", - "๐Ÿ›ฃ", - "โญ", - "โ„น", - "โ˜‚", - "โ˜บ", - "๐ŸŽ™", - "โธ", - "โžก", - "โ˜ƒ", - "๐Ÿ–ฒ", - "โ˜", - "๐Ÿ› ", - "โœณ", - "โ–ถ", - "โš ", - "๐Ÿ›ฐ", - "โ›ˆ", - "6", - "๐Ÿ…ฟ", - "๐ŸŽ–", - "โ›‘", - "๐Ÿ›ฉ", + "2", + "โ†ช", + "โ˜", + "๐ŸŒง", + "๐Ÿ›ข", + "โ‰", + "โ™จ", + "โœ”", + "โ˜Ž", + "โ˜ฃ", + "๐Ÿ›", + "๐Ÿ…พ", + "๐Ÿ•ต", + "๐Ÿ—ฃ", + "โ™ฃ", + "๐Ÿ—ž", + "๐Ÿ…ฑ", "โ˜ช", + "๐Ÿ•", + "๐Ÿž", + "๐Ÿ›ฐ", + "0", + "๐Ÿ›ณ", "๐Ÿ•ณ", - "9", + "โ™ ", + "5", + "โŒจ", + "๐Ÿ›‹", + "๐Ÿ—’", + "โœณ", "๐Ÿท", - "โ˜€", + "๐ŸŒฉ", + "โšง", + "๐Ÿ", + "๐Ÿ•‰", + "โ˜ฆ", + "๐Ÿ‘", + "๐Ÿ›", + "๐Ÿ—บ", + "๐ŸŽ—", + "๐Ÿ…ฟ", + "โ™‚", + "โš›", + "๐Ÿ›ก", + "โฎ", + "๐Ÿณ", + "๐Ÿ—ƒ", + "๐Ÿ—", + "๐Ÿฟ", + "โ—ป", + "๐Ÿ™", + "๐Ÿ›ฅ", + "6", + "โฑ", + "โ›ฐ", + "๐ŸŽ", + "๐Ÿ•ฏ", + "๐Ÿต", + "๐Ÿ–", + "โœ–", + "๐Ÿ›Ž", + "โ˜‚", + "#", + "โฃ", + "โ™ป", + "๐Ÿ—„", + "3", + "โญ", "โ˜ธ", - "โ™จ", - "โฌ…", - "โ‡", - "๐Ÿ—จ", + "โ", + "โ›ธ", + "๐Ÿ–", + "โธ", "โ™ฆ", - "#", - "โœ", - "โน", - "โ™Ÿ", - "๐Ÿ•‰", - "๐Ÿ—“", - "๐ŸŒถ", - "โบ", - "โ˜˜", - "โ€ผ", - "๐ŸŒฉ", + "โ‡", + "โฏ", + "โ›น", + "โ˜ ", + "๐Ÿ”", + "๐Ÿ•ธ", + "โ†–", "๐Ÿ—‘", + "๐ŸŒก", + "โœˆ", + "โš’", + "7", + "โœ", + "๐Ÿ•ฐ", + "๐ŸŒซ", + "โ˜ฎ", "โ˜ฏ", - "๐Ÿ•ด", + "โฒ", + "๐Ÿ–", "โœด", - "โ˜ข", - "๐Ÿ–ผ", - "๐ŸŒซ", - "๐Ÿ•ต", - "โšง", + "โšฐ", "๐Ÿฝ", - "๐Ÿ—„", - "โœ”", + "โšฑ", + "๐Ÿœ", "๐Ÿ—ก", - "โฒ", - "๐ŸŒก", - "๐Ÿ–‹", - "๐Ÿ›ณ", - "๐Ÿ›‹", - "โ˜", - "๐Ÿ‘", + "๐Ÿ•ท", + "โ™€", + "โ„น", + "๐ŸŒจ", + "โšœ", + "โ˜„", + "โ˜‘", + "โš ", + "โœ", + "9", "โ“‚", - "โ†•", - "๐Ÿ›", - "โฏ", - "7", - "๐Ÿ–", - "โฑ", - "*", - "๐Ÿ—", - "โœ", - "๐Ÿ–Œ", - "โ†–", - "โ›น", - "๐Ÿ™", - "โ„", + "โ†ฉ", + "โ˜น", + "โ˜บ", + "4", + "โ—ผ", + "โš”", + "โ™Ÿ", + "โœ‰", + "โคต", + "๐ŸŽ–", + "โค", "๐ŸŽš", - "๐Ÿš", - "โ‰", - "๐Ÿ”", - "๐Ÿฟ", - "๐Ÿ•", - "โ„ข", - "1", - "๐Ÿ›ค", - "๐Ÿ…ฑ", - "๐Ÿ–Š", - "โšฑ", - "โ›ธ", - "๐Ÿณ", - "๐Ÿ›", - "โฌ‡", - "๐Ÿ…ฐ", - "โ›ฉ", - "๐Ÿ—ณ", - "โ†™", - "๐Ÿ—‚", - "โ›ด", + "๐Ÿ•Š", + "๐Ÿ—ฏ", "๐Ÿ‹", + "๐Ÿ—ณ", + "โ†•", + "โ„", + "โœ‚", + "โžก", + "๐Ÿ˜", + "โ›ฑ", + "โ™ฅ", + "๐Ÿ–‹", "๐ŸŒฆ", - "ยฎ", - "๐Ÿ—ž", - "โ™ ", + "โœ’", + "๐Ÿ“ฝ", + "โš–", + "๐Ÿ–Œ", + "โ˜€", + "โ›ท", + "โ†™", + "โ€ผ", + "๐Ÿ•ด", + "โ†”", + "โ›", "โคด", - "โœˆ", - "๐ŸŽž", "โš•", - "โ›", - "๐Ÿ•ธ", - "๐Ÿ›ฅ", - "โšœ", - "โ˜ฎ", - "๐Ÿ—ฏ", - "โœก", - "โฎ", - "โšฐ", - "3", - "โ–ซ", + "โน", + "๐Ÿ–ฑ", + "โฌ…", + "๐Ÿ›ค", + "๐Ÿ› ", + "๐Ÿ›ฉ", + "๐ŸŒช", "๐Ÿ", - "โœ", - "โ†˜", - "โ†ช", - "โš›", - "๐Ÿ–‡", - "โœ–", - "๐Ÿ›ข", + "โ–ช", + "โ›ฉ", + "๐Ÿ•ถ", + "๐Ÿ›ฃ", + "๐Ÿ–ฒ", + "๐Ÿ–ฅ", + "โš—", + "ยฉ", + "โ˜ข", + "โ†—", + "โœŒ", + "โ„ข", "๐ŸŽ›", + "โœ", + "โ›‘", + "๐ŸŽ™", + "1", + "โฌ‡", + "๐Ÿ—“", + "โ›ˆ", + "โœก", + "๐Ÿ–Š", + "๐Ÿ–ผ", + "๐Ÿ›", + "๐ŸŒฅ", + "๐ŸŒถ", + "๐Ÿ—", + "๐Ÿ–จ", + "โ™พ", + "โ›ด", + "โ˜", "8", - "โ†—", - "๐Ÿ›ก", - "โ˜ฃ", - "โ›ฐ", - "โฃ", - "โœ‚", - "โ˜‘", + "โ—€", + "๐ŸŽŸ", + "๐Ÿ•น", + "๐Ÿ—จ", + "ยฎ", "โš™", - "โคต", - "โ™ป", - "๐ŸŒช", - "๐Ÿ–", - "๐Ÿ•ฏ", - "โœ‰", - "4", - "โœ’", + "๐ŸŒ", + "๐Ÿ—œ", "๐ŸŒค", + "โบ", + "โ˜˜", + "๐Ÿ…ฐ", "๐ŸŸ", - "โ™‚", - "๐Ÿ•ฐ", - "๐Ÿ›Ž", - "๐ŸŽ—", - "๐Ÿ•น", - "5", - "โš’", - "โค", - "๐Ÿ–", - "โš”", - "โš–", - "๐Ÿ–ฑ", - "๐Ÿ•Š", - "โ†”", - "2", - "๐Ÿ•ท", - "๐Ÿ…พ", - "โ˜น", - "๐Ÿ–ฅ", - "โ›ท", - "๐Ÿœ", - "โ˜Ž", - "๐ŸŒ", - "โ™พ", - "๐Ÿ›", - "โŒจ", - "๐ŸŽ", - "๐Ÿต", - "๐Ÿ–จ", - "โ™ฅ", - "โ—ป", - "๐ŸŒฅ", - "โ˜„", - "โ—ผ", - "โ›ฑ", - "โœŒ", - "โ†ฉ", - "ยฉ", - "โ", - "๐Ÿ", - "๐ŸŒง", - "โ˜ ", - "โฌ†", - "๐Ÿ˜", - "๐Ÿ—ƒ", - "โ–ช", - "โ˜ฆ", - "0", - "๐ŸŒจ", - "๐Ÿ—ฃ", - "๐Ÿ—บ", - "๐Ÿž", - "๐Ÿ•ถ", + "โ–ถ", + "*", + "๐Ÿ–‡", "๐ŸŒฌ", - "โ™ฃ", - "โš—", - "โ—€", + "๐ŸŽž", + "๐Ÿ—‚", + "โ–ซ", + "โฌ†", + "๐Ÿš", + "โ†˜", "โ›“", + "โ˜ƒ", } ), ) diff --git a/rich/_unicode_data/unicode6-2-0.py b/rich/_unicode_data/unicode6-2-0.py index 6027e35969..0476d4a9ac 100644 --- a/rich/_unicode_data/unicode6-2-0.py +++ b/rich/_unicode_data/unicode6-2-0.py @@ -1,4 +1,5 @@ # Auto generated by tools/make_width_tables.py +# Data from wcwidth project (https://github.com/jquast/wcwidth) from rich.cells import CellTable @@ -261,219 +262,219 @@ ], narrow_to_wide=frozenset( { - "๐Ÿ—", - "๐Ÿ“ฝ", - "๐Ÿ—’", - "๐Ÿ—œ", - "โ™€", - "๐ŸŽŸ", - "๐Ÿ›ฃ", - "โญ", - "โ„น", - "โ˜‚", - "โ˜บ", - "๐ŸŽ™", - "โธ", - "โžก", - "โ˜ƒ", - "๐Ÿ–ฒ", - "โ˜", - "๐Ÿ› ", - "โœณ", - "โ–ถ", - "โš ", - "๐Ÿ›ฐ", - "โ›ˆ", - "6", - "๐Ÿ…ฟ", - "๐ŸŽ–", - "โ›‘", - "๐Ÿ›ฉ", + "2", + "โ†ช", + "โ˜", + "๐ŸŒง", + "๐Ÿ›ข", + "โ‰", + "โ™จ", + "โœ”", + "โ˜Ž", + "โ˜ฃ", + "๐Ÿ›", + "๐Ÿ…พ", + "๐Ÿ•ต", + "๐Ÿ—ฃ", + "โ™ฃ", + "๐Ÿ—ž", + "๐Ÿ…ฑ", "โ˜ช", + "๐Ÿ•", + "๐Ÿž", + "๐Ÿ›ฐ", + "0", + "๐Ÿ›ณ", "๐Ÿ•ณ", - "9", + "โ™ ", + "5", + "โŒจ", + "๐Ÿ›‹", + "๐Ÿ—’", + "โœณ", "๐Ÿท", - "โ˜€", + "๐ŸŒฉ", + "โšง", + "๐Ÿ", + "๐Ÿ•‰", + "โ˜ฆ", + "๐Ÿ‘", + "๐Ÿ›", + "๐Ÿ—บ", + "๐ŸŽ—", + "๐Ÿ…ฟ", + "โ™‚", + "โš›", + "๐Ÿ›ก", + "โฎ", + "๐Ÿณ", + "๐Ÿ—ƒ", + "๐Ÿ—", + "๐Ÿฟ", + "โ—ป", + "๐Ÿ™", + "๐Ÿ›ฅ", + "6", + "โฑ", + "โ›ฐ", + "๐ŸŽ", + "๐Ÿ•ฏ", + "๐Ÿต", + "๐Ÿ–", + "โœ–", + "๐Ÿ›Ž", + "โ˜‚", + "#", + "โฃ", + "โ™ป", + "๐Ÿ—„", + "3", + "โญ", "โ˜ธ", - "โ™จ", - "โฌ…", - "โ‡", - "๐Ÿ—จ", + "โ", + "โ›ธ", + "๐Ÿ–", + "โธ", "โ™ฆ", - "#", - "โœ", - "โน", - "โ™Ÿ", - "๐Ÿ•‰", - "๐Ÿ—“", - "๐ŸŒถ", - "โบ", - "โ˜˜", - "โ€ผ", - "๐ŸŒฉ", + "โ‡", + "โฏ", + "โ›น", + "โ˜ ", + "๐Ÿ”", + "๐Ÿ•ธ", + "โ†–", "๐Ÿ—‘", + "๐ŸŒก", + "โœˆ", + "โš’", + "7", + "โœ", + "๐Ÿ•ฐ", + "๐ŸŒซ", + "โ˜ฎ", "โ˜ฏ", - "๐Ÿ•ด", + "โฒ", + "๐Ÿ–", "โœด", - "โ˜ข", - "๐Ÿ–ผ", - "๐ŸŒซ", - "๐Ÿ•ต", - "โšง", + "โšฐ", "๐Ÿฝ", - "๐Ÿ—„", - "โœ”", + "โšฑ", + "๐Ÿœ", "๐Ÿ—ก", - "โฒ", - "๐ŸŒก", - "๐Ÿ–‹", - "๐Ÿ›ณ", - "๐Ÿ›‹", - "โ˜", - "๐Ÿ‘", + "๐Ÿ•ท", + "โ™€", + "โ„น", + "๐ŸŒจ", + "โšœ", + "โ˜„", + "โ˜‘", + "โš ", + "โœ", + "9", "โ“‚", - "โ†•", - "๐Ÿ›", - "โฏ", - "7", - "๐Ÿ–", - "โฑ", - "*", - "๐Ÿ—", - "โœ", - "๐Ÿ–Œ", - "โ†–", - "โ›น", - "๐Ÿ™", - "โ„", + "โ†ฉ", + "โ˜น", + "โ˜บ", + "4", + "โ—ผ", + "โš”", + "โ™Ÿ", + "โœ‰", + "โคต", + "๐ŸŽ–", + "โค", "๐ŸŽš", - "๐Ÿš", - "โ‰", - "๐Ÿ”", - "๐Ÿฟ", - "๐Ÿ•", - "โ„ข", - "1", - "๐Ÿ›ค", - "๐Ÿ…ฑ", - "๐Ÿ–Š", - "โšฑ", - "โ›ธ", - "๐Ÿณ", - "๐Ÿ›", - "โฌ‡", - "๐Ÿ…ฐ", - "โ›ฉ", - "๐Ÿ—ณ", - "โ†™", - "๐Ÿ—‚", - "โ›ด", + "๐Ÿ•Š", + "๐Ÿ—ฏ", "๐Ÿ‹", + "๐Ÿ—ณ", + "โ†•", + "โ„", + "โœ‚", + "โžก", + "๐Ÿ˜", + "โ›ฑ", + "โ™ฅ", + "๐Ÿ–‹", "๐ŸŒฆ", - "ยฎ", - "๐Ÿ—ž", - "โ™ ", + "โœ’", + "๐Ÿ“ฝ", + "โš–", + "๐Ÿ–Œ", + "โ˜€", + "โ›ท", + "โ†™", + "โ€ผ", + "๐Ÿ•ด", + "โ†”", + "โ›", "โคด", - "โœˆ", - "๐ŸŽž", "โš•", - "โ›", - "๐Ÿ•ธ", - "๐Ÿ›ฅ", - "โšœ", - "โ˜ฎ", - "๐Ÿ—ฏ", - "โœก", - "โฎ", - "โšฐ", - "3", - "โ–ซ", + "โน", + "๐Ÿ–ฑ", + "โฌ…", + "๐Ÿ›ค", + "๐Ÿ› ", + "๐Ÿ›ฉ", + "๐ŸŒช", "๐Ÿ", - "โœ", - "โ†˜", - "โ†ช", - "โš›", - "๐Ÿ–‡", - "โœ–", - "๐Ÿ›ข", + "โ–ช", + "โ›ฉ", + "๐Ÿ•ถ", + "๐Ÿ›ฃ", + "๐Ÿ–ฒ", + "๐Ÿ–ฅ", + "โš—", + "ยฉ", + "โ˜ข", + "โ†—", + "โœŒ", + "โ„ข", "๐ŸŽ›", + "โœ", + "โ›‘", + "๐ŸŽ™", + "1", + "โฌ‡", + "๐Ÿ—“", + "โ›ˆ", + "โœก", + "๐Ÿ–Š", + "๐Ÿ–ผ", + "๐Ÿ›", + "๐ŸŒฅ", + "๐ŸŒถ", + "๐Ÿ—", + "๐Ÿ–จ", + "โ™พ", + "โ›ด", + "โ˜", "8", - "โ†—", - "๐Ÿ›ก", - "โ˜ฃ", - "โ›ฐ", - "โฃ", - "โœ‚", - "โ˜‘", + "โ—€", + "๐ŸŽŸ", + "๐Ÿ•น", + "๐Ÿ—จ", + "ยฎ", "โš™", - "โคต", - "โ™ป", - "๐ŸŒช", - "๐Ÿ–", - "๐Ÿ•ฏ", - "โœ‰", - "4", - "โœ’", + "๐ŸŒ", + "๐Ÿ—œ", "๐ŸŒค", + "โบ", + "โ˜˜", + "๐Ÿ…ฐ", "๐ŸŸ", - "โ™‚", - "๐Ÿ•ฐ", - "๐Ÿ›Ž", - "๐ŸŽ—", - "๐Ÿ•น", - "5", - "โš’", - "โค", - "๐Ÿ–", - "โš”", - "โš–", - "๐Ÿ–ฑ", - "๐Ÿ•Š", - "โ†”", - "2", - "๐Ÿ•ท", - "๐Ÿ…พ", - "โ˜น", - "๐Ÿ–ฅ", - "โ›ท", - "๐Ÿœ", - "โ˜Ž", - "๐ŸŒ", - "โ™พ", - "๐Ÿ›", - "โŒจ", - "๐ŸŽ", - "๐Ÿต", - "๐Ÿ–จ", - "โ™ฅ", - "โ—ป", - "๐ŸŒฅ", - "โ˜„", - "โ—ผ", - "โ›ฑ", - "โœŒ", - "โ†ฉ", - "ยฉ", - "โ", - "๐Ÿ", - "๐ŸŒง", - "โ˜ ", - "โฌ†", - "๐Ÿ˜", - "๐Ÿ—ƒ", - "โ–ช", - "โ˜ฆ", - "0", - "๐ŸŒจ", - "๐Ÿ—ฃ", - "๐Ÿ—บ", - "๐Ÿž", - "๐Ÿ•ถ", + "โ–ถ", + "*", + "๐Ÿ–‡", "๐ŸŒฌ", - "โ™ฃ", - "โš—", - "โ—€", + "๐ŸŽž", + "๐Ÿ—‚", + "โ–ซ", + "โฌ†", + "๐Ÿš", + "โ†˜", "โ›“", + "โ˜ƒ", } ), ) diff --git a/rich/_unicode_data/unicode6-3-0.py b/rich/_unicode_data/unicode6-3-0.py index 16d7388e27..9b7930971a 100644 --- a/rich/_unicode_data/unicode6-3-0.py +++ b/rich/_unicode_data/unicode6-3-0.py @@ -1,4 +1,5 @@ # Auto generated by tools/make_width_tables.py +# Data from wcwidth project (https://github.com/jquast/wcwidth) from rich.cells import CellTable @@ -262,219 +263,219 @@ ], narrow_to_wide=frozenset( { - "๐Ÿ—", - "๐Ÿ“ฝ", - "๐Ÿ—’", - "๐Ÿ—œ", - "โ™€", - "๐ŸŽŸ", - "๐Ÿ›ฃ", - "โญ", - "โ„น", - "โ˜‚", - "โ˜บ", - "๐ŸŽ™", - "โธ", - "โžก", - "โ˜ƒ", - "๐Ÿ–ฒ", - "โ˜", - "๐Ÿ› ", - "โœณ", - "โ–ถ", - "โš ", - "๐Ÿ›ฐ", - "โ›ˆ", - "6", - "๐Ÿ…ฟ", - "๐ŸŽ–", - "โ›‘", - "๐Ÿ›ฉ", + "2", + "โ†ช", + "โ˜", + "๐ŸŒง", + "๐Ÿ›ข", + "โ‰", + "โ™จ", + "โœ”", + "โ˜Ž", + "โ˜ฃ", + "๐Ÿ›", + "๐Ÿ…พ", + "๐Ÿ•ต", + "๐Ÿ—ฃ", + "โ™ฃ", + "๐Ÿ—ž", + "๐Ÿ…ฑ", "โ˜ช", + "๐Ÿ•", + "๐Ÿž", + "๐Ÿ›ฐ", + "0", + "๐Ÿ›ณ", "๐Ÿ•ณ", - "9", + "โ™ ", + "5", + "โŒจ", + "๐Ÿ›‹", + "๐Ÿ—’", + "โœณ", "๐Ÿท", - "โ˜€", + "๐ŸŒฉ", + "โšง", + "๐Ÿ", + "๐Ÿ•‰", + "โ˜ฆ", + "๐Ÿ‘", + "๐Ÿ›", + "๐Ÿ—บ", + "๐ŸŽ—", + "๐Ÿ…ฟ", + "โ™‚", + "โš›", + "๐Ÿ›ก", + "โฎ", + "๐Ÿณ", + "๐Ÿ—ƒ", + "๐Ÿ—", + "๐Ÿฟ", + "โ—ป", + "๐Ÿ™", + "๐Ÿ›ฅ", + "6", + "โฑ", + "โ›ฐ", + "๐ŸŽ", + "๐Ÿ•ฏ", + "๐Ÿต", + "๐Ÿ–", + "โœ–", + "๐Ÿ›Ž", + "โ˜‚", + "#", + "โฃ", + "โ™ป", + "๐Ÿ—„", + "3", + "โญ", "โ˜ธ", - "โ™จ", - "โฌ…", - "โ‡", - "๐Ÿ—จ", + "โ", + "โ›ธ", + "๐Ÿ–", + "โธ", "โ™ฆ", - "#", - "โœ", - "โน", - "โ™Ÿ", - "๐Ÿ•‰", - "๐Ÿ—“", - "๐ŸŒถ", - "โบ", - "โ˜˜", - "โ€ผ", - "๐ŸŒฉ", + "โ‡", + "โฏ", + "โ›น", + "โ˜ ", + "๐Ÿ”", + "๐Ÿ•ธ", + "โ†–", "๐Ÿ—‘", + "๐ŸŒก", + "โœˆ", + "โš’", + "7", + "โœ", + "๐Ÿ•ฐ", + "๐ŸŒซ", + "โ˜ฎ", "โ˜ฏ", - "๐Ÿ•ด", + "โฒ", + "๐Ÿ–", "โœด", - "โ˜ข", - "๐Ÿ–ผ", - "๐ŸŒซ", - "๐Ÿ•ต", - "โšง", + "โšฐ", "๐Ÿฝ", - "๐Ÿ—„", - "โœ”", + "โšฑ", + "๐Ÿœ", "๐Ÿ—ก", - "โฒ", - "๐ŸŒก", - "๐Ÿ–‹", - "๐Ÿ›ณ", - "๐Ÿ›‹", - "โ˜", - "๐Ÿ‘", + "๐Ÿ•ท", + "โ™€", + "โ„น", + "๐ŸŒจ", + "โšœ", + "โ˜„", + "โ˜‘", + "โš ", + "โœ", + "9", "โ“‚", - "โ†•", - "๐Ÿ›", - "โฏ", - "7", - "๐Ÿ–", - "โฑ", - "*", - "๐Ÿ—", - "โœ", - "๐Ÿ–Œ", - "โ†–", - "โ›น", - "๐Ÿ™", - "โ„", + "โ†ฉ", + "โ˜น", + "โ˜บ", + "4", + "โ—ผ", + "โš”", + "โ™Ÿ", + "โœ‰", + "โคต", + "๐ŸŽ–", + "โค", "๐ŸŽš", - "๐Ÿš", - "โ‰", - "๐Ÿ”", - "๐Ÿฟ", - "๐Ÿ•", - "โ„ข", - "1", - "๐Ÿ›ค", - "๐Ÿ…ฑ", - "๐Ÿ–Š", - "โšฑ", - "โ›ธ", - "๐Ÿณ", - "๐Ÿ›", - "โฌ‡", - "๐Ÿ…ฐ", - "โ›ฉ", - "๐Ÿ—ณ", - "โ†™", - "๐Ÿ—‚", - "โ›ด", + "๐Ÿ•Š", + "๐Ÿ—ฏ", "๐Ÿ‹", + "๐Ÿ—ณ", + "โ†•", + "โ„", + "โœ‚", + "โžก", + "๐Ÿ˜", + "โ›ฑ", + "โ™ฅ", + "๐Ÿ–‹", "๐ŸŒฆ", - "ยฎ", - "๐Ÿ—ž", - "โ™ ", + "โœ’", + "๐Ÿ“ฝ", + "โš–", + "๐Ÿ–Œ", + "โ˜€", + "โ›ท", + "โ†™", + "โ€ผ", + "๐Ÿ•ด", + "โ†”", + "โ›", "โคด", - "โœˆ", - "๐ŸŽž", "โš•", - "โ›", - "๐Ÿ•ธ", - "๐Ÿ›ฅ", - "โšœ", - "โ˜ฎ", - "๐Ÿ—ฏ", - "โœก", - "โฎ", - "โšฐ", - "3", - "โ–ซ", + "โน", + "๐Ÿ–ฑ", + "โฌ…", + "๐Ÿ›ค", + "๐Ÿ› ", + "๐Ÿ›ฉ", + "๐ŸŒช", "๐Ÿ", - "โœ", - "โ†˜", - "โ†ช", - "โš›", - "๐Ÿ–‡", - "โœ–", - "๐Ÿ›ข", + "โ–ช", + "โ›ฉ", + "๐Ÿ•ถ", + "๐Ÿ›ฃ", + "๐Ÿ–ฒ", + "๐Ÿ–ฅ", + "โš—", + "ยฉ", + "โ˜ข", + "โ†—", + "โœŒ", + "โ„ข", "๐ŸŽ›", + "โœ", + "โ›‘", + "๐ŸŽ™", + "1", + "โฌ‡", + "๐Ÿ—“", + "โ›ˆ", + "โœก", + "๐Ÿ–Š", + "๐Ÿ–ผ", + "๐Ÿ›", + "๐ŸŒฅ", + "๐ŸŒถ", + "๐Ÿ—", + "๐Ÿ–จ", + "โ™พ", + "โ›ด", + "โ˜", "8", - "โ†—", - "๐Ÿ›ก", - "โ˜ฃ", - "โ›ฐ", - "โฃ", - "โœ‚", - "โ˜‘", + "โ—€", + "๐ŸŽŸ", + "๐Ÿ•น", + "๐Ÿ—จ", + "ยฎ", "โš™", - "โคต", - "โ™ป", - "๐ŸŒช", - "๐Ÿ–", - "๐Ÿ•ฏ", - "โœ‰", - "4", - "โœ’", + "๐ŸŒ", + "๐Ÿ—œ", "๐ŸŒค", + "โบ", + "โ˜˜", + "๐Ÿ…ฐ", "๐ŸŸ", - "โ™‚", - "๐Ÿ•ฐ", - "๐Ÿ›Ž", - "๐ŸŽ—", - "๐Ÿ•น", - "5", - "โš’", - "โค", - "๐Ÿ–", - "โš”", - "โš–", - "๐Ÿ–ฑ", - "๐Ÿ•Š", - "โ†”", - "2", - "๐Ÿ•ท", - "๐Ÿ…พ", - "โ˜น", - "๐Ÿ–ฅ", - "โ›ท", - "๐Ÿœ", - "โ˜Ž", - "๐ŸŒ", - "โ™พ", - "๐Ÿ›", - "โŒจ", - "๐ŸŽ", - "๐Ÿต", - "๐Ÿ–จ", - "โ™ฅ", - "โ—ป", - "๐ŸŒฅ", - "โ˜„", - "โ—ผ", - "โ›ฑ", - "โœŒ", - "โ†ฉ", - "ยฉ", - "โ", - "๐Ÿ", - "๐ŸŒง", - "โ˜ ", - "โฌ†", - "๐Ÿ˜", - "๐Ÿ—ƒ", - "โ–ช", - "โ˜ฆ", - "0", - "๐ŸŒจ", - "๐Ÿ—ฃ", - "๐Ÿ—บ", - "๐Ÿž", - "๐Ÿ•ถ", + "โ–ถ", + "*", + "๐Ÿ–‡", "๐ŸŒฌ", - "โ™ฃ", - "โš—", - "โ—€", + "๐ŸŽž", + "๐Ÿ—‚", + "โ–ซ", + "โฌ†", + "๐Ÿš", + "โ†˜", "โ›“", + "โ˜ƒ", } ), ) diff --git a/rich/_unicode_data/unicode7-0-0.py b/rich/_unicode_data/unicode7-0-0.py index 575147ecec..7809daf985 100644 --- a/rich/_unicode_data/unicode7-0-0.py +++ b/rich/_unicode_data/unicode7-0-0.py @@ -1,4 +1,5 @@ # Auto generated by tools/make_width_tables.py +# Data from wcwidth project (https://github.com/jquast/wcwidth) from rich.cells import CellTable @@ -288,219 +289,219 @@ ], narrow_to_wide=frozenset( { - "๐Ÿ—", - "๐Ÿ“ฝ", - "๐Ÿ—’", - "๐Ÿ—œ", - "โ™€", - "๐ŸŽŸ", - "๐Ÿ›ฃ", - "โญ", - "โ„น", - "โ˜‚", - "โ˜บ", - "๐ŸŽ™", - "โธ", - "โžก", - "โ˜ƒ", - "๐Ÿ–ฒ", - "โ˜", - "๐Ÿ› ", - "โœณ", - "โ–ถ", - "โš ", - "๐Ÿ›ฐ", - "โ›ˆ", - "6", - "๐Ÿ…ฟ", - "๐ŸŽ–", - "โ›‘", - "๐Ÿ›ฉ", + "2", + "โ†ช", + "โ˜", + "๐ŸŒง", + "๐Ÿ›ข", + "โ‰", + "โ™จ", + "โœ”", + "โ˜Ž", + "โ˜ฃ", + "๐Ÿ›", + "๐Ÿ…พ", + "๐Ÿ•ต", + "๐Ÿ—ฃ", + "โ™ฃ", + "๐Ÿ—ž", + "๐Ÿ…ฑ", "โ˜ช", + "๐Ÿ•", + "๐Ÿž", + "๐Ÿ›ฐ", + "0", + "๐Ÿ›ณ", "๐Ÿ•ณ", - "9", + "โ™ ", + "5", + "โŒจ", + "๐Ÿ›‹", + "๐Ÿ—’", + "โœณ", "๐Ÿท", - "โ˜€", + "๐ŸŒฉ", + "โšง", + "๐Ÿ", + "๐Ÿ•‰", + "โ˜ฆ", + "๐Ÿ‘", + "๐Ÿ›", + "๐Ÿ—บ", + "๐ŸŽ—", + "๐Ÿ…ฟ", + "โ™‚", + "โš›", + "๐Ÿ›ก", + "โฎ", + "๐Ÿณ", + "๐Ÿ—ƒ", + "๐Ÿ—", + "๐Ÿฟ", + "โ—ป", + "๐Ÿ™", + "๐Ÿ›ฅ", + "6", + "โฑ", + "โ›ฐ", + "๐ŸŽ", + "๐Ÿ•ฏ", + "๐Ÿต", + "๐Ÿ–", + "โœ–", + "๐Ÿ›Ž", + "โ˜‚", + "#", + "โฃ", + "โ™ป", + "๐Ÿ—„", + "3", + "โญ", "โ˜ธ", - "โ™จ", - "โฌ…", - "โ‡", - "๐Ÿ—จ", + "โ", + "โ›ธ", + "๐Ÿ–", + "โธ", "โ™ฆ", - "#", - "โœ", - "โน", - "โ™Ÿ", - "๐Ÿ•‰", - "๐Ÿ—“", - "๐ŸŒถ", - "โบ", - "โ˜˜", - "โ€ผ", - "๐ŸŒฉ", + "โ‡", + "โฏ", + "โ›น", + "โ˜ ", + "๐Ÿ”", + "๐Ÿ•ธ", + "โ†–", "๐Ÿ—‘", + "๐ŸŒก", + "โœˆ", + "โš’", + "7", + "โœ", + "๐Ÿ•ฐ", + "๐ŸŒซ", + "โ˜ฎ", "โ˜ฏ", - "๐Ÿ•ด", + "โฒ", + "๐Ÿ–", "โœด", - "โ˜ข", - "๐Ÿ–ผ", - "๐ŸŒซ", - "๐Ÿ•ต", - "โšง", + "โšฐ", "๐Ÿฝ", - "๐Ÿ—„", - "โœ”", + "โšฑ", + "๐Ÿœ", "๐Ÿ—ก", - "โฒ", - "๐ŸŒก", - "๐Ÿ–‹", - "๐Ÿ›ณ", - "๐Ÿ›‹", - "โ˜", - "๐Ÿ‘", + "๐Ÿ•ท", + "โ™€", + "โ„น", + "๐ŸŒจ", + "โšœ", + "โ˜„", + "โ˜‘", + "โš ", + "โœ", + "9", "โ“‚", - "โ†•", - "๐Ÿ›", - "โฏ", - "7", - "๐Ÿ–", - "โฑ", - "*", - "๐Ÿ—", - "โœ", - "๐Ÿ–Œ", - "โ†–", - "โ›น", - "๐Ÿ™", - "โ„", + "โ†ฉ", + "โ˜น", + "โ˜บ", + "4", + "โ—ผ", + "โš”", + "โ™Ÿ", + "โœ‰", + "โคต", + "๐ŸŽ–", + "โค", "๐ŸŽš", - "๐Ÿš", - "โ‰", - "๐Ÿ”", - "๐Ÿฟ", - "๐Ÿ•", - "โ„ข", - "1", - "๐Ÿ›ค", - "๐Ÿ…ฑ", - "๐Ÿ–Š", - "โšฑ", - "โ›ธ", - "๐Ÿณ", - "๐Ÿ›", - "โฌ‡", - "๐Ÿ…ฐ", - "โ›ฉ", - "๐Ÿ—ณ", - "โ†™", - "๐Ÿ—‚", - "โ›ด", + "๐Ÿ•Š", + "๐Ÿ—ฏ", "๐Ÿ‹", + "๐Ÿ—ณ", + "โ†•", + "โ„", + "โœ‚", + "โžก", + "๐Ÿ˜", + "โ›ฑ", + "โ™ฅ", + "๐Ÿ–‹", "๐ŸŒฆ", - "ยฎ", - "๐Ÿ—ž", - "โ™ ", + "โœ’", + "๐Ÿ“ฝ", + "โš–", + "๐Ÿ–Œ", + "โ˜€", + "โ›ท", + "โ†™", + "โ€ผ", + "๐Ÿ•ด", + "โ†”", + "โ›", "โคด", - "โœˆ", - "๐ŸŽž", "โš•", - "โ›", - "๐Ÿ•ธ", - "๐Ÿ›ฅ", - "โšœ", - "โ˜ฎ", - "๐Ÿ—ฏ", - "โœก", - "โฎ", - "โšฐ", - "3", - "โ–ซ", + "โน", + "๐Ÿ–ฑ", + "โฌ…", + "๐Ÿ›ค", + "๐Ÿ› ", + "๐Ÿ›ฉ", + "๐ŸŒช", "๐Ÿ", - "โœ", - "โ†˜", - "โ†ช", - "โš›", - "๐Ÿ–‡", - "โœ–", - "๐Ÿ›ข", + "โ–ช", + "โ›ฉ", + "๐Ÿ•ถ", + "๐Ÿ›ฃ", + "๐Ÿ–ฒ", + "๐Ÿ–ฅ", + "โš—", + "ยฉ", + "โ˜ข", + "โ†—", + "โœŒ", + "โ„ข", "๐ŸŽ›", + "โœ", + "โ›‘", + "๐ŸŽ™", + "1", + "โฌ‡", + "๐Ÿ—“", + "โ›ˆ", + "โœก", + "๐Ÿ–Š", + "๐Ÿ–ผ", + "๐Ÿ›", + "๐ŸŒฅ", + "๐ŸŒถ", + "๐Ÿ—", + "๐Ÿ–จ", + "โ™พ", + "โ›ด", + "โ˜", "8", - "โ†—", - "๐Ÿ›ก", - "โ˜ฃ", - "โ›ฐ", - "โฃ", - "โœ‚", - "โ˜‘", + "โ—€", + "๐ŸŽŸ", + "๐Ÿ•น", + "๐Ÿ—จ", + "ยฎ", "โš™", - "โคต", - "โ™ป", - "๐ŸŒช", - "๐Ÿ–", - "๐Ÿ•ฏ", - "โœ‰", - "4", - "โœ’", + "๐ŸŒ", + "๐Ÿ—œ", "๐ŸŒค", + "โบ", + "โ˜˜", + "๐Ÿ…ฐ", "๐ŸŸ", - "โ™‚", - "๐Ÿ•ฐ", - "๐Ÿ›Ž", - "๐ŸŽ—", - "๐Ÿ•น", - "5", - "โš’", - "โค", - "๐Ÿ–", - "โš”", - "โš–", - "๐Ÿ–ฑ", - "๐Ÿ•Š", - "โ†”", - "2", - "๐Ÿ•ท", - "๐Ÿ…พ", - "โ˜น", - "๐Ÿ–ฅ", - "โ›ท", - "๐Ÿœ", - "โ˜Ž", - "๐ŸŒ", - "โ™พ", - "๐Ÿ›", - "โŒจ", - "๐ŸŽ", - "๐Ÿต", - "๐Ÿ–จ", - "โ™ฅ", - "โ—ป", - "๐ŸŒฅ", - "โ˜„", - "โ—ผ", - "โ›ฑ", - "โœŒ", - "โ†ฉ", - "ยฉ", - "โ", - "๐Ÿ", - "๐ŸŒง", - "โ˜ ", - "โฌ†", - "๐Ÿ˜", - "๐Ÿ—ƒ", - "โ–ช", - "โ˜ฆ", - "0", - "๐ŸŒจ", - "๐Ÿ—ฃ", - "๐Ÿ—บ", - "๐Ÿž", - "๐Ÿ•ถ", + "โ–ถ", + "*", + "๐Ÿ–‡", "๐ŸŒฌ", - "โ™ฃ", - "โš—", - "โ—€", + "๐ŸŽž", + "๐Ÿ—‚", + "โ–ซ", + "โฌ†", + "๐Ÿš", + "โ†˜", "โ›“", + "โ˜ƒ", } ), ) diff --git a/rich/_unicode_data/unicode8-0-0.py b/rich/_unicode_data/unicode8-0-0.py index 42c390db91..6b1b7889f8 100644 --- a/rich/_unicode_data/unicode8-0-0.py +++ b/rich/_unicode_data/unicode8-0-0.py @@ -1,4 +1,5 @@ # Auto generated by tools/make_width_tables.py +# Data from wcwidth project (https://github.com/jquast/wcwidth) from rich.cells import CellTable @@ -296,219 +297,219 @@ ], narrow_to_wide=frozenset( { - "๐Ÿ—", - "๐Ÿ“ฝ", - "๐Ÿ—’", - "๐Ÿ—œ", - "โ™€", - "๐ŸŽŸ", - "๐Ÿ›ฃ", - "โญ", - "โ„น", - "โ˜‚", - "โ˜บ", - "๐ŸŽ™", - "โธ", - "โžก", - "โ˜ƒ", - "๐Ÿ–ฒ", - "โ˜", - "๐Ÿ› ", - "โœณ", - "โ–ถ", - "โš ", - "๐Ÿ›ฐ", - "โ›ˆ", - "6", - "๐Ÿ…ฟ", - "๐ŸŽ–", - "โ›‘", - "๐Ÿ›ฉ", + "2", + "โ†ช", + "โ˜", + "๐ŸŒง", + "๐Ÿ›ข", + "โ‰", + "โ™จ", + "โœ”", + "โ˜Ž", + "โ˜ฃ", + "๐Ÿ›", + "๐Ÿ…พ", + "๐Ÿ•ต", + "๐Ÿ—ฃ", + "โ™ฃ", + "๐Ÿ—ž", + "๐Ÿ…ฑ", "โ˜ช", + "๐Ÿ•", + "๐Ÿž", + "๐Ÿ›ฐ", + "0", + "๐Ÿ›ณ", "๐Ÿ•ณ", - "9", + "โ™ ", + "5", + "โŒจ", + "๐Ÿ›‹", + "๐Ÿ—’", + "โœณ", "๐Ÿท", - "โ˜€", + "๐ŸŒฉ", + "โšง", + "๐Ÿ", + "๐Ÿ•‰", + "โ˜ฆ", + "๐Ÿ‘", + "๐Ÿ›", + "๐Ÿ—บ", + "๐ŸŽ—", + "๐Ÿ…ฟ", + "โ™‚", + "โš›", + "๐Ÿ›ก", + "โฎ", + "๐Ÿณ", + "๐Ÿ—ƒ", + "๐Ÿ—", + "๐Ÿฟ", + "โ—ป", + "๐Ÿ™", + "๐Ÿ›ฅ", + "6", + "โฑ", + "โ›ฐ", + "๐ŸŽ", + "๐Ÿ•ฏ", + "๐Ÿต", + "๐Ÿ–", + "โœ–", + "๐Ÿ›Ž", + "โ˜‚", + "#", + "โฃ", + "โ™ป", + "๐Ÿ—„", + "3", + "โญ", "โ˜ธ", - "โ™จ", - "โฌ…", - "โ‡", - "๐Ÿ—จ", + "โ", + "โ›ธ", + "๐Ÿ–", + "โธ", "โ™ฆ", - "#", - "โœ", - "โน", - "โ™Ÿ", - "๐Ÿ•‰", - "๐Ÿ—“", - "๐ŸŒถ", - "โบ", - "โ˜˜", - "โ€ผ", - "๐ŸŒฉ", + "โ‡", + "โฏ", + "โ›น", + "โ˜ ", + "๐Ÿ”", + "๐Ÿ•ธ", + "โ†–", "๐Ÿ—‘", + "๐ŸŒก", + "โœˆ", + "โš’", + "7", + "โœ", + "๐Ÿ•ฐ", + "๐ŸŒซ", + "โ˜ฎ", "โ˜ฏ", - "๐Ÿ•ด", + "โฒ", + "๐Ÿ–", "โœด", - "โ˜ข", - "๐Ÿ–ผ", - "๐ŸŒซ", - "๐Ÿ•ต", - "โšง", + "โšฐ", "๐Ÿฝ", - "๐Ÿ—„", - "โœ”", + "โšฑ", + "๐Ÿœ", "๐Ÿ—ก", - "โฒ", - "๐ŸŒก", - "๐Ÿ–‹", - "๐Ÿ›ณ", - "๐Ÿ›‹", - "โ˜", - "๐Ÿ‘", + "๐Ÿ•ท", + "โ™€", + "โ„น", + "๐ŸŒจ", + "โšœ", + "โ˜„", + "โ˜‘", + "โš ", + "โœ", + "9", "โ“‚", - "โ†•", - "๐Ÿ›", - "โฏ", - "7", - "๐Ÿ–", - "โฑ", - "*", - "๐Ÿ—", - "โœ", - "๐Ÿ–Œ", - "โ†–", - "โ›น", - "๐Ÿ™", - "โ„", + "โ†ฉ", + "โ˜น", + "โ˜บ", + "4", + "โ—ผ", + "โš”", + "โ™Ÿ", + "โœ‰", + "โคต", + "๐ŸŽ–", + "โค", "๐ŸŽš", - "๐Ÿš", - "โ‰", - "๐Ÿ”", - "๐Ÿฟ", - "๐Ÿ•", - "โ„ข", - "1", - "๐Ÿ›ค", - "๐Ÿ…ฑ", - "๐Ÿ–Š", - "โšฑ", - "โ›ธ", - "๐Ÿณ", - "๐Ÿ›", - "โฌ‡", - "๐Ÿ…ฐ", - "โ›ฉ", - "๐Ÿ—ณ", - "โ†™", - "๐Ÿ—‚", - "โ›ด", + "๐Ÿ•Š", + "๐Ÿ—ฏ", "๐Ÿ‹", + "๐Ÿ—ณ", + "โ†•", + "โ„", + "โœ‚", + "โžก", + "๐Ÿ˜", + "โ›ฑ", + "โ™ฅ", + "๐Ÿ–‹", "๐ŸŒฆ", - "ยฎ", - "๐Ÿ—ž", - "โ™ ", + "โœ’", + "๐Ÿ“ฝ", + "โš–", + "๐Ÿ–Œ", + "โ˜€", + "โ›ท", + "โ†™", + "โ€ผ", + "๐Ÿ•ด", + "โ†”", + "โ›", "โคด", - "โœˆ", - "๐ŸŽž", "โš•", - "โ›", - "๐Ÿ•ธ", - "๐Ÿ›ฅ", - "โšœ", - "โ˜ฎ", - "๐Ÿ—ฏ", - "โœก", - "โฎ", - "โšฐ", - "3", - "โ–ซ", + "โน", + "๐Ÿ–ฑ", + "โฌ…", + "๐Ÿ›ค", + "๐Ÿ› ", + "๐Ÿ›ฉ", + "๐ŸŒช", "๐Ÿ", - "โœ", - "โ†˜", - "โ†ช", - "โš›", - "๐Ÿ–‡", - "โœ–", - "๐Ÿ›ข", + "โ–ช", + "โ›ฉ", + "๐Ÿ•ถ", + "๐Ÿ›ฃ", + "๐Ÿ–ฒ", + "๐Ÿ–ฅ", + "โš—", + "ยฉ", + "โ˜ข", + "โ†—", + "โœŒ", + "โ„ข", "๐ŸŽ›", + "โœ", + "โ›‘", + "๐ŸŽ™", + "1", + "โฌ‡", + "๐Ÿ—“", + "โ›ˆ", + "โœก", + "๐Ÿ–Š", + "๐Ÿ–ผ", + "๐Ÿ›", + "๐ŸŒฅ", + "๐ŸŒถ", + "๐Ÿ—", + "๐Ÿ–จ", + "โ™พ", + "โ›ด", + "โ˜", "8", - "โ†—", - "๐Ÿ›ก", - "โ˜ฃ", - "โ›ฐ", - "โฃ", - "โœ‚", - "โ˜‘", + "โ—€", + "๐ŸŽŸ", + "๐Ÿ•น", + "๐Ÿ—จ", + "ยฎ", "โš™", - "โคต", - "โ™ป", - "๐ŸŒช", - "๐Ÿ–", - "๐Ÿ•ฏ", - "โœ‰", - "4", - "โœ’", + "๐ŸŒ", + "๐Ÿ—œ", "๐ŸŒค", + "โบ", + "โ˜˜", + "๐Ÿ…ฐ", "๐ŸŸ", - "โ™‚", - "๐Ÿ•ฐ", - "๐Ÿ›Ž", - "๐ŸŽ—", - "๐Ÿ•น", - "5", - "โš’", - "โค", - "๐Ÿ–", - "โš”", - "โš–", - "๐Ÿ–ฑ", - "๐Ÿ•Š", - "โ†”", - "2", - "๐Ÿ•ท", - "๐Ÿ…พ", - "โ˜น", - "๐Ÿ–ฅ", - "โ›ท", - "๐Ÿœ", - "โ˜Ž", - "๐ŸŒ", - "โ™พ", - "๐Ÿ›", - "โŒจ", - "๐ŸŽ", - "๐Ÿต", - "๐Ÿ–จ", - "โ™ฅ", - "โ—ป", - "๐ŸŒฅ", - "โ˜„", - "โ—ผ", - "โ›ฑ", - "โœŒ", - "โ†ฉ", - "ยฉ", - "โ", - "๐Ÿ", - "๐ŸŒง", - "โ˜ ", - "โฌ†", - "๐Ÿ˜", - "๐Ÿ—ƒ", - "โ–ช", - "โ˜ฆ", - "0", - "๐ŸŒจ", - "๐Ÿ—ฃ", - "๐Ÿ—บ", - "๐Ÿž", - "๐Ÿ•ถ", + "โ–ถ", + "*", + "๐Ÿ–‡", "๐ŸŒฌ", - "โ™ฃ", - "โš—", - "โ—€", + "๐ŸŽž", + "๐Ÿ—‚", + "โ–ซ", + "โฌ†", + "๐Ÿš", + "โ†˜", "โ›“", + "โ˜ƒ", } ), ) diff --git a/rich/_unicode_data/unicode9-0-0.py b/rich/_unicode_data/unicode9-0-0.py index b6666d6340..329020dcd7 100644 --- a/rich/_unicode_data/unicode9-0-0.py +++ b/rich/_unicode_data/unicode9-0-0.py @@ -1,4 +1,5 @@ # Auto generated by tools/make_width_tables.py +# Data from wcwidth project (https://github.com/jquast/wcwidth) from rich.cells import CellTable @@ -381,219 +382,219 @@ ], narrow_to_wide=frozenset( { - "๐Ÿ—", - "๐Ÿ“ฝ", - "๐Ÿ—’", - "๐Ÿ—œ", - "โ™€", - "๐ŸŽŸ", - "๐Ÿ›ฃ", - "โญ", - "โ„น", - "โ˜‚", - "โ˜บ", - "๐ŸŽ™", - "โธ", - "โžก", - "โ˜ƒ", - "๐Ÿ–ฒ", - "โ˜", - "๐Ÿ› ", - "โœณ", - "โ–ถ", - "โš ", - "๐Ÿ›ฐ", - "โ›ˆ", - "6", - "๐Ÿ…ฟ", - "๐ŸŽ–", - "โ›‘", - "๐Ÿ›ฉ", + "2", + "โ†ช", + "โ˜", + "๐ŸŒง", + "๐Ÿ›ข", + "โ‰", + "โ™จ", + "โœ”", + "โ˜Ž", + "โ˜ฃ", + "๐Ÿ›", + "๐Ÿ…พ", + "๐Ÿ•ต", + "๐Ÿ—ฃ", + "โ™ฃ", + "๐Ÿ—ž", + "๐Ÿ…ฑ", "โ˜ช", + "๐Ÿ•", + "๐Ÿž", + "๐Ÿ›ฐ", + "0", + "๐Ÿ›ณ", "๐Ÿ•ณ", - "9", + "โ™ ", + "5", + "โŒจ", + "๐Ÿ›‹", + "๐Ÿ—’", + "โœณ", "๐Ÿท", - "โ˜€", + "๐ŸŒฉ", + "โšง", + "๐Ÿ", + "๐Ÿ•‰", + "โ˜ฆ", + "๐Ÿ‘", + "๐Ÿ›", + "๐Ÿ—บ", + "๐ŸŽ—", + "๐Ÿ…ฟ", + "โ™‚", + "โš›", + "๐Ÿ›ก", + "โฎ", + "๐Ÿณ", + "๐Ÿ—ƒ", + "๐Ÿ—", + "๐Ÿฟ", + "โ—ป", + "๐Ÿ™", + "๐Ÿ›ฅ", + "6", + "โฑ", + "โ›ฐ", + "๐ŸŽ", + "๐Ÿ•ฏ", + "๐Ÿต", + "๐Ÿ–", + "โœ–", + "๐Ÿ›Ž", + "โ˜‚", + "#", + "โฃ", + "โ™ป", + "๐Ÿ—„", + "3", + "โญ", "โ˜ธ", - "โ™จ", - "โฌ…", - "โ‡", - "๐Ÿ—จ", + "โ", + "โ›ธ", + "๐Ÿ–", + "โธ", "โ™ฆ", - "#", - "โœ", - "โน", - "โ™Ÿ", - "๐Ÿ•‰", - "๐Ÿ—“", - "๐ŸŒถ", - "โบ", - "โ˜˜", - "โ€ผ", - "๐ŸŒฉ", + "โ‡", + "โฏ", + "โ›น", + "โ˜ ", + "๐Ÿ”", + "๐Ÿ•ธ", + "โ†–", "๐Ÿ—‘", + "๐ŸŒก", + "โœˆ", + "โš’", + "7", + "โœ", + "๐Ÿ•ฐ", + "๐ŸŒซ", + "โ˜ฎ", "โ˜ฏ", - "๐Ÿ•ด", + "โฒ", + "๐Ÿ–", "โœด", - "โ˜ข", - "๐Ÿ–ผ", - "๐ŸŒซ", - "๐Ÿ•ต", - "โšง", + "โšฐ", "๐Ÿฝ", - "๐Ÿ—„", - "โœ”", + "โšฑ", + "๐Ÿœ", "๐Ÿ—ก", - "โฒ", - "๐ŸŒก", - "๐Ÿ–‹", - "๐Ÿ›ณ", - "๐Ÿ›‹", - "โ˜", - "๐Ÿ‘", + "๐Ÿ•ท", + "โ™€", + "โ„น", + "๐ŸŒจ", + "โšœ", + "โ˜„", + "โ˜‘", + "โš ", + "โœ", + "9", "โ“‚", - "โ†•", - "๐Ÿ›", - "โฏ", - "7", - "๐Ÿ–", - "โฑ", - "*", - "๐Ÿ—", - "โœ", - "๐Ÿ–Œ", - "โ†–", - "โ›น", - "๐Ÿ™", - "โ„", + "โ†ฉ", + "โ˜น", + "โ˜บ", + "4", + "โ—ผ", + "โš”", + "โ™Ÿ", + "โœ‰", + "โคต", + "๐ŸŽ–", + "โค", "๐ŸŽš", - "๐Ÿš", - "โ‰", - "๐Ÿ”", - "๐Ÿฟ", - "๐Ÿ•", - "โ„ข", - "1", - "๐Ÿ›ค", - "๐Ÿ…ฑ", - "๐Ÿ–Š", - "โšฑ", - "โ›ธ", - "๐Ÿณ", - "๐Ÿ›", - "โฌ‡", - "๐Ÿ…ฐ", - "โ›ฉ", - "๐Ÿ—ณ", - "โ†™", - "๐Ÿ—‚", - "โ›ด", + "๐Ÿ•Š", + "๐Ÿ—ฏ", "๐Ÿ‹", + "๐Ÿ—ณ", + "โ†•", + "โ„", + "โœ‚", + "โžก", + "๐Ÿ˜", + "โ›ฑ", + "โ™ฅ", + "๐Ÿ–‹", "๐ŸŒฆ", - "ยฎ", - "๐Ÿ—ž", - "โ™ ", + "โœ’", + "๐Ÿ“ฝ", + "โš–", + "๐Ÿ–Œ", + "โ˜€", + "โ›ท", + "โ†™", + "โ€ผ", + "๐Ÿ•ด", + "โ†”", + "โ›", "โคด", - "โœˆ", - "๐ŸŽž", "โš•", - "โ›", - "๐Ÿ•ธ", - "๐Ÿ›ฅ", - "โšœ", - "โ˜ฎ", - "๐Ÿ—ฏ", - "โœก", - "โฎ", - "โšฐ", - "3", - "โ–ซ", + "โน", + "๐Ÿ–ฑ", + "โฌ…", + "๐Ÿ›ค", + "๐Ÿ› ", + "๐Ÿ›ฉ", + "๐ŸŒช", "๐Ÿ", - "โœ", - "โ†˜", - "โ†ช", - "โš›", - "๐Ÿ–‡", - "โœ–", - "๐Ÿ›ข", + "โ–ช", + "โ›ฉ", + "๐Ÿ•ถ", + "๐Ÿ›ฃ", + "๐Ÿ–ฒ", + "๐Ÿ–ฅ", + "โš—", + "ยฉ", + "โ˜ข", + "โ†—", + "โœŒ", + "โ„ข", "๐ŸŽ›", + "โœ", + "โ›‘", + "๐ŸŽ™", + "1", + "โฌ‡", + "๐Ÿ—“", + "โ›ˆ", + "โœก", + "๐Ÿ–Š", + "๐Ÿ–ผ", + "๐Ÿ›", + "๐ŸŒฅ", + "๐ŸŒถ", + "๐Ÿ—", + "๐Ÿ–จ", + "โ™พ", + "โ›ด", + "โ˜", "8", - "โ†—", - "๐Ÿ›ก", - "โ˜ฃ", - "โ›ฐ", - "โฃ", - "โœ‚", - "โ˜‘", + "โ—€", + "๐ŸŽŸ", + "๐Ÿ•น", + "๐Ÿ—จ", + "ยฎ", "โš™", - "โคต", - "โ™ป", - "๐ŸŒช", - "๐Ÿ–", - "๐Ÿ•ฏ", - "โœ‰", - "4", - "โœ’", + "๐ŸŒ", + "๐Ÿ—œ", "๐ŸŒค", + "โบ", + "โ˜˜", + "๐Ÿ…ฐ", "๐ŸŸ", - "โ™‚", - "๐Ÿ•ฐ", - "๐Ÿ›Ž", - "๐ŸŽ—", - "๐Ÿ•น", - "5", - "โš’", - "โค", - "๐Ÿ–", - "โš”", - "โš–", - "๐Ÿ–ฑ", - "๐Ÿ•Š", - "โ†”", - "2", - "๐Ÿ•ท", - "๐Ÿ…พ", - "โ˜น", - "๐Ÿ–ฅ", - "โ›ท", - "๐Ÿœ", - "โ˜Ž", - "๐ŸŒ", - "โ™พ", - "๐Ÿ›", - "โŒจ", - "๐ŸŽ", - "๐Ÿต", - "๐Ÿ–จ", - "โ™ฅ", - "โ—ป", - "๐ŸŒฅ", - "โ˜„", - "โ—ผ", - "โ›ฑ", - "โœŒ", - "โ†ฉ", - "ยฉ", - "โ", - "๐Ÿ", - "๐ŸŒง", - "โ˜ ", - "โฌ†", - "๐Ÿ˜", - "๐Ÿ—ƒ", - "โ–ช", - "โ˜ฆ", - "0", - "๐ŸŒจ", - "๐Ÿ—ฃ", - "๐Ÿ—บ", - "๐Ÿž", - "๐Ÿ•ถ", + "โ–ถ", + "*", + "๐Ÿ–‡", "๐ŸŒฌ", - "โ™ฃ", - "โš—", - "โ—€", + "๐ŸŽž", + "๐Ÿ—‚", + "โ–ซ", + "โฌ†", + "๐Ÿš", + "โ†˜", "โ›“", + "โ˜ƒ", } ), ) diff --git a/tools/make_width_tables.py b/tools/make_width_tables.py index 67700402bc..8f0e0341fc 100644 --- a/tools/make_width_tables.py +++ b/tools/make_width_tables.py @@ -19,6 +19,8 @@ with open(path, "wt") as init_file: init_file.write(init) +subprocess.run(f"black {path}", shell=True) + narrow_to_wide: set[str] = set() for start, end in VS16_NARROW_TO_WIDE["9.0.0"]: @@ -37,6 +39,7 @@ cell_table = CellTable(version, table, frozenset(narrow_to_wide)) table_file = f"""# Auto generated by tools/make_width_tables.py +# Data from wcwidth project (https://github.com/jquast/wcwidth) from rich.cells import CellTable From cbae9229af4391c0e8aea782956ce9b224cb80c2 Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Thu, 22 Jan 2026 15:58:32 +0000 Subject: [PATCH 29/29] update wcwidth data, add consistant sorting --- rich/_unicode_data/unicode10-0-0.py | 406 +++++++++++++------------- rich/_unicode_data/unicode11-0-0.py | 407 +++++++++++++-------------- rich/_unicode_data/unicode12-0-0.py | 407 +++++++++++++-------------- rich/_unicode_data/unicode12-1-0.py | 407 +++++++++++++-------------- rich/_unicode_data/unicode13-0-0.py | 407 +++++++++++++-------------- rich/_unicode_data/unicode14-0-0.py | 408 +++++++++++++-------------- rich/_unicode_data/unicode15-0-0.py | 408 +++++++++++++-------------- rich/_unicode_data/unicode15-1-0.py | 408 +++++++++++++-------------- rich/_unicode_data/unicode16-0-0.py | 408 +++++++++++++-------------- rich/_unicode_data/unicode17-0-0.py | 408 +++++++++++++-------------- rich/_unicode_data/unicode4-1-0.py | 422 +++++++++++++++------------- rich/_unicode_data/unicode5-0-0.py | 422 +++++++++++++++------------- rich/_unicode_data/unicode5-1-0.py | 398 +++++++++++++------------- rich/_unicode_data/unicode5-2-0.py | 398 +++++++++++++------------- rich/_unicode_data/unicode6-0-0.py | 398 +++++++++++++------------- rich/_unicode_data/unicode6-1-0.py | 398 +++++++++++++------------- rich/_unicode_data/unicode6-2-0.py | 398 +++++++++++++------------- rich/_unicode_data/unicode6-3-0.py | 398 +++++++++++++------------- rich/_unicode_data/unicode7-0-0.py | 398 +++++++++++++------------- rich/_unicode_data/unicode8-0-0.py | 398 +++++++++++++------------- rich/_unicode_data/unicode9-0-0.py | 406 +++++++++++++------------- tools/make_width_tables.py | 2 +- 22 files changed, 4257 insertions(+), 4253 deletions(-) diff --git a/rich/_unicode_data/unicode10-0-0.py b/rich/_unicode_data/unicode10-0-0.py index f7498f5263..f318087837 100644 --- a/rich/_unicode_data/unicode10-0-0.py +++ b/rich/_unicode_data/unicode10-0-0.py @@ -4,8 +4,8 @@ from rich.cells import CellTable cell_table = CellTable( - unicode_version="10.0.0", - widths=[ + "10.0.0", + [ (0, 0, 0), (768, 879, 0), (1155, 1161, 0), @@ -14,16 +14,14 @@ (1473, 1474, 0), (1476, 1477, 0), (1479, 1479, 0), - (1536, 1541, 0), (1552, 1562, 0), (1564, 1564, 0), (1611, 1631, 0), (1648, 1648, 0), - (1750, 1757, 0), + (1750, 1756, 0), (1759, 1764, 0), (1767, 1768, 0), (1770, 1773, 0), - (1807, 1807, 0), (1809, 1809, 0), (1840, 1866, 0), (1958, 1968, 0), @@ -33,7 +31,8 @@ (2085, 2087, 0), (2089, 2093, 0), (2137, 2139, 0), - (2260, 2307, 0), + (2260, 2273, 0), + (2275, 2307, 0), (2362, 2364, 0), (2366, 2383, 0), (2385, 2391, 0), @@ -159,8 +158,7 @@ (7675, 7679, 0), (8203, 8207, 0), (8232, 8238, 0), - (8288, 8292, 0), - (8294, 8303, 0), + (8288, 8303, 0), (8400, 8432, 0), (8986, 8987, 2), (9001, 9002, 2), @@ -210,7 +208,9 @@ (12441, 12442, 0), (12443, 12543, 2), (12549, 12590, 2), - (12593, 12686, 2), + (12593, 12643, 2), + (12644, 12644, 0), + (12645, 12686, 2), (12688, 12730, 2), (12736, 12771, 2), (12784, 12830, 2), @@ -261,8 +261,9 @@ (65128, 65131, 2), (65279, 65279, 0), (65281, 65376, 2), + (65440, 65440, 0), (65504, 65510, 2), - (65529, 65531, 0), + (65520, 65531, 0), (66045, 66045, 0), (66272, 66272, 0), (66422, 66426, 0), @@ -276,7 +277,6 @@ (69688, 69702, 0), (69759, 69762, 0), (69808, 69818, 0), - (69821, 69821, 0), (69888, 69890, 0), (69927, 69940, 0), (70003, 70003, 0), @@ -389,225 +389,223 @@ (129488, 129510, 2), (131072, 196605, 2), (196608, 262141, 2), - (917505, 917505, 0), - (917536, 917631, 0), - (917760, 917999, 0), + (917504, 921599, 0), ], - narrow_to_wide=frozenset( - { - "2", - "โ†ช", - "โ˜", - "๐ŸŒง", - "๐Ÿ›ข", - "โ‰", - "โ™จ", - "โœ”", - "โ˜Ž", - "โ˜ฃ", - "๐Ÿ›", - "๐Ÿ…พ", - "๐Ÿ•ต", - "๐Ÿ—ฃ", - "โ™ฃ", - "๐Ÿ—ž", - "๐Ÿ…ฑ", - "โ˜ช", - "๐Ÿ•", - "๐Ÿž", - "๐Ÿ›ฐ", + frozenset( + [ + "#", + "*", "0", - "๐Ÿ›ณ", - "๐Ÿ•ณ", - "โ™ ", + "1", + "2", + "3", + "4", "5", + "6", + "7", + "8", + "9", + "ยฉ", + "ยฎ", + "โ€ผ", + "โ‰", + "โ„ข", + "โ„น", + "โ†”", + "โ†•", + "โ†–", + "โ†—", + "โ†˜", + "โ†™", + "โ†ฉ", + "โ†ช", "โŒจ", - "๐Ÿ›‹", - "๐Ÿ—’", - "โœณ", - "๐Ÿท", - "๐ŸŒฉ", - "โšง", - "๐Ÿ", - "๐Ÿ•‰", - "โ˜ฆ", - "๐Ÿ‘", - "๐Ÿ›", - "๐Ÿ—บ", - "๐ŸŽ—", - "๐Ÿ…ฟ", - "โ™‚", - "โš›", - "๐Ÿ›ก", + "โ", + "โญ", "โฎ", - "๐Ÿณ", - "๐Ÿ—ƒ", - "๐Ÿ—", - "๐Ÿฟ", - "โ—ป", - "๐Ÿ™", - "๐Ÿ›ฅ", - "6", + "โฏ", "โฑ", - "โ›ฐ", - "๐ŸŽ", - "๐Ÿ•ฏ", - "๐Ÿต", - "๐Ÿ–", - "โœ–", - "๐Ÿ›Ž", - "โ˜‚", - "#", - "โฃ", - "โ™ป", - "๐Ÿ—„", - "3", - "โญ", - "โ˜ธ", - "โ", - "โ›ธ", - "๐Ÿ–", + "โฒ", "โธ", - "โ™ฆ", - "โ‡", - "โฏ", - "โ›น", + "โน", + "โบ", + "โ“‚", + "โ–ช", + "โ–ซ", + "โ–ถ", + "โ—€", + "โ—ป", + "โ—ผ", + "โ˜€", + "โ˜", + "โ˜‚", + "โ˜ƒ", + "โ˜„", + "โ˜Ž", + "โ˜‘", + "โ˜˜", + "โ˜", "โ˜ ", - "๐Ÿ”", - "๐Ÿ•ธ", - "โ†–", - "๐Ÿ—‘", - "๐ŸŒก", - "โœˆ", - "โš’", - "7", - "โœ", - "๐Ÿ•ฐ", - "๐ŸŒซ", + "โ˜ข", + "โ˜ฃ", + "โ˜ฆ", + "โ˜ช", "โ˜ฎ", "โ˜ฏ", - "โฒ", - "๐Ÿ–", - "โœด", - "โšฐ", - "๐Ÿฝ", - "โšฑ", - "๐Ÿœ", - "๐Ÿ—ก", - "๐Ÿ•ท", - "โ™€", - "โ„น", - "๐ŸŒจ", - "โšœ", - "โ˜„", - "โ˜‘", - "โš ", - "โœ", - "9", - "โ“‚", - "โ†ฉ", + "โ˜ธ", "โ˜น", "โ˜บ", - "4", - "โ—ผ", - "โš”", + "โ™€", + "โ™‚", "โ™Ÿ", - "โœ‰", - "โคต", - "๐ŸŽ–", - "โค", - "๐ŸŽš", - "๐Ÿ•Š", - "๐Ÿ—ฏ", - "๐Ÿ‹", - "๐Ÿ—ณ", - "โ†•", - "โ„", - "โœ‚", - "โžก", - "๐Ÿ˜", - "โ›ฑ", + "โ™ ", + "โ™ฃ", "โ™ฅ", - "๐Ÿ–‹", - "๐ŸŒฆ", - "โœ’", - "๐Ÿ“ฝ", + "โ™ฆ", + "โ™จ", + "โ™ป", + "โ™พ", + "โš’", + "โš”", + "โš•", "โš–", - "๐Ÿ–Œ", - "โ˜€", - "โ›ท", - "โ†™", - "โ€ผ", - "๐Ÿ•ด", - "โ†”", + "โš—", + "โš™", + "โš›", + "โšœ", + "โš ", + "โšง", + "โšฐ", + "โšฑ", + "โ›ˆ", "โ›", - "โคด", - "โš•", - "โน", - "๐Ÿ–ฑ", - "โฌ…", - "๐Ÿ›ค", - "๐Ÿ› ", - "๐Ÿ›ฉ", - "๐ŸŒช", - "๐Ÿ", - "โ–ช", + "โ›‘", + "โ›“", "โ›ฉ", - "๐Ÿ•ถ", - "๐Ÿ›ฃ", - "๐Ÿ–ฒ", - "๐Ÿ–ฅ", - "โš—", - "ยฉ", - "โ˜ข", - "โ†—", + "โ›ฐ", + "โ›ฑ", + "โ›ด", + "โ›ท", + "โ›ธ", + "โ›น", + "โœ‚", + "โœˆ", + "โœ‰", "โœŒ", - "โ„ข", - "๐ŸŽ›", "โœ", - "โ›‘", - "๐ŸŽ™", - "1", - "โฌ‡", - "๐Ÿ—“", - "โ›ˆ", + "โœ", + "โœ’", + "โœ”", + "โœ–", + "โœ", "โœก", - "๐Ÿ–Š", - "๐Ÿ–ผ", - "๐Ÿ›", + "โœณ", + "โœด", + "โ„", + "โ‡", + "โฃ", + "โค", + "โžก", + "โคด", + "โคต", + "โฌ…", + "โฌ†", + "โฌ‡", + "๐Ÿ…ฐ", + "๐Ÿ…ฑ", + "๐Ÿ…พ", + "๐Ÿ…ฟ", + "๐ŸŒก", + "๐ŸŒค", "๐ŸŒฅ", + "๐ŸŒฆ", + "๐ŸŒง", + "๐ŸŒจ", + "๐ŸŒฉ", + "๐ŸŒช", + "๐ŸŒซ", + "๐ŸŒฌ", "๐ŸŒถ", - "๐Ÿ—", - "๐Ÿ–จ", - "โ™พ", - "โ›ด", - "โ˜", - "8", - "โ—€", + "๐Ÿฝ", + "๐ŸŽ–", + "๐ŸŽ—", + "๐ŸŽ™", + "๐ŸŽš", + "๐ŸŽ›", + "๐ŸŽž", "๐ŸŽŸ", - "๐Ÿ•น", - "๐Ÿ—จ", - "ยฎ", - "โš™", + "๐Ÿ‹", "๐ŸŒ", - "๐Ÿ—œ", - "๐ŸŒค", - "โบ", - "โ˜˜", - "๐Ÿ…ฐ", + "๐Ÿ", + "๐ŸŽ", + "๐Ÿ”", + "๐Ÿ•", + "๐Ÿ–", + "๐Ÿ—", + "๐Ÿ˜", + "๐Ÿ™", + "๐Ÿš", + "๐Ÿ›", + "๐Ÿœ", + "๐Ÿ", + "๐Ÿž", "๐ŸŸ", - "โ–ถ", - "*", + "๐Ÿณ", + "๐Ÿต", + "๐Ÿท", + "๐Ÿฟ", + "๐Ÿ‘", + "๐Ÿ“ฝ", + "๐Ÿ•‰", + "๐Ÿ•Š", + "๐Ÿ•ฏ", + "๐Ÿ•ฐ", + "๐Ÿ•ณ", + "๐Ÿ•ด", + "๐Ÿ•ต", + "๐Ÿ•ถ", + "๐Ÿ•ท", + "๐Ÿ•ธ", + "๐Ÿ•น", "๐Ÿ–‡", - "๐ŸŒฌ", - "๐ŸŽž", + "๐Ÿ–Š", + "๐Ÿ–‹", + "๐Ÿ–Œ", + "๐Ÿ–", + "๐Ÿ–", + "๐Ÿ–ฅ", + "๐Ÿ–จ", + "๐Ÿ–ฑ", + "๐Ÿ–ฒ", + "๐Ÿ–ผ", "๐Ÿ—‚", - "โ–ซ", - "โฌ†", - "๐Ÿš", - "โ†˜", - "โ›“", - "โ˜ƒ", - } + "๐Ÿ—ƒ", + "๐Ÿ—„", + "๐Ÿ—‘", + "๐Ÿ—’", + "๐Ÿ—“", + "๐Ÿ—œ", + "๐Ÿ—", + "๐Ÿ—ž", + "๐Ÿ—ก", + "๐Ÿ—ฃ", + "๐Ÿ—จ", + "๐Ÿ—ฏ", + "๐Ÿ—ณ", + "๐Ÿ—บ", + "๐Ÿ›‹", + "๐Ÿ›", + "๐Ÿ›Ž", + "๐Ÿ›", + "๐Ÿ› ", + "๐Ÿ›ก", + "๐Ÿ›ข", + "๐Ÿ›ฃ", + "๐Ÿ›ค", + "๐Ÿ›ฅ", + "๐Ÿ›ฉ", + "๐Ÿ›ฐ", + "๐Ÿ›ณ", + ] ), ) diff --git a/rich/_unicode_data/unicode11-0-0.py b/rich/_unicode_data/unicode11-0-0.py index 07b3fdd0fe..058bb342ca 100644 --- a/rich/_unicode_data/unicode11-0-0.py +++ b/rich/_unicode_data/unicode11-0-0.py @@ -4,8 +4,8 @@ from rich.cells import CellTable cell_table = CellTable( - unicode_version="11.0.0", - widths=[ + "11.0.0", + [ (0, 0, 0), (768, 879, 0), (1155, 1161, 0), @@ -14,16 +14,14 @@ (1473, 1474, 0), (1476, 1477, 0), (1479, 1479, 0), - (1536, 1541, 0), (1552, 1562, 0), (1564, 1564, 0), (1611, 1631, 0), (1648, 1648, 0), - (1750, 1757, 0), + (1750, 1756, 0), (1759, 1764, 0), (1767, 1768, 0), (1770, 1773, 0), - (1807, 1807, 0), (1809, 1809, 0), (1840, 1866, 0), (1958, 1968, 0), @@ -34,7 +32,8 @@ (2085, 2087, 0), (2089, 2093, 0), (2137, 2139, 0), - (2259, 2307, 0), + (2259, 2273, 0), + (2275, 2307, 0), (2362, 2364, 0), (2366, 2383, 0), (2385, 2391, 0), @@ -161,8 +160,7 @@ (7675, 7679, 0), (8203, 8207, 0), (8232, 8238, 0), - (8288, 8292, 0), - (8294, 8303, 0), + (8288, 8303, 0), (8400, 8432, 0), (8986, 8987, 2), (9001, 9002, 2), @@ -212,7 +210,9 @@ (12441, 12442, 0), (12443, 12543, 2), (12549, 12591, 2), - (12593, 12686, 2), + (12593, 12643, 2), + (12644, 12644, 0), + (12645, 12686, 2), (12688, 12730, 2), (12736, 12771, 2), (12784, 12830, 2), @@ -264,8 +264,9 @@ (65128, 65131, 2), (65279, 65279, 0), (65281, 65376, 2), + (65440, 65440, 0), (65504, 65510, 2), - (65529, 65531, 0), + (65520, 65531, 0), (66045, 66045, 0), (66272, 66272, 0), (66422, 66426, 0), @@ -281,8 +282,6 @@ (69688, 69702, 0), (69759, 69762, 0), (69808, 69818, 0), - (69821, 69821, 0), - (69837, 69837, 0), (69888, 69890, 0), (69927, 69940, 0), (69957, 69958, 0), @@ -404,225 +403,223 @@ (129488, 129535, 2), (131072, 196605, 2), (196608, 262141, 2), - (917505, 917505, 0), - (917536, 917631, 0), - (917760, 917999, 0), + (917504, 921599, 0), ], - narrow_to_wide=frozenset( - { - "2", - "โ†ช", - "โ˜", - "๐ŸŒง", - "๐Ÿ›ข", - "โ‰", - "โ™จ", - "โœ”", - "โ˜Ž", - "โ˜ฃ", - "๐Ÿ›", - "๐Ÿ…พ", - "๐Ÿ•ต", - "๐Ÿ—ฃ", - "โ™ฃ", - "๐Ÿ—ž", - "๐Ÿ…ฑ", - "โ˜ช", - "๐Ÿ•", - "๐Ÿž", - "๐Ÿ›ฐ", + frozenset( + [ + "#", + "*", "0", - "๐Ÿ›ณ", - "๐Ÿ•ณ", - "โ™ ", + "1", + "2", + "3", + "4", "5", + "6", + "7", + "8", + "9", + "ยฉ", + "ยฎ", + "โ€ผ", + "โ‰", + "โ„ข", + "โ„น", + "โ†”", + "โ†•", + "โ†–", + "โ†—", + "โ†˜", + "โ†™", + "โ†ฉ", + "โ†ช", "โŒจ", - "๐Ÿ›‹", - "๐Ÿ—’", - "โœณ", - "๐Ÿท", - "๐ŸŒฉ", - "โšง", - "๐Ÿ", - "๐Ÿ•‰", - "โ˜ฆ", - "๐Ÿ‘", - "๐Ÿ›", - "๐Ÿ—บ", - "๐ŸŽ—", - "๐Ÿ…ฟ", - "โ™‚", - "โš›", - "๐Ÿ›ก", + "โ", + "โญ", "โฎ", - "๐Ÿณ", - "๐Ÿ—ƒ", - "๐Ÿ—", - "๐Ÿฟ", - "โ—ป", - "๐Ÿ™", - "๐Ÿ›ฅ", - "6", + "โฏ", "โฑ", - "โ›ฐ", - "๐ŸŽ", - "๐Ÿ•ฏ", - "๐Ÿต", - "๐Ÿ–", - "โœ–", - "๐Ÿ›Ž", - "โ˜‚", - "#", - "โฃ", - "โ™ป", - "๐Ÿ—„", - "3", - "โญ", - "โ˜ธ", - "โ", - "โ›ธ", - "๐Ÿ–", + "โฒ", "โธ", - "โ™ฆ", - "โ‡", - "โฏ", - "โ›น", + "โน", + "โบ", + "โ“‚", + "โ–ช", + "โ–ซ", + "โ–ถ", + "โ—€", + "โ—ป", + "โ—ผ", + "โ˜€", + "โ˜", + "โ˜‚", + "โ˜ƒ", + "โ˜„", + "โ˜Ž", + "โ˜‘", + "โ˜˜", + "โ˜", "โ˜ ", - "๐Ÿ”", - "๐Ÿ•ธ", - "โ†–", - "๐Ÿ—‘", - "๐ŸŒก", - "โœˆ", - "โš’", - "7", - "โœ", - "๐Ÿ•ฐ", - "๐ŸŒซ", + "โ˜ข", + "โ˜ฃ", + "โ˜ฆ", + "โ˜ช", "โ˜ฎ", "โ˜ฏ", - "โฒ", - "๐Ÿ–", - "โœด", - "โšฐ", - "๐Ÿฝ", - "โšฑ", - "๐Ÿœ", - "๐Ÿ—ก", - "๐Ÿ•ท", - "โ™€", - "โ„น", - "๐ŸŒจ", - "โšœ", - "โ˜„", - "โ˜‘", - "โš ", - "โœ", - "9", - "โ“‚", - "โ†ฉ", + "โ˜ธ", "โ˜น", "โ˜บ", - "4", - "โ—ผ", - "โš”", + "โ™€", + "โ™‚", "โ™Ÿ", - "โœ‰", - "โคต", - "๐ŸŽ–", - "โค", - "๐ŸŽš", - "๐Ÿ•Š", - "๐Ÿ—ฏ", - "๐Ÿ‹", - "๐Ÿ—ณ", - "โ†•", - "โ„", - "โœ‚", - "โžก", - "๐Ÿ˜", - "โ›ฑ", + "โ™ ", + "โ™ฃ", "โ™ฅ", - "๐Ÿ–‹", - "๐ŸŒฆ", - "โœ’", - "๐Ÿ“ฝ", + "โ™ฆ", + "โ™จ", + "โ™ป", + "โ™พ", + "โš’", + "โš”", + "โš•", "โš–", - "๐Ÿ–Œ", - "โ˜€", - "โ›ท", - "โ†™", - "โ€ผ", - "๐Ÿ•ด", - "โ†”", + "โš—", + "โš™", + "โš›", + "โšœ", + "โš ", + "โšง", + "โšฐ", + "โšฑ", + "โ›ˆ", "โ›", - "โคด", - "โš•", - "โน", - "๐Ÿ–ฑ", - "โฌ…", - "๐Ÿ›ค", - "๐Ÿ› ", - "๐Ÿ›ฉ", - "๐ŸŒช", - "๐Ÿ", - "โ–ช", + "โ›‘", + "โ›“", "โ›ฉ", - "๐Ÿ•ถ", - "๐Ÿ›ฃ", - "๐Ÿ–ฒ", - "๐Ÿ–ฅ", - "โš—", - "ยฉ", - "โ˜ข", - "โ†—", + "โ›ฐ", + "โ›ฑ", + "โ›ด", + "โ›ท", + "โ›ธ", + "โ›น", + "โœ‚", + "โœˆ", + "โœ‰", "โœŒ", - "โ„ข", - "๐ŸŽ›", "โœ", - "โ›‘", - "๐ŸŽ™", - "1", - "โฌ‡", - "๐Ÿ—“", - "โ›ˆ", + "โœ", + "โœ’", + "โœ”", + "โœ–", + "โœ", "โœก", - "๐Ÿ–Š", - "๐Ÿ–ผ", - "๐Ÿ›", + "โœณ", + "โœด", + "โ„", + "โ‡", + "โฃ", + "โค", + "โžก", + "โคด", + "โคต", + "โฌ…", + "โฌ†", + "โฌ‡", + "๐Ÿ…ฐ", + "๐Ÿ…ฑ", + "๐Ÿ…พ", + "๐Ÿ…ฟ", + "๐ŸŒก", + "๐ŸŒค", "๐ŸŒฅ", + "๐ŸŒฆ", + "๐ŸŒง", + "๐ŸŒจ", + "๐ŸŒฉ", + "๐ŸŒช", + "๐ŸŒซ", + "๐ŸŒฌ", "๐ŸŒถ", - "๐Ÿ—", - "๐Ÿ–จ", - "โ™พ", - "โ›ด", - "โ˜", - "8", - "โ—€", + "๐Ÿฝ", + "๐ŸŽ–", + "๐ŸŽ—", + "๐ŸŽ™", + "๐ŸŽš", + "๐ŸŽ›", + "๐ŸŽž", "๐ŸŽŸ", - "๐Ÿ•น", - "๐Ÿ—จ", - "ยฎ", - "โš™", + "๐Ÿ‹", "๐ŸŒ", - "๐Ÿ—œ", - "๐ŸŒค", - "โบ", - "โ˜˜", - "๐Ÿ…ฐ", + "๐Ÿ", + "๐ŸŽ", + "๐Ÿ”", + "๐Ÿ•", + "๐Ÿ–", + "๐Ÿ—", + "๐Ÿ˜", + "๐Ÿ™", + "๐Ÿš", + "๐Ÿ›", + "๐Ÿœ", + "๐Ÿ", + "๐Ÿž", "๐ŸŸ", - "โ–ถ", - "*", + "๐Ÿณ", + "๐Ÿต", + "๐Ÿท", + "๐Ÿฟ", + "๐Ÿ‘", + "๐Ÿ“ฝ", + "๐Ÿ•‰", + "๐Ÿ•Š", + "๐Ÿ•ฏ", + "๐Ÿ•ฐ", + "๐Ÿ•ณ", + "๐Ÿ•ด", + "๐Ÿ•ต", + "๐Ÿ•ถ", + "๐Ÿ•ท", + "๐Ÿ•ธ", + "๐Ÿ•น", "๐Ÿ–‡", - "๐ŸŒฌ", - "๐ŸŽž", + "๐Ÿ–Š", + "๐Ÿ–‹", + "๐Ÿ–Œ", + "๐Ÿ–", + "๐Ÿ–", + "๐Ÿ–ฅ", + "๐Ÿ–จ", + "๐Ÿ–ฑ", + "๐Ÿ–ฒ", + "๐Ÿ–ผ", "๐Ÿ—‚", - "โ–ซ", - "โฌ†", - "๐Ÿš", - "โ†˜", - "โ›“", - "โ˜ƒ", - } + "๐Ÿ—ƒ", + "๐Ÿ—„", + "๐Ÿ—‘", + "๐Ÿ—’", + "๐Ÿ—“", + "๐Ÿ—œ", + "๐Ÿ—", + "๐Ÿ—ž", + "๐Ÿ—ก", + "๐Ÿ—ฃ", + "๐Ÿ—จ", + "๐Ÿ—ฏ", + "๐Ÿ—ณ", + "๐Ÿ—บ", + "๐Ÿ›‹", + "๐Ÿ›", + "๐Ÿ›Ž", + "๐Ÿ›", + "๐Ÿ› ", + "๐Ÿ›ก", + "๐Ÿ›ข", + "๐Ÿ›ฃ", + "๐Ÿ›ค", + "๐Ÿ›ฅ", + "๐Ÿ›ฉ", + "๐Ÿ›ฐ", + "๐Ÿ›ณ", + ] ), ) diff --git a/rich/_unicode_data/unicode12-0-0.py b/rich/_unicode_data/unicode12-0-0.py index 2aa1ccaf89..7b0022513d 100644 --- a/rich/_unicode_data/unicode12-0-0.py +++ b/rich/_unicode_data/unicode12-0-0.py @@ -4,8 +4,8 @@ from rich.cells import CellTable cell_table = CellTable( - unicode_version="12.0.0", - widths=[ + "12.0.0", + [ (0, 0, 0), (768, 879, 0), (1155, 1161, 0), @@ -14,16 +14,14 @@ (1473, 1474, 0), (1476, 1477, 0), (1479, 1479, 0), - (1536, 1541, 0), (1552, 1562, 0), (1564, 1564, 0), (1611, 1631, 0), (1648, 1648, 0), - (1750, 1757, 0), + (1750, 1756, 0), (1759, 1764, 0), (1767, 1768, 0), (1770, 1773, 0), - (1807, 1807, 0), (1809, 1809, 0), (1840, 1866, 0), (1958, 1968, 0), @@ -34,7 +32,8 @@ (2085, 2087, 0), (2089, 2093, 0), (2137, 2139, 0), - (2259, 2307, 0), + (2259, 2273, 0), + (2275, 2307, 0), (2362, 2364, 0), (2366, 2383, 0), (2385, 2391, 0), @@ -160,8 +159,7 @@ (7675, 7679, 0), (8203, 8207, 0), (8232, 8238, 0), - (8288, 8292, 0), - (8294, 8303, 0), + (8288, 8303, 0), (8400, 8432, 0), (8986, 8987, 2), (9001, 9002, 2), @@ -211,7 +209,9 @@ (12441, 12442, 0), (12443, 12543, 2), (12549, 12591, 2), - (12593, 12686, 2), + (12593, 12643, 2), + (12644, 12644, 0), + (12645, 12686, 2), (12688, 12730, 2), (12736, 12771, 2), (12784, 12830, 2), @@ -263,8 +263,9 @@ (65128, 65131, 2), (65279, 65279, 0), (65281, 65376, 2), + (65440, 65440, 0), (65504, 65510, 2), - (65529, 65531, 0), + (65520, 65531, 0), (66045, 66045, 0), (66272, 66272, 0), (66422, 66426, 0), @@ -280,8 +281,6 @@ (69688, 69702, 0), (69759, 69762, 0), (69808, 69818, 0), - (69821, 69821, 0), - (69837, 69837, 0), (69888, 69890, 0), (69927, 69940, 0), (69957, 69958, 0), @@ -416,225 +415,223 @@ (129680, 129685, 2), (131072, 196605, 2), (196608, 262141, 2), - (917505, 917505, 0), - (917536, 917631, 0), - (917760, 917999, 0), + (917504, 921599, 0), ], - narrow_to_wide=frozenset( - { - "2", - "โ†ช", - "โ˜", - "๐ŸŒง", - "๐Ÿ›ข", - "โ‰", - "โ™จ", - "โœ”", - "โ˜Ž", - "โ˜ฃ", - "๐Ÿ›", - "๐Ÿ…พ", - "๐Ÿ•ต", - "๐Ÿ—ฃ", - "โ™ฃ", - "๐Ÿ—ž", - "๐Ÿ…ฑ", - "โ˜ช", - "๐Ÿ•", - "๐Ÿž", - "๐Ÿ›ฐ", + frozenset( + [ + "#", + "*", "0", - "๐Ÿ›ณ", - "๐Ÿ•ณ", - "โ™ ", + "1", + "2", + "3", + "4", "5", + "6", + "7", + "8", + "9", + "ยฉ", + "ยฎ", + "โ€ผ", + "โ‰", + "โ„ข", + "โ„น", + "โ†”", + "โ†•", + "โ†–", + "โ†—", + "โ†˜", + "โ†™", + "โ†ฉ", + "โ†ช", "โŒจ", - "๐Ÿ›‹", - "๐Ÿ—’", - "โœณ", - "๐Ÿท", - "๐ŸŒฉ", - "โšง", - "๐Ÿ", - "๐Ÿ•‰", - "โ˜ฆ", - "๐Ÿ‘", - "๐Ÿ›", - "๐Ÿ—บ", - "๐ŸŽ—", - "๐Ÿ…ฟ", - "โ™‚", - "โš›", - "๐Ÿ›ก", + "โ", + "โญ", "โฎ", - "๐Ÿณ", - "๐Ÿ—ƒ", - "๐Ÿ—", - "๐Ÿฟ", - "โ—ป", - "๐Ÿ™", - "๐Ÿ›ฅ", - "6", + "โฏ", "โฑ", - "โ›ฐ", - "๐ŸŽ", - "๐Ÿ•ฏ", - "๐Ÿต", - "๐Ÿ–", - "โœ–", - "๐Ÿ›Ž", - "โ˜‚", - "#", - "โฃ", - "โ™ป", - "๐Ÿ—„", - "3", - "โญ", - "โ˜ธ", - "โ", - "โ›ธ", - "๐Ÿ–", + "โฒ", "โธ", - "โ™ฆ", - "โ‡", - "โฏ", - "โ›น", + "โน", + "โบ", + "โ“‚", + "โ–ช", + "โ–ซ", + "โ–ถ", + "โ—€", + "โ—ป", + "โ—ผ", + "โ˜€", + "โ˜", + "โ˜‚", + "โ˜ƒ", + "โ˜„", + "โ˜Ž", + "โ˜‘", + "โ˜˜", + "โ˜", "โ˜ ", - "๐Ÿ”", - "๐Ÿ•ธ", - "โ†–", - "๐Ÿ—‘", - "๐ŸŒก", - "โœˆ", - "โš’", - "7", - "โœ", - "๐Ÿ•ฐ", - "๐ŸŒซ", + "โ˜ข", + "โ˜ฃ", + "โ˜ฆ", + "โ˜ช", "โ˜ฎ", "โ˜ฏ", - "โฒ", - "๐Ÿ–", - "โœด", - "โšฐ", - "๐Ÿฝ", - "โšฑ", - "๐Ÿœ", - "๐Ÿ—ก", - "๐Ÿ•ท", - "โ™€", - "โ„น", - "๐ŸŒจ", - "โšœ", - "โ˜„", - "โ˜‘", - "โš ", - "โœ", - "9", - "โ“‚", - "โ†ฉ", + "โ˜ธ", "โ˜น", "โ˜บ", - "4", - "โ—ผ", - "โš”", + "โ™€", + "โ™‚", "โ™Ÿ", - "โœ‰", - "โคต", - "๐ŸŽ–", - "โค", - "๐ŸŽš", - "๐Ÿ•Š", - "๐Ÿ—ฏ", - "๐Ÿ‹", - "๐Ÿ—ณ", - "โ†•", - "โ„", - "โœ‚", - "โžก", - "๐Ÿ˜", - "โ›ฑ", + "โ™ ", + "โ™ฃ", "โ™ฅ", - "๐Ÿ–‹", - "๐ŸŒฆ", - "โœ’", - "๐Ÿ“ฝ", + "โ™ฆ", + "โ™จ", + "โ™ป", + "โ™พ", + "โš’", + "โš”", + "โš•", "โš–", - "๐Ÿ–Œ", - "โ˜€", - "โ›ท", - "โ†™", - "โ€ผ", - "๐Ÿ•ด", - "โ†”", + "โš—", + "โš™", + "โš›", + "โšœ", + "โš ", + "โšง", + "โšฐ", + "โšฑ", + "โ›ˆ", "โ›", - "โคด", - "โš•", - "โน", - "๐Ÿ–ฑ", - "โฌ…", - "๐Ÿ›ค", - "๐Ÿ› ", - "๐Ÿ›ฉ", - "๐ŸŒช", - "๐Ÿ", - "โ–ช", + "โ›‘", + "โ›“", "โ›ฉ", - "๐Ÿ•ถ", - "๐Ÿ›ฃ", - "๐Ÿ–ฒ", - "๐Ÿ–ฅ", - "โš—", - "ยฉ", - "โ˜ข", - "โ†—", + "โ›ฐ", + "โ›ฑ", + "โ›ด", + "โ›ท", + "โ›ธ", + "โ›น", + "โœ‚", + "โœˆ", + "โœ‰", "โœŒ", - "โ„ข", - "๐ŸŽ›", "โœ", - "โ›‘", - "๐ŸŽ™", - "1", - "โฌ‡", - "๐Ÿ—“", - "โ›ˆ", + "โœ", + "โœ’", + "โœ”", + "โœ–", + "โœ", "โœก", - "๐Ÿ–Š", - "๐Ÿ–ผ", - "๐Ÿ›", + "โœณ", + "โœด", + "โ„", + "โ‡", + "โฃ", + "โค", + "โžก", + "โคด", + "โคต", + "โฌ…", + "โฌ†", + "โฌ‡", + "๐Ÿ…ฐ", + "๐Ÿ…ฑ", + "๐Ÿ…พ", + "๐Ÿ…ฟ", + "๐ŸŒก", + "๐ŸŒค", "๐ŸŒฅ", + "๐ŸŒฆ", + "๐ŸŒง", + "๐ŸŒจ", + "๐ŸŒฉ", + "๐ŸŒช", + "๐ŸŒซ", + "๐ŸŒฌ", "๐ŸŒถ", - "๐Ÿ—", - "๐Ÿ–จ", - "โ™พ", - "โ›ด", - "โ˜", - "8", - "โ—€", + "๐Ÿฝ", + "๐ŸŽ–", + "๐ŸŽ—", + "๐ŸŽ™", + "๐ŸŽš", + "๐ŸŽ›", + "๐ŸŽž", "๐ŸŽŸ", - "๐Ÿ•น", - "๐Ÿ—จ", - "ยฎ", - "โš™", + "๐Ÿ‹", "๐ŸŒ", - "๐Ÿ—œ", - "๐ŸŒค", - "โบ", - "โ˜˜", - "๐Ÿ…ฐ", + "๐Ÿ", + "๐ŸŽ", + "๐Ÿ”", + "๐Ÿ•", + "๐Ÿ–", + "๐Ÿ—", + "๐Ÿ˜", + "๐Ÿ™", + "๐Ÿš", + "๐Ÿ›", + "๐Ÿœ", + "๐Ÿ", + "๐Ÿž", "๐ŸŸ", - "โ–ถ", - "*", + "๐Ÿณ", + "๐Ÿต", + "๐Ÿท", + "๐Ÿฟ", + "๐Ÿ‘", + "๐Ÿ“ฝ", + "๐Ÿ•‰", + "๐Ÿ•Š", + "๐Ÿ•ฏ", + "๐Ÿ•ฐ", + "๐Ÿ•ณ", + "๐Ÿ•ด", + "๐Ÿ•ต", + "๐Ÿ•ถ", + "๐Ÿ•ท", + "๐Ÿ•ธ", + "๐Ÿ•น", "๐Ÿ–‡", - "๐ŸŒฌ", - "๐ŸŽž", + "๐Ÿ–Š", + "๐Ÿ–‹", + "๐Ÿ–Œ", + "๐Ÿ–", + "๐Ÿ–", + "๐Ÿ–ฅ", + "๐Ÿ–จ", + "๐Ÿ–ฑ", + "๐Ÿ–ฒ", + "๐Ÿ–ผ", "๐Ÿ—‚", - "โ–ซ", - "โฌ†", - "๐Ÿš", - "โ†˜", - "โ›“", - "โ˜ƒ", - } + "๐Ÿ—ƒ", + "๐Ÿ—„", + "๐Ÿ—‘", + "๐Ÿ—’", + "๐Ÿ—“", + "๐Ÿ—œ", + "๐Ÿ—", + "๐Ÿ—ž", + "๐Ÿ—ก", + "๐Ÿ—ฃ", + "๐Ÿ—จ", + "๐Ÿ—ฏ", + "๐Ÿ—ณ", + "๐Ÿ—บ", + "๐Ÿ›‹", + "๐Ÿ›", + "๐Ÿ›Ž", + "๐Ÿ›", + "๐Ÿ› ", + "๐Ÿ›ก", + "๐Ÿ›ข", + "๐Ÿ›ฃ", + "๐Ÿ›ค", + "๐Ÿ›ฅ", + "๐Ÿ›ฉ", + "๐Ÿ›ฐ", + "๐Ÿ›ณ", + ] ), ) diff --git a/rich/_unicode_data/unicode12-1-0.py b/rich/_unicode_data/unicode12-1-0.py index 5c432c4499..2dbcf3794e 100644 --- a/rich/_unicode_data/unicode12-1-0.py +++ b/rich/_unicode_data/unicode12-1-0.py @@ -4,8 +4,8 @@ from rich.cells import CellTable cell_table = CellTable( - unicode_version="12.1.0", - widths=[ + "12.1.0", + [ (0, 0, 0), (768, 879, 0), (1155, 1161, 0), @@ -14,16 +14,14 @@ (1473, 1474, 0), (1476, 1477, 0), (1479, 1479, 0), - (1536, 1541, 0), (1552, 1562, 0), (1564, 1564, 0), (1611, 1631, 0), (1648, 1648, 0), - (1750, 1757, 0), + (1750, 1756, 0), (1759, 1764, 0), (1767, 1768, 0), (1770, 1773, 0), - (1807, 1807, 0), (1809, 1809, 0), (1840, 1866, 0), (1958, 1968, 0), @@ -34,7 +32,8 @@ (2085, 2087, 0), (2089, 2093, 0), (2137, 2139, 0), - (2259, 2307, 0), + (2259, 2273, 0), + (2275, 2307, 0), (2362, 2364, 0), (2366, 2383, 0), (2385, 2391, 0), @@ -160,8 +159,7 @@ (7675, 7679, 0), (8203, 8207, 0), (8232, 8238, 0), - (8288, 8292, 0), - (8294, 8303, 0), + (8288, 8303, 0), (8400, 8432, 0), (8986, 8987, 2), (9001, 9002, 2), @@ -211,7 +209,9 @@ (12441, 12442, 0), (12443, 12543, 2), (12549, 12591, 2), - (12593, 12686, 2), + (12593, 12643, 2), + (12644, 12644, 0), + (12645, 12686, 2), (12688, 12730, 2), (12736, 12771, 2), (12784, 12830, 2), @@ -262,8 +262,9 @@ (65128, 65131, 2), (65279, 65279, 0), (65281, 65376, 2), + (65440, 65440, 0), (65504, 65510, 2), - (65529, 65531, 0), + (65520, 65531, 0), (66045, 66045, 0), (66272, 66272, 0), (66422, 66426, 0), @@ -279,8 +280,6 @@ (69688, 69702, 0), (69759, 69762, 0), (69808, 69818, 0), - (69821, 69821, 0), - (69837, 69837, 0), (69888, 69890, 0), (69927, 69940, 0), (69957, 69958, 0), @@ -415,225 +414,223 @@ (129680, 129685, 2), (131072, 196605, 2), (196608, 262141, 2), - (917505, 917505, 0), - (917536, 917631, 0), - (917760, 917999, 0), + (917504, 921599, 0), ], - narrow_to_wide=frozenset( - { - "2", - "โ†ช", - "โ˜", - "๐ŸŒง", - "๐Ÿ›ข", - "โ‰", - "โ™จ", - "โœ”", - "โ˜Ž", - "โ˜ฃ", - "๐Ÿ›", - "๐Ÿ…พ", - "๐Ÿ•ต", - "๐Ÿ—ฃ", - "โ™ฃ", - "๐Ÿ—ž", - "๐Ÿ…ฑ", - "โ˜ช", - "๐Ÿ•", - "๐Ÿž", - "๐Ÿ›ฐ", + frozenset( + [ + "#", + "*", "0", - "๐Ÿ›ณ", - "๐Ÿ•ณ", - "โ™ ", + "1", + "2", + "3", + "4", "5", + "6", + "7", + "8", + "9", + "ยฉ", + "ยฎ", + "โ€ผ", + "โ‰", + "โ„ข", + "โ„น", + "โ†”", + "โ†•", + "โ†–", + "โ†—", + "โ†˜", + "โ†™", + "โ†ฉ", + "โ†ช", "โŒจ", - "๐Ÿ›‹", - "๐Ÿ—’", - "โœณ", - "๐Ÿท", - "๐ŸŒฉ", - "โšง", - "๐Ÿ", - "๐Ÿ•‰", - "โ˜ฆ", - "๐Ÿ‘", - "๐Ÿ›", - "๐Ÿ—บ", - "๐ŸŽ—", - "๐Ÿ…ฟ", - "โ™‚", - "โš›", - "๐Ÿ›ก", + "โ", + "โญ", "โฎ", - "๐Ÿณ", - "๐Ÿ—ƒ", - "๐Ÿ—", - "๐Ÿฟ", - "โ—ป", - "๐Ÿ™", - "๐Ÿ›ฅ", - "6", + "โฏ", "โฑ", - "โ›ฐ", - "๐ŸŽ", - "๐Ÿ•ฏ", - "๐Ÿต", - "๐Ÿ–", - "โœ–", - "๐Ÿ›Ž", - "โ˜‚", - "#", - "โฃ", - "โ™ป", - "๐Ÿ—„", - "3", - "โญ", - "โ˜ธ", - "โ", - "โ›ธ", - "๐Ÿ–", + "โฒ", "โธ", - "โ™ฆ", - "โ‡", - "โฏ", - "โ›น", + "โน", + "โบ", + "โ“‚", + "โ–ช", + "โ–ซ", + "โ–ถ", + "โ—€", + "โ—ป", + "โ—ผ", + "โ˜€", + "โ˜", + "โ˜‚", + "โ˜ƒ", + "โ˜„", + "โ˜Ž", + "โ˜‘", + "โ˜˜", + "โ˜", "โ˜ ", - "๐Ÿ”", - "๐Ÿ•ธ", - "โ†–", - "๐Ÿ—‘", - "๐ŸŒก", - "โœˆ", - "โš’", - "7", - "โœ", - "๐Ÿ•ฐ", - "๐ŸŒซ", + "โ˜ข", + "โ˜ฃ", + "โ˜ฆ", + "โ˜ช", "โ˜ฎ", "โ˜ฏ", - "โฒ", - "๐Ÿ–", - "โœด", - "โšฐ", - "๐Ÿฝ", - "โšฑ", - "๐Ÿœ", - "๐Ÿ—ก", - "๐Ÿ•ท", - "โ™€", - "โ„น", - "๐ŸŒจ", - "โšœ", - "โ˜„", - "โ˜‘", - "โš ", - "โœ", - "9", - "โ“‚", - "โ†ฉ", + "โ˜ธ", "โ˜น", "โ˜บ", - "4", - "โ—ผ", - "โš”", + "โ™€", + "โ™‚", "โ™Ÿ", - "โœ‰", - "โคต", - "๐ŸŽ–", - "โค", - "๐ŸŽš", - "๐Ÿ•Š", - "๐Ÿ—ฏ", - "๐Ÿ‹", - "๐Ÿ—ณ", - "โ†•", - "โ„", - "โœ‚", - "โžก", - "๐Ÿ˜", - "โ›ฑ", + "โ™ ", + "โ™ฃ", "โ™ฅ", - "๐Ÿ–‹", - "๐ŸŒฆ", - "โœ’", - "๐Ÿ“ฝ", + "โ™ฆ", + "โ™จ", + "โ™ป", + "โ™พ", + "โš’", + "โš”", + "โš•", "โš–", - "๐Ÿ–Œ", - "โ˜€", - "โ›ท", - "โ†™", - "โ€ผ", - "๐Ÿ•ด", - "โ†”", + "โš—", + "โš™", + "โš›", + "โšœ", + "โš ", + "โšง", + "โšฐ", + "โšฑ", + "โ›ˆ", "โ›", - "โคด", - "โš•", - "โน", - "๐Ÿ–ฑ", - "โฌ…", - "๐Ÿ›ค", - "๐Ÿ› ", - "๐Ÿ›ฉ", - "๐ŸŒช", - "๐Ÿ", - "โ–ช", + "โ›‘", + "โ›“", "โ›ฉ", - "๐Ÿ•ถ", - "๐Ÿ›ฃ", - "๐Ÿ–ฒ", - "๐Ÿ–ฅ", - "โš—", - "ยฉ", - "โ˜ข", - "โ†—", + "โ›ฐ", + "โ›ฑ", + "โ›ด", + "โ›ท", + "โ›ธ", + "โ›น", + "โœ‚", + "โœˆ", + "โœ‰", "โœŒ", - "โ„ข", - "๐ŸŽ›", "โœ", - "โ›‘", - "๐ŸŽ™", - "1", - "โฌ‡", - "๐Ÿ—“", - "โ›ˆ", + "โœ", + "โœ’", + "โœ”", + "โœ–", + "โœ", "โœก", - "๐Ÿ–Š", - "๐Ÿ–ผ", - "๐Ÿ›", + "โœณ", + "โœด", + "โ„", + "โ‡", + "โฃ", + "โค", + "โžก", + "โคด", + "โคต", + "โฌ…", + "โฌ†", + "โฌ‡", + "๐Ÿ…ฐ", + "๐Ÿ…ฑ", + "๐Ÿ…พ", + "๐Ÿ…ฟ", + "๐ŸŒก", + "๐ŸŒค", "๐ŸŒฅ", + "๐ŸŒฆ", + "๐ŸŒง", + "๐ŸŒจ", + "๐ŸŒฉ", + "๐ŸŒช", + "๐ŸŒซ", + "๐ŸŒฌ", "๐ŸŒถ", - "๐Ÿ—", - "๐Ÿ–จ", - "โ™พ", - "โ›ด", - "โ˜", - "8", - "โ—€", + "๐Ÿฝ", + "๐ŸŽ–", + "๐ŸŽ—", + "๐ŸŽ™", + "๐ŸŽš", + "๐ŸŽ›", + "๐ŸŽž", "๐ŸŽŸ", - "๐Ÿ•น", - "๐Ÿ—จ", - "ยฎ", - "โš™", + "๐Ÿ‹", "๐ŸŒ", - "๐Ÿ—œ", - "๐ŸŒค", - "โบ", - "โ˜˜", - "๐Ÿ…ฐ", + "๐Ÿ", + "๐ŸŽ", + "๐Ÿ”", + "๐Ÿ•", + "๐Ÿ–", + "๐Ÿ—", + "๐Ÿ˜", + "๐Ÿ™", + "๐Ÿš", + "๐Ÿ›", + "๐Ÿœ", + "๐Ÿ", + "๐Ÿž", "๐ŸŸ", - "โ–ถ", - "*", + "๐Ÿณ", + "๐Ÿต", + "๐Ÿท", + "๐Ÿฟ", + "๐Ÿ‘", + "๐Ÿ“ฝ", + "๐Ÿ•‰", + "๐Ÿ•Š", + "๐Ÿ•ฏ", + "๐Ÿ•ฐ", + "๐Ÿ•ณ", + "๐Ÿ•ด", + "๐Ÿ•ต", + "๐Ÿ•ถ", + "๐Ÿ•ท", + "๐Ÿ•ธ", + "๐Ÿ•น", "๐Ÿ–‡", - "๐ŸŒฌ", - "๐ŸŽž", + "๐Ÿ–Š", + "๐Ÿ–‹", + "๐Ÿ–Œ", + "๐Ÿ–", + "๐Ÿ–", + "๐Ÿ–ฅ", + "๐Ÿ–จ", + "๐Ÿ–ฑ", + "๐Ÿ–ฒ", + "๐Ÿ–ผ", "๐Ÿ—‚", - "โ–ซ", - "โฌ†", - "๐Ÿš", - "โ†˜", - "โ›“", - "โ˜ƒ", - } + "๐Ÿ—ƒ", + "๐Ÿ—„", + "๐Ÿ—‘", + "๐Ÿ—’", + "๐Ÿ—“", + "๐Ÿ—œ", + "๐Ÿ—", + "๐Ÿ—ž", + "๐Ÿ—ก", + "๐Ÿ—ฃ", + "๐Ÿ—จ", + "๐Ÿ—ฏ", + "๐Ÿ—ณ", + "๐Ÿ—บ", + "๐Ÿ›‹", + "๐Ÿ›", + "๐Ÿ›Ž", + "๐Ÿ›", + "๐Ÿ› ", + "๐Ÿ›ก", + "๐Ÿ›ข", + "๐Ÿ›ฃ", + "๐Ÿ›ค", + "๐Ÿ›ฅ", + "๐Ÿ›ฉ", + "๐Ÿ›ฐ", + "๐Ÿ›ณ", + ] ), ) diff --git a/rich/_unicode_data/unicode13-0-0.py b/rich/_unicode_data/unicode13-0-0.py index 6c47b69c77..13fbc74b0a 100644 --- a/rich/_unicode_data/unicode13-0-0.py +++ b/rich/_unicode_data/unicode13-0-0.py @@ -4,8 +4,8 @@ from rich.cells import CellTable cell_table = CellTable( - unicode_version="13.0.0", - widths=[ + "13.0.0", + [ (0, 0, 0), (768, 879, 0), (1155, 1161, 0), @@ -14,16 +14,14 @@ (1473, 1474, 0), (1476, 1477, 0), (1479, 1479, 0), - (1536, 1541, 0), (1552, 1562, 0), (1564, 1564, 0), (1611, 1631, 0), (1648, 1648, 0), - (1750, 1757, 0), + (1750, 1756, 0), (1759, 1764, 0), (1767, 1768, 0), (1770, 1773, 0), - (1807, 1807, 0), (1809, 1809, 0), (1840, 1866, 0), (1958, 1968, 0), @@ -34,7 +32,8 @@ (2085, 2087, 0), (2089, 2093, 0), (2137, 2139, 0), - (2259, 2307, 0), + (2259, 2273, 0), + (2275, 2307, 0), (2362, 2364, 0), (2366, 2383, 0), (2385, 2391, 0), @@ -160,8 +159,7 @@ (7675, 7679, 0), (8203, 8207, 0), (8232, 8238, 0), - (8288, 8292, 0), - (8294, 8303, 0), + (8288, 8303, 0), (8400, 8432, 0), (8986, 8987, 2), (9001, 9002, 2), @@ -211,7 +209,9 @@ (12441, 12442, 0), (12443, 12543, 2), (12549, 12591, 2), - (12593, 12686, 2), + (12593, 12643, 2), + (12644, 12644, 0), + (12645, 12686, 2), (12688, 12771, 2), (12784, 12830, 2), (12832, 12871, 2), @@ -262,8 +262,9 @@ (65128, 65131, 2), (65279, 65279, 0), (65281, 65376, 2), + (65440, 65440, 0), (65504, 65510, 2), - (65529, 65531, 0), + (65520, 65531, 0), (66045, 66045, 0), (66272, 66272, 0), (66422, 66426, 0), @@ -280,8 +281,6 @@ (69688, 69702, 0), (69759, 69762, 0), (69808, 69818, 0), - (69821, 69821, 0), - (69837, 69837, 0), (69888, 69890, 0), (69927, 69940, 0), (69957, 69958, 0), @@ -427,225 +426,223 @@ (129744, 129750, 2), (131072, 196605, 2), (196608, 262141, 2), - (917505, 917505, 0), - (917536, 917631, 0), - (917760, 917999, 0), + (917504, 921599, 0), ], - narrow_to_wide=frozenset( - { - "2", - "โ†ช", - "โ˜", - "๐ŸŒง", - "๐Ÿ›ข", - "โ‰", - "โ™จ", - "โœ”", - "โ˜Ž", - "โ˜ฃ", - "๐Ÿ›", - "๐Ÿ…พ", - "๐Ÿ•ต", - "๐Ÿ—ฃ", - "โ™ฃ", - "๐Ÿ—ž", - "๐Ÿ…ฑ", - "โ˜ช", - "๐Ÿ•", - "๐Ÿž", - "๐Ÿ›ฐ", + frozenset( + [ + "#", + "*", "0", - "๐Ÿ›ณ", - "๐Ÿ•ณ", - "โ™ ", + "1", + "2", + "3", + "4", "5", + "6", + "7", + "8", + "9", + "ยฉ", + "ยฎ", + "โ€ผ", + "โ‰", + "โ„ข", + "โ„น", + "โ†”", + "โ†•", + "โ†–", + "โ†—", + "โ†˜", + "โ†™", + "โ†ฉ", + "โ†ช", "โŒจ", - "๐Ÿ›‹", - "๐Ÿ—’", - "โœณ", - "๐Ÿท", - "๐ŸŒฉ", - "โšง", - "๐Ÿ", - "๐Ÿ•‰", - "โ˜ฆ", - "๐Ÿ‘", - "๐Ÿ›", - "๐Ÿ—บ", - "๐ŸŽ—", - "๐Ÿ…ฟ", - "โ™‚", - "โš›", - "๐Ÿ›ก", + "โ", + "โญ", "โฎ", - "๐Ÿณ", - "๐Ÿ—ƒ", - "๐Ÿ—", - "๐Ÿฟ", - "โ—ป", - "๐Ÿ™", - "๐Ÿ›ฅ", - "6", + "โฏ", "โฑ", - "โ›ฐ", - "๐ŸŽ", - "๐Ÿ•ฏ", - "๐Ÿต", - "๐Ÿ–", - "โœ–", - "๐Ÿ›Ž", - "โ˜‚", - "#", - "โฃ", - "โ™ป", - "๐Ÿ—„", - "3", - "โญ", - "โ˜ธ", - "โ", - "โ›ธ", - "๐Ÿ–", + "โฒ", "โธ", - "โ™ฆ", - "โ‡", - "โฏ", - "โ›น", + "โน", + "โบ", + "โ“‚", + "โ–ช", + "โ–ซ", + "โ–ถ", + "โ—€", + "โ—ป", + "โ—ผ", + "โ˜€", + "โ˜", + "โ˜‚", + "โ˜ƒ", + "โ˜„", + "โ˜Ž", + "โ˜‘", + "โ˜˜", + "โ˜", "โ˜ ", - "๐Ÿ”", - "๐Ÿ•ธ", - "โ†–", - "๐Ÿ—‘", - "๐ŸŒก", - "โœˆ", - "โš’", - "7", - "โœ", - "๐Ÿ•ฐ", - "๐ŸŒซ", + "โ˜ข", + "โ˜ฃ", + "โ˜ฆ", + "โ˜ช", "โ˜ฎ", "โ˜ฏ", - "โฒ", - "๐Ÿ–", - "โœด", - "โšฐ", - "๐Ÿฝ", - "โšฑ", - "๐Ÿœ", - "๐Ÿ—ก", - "๐Ÿ•ท", - "โ™€", - "โ„น", - "๐ŸŒจ", - "โšœ", - "โ˜„", - "โ˜‘", - "โš ", - "โœ", - "9", - "โ“‚", - "โ†ฉ", + "โ˜ธ", "โ˜น", "โ˜บ", - "4", - "โ—ผ", - "โš”", + "โ™€", + "โ™‚", "โ™Ÿ", - "โœ‰", - "โคต", - "๐ŸŽ–", - "โค", - "๐ŸŽš", - "๐Ÿ•Š", - "๐Ÿ—ฏ", - "๐Ÿ‹", - "๐Ÿ—ณ", - "โ†•", - "โ„", - "โœ‚", - "โžก", - "๐Ÿ˜", - "โ›ฑ", + "โ™ ", + "โ™ฃ", "โ™ฅ", - "๐Ÿ–‹", - "๐ŸŒฆ", - "โœ’", - "๐Ÿ“ฝ", + "โ™ฆ", + "โ™จ", + "โ™ป", + "โ™พ", + "โš’", + "โš”", + "โš•", "โš–", - "๐Ÿ–Œ", - "โ˜€", - "โ›ท", - "โ†™", - "โ€ผ", - "๐Ÿ•ด", - "โ†”", + "โš—", + "โš™", + "โš›", + "โšœ", + "โš ", + "โšง", + "โšฐ", + "โšฑ", + "โ›ˆ", "โ›", - "โคด", - "โš•", - "โน", - "๐Ÿ–ฑ", - "โฌ…", - "๐Ÿ›ค", - "๐Ÿ› ", - "๐Ÿ›ฉ", - "๐ŸŒช", - "๐Ÿ", - "โ–ช", + "โ›‘", + "โ›“", "โ›ฉ", - "๐Ÿ•ถ", - "๐Ÿ›ฃ", - "๐Ÿ–ฒ", - "๐Ÿ–ฅ", - "โš—", - "ยฉ", - "โ˜ข", - "โ†—", + "โ›ฐ", + "โ›ฑ", + "โ›ด", + "โ›ท", + "โ›ธ", + "โ›น", + "โœ‚", + "โœˆ", + "โœ‰", "โœŒ", - "โ„ข", - "๐ŸŽ›", "โœ", - "โ›‘", - "๐ŸŽ™", - "1", - "โฌ‡", - "๐Ÿ—“", - "โ›ˆ", + "โœ", + "โœ’", + "โœ”", + "โœ–", + "โœ", "โœก", - "๐Ÿ–Š", - "๐Ÿ–ผ", - "๐Ÿ›", + "โœณ", + "โœด", + "โ„", + "โ‡", + "โฃ", + "โค", + "โžก", + "โคด", + "โคต", + "โฌ…", + "โฌ†", + "โฌ‡", + "๐Ÿ…ฐ", + "๐Ÿ…ฑ", + "๐Ÿ…พ", + "๐Ÿ…ฟ", + "๐ŸŒก", + "๐ŸŒค", "๐ŸŒฅ", + "๐ŸŒฆ", + "๐ŸŒง", + "๐ŸŒจ", + "๐ŸŒฉ", + "๐ŸŒช", + "๐ŸŒซ", + "๐ŸŒฌ", "๐ŸŒถ", - "๐Ÿ—", - "๐Ÿ–จ", - "โ™พ", - "โ›ด", - "โ˜", - "8", - "โ—€", + "๐Ÿฝ", + "๐ŸŽ–", + "๐ŸŽ—", + "๐ŸŽ™", + "๐ŸŽš", + "๐ŸŽ›", + "๐ŸŽž", "๐ŸŽŸ", - "๐Ÿ•น", - "๐Ÿ—จ", - "ยฎ", - "โš™", + "๐Ÿ‹", "๐ŸŒ", - "๐Ÿ—œ", - "๐ŸŒค", - "โบ", - "โ˜˜", - "๐Ÿ…ฐ", + "๐Ÿ", + "๐ŸŽ", + "๐Ÿ”", + "๐Ÿ•", + "๐Ÿ–", + "๐Ÿ—", + "๐Ÿ˜", + "๐Ÿ™", + "๐Ÿš", + "๐Ÿ›", + "๐Ÿœ", + "๐Ÿ", + "๐Ÿž", "๐ŸŸ", - "โ–ถ", - "*", + "๐Ÿณ", + "๐Ÿต", + "๐Ÿท", + "๐Ÿฟ", + "๐Ÿ‘", + "๐Ÿ“ฝ", + "๐Ÿ•‰", + "๐Ÿ•Š", + "๐Ÿ•ฏ", + "๐Ÿ•ฐ", + "๐Ÿ•ณ", + "๐Ÿ•ด", + "๐Ÿ•ต", + "๐Ÿ•ถ", + "๐Ÿ•ท", + "๐Ÿ•ธ", + "๐Ÿ•น", "๐Ÿ–‡", - "๐ŸŒฌ", - "๐ŸŽž", + "๐Ÿ–Š", + "๐Ÿ–‹", + "๐Ÿ–Œ", + "๐Ÿ–", + "๐Ÿ–", + "๐Ÿ–ฅ", + "๐Ÿ–จ", + "๐Ÿ–ฑ", + "๐Ÿ–ฒ", + "๐Ÿ–ผ", "๐Ÿ—‚", - "โ–ซ", - "โฌ†", - "๐Ÿš", - "โ†˜", - "โ›“", - "โ˜ƒ", - } + "๐Ÿ—ƒ", + "๐Ÿ—„", + "๐Ÿ—‘", + "๐Ÿ—’", + "๐Ÿ—“", + "๐Ÿ—œ", + "๐Ÿ—", + "๐Ÿ—ž", + "๐Ÿ—ก", + "๐Ÿ—ฃ", + "๐Ÿ—จ", + "๐Ÿ—ฏ", + "๐Ÿ—ณ", + "๐Ÿ—บ", + "๐Ÿ›‹", + "๐Ÿ›", + "๐Ÿ›Ž", + "๐Ÿ›", + "๐Ÿ› ", + "๐Ÿ›ก", + "๐Ÿ›ข", + "๐Ÿ›ฃ", + "๐Ÿ›ค", + "๐Ÿ›ฅ", + "๐Ÿ›ฉ", + "๐Ÿ›ฐ", + "๐Ÿ›ณ", + ] ), ) diff --git a/rich/_unicode_data/unicode14-0-0.py b/rich/_unicode_data/unicode14-0-0.py index d2007494d5..9fa9e29e7f 100644 --- a/rich/_unicode_data/unicode14-0-0.py +++ b/rich/_unicode_data/unicode14-0-0.py @@ -4,8 +4,8 @@ from rich.cells import CellTable cell_table = CellTable( - unicode_version="14.0.0", - widths=[ + "14.0.0", + [ (0, 0, 0), (768, 879, 0), (1155, 1161, 0), @@ -14,16 +14,14 @@ (1473, 1474, 0), (1476, 1477, 0), (1479, 1479, 0), - (1536, 1541, 0), (1552, 1562, 0), (1564, 1564, 0), (1611, 1631, 0), (1648, 1648, 0), - (1750, 1757, 0), + (1750, 1756, 0), (1759, 1764, 0), (1767, 1768, 0), (1770, 1773, 0), - (1807, 1807, 0), (1809, 1809, 0), (1840, 1866, 0), (1958, 1968, 0), @@ -34,9 +32,9 @@ (2085, 2087, 0), (2089, 2093, 0), (2137, 2139, 0), - (2192, 2193, 0), (2200, 2207, 0), - (2250, 2307, 0), + (2250, 2273, 0), + (2275, 2307, 0), (2362, 2364, 0), (2366, 2383, 0), (2385, 2391, 0), @@ -162,8 +160,7 @@ (7616, 7679, 0), (8203, 8207, 0), (8232, 8238, 0), - (8288, 8292, 0), - (8294, 8303, 0), + (8288, 8303, 0), (8400, 8432, 0), (8986, 8987, 2), (9001, 9002, 2), @@ -213,7 +210,9 @@ (12441, 12442, 0), (12443, 12543, 2), (12549, 12591, 2), - (12593, 12686, 2), + (12593, 12643, 2), + (12644, 12644, 0), + (12645, 12686, 2), (12688, 12771, 2), (12784, 12830, 2), (12832, 12871, 2), @@ -264,8 +263,9 @@ (65128, 65131, 2), (65279, 65279, 0), (65281, 65376, 2), + (65440, 65440, 0), (65504, 65510, 2), - (65529, 65531, 0), + (65520, 65531, 0), (66045, 66045, 0), (66272, 66272, 0), (66422, 66426, 0), @@ -285,9 +285,7 @@ (69747, 69748, 0), (69759, 69762, 0), (69808, 69818, 0), - (69821, 69821, 0), (69826, 69826, 0), - (69837, 69837, 0), (69888, 69890, 0), (69927, 69940, 0), (69957, 69958, 0), @@ -441,225 +439,223 @@ (129776, 129782, 2), (131072, 196605, 2), (196608, 262141, 2), - (917505, 917505, 0), - (917536, 917631, 0), - (917760, 917999, 0), + (917504, 921599, 0), ], - narrow_to_wide=frozenset( - { - "2", - "โ†ช", - "โ˜", - "๐ŸŒง", - "๐Ÿ›ข", - "โ‰", - "โ™จ", - "โœ”", - "โ˜Ž", - "โ˜ฃ", - "๐Ÿ›", - "๐Ÿ…พ", - "๐Ÿ•ต", - "๐Ÿ—ฃ", - "โ™ฃ", - "๐Ÿ—ž", - "๐Ÿ…ฑ", - "โ˜ช", - "๐Ÿ•", - "๐Ÿž", - "๐Ÿ›ฐ", + frozenset( + [ + "#", + "*", "0", - "๐Ÿ›ณ", - "๐Ÿ•ณ", - "โ™ ", + "1", + "2", + "3", + "4", "5", + "6", + "7", + "8", + "9", + "ยฉ", + "ยฎ", + "โ€ผ", + "โ‰", + "โ„ข", + "โ„น", + "โ†”", + "โ†•", + "โ†–", + "โ†—", + "โ†˜", + "โ†™", + "โ†ฉ", + "โ†ช", "โŒจ", - "๐Ÿ›‹", - "๐Ÿ—’", - "โœณ", - "๐Ÿท", - "๐ŸŒฉ", - "โšง", - "๐Ÿ", - "๐Ÿ•‰", - "โ˜ฆ", - "๐Ÿ‘", - "๐Ÿ›", - "๐Ÿ—บ", - "๐ŸŽ—", - "๐Ÿ…ฟ", - "โ™‚", - "โš›", - "๐Ÿ›ก", + "โ", + "โญ", "โฎ", - "๐Ÿณ", - "๐Ÿ—ƒ", - "๐Ÿ—", - "๐Ÿฟ", - "โ—ป", - "๐Ÿ™", - "๐Ÿ›ฅ", - "6", + "โฏ", "โฑ", - "โ›ฐ", - "๐ŸŽ", - "๐Ÿ•ฏ", - "๐Ÿต", - "๐Ÿ–", - "โœ–", - "๐Ÿ›Ž", - "โ˜‚", - "#", - "โฃ", - "โ™ป", - "๐Ÿ—„", - "3", - "โญ", - "โ˜ธ", - "โ", - "โ›ธ", - "๐Ÿ–", + "โฒ", "โธ", - "โ™ฆ", - "โ‡", - "โฏ", - "โ›น", + "โน", + "โบ", + "โ“‚", + "โ–ช", + "โ–ซ", + "โ–ถ", + "โ—€", + "โ—ป", + "โ—ผ", + "โ˜€", + "โ˜", + "โ˜‚", + "โ˜ƒ", + "โ˜„", + "โ˜Ž", + "โ˜‘", + "โ˜˜", + "โ˜", "โ˜ ", - "๐Ÿ”", - "๐Ÿ•ธ", - "โ†–", - "๐Ÿ—‘", - "๐ŸŒก", - "โœˆ", - "โš’", - "7", - "โœ", - "๐Ÿ•ฐ", - "๐ŸŒซ", + "โ˜ข", + "โ˜ฃ", + "โ˜ฆ", + "โ˜ช", "โ˜ฎ", "โ˜ฏ", - "โฒ", - "๐Ÿ–", - "โœด", - "โšฐ", - "๐Ÿฝ", - "โšฑ", - "๐Ÿœ", - "๐Ÿ—ก", - "๐Ÿ•ท", - "โ™€", - "โ„น", - "๐ŸŒจ", - "โšœ", - "โ˜„", - "โ˜‘", - "โš ", - "โœ", - "9", - "โ“‚", - "โ†ฉ", + "โ˜ธ", "โ˜น", "โ˜บ", - "4", - "โ—ผ", - "โš”", + "โ™€", + "โ™‚", "โ™Ÿ", - "โœ‰", - "โคต", - "๐ŸŽ–", - "โค", - "๐ŸŽš", - "๐Ÿ•Š", - "๐Ÿ—ฏ", - "๐Ÿ‹", - "๐Ÿ—ณ", - "โ†•", - "โ„", - "โœ‚", - "โžก", - "๐Ÿ˜", - "โ›ฑ", + "โ™ ", + "โ™ฃ", "โ™ฅ", - "๐Ÿ–‹", - "๐ŸŒฆ", - "โœ’", - "๐Ÿ“ฝ", + "โ™ฆ", + "โ™จ", + "โ™ป", + "โ™พ", + "โš’", + "โš”", + "โš•", "โš–", - "๐Ÿ–Œ", - "โ˜€", - "โ›ท", - "โ†™", - "โ€ผ", - "๐Ÿ•ด", - "โ†”", + "โš—", + "โš™", + "โš›", + "โšœ", + "โš ", + "โšง", + "โšฐ", + "โšฑ", + "โ›ˆ", "โ›", - "โคด", - "โš•", - "โน", - "๐Ÿ–ฑ", - "โฌ…", - "๐Ÿ›ค", - "๐Ÿ› ", - "๐Ÿ›ฉ", - "๐ŸŒช", - "๐Ÿ", - "โ–ช", + "โ›‘", + "โ›“", "โ›ฉ", - "๐Ÿ•ถ", - "๐Ÿ›ฃ", - "๐Ÿ–ฒ", - "๐Ÿ–ฅ", - "โš—", - "ยฉ", - "โ˜ข", - "โ†—", + "โ›ฐ", + "โ›ฑ", + "โ›ด", + "โ›ท", + "โ›ธ", + "โ›น", + "โœ‚", + "โœˆ", + "โœ‰", "โœŒ", - "โ„ข", - "๐ŸŽ›", "โœ", - "โ›‘", - "๐ŸŽ™", - "1", - "โฌ‡", - "๐Ÿ—“", - "โ›ˆ", + "โœ", + "โœ’", + "โœ”", + "โœ–", + "โœ", "โœก", - "๐Ÿ–Š", - "๐Ÿ–ผ", - "๐Ÿ›", + "โœณ", + "โœด", + "โ„", + "โ‡", + "โฃ", + "โค", + "โžก", + "โคด", + "โคต", + "โฌ…", + "โฌ†", + "โฌ‡", + "๐Ÿ…ฐ", + "๐Ÿ…ฑ", + "๐Ÿ…พ", + "๐Ÿ…ฟ", + "๐ŸŒก", + "๐ŸŒค", "๐ŸŒฅ", + "๐ŸŒฆ", + "๐ŸŒง", + "๐ŸŒจ", + "๐ŸŒฉ", + "๐ŸŒช", + "๐ŸŒซ", + "๐ŸŒฌ", "๐ŸŒถ", - "๐Ÿ—", - "๐Ÿ–จ", - "โ™พ", - "โ›ด", - "โ˜", - "8", - "โ—€", + "๐Ÿฝ", + "๐ŸŽ–", + "๐ŸŽ—", + "๐ŸŽ™", + "๐ŸŽš", + "๐ŸŽ›", + "๐ŸŽž", "๐ŸŽŸ", - "๐Ÿ•น", - "๐Ÿ—จ", - "ยฎ", - "โš™", + "๐Ÿ‹", "๐ŸŒ", - "๐Ÿ—œ", - "๐ŸŒค", - "โบ", - "โ˜˜", - "๐Ÿ…ฐ", + "๐Ÿ", + "๐ŸŽ", + "๐Ÿ”", + "๐Ÿ•", + "๐Ÿ–", + "๐Ÿ—", + "๐Ÿ˜", + "๐Ÿ™", + "๐Ÿš", + "๐Ÿ›", + "๐Ÿœ", + "๐Ÿ", + "๐Ÿž", "๐ŸŸ", - "โ–ถ", - "*", + "๐Ÿณ", + "๐Ÿต", + "๐Ÿท", + "๐Ÿฟ", + "๐Ÿ‘", + "๐Ÿ“ฝ", + "๐Ÿ•‰", + "๐Ÿ•Š", + "๐Ÿ•ฏ", + "๐Ÿ•ฐ", + "๐Ÿ•ณ", + "๐Ÿ•ด", + "๐Ÿ•ต", + "๐Ÿ•ถ", + "๐Ÿ•ท", + "๐Ÿ•ธ", + "๐Ÿ•น", "๐Ÿ–‡", - "๐ŸŒฌ", - "๐ŸŽž", + "๐Ÿ–Š", + "๐Ÿ–‹", + "๐Ÿ–Œ", + "๐Ÿ–", + "๐Ÿ–", + "๐Ÿ–ฅ", + "๐Ÿ–จ", + "๐Ÿ–ฑ", + "๐Ÿ–ฒ", + "๐Ÿ–ผ", "๐Ÿ—‚", - "โ–ซ", - "โฌ†", - "๐Ÿš", - "โ†˜", - "โ›“", - "โ˜ƒ", - } + "๐Ÿ—ƒ", + "๐Ÿ—„", + "๐Ÿ—‘", + "๐Ÿ—’", + "๐Ÿ—“", + "๐Ÿ—œ", + "๐Ÿ—", + "๐Ÿ—ž", + "๐Ÿ—ก", + "๐Ÿ—ฃ", + "๐Ÿ—จ", + "๐Ÿ—ฏ", + "๐Ÿ—ณ", + "๐Ÿ—บ", + "๐Ÿ›‹", + "๐Ÿ›", + "๐Ÿ›Ž", + "๐Ÿ›", + "๐Ÿ› ", + "๐Ÿ›ก", + "๐Ÿ›ข", + "๐Ÿ›ฃ", + "๐Ÿ›ค", + "๐Ÿ›ฅ", + "๐Ÿ›ฉ", + "๐Ÿ›ฐ", + "๐Ÿ›ณ", + ] ), ) diff --git a/rich/_unicode_data/unicode15-0-0.py b/rich/_unicode_data/unicode15-0-0.py index 547b152702..84dd5be936 100644 --- a/rich/_unicode_data/unicode15-0-0.py +++ b/rich/_unicode_data/unicode15-0-0.py @@ -4,8 +4,8 @@ from rich.cells import CellTable cell_table = CellTable( - unicode_version="15.0.0", - widths=[ + "15.0.0", + [ (0, 0, 0), (768, 879, 0), (1155, 1161, 0), @@ -14,16 +14,14 @@ (1473, 1474, 0), (1476, 1477, 0), (1479, 1479, 0), - (1536, 1541, 0), (1552, 1562, 0), (1564, 1564, 0), (1611, 1631, 0), (1648, 1648, 0), - (1750, 1757, 0), + (1750, 1756, 0), (1759, 1764, 0), (1767, 1768, 0), (1770, 1773, 0), - (1807, 1807, 0), (1809, 1809, 0), (1840, 1866, 0), (1958, 1968, 0), @@ -34,9 +32,9 @@ (2085, 2087, 0), (2089, 2093, 0), (2137, 2139, 0), - (2192, 2193, 0), (2200, 2207, 0), - (2250, 2307, 0), + (2250, 2273, 0), + (2275, 2307, 0), (2362, 2364, 0), (2366, 2383, 0), (2385, 2391, 0), @@ -163,8 +161,7 @@ (7616, 7679, 0), (8203, 8207, 0), (8232, 8238, 0), - (8288, 8292, 0), - (8294, 8303, 0), + (8288, 8303, 0), (8400, 8432, 0), (8986, 8987, 2), (9001, 9002, 2), @@ -214,7 +211,9 @@ (12441, 12442, 0), (12443, 12543, 2), (12549, 12591, 2), - (12593, 12686, 2), + (12593, 12643, 2), + (12644, 12644, 0), + (12645, 12686, 2), (12688, 12771, 2), (12784, 12830, 2), (12832, 12871, 2), @@ -265,8 +264,9 @@ (65128, 65131, 2), (65279, 65279, 0), (65281, 65376, 2), + (65440, 65440, 0), (65504, 65510, 2), - (65529, 65531, 0), + (65520, 65531, 0), (66045, 66045, 0), (66272, 66272, 0), (66422, 66426, 0), @@ -287,9 +287,7 @@ (69747, 69748, 0), (69759, 69762, 0), (69808, 69818, 0), - (69821, 69821, 0), (69826, 69826, 0), - (69837, 69837, 0), (69888, 69890, 0), (69927, 69940, 0), (69957, 69958, 0), @@ -451,225 +449,223 @@ (129776, 129784, 2), (131072, 196605, 2), (196608, 262141, 2), - (917505, 917505, 0), - (917536, 917631, 0), - (917760, 917999, 0), + (917504, 921599, 0), ], - narrow_to_wide=frozenset( - { - "2", - "โ†ช", - "โ˜", - "๐ŸŒง", - "๐Ÿ›ข", - "โ‰", - "โ™จ", - "โœ”", - "โ˜Ž", - "โ˜ฃ", - "๐Ÿ›", - "๐Ÿ…พ", - "๐Ÿ•ต", - "๐Ÿ—ฃ", - "โ™ฃ", - "๐Ÿ—ž", - "๐Ÿ…ฑ", - "โ˜ช", - "๐Ÿ•", - "๐Ÿž", - "๐Ÿ›ฐ", + frozenset( + [ + "#", + "*", "0", - "๐Ÿ›ณ", - "๐Ÿ•ณ", - "โ™ ", + "1", + "2", + "3", + "4", "5", + "6", + "7", + "8", + "9", + "ยฉ", + "ยฎ", + "โ€ผ", + "โ‰", + "โ„ข", + "โ„น", + "โ†”", + "โ†•", + "โ†–", + "โ†—", + "โ†˜", + "โ†™", + "โ†ฉ", + "โ†ช", "โŒจ", - "๐Ÿ›‹", - "๐Ÿ—’", - "โœณ", - "๐Ÿท", - "๐ŸŒฉ", - "โšง", - "๐Ÿ", - "๐Ÿ•‰", - "โ˜ฆ", - "๐Ÿ‘", - "๐Ÿ›", - "๐Ÿ—บ", - "๐ŸŽ—", - "๐Ÿ…ฟ", - "โ™‚", - "โš›", - "๐Ÿ›ก", + "โ", + "โญ", "โฎ", - "๐Ÿณ", - "๐Ÿ—ƒ", - "๐Ÿ—", - "๐Ÿฟ", - "โ—ป", - "๐Ÿ™", - "๐Ÿ›ฅ", - "6", + "โฏ", "โฑ", - "โ›ฐ", - "๐ŸŽ", - "๐Ÿ•ฏ", - "๐Ÿต", - "๐Ÿ–", - "โœ–", - "๐Ÿ›Ž", - "โ˜‚", - "#", - "โฃ", - "โ™ป", - "๐Ÿ—„", - "3", - "โญ", - "โ˜ธ", - "โ", - "โ›ธ", - "๐Ÿ–", + "โฒ", "โธ", - "โ™ฆ", - "โ‡", - "โฏ", - "โ›น", + "โน", + "โบ", + "โ“‚", + "โ–ช", + "โ–ซ", + "โ–ถ", + "โ—€", + "โ—ป", + "โ—ผ", + "โ˜€", + "โ˜", + "โ˜‚", + "โ˜ƒ", + "โ˜„", + "โ˜Ž", + "โ˜‘", + "โ˜˜", + "โ˜", "โ˜ ", - "๐Ÿ”", - "๐Ÿ•ธ", - "โ†–", - "๐Ÿ—‘", - "๐ŸŒก", - "โœˆ", - "โš’", - "7", - "โœ", - "๐Ÿ•ฐ", - "๐ŸŒซ", + "โ˜ข", + "โ˜ฃ", + "โ˜ฆ", + "โ˜ช", "โ˜ฎ", "โ˜ฏ", - "โฒ", - "๐Ÿ–", - "โœด", - "โšฐ", - "๐Ÿฝ", - "โšฑ", - "๐Ÿœ", - "๐Ÿ—ก", - "๐Ÿ•ท", - "โ™€", - "โ„น", - "๐ŸŒจ", - "โšœ", - "โ˜„", - "โ˜‘", - "โš ", - "โœ", - "9", - "โ“‚", - "โ†ฉ", + "โ˜ธ", "โ˜น", "โ˜บ", - "4", - "โ—ผ", - "โš”", + "โ™€", + "โ™‚", "โ™Ÿ", - "โœ‰", - "โคต", - "๐ŸŽ–", - "โค", - "๐ŸŽš", - "๐Ÿ•Š", - "๐Ÿ—ฏ", - "๐Ÿ‹", - "๐Ÿ—ณ", - "โ†•", - "โ„", - "โœ‚", - "โžก", - "๐Ÿ˜", - "โ›ฑ", + "โ™ ", + "โ™ฃ", "โ™ฅ", - "๐Ÿ–‹", - "๐ŸŒฆ", - "โœ’", - "๐Ÿ“ฝ", + "โ™ฆ", + "โ™จ", + "โ™ป", + "โ™พ", + "โš’", + "โš”", + "โš•", "โš–", - "๐Ÿ–Œ", - "โ˜€", - "โ›ท", - "โ†™", - "โ€ผ", - "๐Ÿ•ด", - "โ†”", + "โš—", + "โš™", + "โš›", + "โšœ", + "โš ", + "โšง", + "โšฐ", + "โšฑ", + "โ›ˆ", "โ›", - "โคด", - "โš•", - "โน", - "๐Ÿ–ฑ", - "โฌ…", - "๐Ÿ›ค", - "๐Ÿ› ", - "๐Ÿ›ฉ", - "๐ŸŒช", - "๐Ÿ", - "โ–ช", + "โ›‘", + "โ›“", "โ›ฉ", - "๐Ÿ•ถ", - "๐Ÿ›ฃ", - "๐Ÿ–ฒ", - "๐Ÿ–ฅ", - "โš—", - "ยฉ", - "โ˜ข", - "โ†—", + "โ›ฐ", + "โ›ฑ", + "โ›ด", + "โ›ท", + "โ›ธ", + "โ›น", + "โœ‚", + "โœˆ", + "โœ‰", "โœŒ", - "โ„ข", - "๐ŸŽ›", "โœ", - "โ›‘", - "๐ŸŽ™", - "1", - "โฌ‡", - "๐Ÿ—“", - "โ›ˆ", + "โœ", + "โœ’", + "โœ”", + "โœ–", + "โœ", "โœก", - "๐Ÿ–Š", - "๐Ÿ–ผ", - "๐Ÿ›", + "โœณ", + "โœด", + "โ„", + "โ‡", + "โฃ", + "โค", + "โžก", + "โคด", + "โคต", + "โฌ…", + "โฌ†", + "โฌ‡", + "๐Ÿ…ฐ", + "๐Ÿ…ฑ", + "๐Ÿ…พ", + "๐Ÿ…ฟ", + "๐ŸŒก", + "๐ŸŒค", "๐ŸŒฅ", + "๐ŸŒฆ", + "๐ŸŒง", + "๐ŸŒจ", + "๐ŸŒฉ", + "๐ŸŒช", + "๐ŸŒซ", + "๐ŸŒฌ", "๐ŸŒถ", - "๐Ÿ—", - "๐Ÿ–จ", - "โ™พ", - "โ›ด", - "โ˜", - "8", - "โ—€", + "๐Ÿฝ", + "๐ŸŽ–", + "๐ŸŽ—", + "๐ŸŽ™", + "๐ŸŽš", + "๐ŸŽ›", + "๐ŸŽž", "๐ŸŽŸ", - "๐Ÿ•น", - "๐Ÿ—จ", - "ยฎ", - "โš™", + "๐Ÿ‹", "๐ŸŒ", - "๐Ÿ—œ", - "๐ŸŒค", - "โบ", - "โ˜˜", - "๐Ÿ…ฐ", + "๐Ÿ", + "๐ŸŽ", + "๐Ÿ”", + "๐Ÿ•", + "๐Ÿ–", + "๐Ÿ—", + "๐Ÿ˜", + "๐Ÿ™", + "๐Ÿš", + "๐Ÿ›", + "๐Ÿœ", + "๐Ÿ", + "๐Ÿž", "๐ŸŸ", - "โ–ถ", - "*", + "๐Ÿณ", + "๐Ÿต", + "๐Ÿท", + "๐Ÿฟ", + "๐Ÿ‘", + "๐Ÿ“ฝ", + "๐Ÿ•‰", + "๐Ÿ•Š", + "๐Ÿ•ฏ", + "๐Ÿ•ฐ", + "๐Ÿ•ณ", + "๐Ÿ•ด", + "๐Ÿ•ต", + "๐Ÿ•ถ", + "๐Ÿ•ท", + "๐Ÿ•ธ", + "๐Ÿ•น", "๐Ÿ–‡", - "๐ŸŒฌ", - "๐ŸŽž", + "๐Ÿ–Š", + "๐Ÿ–‹", + "๐Ÿ–Œ", + "๐Ÿ–", + "๐Ÿ–", + "๐Ÿ–ฅ", + "๐Ÿ–จ", + "๐Ÿ–ฑ", + "๐Ÿ–ฒ", + "๐Ÿ–ผ", "๐Ÿ—‚", - "โ–ซ", - "โฌ†", - "๐Ÿš", - "โ†˜", - "โ›“", - "โ˜ƒ", - } + "๐Ÿ—ƒ", + "๐Ÿ—„", + "๐Ÿ—‘", + "๐Ÿ—’", + "๐Ÿ—“", + "๐Ÿ—œ", + "๐Ÿ—", + "๐Ÿ—ž", + "๐Ÿ—ก", + "๐Ÿ—ฃ", + "๐Ÿ—จ", + "๐Ÿ—ฏ", + "๐Ÿ—ณ", + "๐Ÿ—บ", + "๐Ÿ›‹", + "๐Ÿ›", + "๐Ÿ›Ž", + "๐Ÿ›", + "๐Ÿ› ", + "๐Ÿ›ก", + "๐Ÿ›ข", + "๐Ÿ›ฃ", + "๐Ÿ›ค", + "๐Ÿ›ฅ", + "๐Ÿ›ฉ", + "๐Ÿ›ฐ", + "๐Ÿ›ณ", + ] ), ) diff --git a/rich/_unicode_data/unicode15-1-0.py b/rich/_unicode_data/unicode15-1-0.py index 50af2f99be..aa9f2c3e31 100644 --- a/rich/_unicode_data/unicode15-1-0.py +++ b/rich/_unicode_data/unicode15-1-0.py @@ -4,8 +4,8 @@ from rich.cells import CellTable cell_table = CellTable( - unicode_version="15.1.0", - widths=[ + "15.1.0", + [ (0, 0, 0), (768, 879, 0), (1155, 1161, 0), @@ -14,16 +14,14 @@ (1473, 1474, 0), (1476, 1477, 0), (1479, 1479, 0), - (1536, 1541, 0), (1552, 1562, 0), (1564, 1564, 0), (1611, 1631, 0), (1648, 1648, 0), - (1750, 1757, 0), + (1750, 1756, 0), (1759, 1764, 0), (1767, 1768, 0), (1770, 1773, 0), - (1807, 1807, 0), (1809, 1809, 0), (1840, 1866, 0), (1958, 1968, 0), @@ -34,9 +32,9 @@ (2085, 2087, 0), (2089, 2093, 0), (2137, 2139, 0), - (2192, 2193, 0), (2200, 2207, 0), - (2250, 2307, 0), + (2250, 2273, 0), + (2275, 2307, 0), (2362, 2364, 0), (2366, 2383, 0), (2385, 2391, 0), @@ -163,8 +161,7 @@ (7616, 7679, 0), (8203, 8207, 0), (8232, 8238, 0), - (8288, 8292, 0), - (8294, 8303, 0), + (8288, 8303, 0), (8400, 8432, 0), (8986, 8987, 2), (9001, 9002, 2), @@ -213,7 +210,9 @@ (12441, 12442, 0), (12443, 12543, 2), (12549, 12591, 2), - (12593, 12686, 2), + (12593, 12643, 2), + (12644, 12644, 0), + (12645, 12686, 2), (12688, 12771, 2), (12783, 12830, 2), (12832, 12871, 2), @@ -264,8 +263,9 @@ (65128, 65131, 2), (65279, 65279, 0), (65281, 65376, 2), + (65440, 65440, 0), (65504, 65510, 2), - (65529, 65531, 0), + (65520, 65531, 0), (66045, 66045, 0), (66272, 66272, 0), (66422, 66426, 0), @@ -286,9 +286,7 @@ (69747, 69748, 0), (69759, 69762, 0), (69808, 69818, 0), - (69821, 69821, 0), (69826, 69826, 0), - (69837, 69837, 0), (69888, 69890, 0), (69927, 69940, 0), (69957, 69958, 0), @@ -450,225 +448,223 @@ (129776, 129784, 2), (131072, 196605, 2), (196608, 262141, 2), - (917505, 917505, 0), - (917536, 917631, 0), - (917760, 917999, 0), + (917504, 921599, 0), ], - narrow_to_wide=frozenset( - { - "2", - "โ†ช", - "โ˜", - "๐ŸŒง", - "๐Ÿ›ข", - "โ‰", - "โ™จ", - "โœ”", - "โ˜Ž", - "โ˜ฃ", - "๐Ÿ›", - "๐Ÿ…พ", - "๐Ÿ•ต", - "๐Ÿ—ฃ", - "โ™ฃ", - "๐Ÿ—ž", - "๐Ÿ…ฑ", - "โ˜ช", - "๐Ÿ•", - "๐Ÿž", - "๐Ÿ›ฐ", + frozenset( + [ + "#", + "*", "0", - "๐Ÿ›ณ", - "๐Ÿ•ณ", - "โ™ ", + "1", + "2", + "3", + "4", "5", + "6", + "7", + "8", + "9", + "ยฉ", + "ยฎ", + "โ€ผ", + "โ‰", + "โ„ข", + "โ„น", + "โ†”", + "โ†•", + "โ†–", + "โ†—", + "โ†˜", + "โ†™", + "โ†ฉ", + "โ†ช", "โŒจ", - "๐Ÿ›‹", - "๐Ÿ—’", - "โœณ", - "๐Ÿท", - "๐ŸŒฉ", - "โšง", - "๐Ÿ", - "๐Ÿ•‰", - "โ˜ฆ", - "๐Ÿ‘", - "๐Ÿ›", - "๐Ÿ—บ", - "๐ŸŽ—", - "๐Ÿ…ฟ", - "โ™‚", - "โš›", - "๐Ÿ›ก", + "โ", + "โญ", "โฎ", - "๐Ÿณ", - "๐Ÿ—ƒ", - "๐Ÿ—", - "๐Ÿฟ", - "โ—ป", - "๐Ÿ™", - "๐Ÿ›ฅ", - "6", + "โฏ", "โฑ", - "โ›ฐ", - "๐ŸŽ", - "๐Ÿ•ฏ", - "๐Ÿต", - "๐Ÿ–", - "โœ–", - "๐Ÿ›Ž", - "โ˜‚", - "#", - "โฃ", - "โ™ป", - "๐Ÿ—„", - "3", - "โญ", - "โ˜ธ", - "โ", - "โ›ธ", - "๐Ÿ–", + "โฒ", "โธ", - "โ™ฆ", - "โ‡", - "โฏ", - "โ›น", + "โน", + "โบ", + "โ“‚", + "โ–ช", + "โ–ซ", + "โ–ถ", + "โ—€", + "โ—ป", + "โ—ผ", + "โ˜€", + "โ˜", + "โ˜‚", + "โ˜ƒ", + "โ˜„", + "โ˜Ž", + "โ˜‘", + "โ˜˜", + "โ˜", "โ˜ ", - "๐Ÿ”", - "๐Ÿ•ธ", - "โ†–", - "๐Ÿ—‘", - "๐ŸŒก", - "โœˆ", - "โš’", - "7", - "โœ", - "๐Ÿ•ฐ", - "๐ŸŒซ", + "โ˜ข", + "โ˜ฃ", + "โ˜ฆ", + "โ˜ช", "โ˜ฎ", "โ˜ฏ", - "โฒ", - "๐Ÿ–", - "โœด", - "โšฐ", - "๐Ÿฝ", - "โšฑ", - "๐Ÿœ", - "๐Ÿ—ก", - "๐Ÿ•ท", - "โ™€", - "โ„น", - "๐ŸŒจ", - "โšœ", - "โ˜„", - "โ˜‘", - "โš ", - "โœ", - "9", - "โ“‚", - "โ†ฉ", + "โ˜ธ", "โ˜น", "โ˜บ", - "4", - "โ—ผ", - "โš”", + "โ™€", + "โ™‚", "โ™Ÿ", - "โœ‰", - "โคต", - "๐ŸŽ–", - "โค", - "๐ŸŽš", - "๐Ÿ•Š", - "๐Ÿ—ฏ", - "๐Ÿ‹", - "๐Ÿ—ณ", - "โ†•", - "โ„", - "โœ‚", - "โžก", - "๐Ÿ˜", - "โ›ฑ", + "โ™ ", + "โ™ฃ", "โ™ฅ", - "๐Ÿ–‹", - "๐ŸŒฆ", - "โœ’", - "๐Ÿ“ฝ", + "โ™ฆ", + "โ™จ", + "โ™ป", + "โ™พ", + "โš’", + "โš”", + "โš•", "โš–", - "๐Ÿ–Œ", - "โ˜€", - "โ›ท", - "โ†™", - "โ€ผ", - "๐Ÿ•ด", - "โ†”", + "โš—", + "โš™", + "โš›", + "โšœ", + "โš ", + "โšง", + "โšฐ", + "โšฑ", + "โ›ˆ", "โ›", - "โคด", - "โš•", - "โน", - "๐Ÿ–ฑ", - "โฌ…", - "๐Ÿ›ค", - "๐Ÿ› ", - "๐Ÿ›ฉ", - "๐ŸŒช", - "๐Ÿ", - "โ–ช", + "โ›‘", + "โ›“", "โ›ฉ", - "๐Ÿ•ถ", - "๐Ÿ›ฃ", - "๐Ÿ–ฒ", - "๐Ÿ–ฅ", - "โš—", - "ยฉ", - "โ˜ข", - "โ†—", + "โ›ฐ", + "โ›ฑ", + "โ›ด", + "โ›ท", + "โ›ธ", + "โ›น", + "โœ‚", + "โœˆ", + "โœ‰", "โœŒ", - "โ„ข", - "๐ŸŽ›", "โœ", - "โ›‘", - "๐ŸŽ™", - "1", - "โฌ‡", - "๐Ÿ—“", - "โ›ˆ", + "โœ", + "โœ’", + "โœ”", + "โœ–", + "โœ", "โœก", - "๐Ÿ–Š", - "๐Ÿ–ผ", - "๐Ÿ›", + "โœณ", + "โœด", + "โ„", + "โ‡", + "โฃ", + "โค", + "โžก", + "โคด", + "โคต", + "โฌ…", + "โฌ†", + "โฌ‡", + "๐Ÿ…ฐ", + "๐Ÿ…ฑ", + "๐Ÿ…พ", + "๐Ÿ…ฟ", + "๐ŸŒก", + "๐ŸŒค", "๐ŸŒฅ", + "๐ŸŒฆ", + "๐ŸŒง", + "๐ŸŒจ", + "๐ŸŒฉ", + "๐ŸŒช", + "๐ŸŒซ", + "๐ŸŒฌ", "๐ŸŒถ", - "๐Ÿ—", - "๐Ÿ–จ", - "โ™พ", - "โ›ด", - "โ˜", - "8", - "โ—€", + "๐Ÿฝ", + "๐ŸŽ–", + "๐ŸŽ—", + "๐ŸŽ™", + "๐ŸŽš", + "๐ŸŽ›", + "๐ŸŽž", "๐ŸŽŸ", - "๐Ÿ•น", - "๐Ÿ—จ", - "ยฎ", - "โš™", + "๐Ÿ‹", "๐ŸŒ", - "๐Ÿ—œ", - "๐ŸŒค", - "โบ", - "โ˜˜", - "๐Ÿ…ฐ", + "๐Ÿ", + "๐ŸŽ", + "๐Ÿ”", + "๐Ÿ•", + "๐Ÿ–", + "๐Ÿ—", + "๐Ÿ˜", + "๐Ÿ™", + "๐Ÿš", + "๐Ÿ›", + "๐Ÿœ", + "๐Ÿ", + "๐Ÿž", "๐ŸŸ", - "โ–ถ", - "*", + "๐Ÿณ", + "๐Ÿต", + "๐Ÿท", + "๐Ÿฟ", + "๐Ÿ‘", + "๐Ÿ“ฝ", + "๐Ÿ•‰", + "๐Ÿ•Š", + "๐Ÿ•ฏ", + "๐Ÿ•ฐ", + "๐Ÿ•ณ", + "๐Ÿ•ด", + "๐Ÿ•ต", + "๐Ÿ•ถ", + "๐Ÿ•ท", + "๐Ÿ•ธ", + "๐Ÿ•น", "๐Ÿ–‡", - "๐ŸŒฌ", - "๐ŸŽž", + "๐Ÿ–Š", + "๐Ÿ–‹", + "๐Ÿ–Œ", + "๐Ÿ–", + "๐Ÿ–", + "๐Ÿ–ฅ", + "๐Ÿ–จ", + "๐Ÿ–ฑ", + "๐Ÿ–ฒ", + "๐Ÿ–ผ", "๐Ÿ—‚", - "โ–ซ", - "โฌ†", - "๐Ÿš", - "โ†˜", - "โ›“", - "โ˜ƒ", - } + "๐Ÿ—ƒ", + "๐Ÿ—„", + "๐Ÿ—‘", + "๐Ÿ—’", + "๐Ÿ—“", + "๐Ÿ—œ", + "๐Ÿ—", + "๐Ÿ—ž", + "๐Ÿ—ก", + "๐Ÿ—ฃ", + "๐Ÿ—จ", + "๐Ÿ—ฏ", + "๐Ÿ—ณ", + "๐Ÿ—บ", + "๐Ÿ›‹", + "๐Ÿ›", + "๐Ÿ›Ž", + "๐Ÿ›", + "๐Ÿ› ", + "๐Ÿ›ก", + "๐Ÿ›ข", + "๐Ÿ›ฃ", + "๐Ÿ›ค", + "๐Ÿ›ฅ", + "๐Ÿ›ฉ", + "๐Ÿ›ฐ", + "๐Ÿ›ณ", + ] ), ) diff --git a/rich/_unicode_data/unicode16-0-0.py b/rich/_unicode_data/unicode16-0-0.py index e7a88a3bef..b3fe2359df 100644 --- a/rich/_unicode_data/unicode16-0-0.py +++ b/rich/_unicode_data/unicode16-0-0.py @@ -4,8 +4,8 @@ from rich.cells import CellTable cell_table = CellTable( - unicode_version="16.0.0", - widths=[ + "16.0.0", + [ (0, 0, 0), (768, 879, 0), (1155, 1161, 0), @@ -14,16 +14,14 @@ (1473, 1474, 0), (1476, 1477, 0), (1479, 1479, 0), - (1536, 1541, 0), (1552, 1562, 0), (1564, 1564, 0), (1611, 1631, 0), (1648, 1648, 0), - (1750, 1757, 0), + (1750, 1756, 0), (1759, 1764, 0), (1767, 1768, 0), (1770, 1773, 0), - (1807, 1807, 0), (1809, 1809, 0), (1840, 1866, 0), (1958, 1968, 0), @@ -34,9 +32,9 @@ (2085, 2087, 0), (2089, 2093, 0), (2137, 2139, 0), - (2192, 2193, 0), (2199, 2207, 0), - (2250, 2307, 0), + (2250, 2273, 0), + (2275, 2307, 0), (2362, 2364, 0), (2366, 2383, 0), (2385, 2391, 0), @@ -163,8 +161,7 @@ (7616, 7679, 0), (8203, 8207, 0), (8232, 8238, 0), - (8288, 8292, 0), - (8294, 8303, 0), + (8288, 8303, 0), (8400, 8432, 0), (8986, 8987, 2), (9001, 9002, 2), @@ -215,7 +212,9 @@ (12441, 12442, 0), (12443, 12543, 2), (12549, 12591, 2), - (12593, 12686, 2), + (12593, 12643, 2), + (12644, 12644, 0), + (12645, 12686, 2), (12688, 12773, 2), (12783, 12830, 2), (12832, 12871, 2), @@ -265,8 +264,9 @@ (65128, 65131, 2), (65279, 65279, 0), (65281, 65376, 2), + (65440, 65440, 0), (65504, 65510, 2), - (65529, 65531, 0), + (65520, 65531, 0), (66045, 66045, 0), (66272, 66272, 0), (66422, 66426, 0), @@ -288,9 +288,7 @@ (69747, 69748, 0), (69759, 69762, 0), (69808, 69818, 0), - (69821, 69821, 0), (69826, 69826, 0), - (69837, 69837, 0), (69888, 69890, 0), (69927, 69940, 0), (69957, 69958, 0), @@ -463,225 +461,223 @@ (129776, 129784, 2), (131072, 196605, 2), (196608, 262141, 2), - (917505, 917505, 0), - (917536, 917631, 0), - (917760, 917999, 0), + (917504, 921599, 0), ], - narrow_to_wide=frozenset( - { - "2", - "โ†ช", - "โ˜", - "๐ŸŒง", - "๐Ÿ›ข", - "โ‰", - "โ™จ", - "โœ”", - "โ˜Ž", - "โ˜ฃ", - "๐Ÿ›", - "๐Ÿ…พ", - "๐Ÿ•ต", - "๐Ÿ—ฃ", - "โ™ฃ", - "๐Ÿ—ž", - "๐Ÿ…ฑ", - "โ˜ช", - "๐Ÿ•", - "๐Ÿž", - "๐Ÿ›ฐ", + frozenset( + [ + "#", + "*", "0", - "๐Ÿ›ณ", - "๐Ÿ•ณ", - "โ™ ", + "1", + "2", + "3", + "4", "5", + "6", + "7", + "8", + "9", + "ยฉ", + "ยฎ", + "โ€ผ", + "โ‰", + "โ„ข", + "โ„น", + "โ†”", + "โ†•", + "โ†–", + "โ†—", + "โ†˜", + "โ†™", + "โ†ฉ", + "โ†ช", "โŒจ", - "๐Ÿ›‹", - "๐Ÿ—’", - "โœณ", - "๐Ÿท", - "๐ŸŒฉ", - "โšง", - "๐Ÿ", - "๐Ÿ•‰", - "โ˜ฆ", - "๐Ÿ‘", - "๐Ÿ›", - "๐Ÿ—บ", - "๐ŸŽ—", - "๐Ÿ…ฟ", - "โ™‚", - "โš›", - "๐Ÿ›ก", + "โ", + "โญ", "โฎ", - "๐Ÿณ", - "๐Ÿ—ƒ", - "๐Ÿ—", - "๐Ÿฟ", - "โ—ป", - "๐Ÿ™", - "๐Ÿ›ฅ", - "6", + "โฏ", "โฑ", - "โ›ฐ", - "๐ŸŽ", - "๐Ÿ•ฏ", - "๐Ÿต", - "๐Ÿ–", - "โœ–", - "๐Ÿ›Ž", - "โ˜‚", - "#", - "โฃ", - "โ™ป", - "๐Ÿ—„", - "3", - "โญ", - "โ˜ธ", - "โ", - "โ›ธ", - "๐Ÿ–", + "โฒ", "โธ", - "โ™ฆ", - "โ‡", - "โฏ", - "โ›น", + "โน", + "โบ", + "โ“‚", + "โ–ช", + "โ–ซ", + "โ–ถ", + "โ—€", + "โ—ป", + "โ—ผ", + "โ˜€", + "โ˜", + "โ˜‚", + "โ˜ƒ", + "โ˜„", + "โ˜Ž", + "โ˜‘", + "โ˜˜", + "โ˜", "โ˜ ", - "๐Ÿ”", - "๐Ÿ•ธ", - "โ†–", - "๐Ÿ—‘", - "๐ŸŒก", - "โœˆ", - "โš’", - "7", - "โœ", - "๐Ÿ•ฐ", - "๐ŸŒซ", + "โ˜ข", + "โ˜ฃ", + "โ˜ฆ", + "โ˜ช", "โ˜ฎ", "โ˜ฏ", - "โฒ", - "๐Ÿ–", - "โœด", - "โšฐ", - "๐Ÿฝ", - "โšฑ", - "๐Ÿœ", - "๐Ÿ—ก", - "๐Ÿ•ท", - "โ™€", - "โ„น", - "๐ŸŒจ", - "โšœ", - "โ˜„", - "โ˜‘", - "โš ", - "โœ", - "9", - "โ“‚", - "โ†ฉ", + "โ˜ธ", "โ˜น", "โ˜บ", - "4", - "โ—ผ", - "โš”", + "โ™€", + "โ™‚", "โ™Ÿ", - "โœ‰", - "โคต", - "๐ŸŽ–", - "โค", - "๐ŸŽš", - "๐Ÿ•Š", - "๐Ÿ—ฏ", - "๐Ÿ‹", - "๐Ÿ—ณ", - "โ†•", - "โ„", - "โœ‚", - "โžก", - "๐Ÿ˜", - "โ›ฑ", + "โ™ ", + "โ™ฃ", "โ™ฅ", - "๐Ÿ–‹", - "๐ŸŒฆ", - "โœ’", - "๐Ÿ“ฝ", + "โ™ฆ", + "โ™จ", + "โ™ป", + "โ™พ", + "โš’", + "โš”", + "โš•", "โš–", - "๐Ÿ–Œ", - "โ˜€", - "โ›ท", - "โ†™", - "โ€ผ", - "๐Ÿ•ด", - "โ†”", + "โš—", + "โš™", + "โš›", + "โšœ", + "โš ", + "โšง", + "โšฐ", + "โšฑ", + "โ›ˆ", "โ›", - "โคด", - "โš•", - "โน", - "๐Ÿ–ฑ", - "โฌ…", - "๐Ÿ›ค", - "๐Ÿ› ", - "๐Ÿ›ฉ", - "๐ŸŒช", - "๐Ÿ", - "โ–ช", + "โ›‘", + "โ›“", "โ›ฉ", - "๐Ÿ•ถ", - "๐Ÿ›ฃ", - "๐Ÿ–ฒ", - "๐Ÿ–ฅ", - "โš—", - "ยฉ", - "โ˜ข", - "โ†—", + "โ›ฐ", + "โ›ฑ", + "โ›ด", + "โ›ท", + "โ›ธ", + "โ›น", + "โœ‚", + "โœˆ", + "โœ‰", "โœŒ", - "โ„ข", - "๐ŸŽ›", "โœ", - "โ›‘", - "๐ŸŽ™", - "1", - "โฌ‡", - "๐Ÿ—“", - "โ›ˆ", + "โœ", + "โœ’", + "โœ”", + "โœ–", + "โœ", "โœก", - "๐Ÿ–Š", - "๐Ÿ–ผ", - "๐Ÿ›", + "โœณ", + "โœด", + "โ„", + "โ‡", + "โฃ", + "โค", + "โžก", + "โคด", + "โคต", + "โฌ…", + "โฌ†", + "โฌ‡", + "๐Ÿ…ฐ", + "๐Ÿ…ฑ", + "๐Ÿ…พ", + "๐Ÿ…ฟ", + "๐ŸŒก", + "๐ŸŒค", "๐ŸŒฅ", + "๐ŸŒฆ", + "๐ŸŒง", + "๐ŸŒจ", + "๐ŸŒฉ", + "๐ŸŒช", + "๐ŸŒซ", + "๐ŸŒฌ", "๐ŸŒถ", - "๐Ÿ—", - "๐Ÿ–จ", - "โ™พ", - "โ›ด", - "โ˜", - "8", - "โ—€", + "๐Ÿฝ", + "๐ŸŽ–", + "๐ŸŽ—", + "๐ŸŽ™", + "๐ŸŽš", + "๐ŸŽ›", + "๐ŸŽž", "๐ŸŽŸ", - "๐Ÿ•น", - "๐Ÿ—จ", - "ยฎ", - "โš™", + "๐Ÿ‹", "๐ŸŒ", - "๐Ÿ—œ", - "๐ŸŒค", - "โบ", - "โ˜˜", - "๐Ÿ…ฐ", + "๐Ÿ", + "๐ŸŽ", + "๐Ÿ”", + "๐Ÿ•", + "๐Ÿ–", + "๐Ÿ—", + "๐Ÿ˜", + "๐Ÿ™", + "๐Ÿš", + "๐Ÿ›", + "๐Ÿœ", + "๐Ÿ", + "๐Ÿž", "๐ŸŸ", - "โ–ถ", - "*", + "๐Ÿณ", + "๐Ÿต", + "๐Ÿท", + "๐Ÿฟ", + "๐Ÿ‘", + "๐Ÿ“ฝ", + "๐Ÿ•‰", + "๐Ÿ•Š", + "๐Ÿ•ฏ", + "๐Ÿ•ฐ", + "๐Ÿ•ณ", + "๐Ÿ•ด", + "๐Ÿ•ต", + "๐Ÿ•ถ", + "๐Ÿ•ท", + "๐Ÿ•ธ", + "๐Ÿ•น", "๐Ÿ–‡", - "๐ŸŒฌ", - "๐ŸŽž", + "๐Ÿ–Š", + "๐Ÿ–‹", + "๐Ÿ–Œ", + "๐Ÿ–", + "๐Ÿ–", + "๐Ÿ–ฅ", + "๐Ÿ–จ", + "๐Ÿ–ฑ", + "๐Ÿ–ฒ", + "๐Ÿ–ผ", "๐Ÿ—‚", - "โ–ซ", - "โฌ†", - "๐Ÿš", - "โ†˜", - "โ›“", - "โ˜ƒ", - } + "๐Ÿ—ƒ", + "๐Ÿ—„", + "๐Ÿ—‘", + "๐Ÿ—’", + "๐Ÿ—“", + "๐Ÿ—œ", + "๐Ÿ—", + "๐Ÿ—ž", + "๐Ÿ—ก", + "๐Ÿ—ฃ", + "๐Ÿ—จ", + "๐Ÿ—ฏ", + "๐Ÿ—ณ", + "๐Ÿ—บ", + "๐Ÿ›‹", + "๐Ÿ›", + "๐Ÿ›Ž", + "๐Ÿ›", + "๐Ÿ› ", + "๐Ÿ›ก", + "๐Ÿ›ข", + "๐Ÿ›ฃ", + "๐Ÿ›ค", + "๐Ÿ›ฅ", + "๐Ÿ›ฉ", + "๐Ÿ›ฐ", + "๐Ÿ›ณ", + ] ), ) diff --git a/rich/_unicode_data/unicode17-0-0.py b/rich/_unicode_data/unicode17-0-0.py index e394008360..4108bb44de 100644 --- a/rich/_unicode_data/unicode17-0-0.py +++ b/rich/_unicode_data/unicode17-0-0.py @@ -4,8 +4,8 @@ from rich.cells import CellTable cell_table = CellTable( - unicode_version="17.0.0", - widths=[ + "17.0.0", + [ (0, 0, 0), (768, 879, 0), (1155, 1161, 0), @@ -14,16 +14,14 @@ (1473, 1474, 0), (1476, 1477, 0), (1479, 1479, 0), - (1536, 1541, 0), (1552, 1562, 0), (1564, 1564, 0), (1611, 1631, 0), (1648, 1648, 0), - (1750, 1757, 0), + (1750, 1756, 0), (1759, 1764, 0), (1767, 1768, 0), (1770, 1773, 0), - (1807, 1807, 0), (1809, 1809, 0), (1840, 1866, 0), (1958, 1968, 0), @@ -34,9 +32,9 @@ (2085, 2087, 0), (2089, 2093, 0), (2137, 2139, 0), - (2192, 2193, 0), (2199, 2207, 0), - (2250, 2307, 0), + (2250, 2273, 0), + (2275, 2307, 0), (2362, 2364, 0), (2366, 2383, 0), (2385, 2391, 0), @@ -164,8 +162,7 @@ (7616, 7679, 0), (8203, 8207, 0), (8232, 8238, 0), - (8288, 8292, 0), - (8294, 8303, 0), + (8288, 8303, 0), (8400, 8432, 0), (8986, 8987, 2), (9001, 9002, 2), @@ -216,7 +213,9 @@ (12441, 12442, 0), (12443, 12543, 2), (12549, 12591, 2), - (12593, 12686, 2), + (12593, 12643, 2), + (12644, 12644, 0), + (12645, 12686, 2), (12688, 12773, 2), (12783, 12830, 2), (12832, 12871, 2), @@ -266,8 +265,9 @@ (65128, 65131, 2), (65279, 65279, 0), (65281, 65376, 2), + (65440, 65440, 0), (65504, 65510, 2), - (65529, 65531, 0), + (65520, 65531, 0), (66045, 66045, 0), (66272, 66272, 0), (66422, 66426, 0), @@ -289,9 +289,7 @@ (69747, 69748, 0), (69759, 69762, 0), (69808, 69818, 0), - (69821, 69821, 0), (69826, 69826, 0), - (69837, 69837, 0), (69888, 69890, 0), (69927, 69940, 0), (69957, 69958, 0), @@ -471,225 +469,223 @@ (129775, 129784, 2), (131072, 196605, 2), (196608, 262141, 2), - (917505, 917505, 0), - (917536, 917631, 0), - (917760, 917999, 0), + (917504, 921599, 0), ], - narrow_to_wide=frozenset( - { - "2", - "โ†ช", - "โ˜", - "๐ŸŒง", - "๐Ÿ›ข", - "โ‰", - "โ™จ", - "โœ”", - "โ˜Ž", - "โ˜ฃ", - "๐Ÿ›", - "๐Ÿ…พ", - "๐Ÿ•ต", - "๐Ÿ—ฃ", - "โ™ฃ", - "๐Ÿ—ž", - "๐Ÿ…ฑ", - "โ˜ช", - "๐Ÿ•", - "๐Ÿž", - "๐Ÿ›ฐ", + frozenset( + [ + "#", + "*", "0", - "๐Ÿ›ณ", - "๐Ÿ•ณ", - "โ™ ", + "1", + "2", + "3", + "4", "5", + "6", + "7", + "8", + "9", + "ยฉ", + "ยฎ", + "โ€ผ", + "โ‰", + "โ„ข", + "โ„น", + "โ†”", + "โ†•", + "โ†–", + "โ†—", + "โ†˜", + "โ†™", + "โ†ฉ", + "โ†ช", "โŒจ", - "๐Ÿ›‹", - "๐Ÿ—’", - "โœณ", - "๐Ÿท", - "๐ŸŒฉ", - "โšง", - "๐Ÿ", - "๐Ÿ•‰", - "โ˜ฆ", - "๐Ÿ‘", - "๐Ÿ›", - "๐Ÿ—บ", - "๐ŸŽ—", - "๐Ÿ…ฟ", - "โ™‚", - "โš›", - "๐Ÿ›ก", + "โ", + "โญ", "โฎ", - "๐Ÿณ", - "๐Ÿ—ƒ", - "๐Ÿ—", - "๐Ÿฟ", - "โ—ป", - "๐Ÿ™", - "๐Ÿ›ฅ", - "6", + "โฏ", "โฑ", - "โ›ฐ", - "๐ŸŽ", - "๐Ÿ•ฏ", - "๐Ÿต", - "๐Ÿ–", - "โœ–", - "๐Ÿ›Ž", - "โ˜‚", - "#", - "โฃ", - "โ™ป", - "๐Ÿ—„", - "3", - "โญ", - "โ˜ธ", - "โ", - "โ›ธ", - "๐Ÿ–", + "โฒ", "โธ", - "โ™ฆ", - "โ‡", - "โฏ", - "โ›น", + "โน", + "โบ", + "โ“‚", + "โ–ช", + "โ–ซ", + "โ–ถ", + "โ—€", + "โ—ป", + "โ—ผ", + "โ˜€", + "โ˜", + "โ˜‚", + "โ˜ƒ", + "โ˜„", + "โ˜Ž", + "โ˜‘", + "โ˜˜", + "โ˜", "โ˜ ", - "๐Ÿ”", - "๐Ÿ•ธ", - "โ†–", - "๐Ÿ—‘", - "๐ŸŒก", - "โœˆ", - "โš’", - "7", - "โœ", - "๐Ÿ•ฐ", - "๐ŸŒซ", + "โ˜ข", + "โ˜ฃ", + "โ˜ฆ", + "โ˜ช", "โ˜ฎ", "โ˜ฏ", - "โฒ", - "๐Ÿ–", - "โœด", - "โšฐ", - "๐Ÿฝ", - "โšฑ", - "๐Ÿœ", - "๐Ÿ—ก", - "๐Ÿ•ท", - "โ™€", - "โ„น", - "๐ŸŒจ", - "โšœ", - "โ˜„", - "โ˜‘", - "โš ", - "โœ", - "9", - "โ“‚", - "โ†ฉ", + "โ˜ธ", "โ˜น", "โ˜บ", - "4", - "โ—ผ", - "โš”", + "โ™€", + "โ™‚", "โ™Ÿ", - "โœ‰", - "โคต", - "๐ŸŽ–", - "โค", - "๐ŸŽš", - "๐Ÿ•Š", - "๐Ÿ—ฏ", - "๐Ÿ‹", - "๐Ÿ—ณ", - "โ†•", - "โ„", - "โœ‚", - "โžก", - "๐Ÿ˜", - "โ›ฑ", + "โ™ ", + "โ™ฃ", "โ™ฅ", - "๐Ÿ–‹", - "๐ŸŒฆ", - "โœ’", - "๐Ÿ“ฝ", + "โ™ฆ", + "โ™จ", + "โ™ป", + "โ™พ", + "โš’", + "โš”", + "โš•", "โš–", - "๐Ÿ–Œ", - "โ˜€", - "โ›ท", - "โ†™", - "โ€ผ", - "๐Ÿ•ด", - "โ†”", + "โš—", + "โš™", + "โš›", + "โšœ", + "โš ", + "โšง", + "โšฐ", + "โšฑ", + "โ›ˆ", "โ›", - "โคด", - "โš•", - "โน", - "๐Ÿ–ฑ", - "โฌ…", - "๐Ÿ›ค", - "๐Ÿ› ", - "๐Ÿ›ฉ", - "๐ŸŒช", - "๐Ÿ", - "โ–ช", + "โ›‘", + "โ›“", "โ›ฉ", - "๐Ÿ•ถ", - "๐Ÿ›ฃ", - "๐Ÿ–ฒ", - "๐Ÿ–ฅ", - "โš—", - "ยฉ", - "โ˜ข", - "โ†—", + "โ›ฐ", + "โ›ฑ", + "โ›ด", + "โ›ท", + "โ›ธ", + "โ›น", + "โœ‚", + "โœˆ", + "โœ‰", "โœŒ", - "โ„ข", - "๐ŸŽ›", "โœ", - "โ›‘", - "๐ŸŽ™", - "1", - "โฌ‡", - "๐Ÿ—“", - "โ›ˆ", + "โœ", + "โœ’", + "โœ”", + "โœ–", + "โœ", "โœก", - "๐Ÿ–Š", - "๐Ÿ–ผ", - "๐Ÿ›", + "โœณ", + "โœด", + "โ„", + "โ‡", + "โฃ", + "โค", + "โžก", + "โคด", + "โคต", + "โฌ…", + "โฌ†", + "โฌ‡", + "๐Ÿ…ฐ", + "๐Ÿ…ฑ", + "๐Ÿ…พ", + "๐Ÿ…ฟ", + "๐ŸŒก", + "๐ŸŒค", "๐ŸŒฅ", + "๐ŸŒฆ", + "๐ŸŒง", + "๐ŸŒจ", + "๐ŸŒฉ", + "๐ŸŒช", + "๐ŸŒซ", + "๐ŸŒฌ", "๐ŸŒถ", - "๐Ÿ—", - "๐Ÿ–จ", - "โ™พ", - "โ›ด", - "โ˜", - "8", - "โ—€", + "๐Ÿฝ", + "๐ŸŽ–", + "๐ŸŽ—", + "๐ŸŽ™", + "๐ŸŽš", + "๐ŸŽ›", + "๐ŸŽž", "๐ŸŽŸ", - "๐Ÿ•น", - "๐Ÿ—จ", - "ยฎ", - "โš™", + "๐Ÿ‹", "๐ŸŒ", - "๐Ÿ—œ", - "๐ŸŒค", - "โบ", - "โ˜˜", - "๐Ÿ…ฐ", + "๐Ÿ", + "๐ŸŽ", + "๐Ÿ”", + "๐Ÿ•", + "๐Ÿ–", + "๐Ÿ—", + "๐Ÿ˜", + "๐Ÿ™", + "๐Ÿš", + "๐Ÿ›", + "๐Ÿœ", + "๐Ÿ", + "๐Ÿž", "๐ŸŸ", - "โ–ถ", - "*", + "๐Ÿณ", + "๐Ÿต", + "๐Ÿท", + "๐Ÿฟ", + "๐Ÿ‘", + "๐Ÿ“ฝ", + "๐Ÿ•‰", + "๐Ÿ•Š", + "๐Ÿ•ฏ", + "๐Ÿ•ฐ", + "๐Ÿ•ณ", + "๐Ÿ•ด", + "๐Ÿ•ต", + "๐Ÿ•ถ", + "๐Ÿ•ท", + "๐Ÿ•ธ", + "๐Ÿ•น", "๐Ÿ–‡", - "๐ŸŒฌ", - "๐ŸŽž", + "๐Ÿ–Š", + "๐Ÿ–‹", + "๐Ÿ–Œ", + "๐Ÿ–", + "๐Ÿ–", + "๐Ÿ–ฅ", + "๐Ÿ–จ", + "๐Ÿ–ฑ", + "๐Ÿ–ฒ", + "๐Ÿ–ผ", "๐Ÿ—‚", - "โ–ซ", - "โฌ†", - "๐Ÿš", - "โ†˜", - "โ›“", - "โ˜ƒ", - } + "๐Ÿ—ƒ", + "๐Ÿ—„", + "๐Ÿ—‘", + "๐Ÿ—’", + "๐Ÿ—“", + "๐Ÿ—œ", + "๐Ÿ—", + "๐Ÿ—ž", + "๐Ÿ—ก", + "๐Ÿ—ฃ", + "๐Ÿ—จ", + "๐Ÿ—ฏ", + "๐Ÿ—ณ", + "๐Ÿ—บ", + "๐Ÿ›‹", + "๐Ÿ›", + "๐Ÿ›Ž", + "๐Ÿ›", + "๐Ÿ› ", + "๐Ÿ›ก", + "๐Ÿ›ข", + "๐Ÿ›ฃ", + "๐Ÿ›ค", + "๐Ÿ›ฅ", + "๐Ÿ›ฉ", + "๐Ÿ›ฐ", + "๐Ÿ›ณ", + ] ), ) diff --git a/rich/_unicode_data/unicode4-1-0.py b/rich/_unicode_data/unicode4-1-0.py index 06612e1eea..23ff5cf1d0 100644 --- a/rich/_unicode_data/unicode4-1-0.py +++ b/rich/_unicode_data/unicode4-1-0.py @@ -4,9 +4,12 @@ from rich.cells import CellTable cell_table = CellTable( - unicode_version="4.1.0", - widths=[ - (0, 0, 0), + "4.1.0", + [ + (0, 8, 0), + (14, 31, 0), + (127, 132, 0), + (134, 159, 0), (768, 879, 0), (1155, 1158, 0), (1160, 1161, 0), @@ -124,8 +127,7 @@ (7616, 7619, 0), (8203, 8207, 0), (8232, 8238, 0), - (8288, 8291, 0), - (8298, 8303, 0), + (8288, 8303, 0), (8400, 8427, 0), (9001, 9002, 2), (11904, 11929, 2), @@ -139,7 +141,9 @@ (12441, 12442, 0), (12443, 12543, 2), (12549, 12588, 2), - (12593, 12686, 2), + (12593, 12643, 2), + (12644, 12644, 0), + (12645, 12686, 2), (12688, 12727, 2), (12736, 12751, 2), (12784, 12830, 2), @@ -154,11 +158,12 @@ (43019, 43019, 0), (43043, 43047, 0), (44032, 55203, 2), - (55216, 55295, 0), + (55216, 57343, 0), (63744, 64045, 2), (64048, 64106, 2), (64112, 64217, 2), (64286, 64286, 0), + (64976, 65007, 0), (65024, 65039, 0), (65040, 65049, 2), (65056, 65059, 0), @@ -167,8 +172,10 @@ (65128, 65131, 2), (65279, 65279, 0), (65281, 65376, 2), + (65440, 65440, 0), (65504, 65510, 2), - (65529, 65531, 0), + (65520, 65531, 0), + (65534, 65535, 0), (68097, 68099, 0), (68101, 68102, 0), (68108, 68111, 0), @@ -179,227 +186,240 @@ (119173, 119179, 0), (119210, 119213, 0), (119362, 119364, 0), + (131070, 131071, 0), (131072, 196605, 2), + (196606, 196607, 0), (196608, 262141, 2), - (917505, 917505, 0), - (917536, 917631, 0), - (917760, 917999, 0), + (262142, 262143, 0), + (327678, 327679, 0), + (393214, 393215, 0), + (458750, 458751, 0), + (524286, 524287, 0), + (589822, 589823, 0), + (655358, 655359, 0), + (720894, 720895, 0), + (786430, 786431, 0), + (851966, 851967, 0), + (917502, 921599, 0), + (983038, 983039, 0), + (1048574, 1048575, 0), + (1114110, 1114111, 0), ], - narrow_to_wide=frozenset( - { - "2", - "โ†ช", - "โ˜", - "๐ŸŒง", - "๐Ÿ›ข", - "โ‰", - "โ™จ", - "โœ”", - "โ˜Ž", - "โ˜ฃ", - "๐Ÿ›", - "๐Ÿ…พ", - "๐Ÿ•ต", - "๐Ÿ—ฃ", - "โ™ฃ", - "๐Ÿ—ž", - "๐Ÿ…ฑ", - "โ˜ช", - "๐Ÿ•", - "๐Ÿž", - "๐Ÿ›ฐ", + frozenset( + [ + "#", + "*", "0", - "๐Ÿ›ณ", - "๐Ÿ•ณ", - "โ™ ", + "1", + "2", + "3", + "4", "5", + "6", + "7", + "8", + "9", + "ยฉ", + "ยฎ", + "โ€ผ", + "โ‰", + "โ„ข", + "โ„น", + "โ†”", + "โ†•", + "โ†–", + "โ†—", + "โ†˜", + "โ†™", + "โ†ฉ", + "โ†ช", "โŒจ", - "๐Ÿ›‹", - "๐Ÿ—’", - "โœณ", - "๐Ÿท", - "๐ŸŒฉ", - "โšง", - "๐Ÿ", - "๐Ÿ•‰", - "โ˜ฆ", - "๐Ÿ‘", - "๐Ÿ›", - "๐Ÿ—บ", - "๐ŸŽ—", - "๐Ÿ…ฟ", - "โ™‚", - "โš›", - "๐Ÿ›ก", + "โ", + "โญ", "โฎ", - "๐Ÿณ", - "๐Ÿ—ƒ", - "๐Ÿ—", - "๐Ÿฟ", - "โ—ป", - "๐Ÿ™", - "๐Ÿ›ฅ", - "6", + "โฏ", "โฑ", - "โ›ฐ", - "๐ŸŽ", - "๐Ÿ•ฏ", - "๐Ÿต", - "๐Ÿ–", - "โœ–", - "๐Ÿ›Ž", - "โ˜‚", - "#", - "โฃ", - "โ™ป", - "๐Ÿ—„", - "3", - "โญ", - "โ˜ธ", - "โ", - "โ›ธ", - "๐Ÿ–", + "โฒ", "โธ", - "โ™ฆ", - "โ‡", - "โฏ", - "โ›น", + "โน", + "โบ", + "โ“‚", + "โ–ช", + "โ–ซ", + "โ–ถ", + "โ—€", + "โ—ป", + "โ—ผ", + "โ˜€", + "โ˜", + "โ˜‚", + "โ˜ƒ", + "โ˜„", + "โ˜Ž", + "โ˜‘", + "โ˜˜", + "โ˜", "โ˜ ", - "๐Ÿ”", - "๐Ÿ•ธ", - "โ†–", - "๐Ÿ—‘", - "๐ŸŒก", - "โœˆ", - "โš’", - "7", - "โœ", - "๐Ÿ•ฐ", - "๐ŸŒซ", + "โ˜ข", + "โ˜ฃ", + "โ˜ฆ", + "โ˜ช", "โ˜ฎ", "โ˜ฏ", - "โฒ", - "๐Ÿ–", - "โœด", - "โšฐ", - "๐Ÿฝ", - "โšฑ", - "๐Ÿœ", - "๐Ÿ—ก", - "๐Ÿ•ท", - "โ™€", - "โ„น", - "๐ŸŒจ", - "โšœ", - "โ˜„", - "โ˜‘", - "โš ", - "โœ", - "9", - "โ“‚", - "โ†ฉ", + "โ˜ธ", "โ˜น", "โ˜บ", - "4", - "โ—ผ", - "โš”", + "โ™€", + "โ™‚", "โ™Ÿ", - "โœ‰", - "โคต", - "๐ŸŽ–", - "โค", - "๐ŸŽš", - "๐Ÿ•Š", - "๐Ÿ—ฏ", - "๐Ÿ‹", - "๐Ÿ—ณ", - "โ†•", - "โ„", - "โœ‚", - "โžก", - "๐Ÿ˜", - "โ›ฑ", + "โ™ ", + "โ™ฃ", "โ™ฅ", - "๐Ÿ–‹", - "๐ŸŒฆ", - "โœ’", - "๐Ÿ“ฝ", + "โ™ฆ", + "โ™จ", + "โ™ป", + "โ™พ", + "โš’", + "โš”", + "โš•", "โš–", - "๐Ÿ–Œ", - "โ˜€", - "โ›ท", - "โ†™", - "โ€ผ", - "๐Ÿ•ด", - "โ†”", + "โš—", + "โš™", + "โš›", + "โšœ", + "โš ", + "โšง", + "โšฐ", + "โšฑ", + "โ›ˆ", "โ›", - "โคด", - "โš•", - "โน", - "๐Ÿ–ฑ", - "โฌ…", - "๐Ÿ›ค", - "๐Ÿ› ", - "๐Ÿ›ฉ", - "๐ŸŒช", - "๐Ÿ", - "โ–ช", + "โ›‘", + "โ›“", "โ›ฉ", - "๐Ÿ•ถ", - "๐Ÿ›ฃ", - "๐Ÿ–ฒ", - "๐Ÿ–ฅ", - "โš—", - "ยฉ", - "โ˜ข", - "โ†—", + "โ›ฐ", + "โ›ฑ", + "โ›ด", + "โ›ท", + "โ›ธ", + "โ›น", + "โœ‚", + "โœˆ", + "โœ‰", "โœŒ", - "โ„ข", - "๐ŸŽ›", "โœ", - "โ›‘", - "๐ŸŽ™", - "1", - "โฌ‡", - "๐Ÿ—“", - "โ›ˆ", + "โœ", + "โœ’", + "โœ”", + "โœ–", + "โœ", "โœก", - "๐Ÿ–Š", - "๐Ÿ–ผ", - "๐Ÿ›", + "โœณ", + "โœด", + "โ„", + "โ‡", + "โฃ", + "โค", + "โžก", + "โคด", + "โคต", + "โฌ…", + "โฌ†", + "โฌ‡", + "๐Ÿ…ฐ", + "๐Ÿ…ฑ", + "๐Ÿ…พ", + "๐Ÿ…ฟ", + "๐ŸŒก", + "๐ŸŒค", "๐ŸŒฅ", + "๐ŸŒฆ", + "๐ŸŒง", + "๐ŸŒจ", + "๐ŸŒฉ", + "๐ŸŒช", + "๐ŸŒซ", + "๐ŸŒฌ", "๐ŸŒถ", - "๐Ÿ—", - "๐Ÿ–จ", - "โ™พ", - "โ›ด", - "โ˜", - "8", - "โ—€", + "๐Ÿฝ", + "๐ŸŽ–", + "๐ŸŽ—", + "๐ŸŽ™", + "๐ŸŽš", + "๐ŸŽ›", + "๐ŸŽž", "๐ŸŽŸ", - "๐Ÿ•น", - "๐Ÿ—จ", - "ยฎ", - "โš™", + "๐Ÿ‹", "๐ŸŒ", - "๐Ÿ—œ", - "๐ŸŒค", - "โบ", - "โ˜˜", - "๐Ÿ…ฐ", + "๐Ÿ", + "๐ŸŽ", + "๐Ÿ”", + "๐Ÿ•", + "๐Ÿ–", + "๐Ÿ—", + "๐Ÿ˜", + "๐Ÿ™", + "๐Ÿš", + "๐Ÿ›", + "๐Ÿœ", + "๐Ÿ", + "๐Ÿž", "๐ŸŸ", - "โ–ถ", - "*", + "๐Ÿณ", + "๐Ÿต", + "๐Ÿท", + "๐Ÿฟ", + "๐Ÿ‘", + "๐Ÿ“ฝ", + "๐Ÿ•‰", + "๐Ÿ•Š", + "๐Ÿ•ฏ", + "๐Ÿ•ฐ", + "๐Ÿ•ณ", + "๐Ÿ•ด", + "๐Ÿ•ต", + "๐Ÿ•ถ", + "๐Ÿ•ท", + "๐Ÿ•ธ", + "๐Ÿ•น", "๐Ÿ–‡", - "๐ŸŒฌ", - "๐ŸŽž", + "๐Ÿ–Š", + "๐Ÿ–‹", + "๐Ÿ–Œ", + "๐Ÿ–", + "๐Ÿ–", + "๐Ÿ–ฅ", + "๐Ÿ–จ", + "๐Ÿ–ฑ", + "๐Ÿ–ฒ", + "๐Ÿ–ผ", "๐Ÿ—‚", - "โ–ซ", - "โฌ†", - "๐Ÿš", - "โ†˜", - "โ›“", - "โ˜ƒ", - } + "๐Ÿ—ƒ", + "๐Ÿ—„", + "๐Ÿ—‘", + "๐Ÿ—’", + "๐Ÿ—“", + "๐Ÿ—œ", + "๐Ÿ—", + "๐Ÿ—ž", + "๐Ÿ—ก", + "๐Ÿ—ฃ", + "๐Ÿ—จ", + "๐Ÿ—ฏ", + "๐Ÿ—ณ", + "๐Ÿ—บ", + "๐Ÿ›‹", + "๐Ÿ›", + "๐Ÿ›Ž", + "๐Ÿ›", + "๐Ÿ› ", + "๐Ÿ›ก", + "๐Ÿ›ข", + "๐Ÿ›ฃ", + "๐Ÿ›ค", + "๐Ÿ›ฅ", + "๐Ÿ›ฉ", + "๐Ÿ›ฐ", + "๐Ÿ›ณ", + ] ), ) diff --git a/rich/_unicode_data/unicode5-0-0.py b/rich/_unicode_data/unicode5-0-0.py index 1de377de9f..599fb78570 100644 --- a/rich/_unicode_data/unicode5-0-0.py +++ b/rich/_unicode_data/unicode5-0-0.py @@ -4,9 +4,12 @@ from rich.cells import CellTable cell_table = CellTable( - unicode_version="5.0.0", - widths=[ - (0, 0, 0), + "5.0.0", + [ + (0, 8, 0), + (14, 31, 0), + (127, 132, 0), + (134, 159, 0), (768, 879, 0), (1155, 1158, 0), (1160, 1161, 0), @@ -129,8 +132,7 @@ (7678, 7679, 0), (8203, 8207, 0), (8232, 8238, 0), - (8288, 8291, 0), - (8298, 8303, 0), + (8288, 8303, 0), (8400, 8431, 0), (9001, 9002, 2), (11904, 11929, 2), @@ -144,7 +146,9 @@ (12441, 12442, 0), (12443, 12543, 2), (12549, 12588, 2), - (12593, 12686, 2), + (12593, 12643, 2), + (12644, 12644, 0), + (12645, 12686, 2), (12688, 12727, 2), (12736, 12751, 2), (12784, 12830, 2), @@ -159,11 +163,12 @@ (43019, 43019, 0), (43043, 43047, 0), (44032, 55203, 2), - (55216, 55295, 0), + (55216, 57343, 0), (63744, 64045, 2), (64048, 64106, 2), (64112, 64217, 2), (64286, 64286, 0), + (64976, 65007, 0), (65024, 65039, 0), (65040, 65049, 2), (65056, 65059, 0), @@ -172,8 +177,10 @@ (65128, 65131, 2), (65279, 65279, 0), (65281, 65376, 2), + (65440, 65440, 0), (65504, 65510, 2), - (65529, 65531, 0), + (65520, 65531, 0), + (65534, 65535, 0), (68097, 68099, 0), (68101, 68102, 0), (68108, 68111, 0), @@ -184,227 +191,240 @@ (119173, 119179, 0), (119210, 119213, 0), (119362, 119364, 0), + (131070, 131071, 0), (131072, 196605, 2), + (196606, 196607, 0), (196608, 262141, 2), - (917505, 917505, 0), - (917536, 917631, 0), - (917760, 917999, 0), + (262142, 262143, 0), + (327678, 327679, 0), + (393214, 393215, 0), + (458750, 458751, 0), + (524286, 524287, 0), + (589822, 589823, 0), + (655358, 655359, 0), + (720894, 720895, 0), + (786430, 786431, 0), + (851966, 851967, 0), + (917502, 921599, 0), + (983038, 983039, 0), + (1048574, 1048575, 0), + (1114110, 1114111, 0), ], - narrow_to_wide=frozenset( - { - "2", - "โ†ช", - "โ˜", - "๐ŸŒง", - "๐Ÿ›ข", - "โ‰", - "โ™จ", - "โœ”", - "โ˜Ž", - "โ˜ฃ", - "๐Ÿ›", - "๐Ÿ…พ", - "๐Ÿ•ต", - "๐Ÿ—ฃ", - "โ™ฃ", - "๐Ÿ—ž", - "๐Ÿ…ฑ", - "โ˜ช", - "๐Ÿ•", - "๐Ÿž", - "๐Ÿ›ฐ", + frozenset( + [ + "#", + "*", "0", - "๐Ÿ›ณ", - "๐Ÿ•ณ", - "โ™ ", + "1", + "2", + "3", + "4", "5", + "6", + "7", + "8", + "9", + "ยฉ", + "ยฎ", + "โ€ผ", + "โ‰", + "โ„ข", + "โ„น", + "โ†”", + "โ†•", + "โ†–", + "โ†—", + "โ†˜", + "โ†™", + "โ†ฉ", + "โ†ช", "โŒจ", - "๐Ÿ›‹", - "๐Ÿ—’", - "โœณ", - "๐Ÿท", - "๐ŸŒฉ", - "โšง", - "๐Ÿ", - "๐Ÿ•‰", - "โ˜ฆ", - "๐Ÿ‘", - "๐Ÿ›", - "๐Ÿ—บ", - "๐ŸŽ—", - "๐Ÿ…ฟ", - "โ™‚", - "โš›", - "๐Ÿ›ก", + "โ", + "โญ", "โฎ", - "๐Ÿณ", - "๐Ÿ—ƒ", - "๐Ÿ—", - "๐Ÿฟ", - "โ—ป", - "๐Ÿ™", - "๐Ÿ›ฅ", - "6", + "โฏ", "โฑ", - "โ›ฐ", - "๐ŸŽ", - "๐Ÿ•ฏ", - "๐Ÿต", - "๐Ÿ–", - "โœ–", - "๐Ÿ›Ž", - "โ˜‚", - "#", - "โฃ", - "โ™ป", - "๐Ÿ—„", - "3", - "โญ", - "โ˜ธ", - "โ", - "โ›ธ", - "๐Ÿ–", + "โฒ", "โธ", - "โ™ฆ", - "โ‡", - "โฏ", - "โ›น", + "โน", + "โบ", + "โ“‚", + "โ–ช", + "โ–ซ", + "โ–ถ", + "โ—€", + "โ—ป", + "โ—ผ", + "โ˜€", + "โ˜", + "โ˜‚", + "โ˜ƒ", + "โ˜„", + "โ˜Ž", + "โ˜‘", + "โ˜˜", + "โ˜", "โ˜ ", - "๐Ÿ”", - "๐Ÿ•ธ", - "โ†–", - "๐Ÿ—‘", - "๐ŸŒก", - "โœˆ", - "โš’", - "7", - "โœ", - "๐Ÿ•ฐ", - "๐ŸŒซ", + "โ˜ข", + "โ˜ฃ", + "โ˜ฆ", + "โ˜ช", "โ˜ฎ", "โ˜ฏ", - "โฒ", - "๐Ÿ–", - "โœด", - "โšฐ", - "๐Ÿฝ", - "โšฑ", - "๐Ÿœ", - "๐Ÿ—ก", - "๐Ÿ•ท", - "โ™€", - "โ„น", - "๐ŸŒจ", - "โšœ", - "โ˜„", - "โ˜‘", - "โš ", - "โœ", - "9", - "โ“‚", - "โ†ฉ", + "โ˜ธ", "โ˜น", "โ˜บ", - "4", - "โ—ผ", - "โš”", + "โ™€", + "โ™‚", "โ™Ÿ", - "โœ‰", - "โคต", - "๐ŸŽ–", - "โค", - "๐ŸŽš", - "๐Ÿ•Š", - "๐Ÿ—ฏ", - "๐Ÿ‹", - "๐Ÿ—ณ", - "โ†•", - "โ„", - "โœ‚", - "โžก", - "๐Ÿ˜", - "โ›ฑ", + "โ™ ", + "โ™ฃ", "โ™ฅ", - "๐Ÿ–‹", - "๐ŸŒฆ", - "โœ’", - "๐Ÿ“ฝ", + "โ™ฆ", + "โ™จ", + "โ™ป", + "โ™พ", + "โš’", + "โš”", + "โš•", "โš–", - "๐Ÿ–Œ", - "โ˜€", - "โ›ท", - "โ†™", - "โ€ผ", - "๐Ÿ•ด", - "โ†”", + "โš—", + "โš™", + "โš›", + "โšœ", + "โš ", + "โšง", + "โšฐ", + "โšฑ", + "โ›ˆ", "โ›", - "โคด", - "โš•", - "โน", - "๐Ÿ–ฑ", - "โฌ…", - "๐Ÿ›ค", - "๐Ÿ› ", - "๐Ÿ›ฉ", - "๐ŸŒช", - "๐Ÿ", - "โ–ช", + "โ›‘", + "โ›“", "โ›ฉ", - "๐Ÿ•ถ", - "๐Ÿ›ฃ", - "๐Ÿ–ฒ", - "๐Ÿ–ฅ", - "โš—", - "ยฉ", - "โ˜ข", - "โ†—", + "โ›ฐ", + "โ›ฑ", + "โ›ด", + "โ›ท", + "โ›ธ", + "โ›น", + "โœ‚", + "โœˆ", + "โœ‰", "โœŒ", - "โ„ข", - "๐ŸŽ›", "โœ", - "โ›‘", - "๐ŸŽ™", - "1", - "โฌ‡", - "๐Ÿ—“", - "โ›ˆ", + "โœ", + "โœ’", + "โœ”", + "โœ–", + "โœ", "โœก", - "๐Ÿ–Š", - "๐Ÿ–ผ", - "๐Ÿ›", + "โœณ", + "โœด", + "โ„", + "โ‡", + "โฃ", + "โค", + "โžก", + "โคด", + "โคต", + "โฌ…", + "โฌ†", + "โฌ‡", + "๐Ÿ…ฐ", + "๐Ÿ…ฑ", + "๐Ÿ…พ", + "๐Ÿ…ฟ", + "๐ŸŒก", + "๐ŸŒค", "๐ŸŒฅ", + "๐ŸŒฆ", + "๐ŸŒง", + "๐ŸŒจ", + "๐ŸŒฉ", + "๐ŸŒช", + "๐ŸŒซ", + "๐ŸŒฌ", "๐ŸŒถ", - "๐Ÿ—", - "๐Ÿ–จ", - "โ™พ", - "โ›ด", - "โ˜", - "8", - "โ—€", + "๐Ÿฝ", + "๐ŸŽ–", + "๐ŸŽ—", + "๐ŸŽ™", + "๐ŸŽš", + "๐ŸŽ›", + "๐ŸŽž", "๐ŸŽŸ", - "๐Ÿ•น", - "๐Ÿ—จ", - "ยฎ", - "โš™", + "๐Ÿ‹", "๐ŸŒ", - "๐Ÿ—œ", - "๐ŸŒค", - "โบ", - "โ˜˜", - "๐Ÿ…ฐ", + "๐Ÿ", + "๐ŸŽ", + "๐Ÿ”", + "๐Ÿ•", + "๐Ÿ–", + "๐Ÿ—", + "๐Ÿ˜", + "๐Ÿ™", + "๐Ÿš", + "๐Ÿ›", + "๐Ÿœ", + "๐Ÿ", + "๐Ÿž", "๐ŸŸ", - "โ–ถ", - "*", + "๐Ÿณ", + "๐Ÿต", + "๐Ÿท", + "๐Ÿฟ", + "๐Ÿ‘", + "๐Ÿ“ฝ", + "๐Ÿ•‰", + "๐Ÿ•Š", + "๐Ÿ•ฏ", + "๐Ÿ•ฐ", + "๐Ÿ•ณ", + "๐Ÿ•ด", + "๐Ÿ•ต", + "๐Ÿ•ถ", + "๐Ÿ•ท", + "๐Ÿ•ธ", + "๐Ÿ•น", "๐Ÿ–‡", - "๐ŸŒฌ", - "๐ŸŽž", + "๐Ÿ–Š", + "๐Ÿ–‹", + "๐Ÿ–Œ", + "๐Ÿ–", + "๐Ÿ–", + "๐Ÿ–ฅ", + "๐Ÿ–จ", + "๐Ÿ–ฑ", + "๐Ÿ–ฒ", + "๐Ÿ–ผ", "๐Ÿ—‚", - "โ–ซ", - "โฌ†", - "๐Ÿš", - "โ†˜", - "โ›“", - "โ˜ƒ", - } + "๐Ÿ—ƒ", + "๐Ÿ—„", + "๐Ÿ—‘", + "๐Ÿ—’", + "๐Ÿ—“", + "๐Ÿ—œ", + "๐Ÿ—", + "๐Ÿ—ž", + "๐Ÿ—ก", + "๐Ÿ—ฃ", + "๐Ÿ—จ", + "๐Ÿ—ฏ", + "๐Ÿ—ณ", + "๐Ÿ—บ", + "๐Ÿ›‹", + "๐Ÿ›", + "๐Ÿ›Ž", + "๐Ÿ›", + "๐Ÿ› ", + "๐Ÿ›ก", + "๐Ÿ›ข", + "๐Ÿ›ฃ", + "๐Ÿ›ค", + "๐Ÿ›ฅ", + "๐Ÿ›ฉ", + "๐Ÿ›ฐ", + "๐Ÿ›ณ", + ] ), ) diff --git a/rich/_unicode_data/unicode5-1-0.py b/rich/_unicode_data/unicode5-1-0.py index abebcc4819..016e7825ec 100644 --- a/rich/_unicode_data/unicode5-1-0.py +++ b/rich/_unicode_data/unicode5-1-0.py @@ -4,8 +4,8 @@ from rich.cells import CellTable cell_table = CellTable( - unicode_version="5.1.0", - widths=[ + "5.1.0", + [ (0, 0, 0), (768, 879, 0), (1155, 1161, 0), @@ -141,8 +141,7 @@ (7678, 7679, 0), (8203, 8207, 0), (8232, 8238, 0), - (8288, 8292, 0), - (8298, 8303, 0), + (8288, 8303, 0), (8400, 8432, 0), (9001, 9002, 2), (11744, 11775, 0), @@ -157,7 +156,9 @@ (12441, 12442, 0), (12443, 12543, 2), (12549, 12589, 2), - (12593, 12686, 2), + (12593, 12643, 2), + (12644, 12644, 0), + (12645, 12686, 2), (12688, 12727, 2), (12736, 12771, 2), (12784, 12830, 2), @@ -194,8 +195,9 @@ (65128, 65131, 2), (65279, 65279, 0), (65281, 65376, 2), + (65440, 65440, 0), (65504, 65510, 2), - (65529, 65531, 0), + (65520, 65531, 0), (66045, 66045, 0), (68097, 68099, 0), (68101, 68102, 0), @@ -209,225 +211,223 @@ (119362, 119364, 0), (131072, 196605, 2), (196608, 262141, 2), - (917505, 917505, 0), - (917536, 917631, 0), - (917760, 917999, 0), + (917504, 921599, 0), ], - narrow_to_wide=frozenset( - { - "2", - "โ†ช", - "โ˜", - "๐ŸŒง", - "๐Ÿ›ข", - "โ‰", - "โ™จ", - "โœ”", - "โ˜Ž", - "โ˜ฃ", - "๐Ÿ›", - "๐Ÿ…พ", - "๐Ÿ•ต", - "๐Ÿ—ฃ", - "โ™ฃ", - "๐Ÿ—ž", - "๐Ÿ…ฑ", - "โ˜ช", - "๐Ÿ•", - "๐Ÿž", - "๐Ÿ›ฐ", + frozenset( + [ + "#", + "*", "0", - "๐Ÿ›ณ", - "๐Ÿ•ณ", - "โ™ ", + "1", + "2", + "3", + "4", "5", + "6", + "7", + "8", + "9", + "ยฉ", + "ยฎ", + "โ€ผ", + "โ‰", + "โ„ข", + "โ„น", + "โ†”", + "โ†•", + "โ†–", + "โ†—", + "โ†˜", + "โ†™", + "โ†ฉ", + "โ†ช", "โŒจ", - "๐Ÿ›‹", - "๐Ÿ—’", - "โœณ", - "๐Ÿท", - "๐ŸŒฉ", - "โšง", - "๐Ÿ", - "๐Ÿ•‰", - "โ˜ฆ", - "๐Ÿ‘", - "๐Ÿ›", - "๐Ÿ—บ", - "๐ŸŽ—", - "๐Ÿ…ฟ", - "โ™‚", - "โš›", - "๐Ÿ›ก", + "โ", + "โญ", "โฎ", - "๐Ÿณ", - "๐Ÿ—ƒ", - "๐Ÿ—", - "๐Ÿฟ", - "โ—ป", - "๐Ÿ™", - "๐Ÿ›ฅ", - "6", + "โฏ", "โฑ", - "โ›ฐ", - "๐ŸŽ", - "๐Ÿ•ฏ", - "๐Ÿต", - "๐Ÿ–", - "โœ–", - "๐Ÿ›Ž", - "โ˜‚", - "#", - "โฃ", - "โ™ป", - "๐Ÿ—„", - "3", - "โญ", - "โ˜ธ", - "โ", - "โ›ธ", - "๐Ÿ–", + "โฒ", "โธ", - "โ™ฆ", - "โ‡", - "โฏ", - "โ›น", + "โน", + "โบ", + "โ“‚", + "โ–ช", + "โ–ซ", + "โ–ถ", + "โ—€", + "โ—ป", + "โ—ผ", + "โ˜€", + "โ˜", + "โ˜‚", + "โ˜ƒ", + "โ˜„", + "โ˜Ž", + "โ˜‘", + "โ˜˜", + "โ˜", "โ˜ ", - "๐Ÿ”", - "๐Ÿ•ธ", - "โ†–", - "๐Ÿ—‘", - "๐ŸŒก", - "โœˆ", - "โš’", - "7", - "โœ", - "๐Ÿ•ฐ", - "๐ŸŒซ", + "โ˜ข", + "โ˜ฃ", + "โ˜ฆ", + "โ˜ช", "โ˜ฎ", "โ˜ฏ", - "โฒ", - "๐Ÿ–", - "โœด", - "โšฐ", - "๐Ÿฝ", - "โšฑ", - "๐Ÿœ", - "๐Ÿ—ก", - "๐Ÿ•ท", - "โ™€", - "โ„น", - "๐ŸŒจ", - "โšœ", - "โ˜„", - "โ˜‘", - "โš ", - "โœ", - "9", - "โ“‚", - "โ†ฉ", + "โ˜ธ", "โ˜น", "โ˜บ", - "4", - "โ—ผ", - "โš”", + "โ™€", + "โ™‚", "โ™Ÿ", - "โœ‰", - "โคต", - "๐ŸŽ–", - "โค", - "๐ŸŽš", - "๐Ÿ•Š", - "๐Ÿ—ฏ", - "๐Ÿ‹", - "๐Ÿ—ณ", - "โ†•", - "โ„", - "โœ‚", - "โžก", - "๐Ÿ˜", - "โ›ฑ", + "โ™ ", + "โ™ฃ", "โ™ฅ", - "๐Ÿ–‹", - "๐ŸŒฆ", - "โœ’", - "๐Ÿ“ฝ", + "โ™ฆ", + "โ™จ", + "โ™ป", + "โ™พ", + "โš’", + "โš”", + "โš•", "โš–", - "๐Ÿ–Œ", - "โ˜€", - "โ›ท", - "โ†™", - "โ€ผ", - "๐Ÿ•ด", - "โ†”", + "โš—", + "โš™", + "โš›", + "โšœ", + "โš ", + "โšง", + "โšฐ", + "โšฑ", + "โ›ˆ", "โ›", - "โคด", - "โš•", - "โน", - "๐Ÿ–ฑ", - "โฌ…", - "๐Ÿ›ค", - "๐Ÿ› ", - "๐Ÿ›ฉ", - "๐ŸŒช", - "๐Ÿ", - "โ–ช", + "โ›‘", + "โ›“", "โ›ฉ", - "๐Ÿ•ถ", - "๐Ÿ›ฃ", - "๐Ÿ–ฒ", - "๐Ÿ–ฅ", - "โš—", - "ยฉ", - "โ˜ข", - "โ†—", + "โ›ฐ", + "โ›ฑ", + "โ›ด", + "โ›ท", + "โ›ธ", + "โ›น", + "โœ‚", + "โœˆ", + "โœ‰", "โœŒ", - "โ„ข", - "๐ŸŽ›", "โœ", - "โ›‘", - "๐ŸŽ™", - "1", - "โฌ‡", - "๐Ÿ—“", - "โ›ˆ", + "โœ", + "โœ’", + "โœ”", + "โœ–", + "โœ", "โœก", - "๐Ÿ–Š", - "๐Ÿ–ผ", - "๐Ÿ›", + "โœณ", + "โœด", + "โ„", + "โ‡", + "โฃ", + "โค", + "โžก", + "โคด", + "โคต", + "โฌ…", + "โฌ†", + "โฌ‡", + "๐Ÿ…ฐ", + "๐Ÿ…ฑ", + "๐Ÿ…พ", + "๐Ÿ…ฟ", + "๐ŸŒก", + "๐ŸŒค", "๐ŸŒฅ", + "๐ŸŒฆ", + "๐ŸŒง", + "๐ŸŒจ", + "๐ŸŒฉ", + "๐ŸŒช", + "๐ŸŒซ", + "๐ŸŒฌ", "๐ŸŒถ", - "๐Ÿ—", - "๐Ÿ–จ", - "โ™พ", - "โ›ด", - "โ˜", - "8", - "โ—€", + "๐Ÿฝ", + "๐ŸŽ–", + "๐ŸŽ—", + "๐ŸŽ™", + "๐ŸŽš", + "๐ŸŽ›", + "๐ŸŽž", "๐ŸŽŸ", - "๐Ÿ•น", - "๐Ÿ—จ", - "ยฎ", - "โš™", + "๐Ÿ‹", "๐ŸŒ", - "๐Ÿ—œ", - "๐ŸŒค", - "โบ", - "โ˜˜", - "๐Ÿ…ฐ", + "๐Ÿ", + "๐ŸŽ", + "๐Ÿ”", + "๐Ÿ•", + "๐Ÿ–", + "๐Ÿ—", + "๐Ÿ˜", + "๐Ÿ™", + "๐Ÿš", + "๐Ÿ›", + "๐Ÿœ", + "๐Ÿ", + "๐Ÿž", "๐ŸŸ", - "โ–ถ", - "*", + "๐Ÿณ", + "๐Ÿต", + "๐Ÿท", + "๐Ÿฟ", + "๐Ÿ‘", + "๐Ÿ“ฝ", + "๐Ÿ•‰", + "๐Ÿ•Š", + "๐Ÿ•ฏ", + "๐Ÿ•ฐ", + "๐Ÿ•ณ", + "๐Ÿ•ด", + "๐Ÿ•ต", + "๐Ÿ•ถ", + "๐Ÿ•ท", + "๐Ÿ•ธ", + "๐Ÿ•น", "๐Ÿ–‡", - "๐ŸŒฌ", - "๐ŸŽž", + "๐Ÿ–Š", + "๐Ÿ–‹", + "๐Ÿ–Œ", + "๐Ÿ–", + "๐Ÿ–", + "๐Ÿ–ฅ", + "๐Ÿ–จ", + "๐Ÿ–ฑ", + "๐Ÿ–ฒ", + "๐Ÿ–ผ", "๐Ÿ—‚", - "โ–ซ", - "โฌ†", - "๐Ÿš", - "โ†˜", - "โ›“", - "โ˜ƒ", - } + "๐Ÿ—ƒ", + "๐Ÿ—„", + "๐Ÿ—‘", + "๐Ÿ—’", + "๐Ÿ—“", + "๐Ÿ—œ", + "๐Ÿ—", + "๐Ÿ—ž", + "๐Ÿ—ก", + "๐Ÿ—ฃ", + "๐Ÿ—จ", + "๐Ÿ—ฏ", + "๐Ÿ—ณ", + "๐Ÿ—บ", + "๐Ÿ›‹", + "๐Ÿ›", + "๐Ÿ›Ž", + "๐Ÿ›", + "๐Ÿ› ", + "๐Ÿ›ก", + "๐Ÿ›ข", + "๐Ÿ›ฃ", + "๐Ÿ›ค", + "๐Ÿ›ฅ", + "๐Ÿ›ฉ", + "๐Ÿ›ฐ", + "๐Ÿ›ณ", + ] ), ) diff --git a/rich/_unicode_data/unicode5-2-0.py b/rich/_unicode_data/unicode5-2-0.py index fefd155f5f..e984f12e95 100644 --- a/rich/_unicode_data/unicode5-2-0.py +++ b/rich/_unicode_data/unicode5-2-0.py @@ -4,8 +4,8 @@ from rich.cells import CellTable cell_table = CellTable( - unicode_version="5.2.0", - widths=[ + "5.2.0", + [ (0, 0, 0), (768, 879, 0), (1155, 1161, 0), @@ -152,8 +152,7 @@ (7677, 7679, 0), (8203, 8207, 0), (8232, 8238, 0), - (8288, 8292, 0), - (8298, 8303, 0), + (8288, 8303, 0), (8400, 8432, 0), (9001, 9002, 2), (11503, 11505, 0), @@ -169,7 +168,9 @@ (12441, 12442, 0), (12443, 12543, 2), (12549, 12589, 2), - (12593, 12686, 2), + (12593, 12643, 2), + (12644, 12644, 0), + (12645, 12686, 2), (12688, 12727, 2), (12736, 12771, 2), (12784, 12830, 2), @@ -216,8 +217,9 @@ (65128, 65131, 2), (65279, 65279, 0), (65281, 65376, 2), + (65440, 65440, 0), (65504, 65510, 2), - (65529, 65531, 0), + (65520, 65531, 0), (66045, 66045, 0), (68097, 68099, 0), (68101, 68102, 0), @@ -237,225 +239,223 @@ (127552, 127560, 2), (131072, 196605, 2), (196608, 262141, 2), - (917505, 917505, 0), - (917536, 917631, 0), - (917760, 917999, 0), + (917504, 921599, 0), ], - narrow_to_wide=frozenset( - { - "2", - "โ†ช", - "โ˜", - "๐ŸŒง", - "๐Ÿ›ข", - "โ‰", - "โ™จ", - "โœ”", - "โ˜Ž", - "โ˜ฃ", - "๐Ÿ›", - "๐Ÿ…พ", - "๐Ÿ•ต", - "๐Ÿ—ฃ", - "โ™ฃ", - "๐Ÿ—ž", - "๐Ÿ…ฑ", - "โ˜ช", - "๐Ÿ•", - "๐Ÿž", - "๐Ÿ›ฐ", + frozenset( + [ + "#", + "*", "0", - "๐Ÿ›ณ", - "๐Ÿ•ณ", - "โ™ ", + "1", + "2", + "3", + "4", "5", + "6", + "7", + "8", + "9", + "ยฉ", + "ยฎ", + "โ€ผ", + "โ‰", + "โ„ข", + "โ„น", + "โ†”", + "โ†•", + "โ†–", + "โ†—", + "โ†˜", + "โ†™", + "โ†ฉ", + "โ†ช", "โŒจ", - "๐Ÿ›‹", - "๐Ÿ—’", - "โœณ", - "๐Ÿท", - "๐ŸŒฉ", - "โšง", - "๐Ÿ", - "๐Ÿ•‰", - "โ˜ฆ", - "๐Ÿ‘", - "๐Ÿ›", - "๐Ÿ—บ", - "๐ŸŽ—", - "๐Ÿ…ฟ", - "โ™‚", - "โš›", - "๐Ÿ›ก", + "โ", + "โญ", "โฎ", - "๐Ÿณ", - "๐Ÿ—ƒ", - "๐Ÿ—", - "๐Ÿฟ", - "โ—ป", - "๐Ÿ™", - "๐Ÿ›ฅ", - "6", + "โฏ", "โฑ", - "โ›ฐ", - "๐ŸŽ", - "๐Ÿ•ฏ", - "๐Ÿต", - "๐Ÿ–", - "โœ–", - "๐Ÿ›Ž", - "โ˜‚", - "#", - "โฃ", - "โ™ป", - "๐Ÿ—„", - "3", - "โญ", - "โ˜ธ", - "โ", - "โ›ธ", - "๐Ÿ–", + "โฒ", "โธ", - "โ™ฆ", - "โ‡", - "โฏ", - "โ›น", + "โน", + "โบ", + "โ“‚", + "โ–ช", + "โ–ซ", + "โ–ถ", + "โ—€", + "โ—ป", + "โ—ผ", + "โ˜€", + "โ˜", + "โ˜‚", + "โ˜ƒ", + "โ˜„", + "โ˜Ž", + "โ˜‘", + "โ˜˜", + "โ˜", "โ˜ ", - "๐Ÿ”", - "๐Ÿ•ธ", - "โ†–", - "๐Ÿ—‘", - "๐ŸŒก", - "โœˆ", - "โš’", - "7", - "โœ", - "๐Ÿ•ฐ", - "๐ŸŒซ", + "โ˜ข", + "โ˜ฃ", + "โ˜ฆ", + "โ˜ช", "โ˜ฎ", "โ˜ฏ", - "โฒ", - "๐Ÿ–", - "โœด", - "โšฐ", - "๐Ÿฝ", - "โšฑ", - "๐Ÿœ", - "๐Ÿ—ก", - "๐Ÿ•ท", - "โ™€", - "โ„น", - "๐ŸŒจ", - "โšœ", - "โ˜„", - "โ˜‘", - "โš ", - "โœ", - "9", - "โ“‚", - "โ†ฉ", + "โ˜ธ", "โ˜น", "โ˜บ", - "4", - "โ—ผ", - "โš”", + "โ™€", + "โ™‚", "โ™Ÿ", - "โœ‰", - "โคต", - "๐ŸŽ–", - "โค", - "๐ŸŽš", - "๐Ÿ•Š", - "๐Ÿ—ฏ", - "๐Ÿ‹", - "๐Ÿ—ณ", - "โ†•", - "โ„", - "โœ‚", - "โžก", - "๐Ÿ˜", - "โ›ฑ", + "โ™ ", + "โ™ฃ", "โ™ฅ", - "๐Ÿ–‹", - "๐ŸŒฆ", - "โœ’", - "๐Ÿ“ฝ", + "โ™ฆ", + "โ™จ", + "โ™ป", + "โ™พ", + "โš’", + "โš”", + "โš•", "โš–", - "๐Ÿ–Œ", - "โ˜€", - "โ›ท", - "โ†™", - "โ€ผ", - "๐Ÿ•ด", - "โ†”", + "โš—", + "โš™", + "โš›", + "โšœ", + "โš ", + "โšง", + "โšฐ", + "โšฑ", + "โ›ˆ", "โ›", - "โคด", - "โš•", - "โน", - "๐Ÿ–ฑ", - "โฌ…", - "๐Ÿ›ค", - "๐Ÿ› ", - "๐Ÿ›ฉ", - "๐ŸŒช", - "๐Ÿ", - "โ–ช", + "โ›‘", + "โ›“", "โ›ฉ", - "๐Ÿ•ถ", - "๐Ÿ›ฃ", - "๐Ÿ–ฒ", - "๐Ÿ–ฅ", - "โš—", - "ยฉ", - "โ˜ข", - "โ†—", + "โ›ฐ", + "โ›ฑ", + "โ›ด", + "โ›ท", + "โ›ธ", + "โ›น", + "โœ‚", + "โœˆ", + "โœ‰", "โœŒ", - "โ„ข", - "๐ŸŽ›", "โœ", - "โ›‘", - "๐ŸŽ™", - "1", - "โฌ‡", - "๐Ÿ—“", - "โ›ˆ", + "โœ", + "โœ’", + "โœ”", + "โœ–", + "โœ", "โœก", - "๐Ÿ–Š", - "๐Ÿ–ผ", - "๐Ÿ›", + "โœณ", + "โœด", + "โ„", + "โ‡", + "โฃ", + "โค", + "โžก", + "โคด", + "โคต", + "โฌ…", + "โฌ†", + "โฌ‡", + "๐Ÿ…ฐ", + "๐Ÿ…ฑ", + "๐Ÿ…พ", + "๐Ÿ…ฟ", + "๐ŸŒก", + "๐ŸŒค", "๐ŸŒฅ", + "๐ŸŒฆ", + "๐ŸŒง", + "๐ŸŒจ", + "๐ŸŒฉ", + "๐ŸŒช", + "๐ŸŒซ", + "๐ŸŒฌ", "๐ŸŒถ", - "๐Ÿ—", - "๐Ÿ–จ", - "โ™พ", - "โ›ด", - "โ˜", - "8", - "โ—€", + "๐Ÿฝ", + "๐ŸŽ–", + "๐ŸŽ—", + "๐ŸŽ™", + "๐ŸŽš", + "๐ŸŽ›", + "๐ŸŽž", "๐ŸŽŸ", - "๐Ÿ•น", - "๐Ÿ—จ", - "ยฎ", - "โš™", + "๐Ÿ‹", "๐ŸŒ", - "๐Ÿ—œ", - "๐ŸŒค", - "โบ", - "โ˜˜", - "๐Ÿ…ฐ", + "๐Ÿ", + "๐ŸŽ", + "๐Ÿ”", + "๐Ÿ•", + "๐Ÿ–", + "๐Ÿ—", + "๐Ÿ˜", + "๐Ÿ™", + "๐Ÿš", + "๐Ÿ›", + "๐Ÿœ", + "๐Ÿ", + "๐Ÿž", "๐ŸŸ", - "โ–ถ", - "*", + "๐Ÿณ", + "๐Ÿต", + "๐Ÿท", + "๐Ÿฟ", + "๐Ÿ‘", + "๐Ÿ“ฝ", + "๐Ÿ•‰", + "๐Ÿ•Š", + "๐Ÿ•ฏ", + "๐Ÿ•ฐ", + "๐Ÿ•ณ", + "๐Ÿ•ด", + "๐Ÿ•ต", + "๐Ÿ•ถ", + "๐Ÿ•ท", + "๐Ÿ•ธ", + "๐Ÿ•น", "๐Ÿ–‡", - "๐ŸŒฌ", - "๐ŸŽž", + "๐Ÿ–Š", + "๐Ÿ–‹", + "๐Ÿ–Œ", + "๐Ÿ–", + "๐Ÿ–", + "๐Ÿ–ฅ", + "๐Ÿ–จ", + "๐Ÿ–ฑ", + "๐Ÿ–ฒ", + "๐Ÿ–ผ", "๐Ÿ—‚", - "โ–ซ", - "โฌ†", - "๐Ÿš", - "โ†˜", - "โ›“", - "โ˜ƒ", - } + "๐Ÿ—ƒ", + "๐Ÿ—„", + "๐Ÿ—‘", + "๐Ÿ—’", + "๐Ÿ—“", + "๐Ÿ—œ", + "๐Ÿ—", + "๐Ÿ—ž", + "๐Ÿ—ก", + "๐Ÿ—ฃ", + "๐Ÿ—จ", + "๐Ÿ—ฏ", + "๐Ÿ—ณ", + "๐Ÿ—บ", + "๐Ÿ›‹", + "๐Ÿ›", + "๐Ÿ›Ž", + "๐Ÿ›", + "๐Ÿ› ", + "๐Ÿ›ก", + "๐Ÿ›ข", + "๐Ÿ›ฃ", + "๐Ÿ›ค", + "๐Ÿ›ฅ", + "๐Ÿ›ฉ", + "๐Ÿ›ฐ", + "๐Ÿ›ณ", + ] ), ) diff --git a/rich/_unicode_data/unicode6-0-0.py b/rich/_unicode_data/unicode6-0-0.py index 039c08df0a..8d5abb455c 100644 --- a/rich/_unicode_data/unicode6-0-0.py +++ b/rich/_unicode_data/unicode6-0-0.py @@ -4,8 +4,8 @@ from rich.cells import CellTable cell_table = CellTable( - unicode_version="6.0.0", - widths=[ + "6.0.0", + [ (0, 0, 0), (768, 879, 0), (1155, 1161, 0), @@ -155,8 +155,7 @@ (7676, 7679, 0), (8203, 8207, 0), (8232, 8238, 0), - (8288, 8292, 0), - (8298, 8303, 0), + (8288, 8303, 0), (8400, 8432, 0), (9001, 9002, 2), (11503, 11505, 0), @@ -173,7 +172,9 @@ (12441, 12442, 0), (12443, 12543, 2), (12549, 12589, 2), - (12593, 12686, 2), + (12593, 12643, 2), + (12644, 12644, 0), + (12645, 12686, 2), (12688, 12730, 2), (12736, 12771, 2), (12784, 12830, 2), @@ -220,8 +221,9 @@ (65128, 65131, 2), (65279, 65279, 0), (65281, 65376, 2), + (65440, 65440, 0), (65504, 65510, 2), - (65529, 65531, 0), + (65520, 65531, 0), (66045, 66045, 0), (68097, 68099, 0), (68101, 68102, 0), @@ -245,225 +247,223 @@ (127568, 127569, 2), (131072, 196605, 2), (196608, 262141, 2), - (917505, 917505, 0), - (917536, 917631, 0), - (917760, 917999, 0), + (917504, 921599, 0), ], - narrow_to_wide=frozenset( - { - "2", - "โ†ช", - "โ˜", - "๐ŸŒง", - "๐Ÿ›ข", - "โ‰", - "โ™จ", - "โœ”", - "โ˜Ž", - "โ˜ฃ", - "๐Ÿ›", - "๐Ÿ…พ", - "๐Ÿ•ต", - "๐Ÿ—ฃ", - "โ™ฃ", - "๐Ÿ—ž", - "๐Ÿ…ฑ", - "โ˜ช", - "๐Ÿ•", - "๐Ÿž", - "๐Ÿ›ฐ", + frozenset( + [ + "#", + "*", "0", - "๐Ÿ›ณ", - "๐Ÿ•ณ", - "โ™ ", + "1", + "2", + "3", + "4", "5", + "6", + "7", + "8", + "9", + "ยฉ", + "ยฎ", + "โ€ผ", + "โ‰", + "โ„ข", + "โ„น", + "โ†”", + "โ†•", + "โ†–", + "โ†—", + "โ†˜", + "โ†™", + "โ†ฉ", + "โ†ช", "โŒจ", - "๐Ÿ›‹", - "๐Ÿ—’", - "โœณ", - "๐Ÿท", - "๐ŸŒฉ", - "โšง", - "๐Ÿ", - "๐Ÿ•‰", - "โ˜ฆ", - "๐Ÿ‘", - "๐Ÿ›", - "๐Ÿ—บ", - "๐ŸŽ—", - "๐Ÿ…ฟ", - "โ™‚", - "โš›", - "๐Ÿ›ก", + "โ", + "โญ", "โฎ", - "๐Ÿณ", - "๐Ÿ—ƒ", - "๐Ÿ—", - "๐Ÿฟ", - "โ—ป", - "๐Ÿ™", - "๐Ÿ›ฅ", - "6", + "โฏ", "โฑ", - "โ›ฐ", - "๐ŸŽ", - "๐Ÿ•ฏ", - "๐Ÿต", - "๐Ÿ–", - "โœ–", - "๐Ÿ›Ž", - "โ˜‚", - "#", - "โฃ", - "โ™ป", - "๐Ÿ—„", - "3", - "โญ", - "โ˜ธ", - "โ", - "โ›ธ", - "๐Ÿ–", + "โฒ", "โธ", - "โ™ฆ", - "โ‡", - "โฏ", - "โ›น", + "โน", + "โบ", + "โ“‚", + "โ–ช", + "โ–ซ", + "โ–ถ", + "โ—€", + "โ—ป", + "โ—ผ", + "โ˜€", + "โ˜", + "โ˜‚", + "โ˜ƒ", + "โ˜„", + "โ˜Ž", + "โ˜‘", + "โ˜˜", + "โ˜", "โ˜ ", - "๐Ÿ”", - "๐Ÿ•ธ", - "โ†–", - "๐Ÿ—‘", - "๐ŸŒก", - "โœˆ", - "โš’", - "7", - "โœ", - "๐Ÿ•ฐ", - "๐ŸŒซ", + "โ˜ข", + "โ˜ฃ", + "โ˜ฆ", + "โ˜ช", "โ˜ฎ", "โ˜ฏ", - "โฒ", - "๐Ÿ–", - "โœด", - "โšฐ", - "๐Ÿฝ", - "โšฑ", - "๐Ÿœ", - "๐Ÿ—ก", - "๐Ÿ•ท", - "โ™€", - "โ„น", - "๐ŸŒจ", - "โšœ", - "โ˜„", - "โ˜‘", - "โš ", - "โœ", - "9", - "โ“‚", - "โ†ฉ", + "โ˜ธ", "โ˜น", "โ˜บ", - "4", - "โ—ผ", - "โš”", + "โ™€", + "โ™‚", "โ™Ÿ", - "โœ‰", - "โคต", - "๐ŸŽ–", - "โค", - "๐ŸŽš", - "๐Ÿ•Š", - "๐Ÿ—ฏ", - "๐Ÿ‹", - "๐Ÿ—ณ", - "โ†•", - "โ„", - "โœ‚", - "โžก", - "๐Ÿ˜", - "โ›ฑ", + "โ™ ", + "โ™ฃ", "โ™ฅ", - "๐Ÿ–‹", - "๐ŸŒฆ", - "โœ’", - "๐Ÿ“ฝ", + "โ™ฆ", + "โ™จ", + "โ™ป", + "โ™พ", + "โš’", + "โš”", + "โš•", "โš–", - "๐Ÿ–Œ", - "โ˜€", - "โ›ท", - "โ†™", - "โ€ผ", - "๐Ÿ•ด", - "โ†”", + "โš—", + "โš™", + "โš›", + "โšœ", + "โš ", + "โšง", + "โšฐ", + "โšฑ", + "โ›ˆ", "โ›", - "โคด", - "โš•", - "โน", - "๐Ÿ–ฑ", - "โฌ…", - "๐Ÿ›ค", - "๐Ÿ› ", - "๐Ÿ›ฉ", - "๐ŸŒช", - "๐Ÿ", - "โ–ช", + "โ›‘", + "โ›“", "โ›ฉ", - "๐Ÿ•ถ", - "๐Ÿ›ฃ", - "๐Ÿ–ฒ", - "๐Ÿ–ฅ", - "โš—", - "ยฉ", - "โ˜ข", - "โ†—", + "โ›ฐ", + "โ›ฑ", + "โ›ด", + "โ›ท", + "โ›ธ", + "โ›น", + "โœ‚", + "โœˆ", + "โœ‰", "โœŒ", - "โ„ข", - "๐ŸŽ›", "โœ", - "โ›‘", - "๐ŸŽ™", - "1", - "โฌ‡", - "๐Ÿ—“", - "โ›ˆ", + "โœ", + "โœ’", + "โœ”", + "โœ–", + "โœ", "โœก", - "๐Ÿ–Š", - "๐Ÿ–ผ", - "๐Ÿ›", + "โœณ", + "โœด", + "โ„", + "โ‡", + "โฃ", + "โค", + "โžก", + "โคด", + "โคต", + "โฌ…", + "โฌ†", + "โฌ‡", + "๐Ÿ…ฐ", + "๐Ÿ…ฑ", + "๐Ÿ…พ", + "๐Ÿ…ฟ", + "๐ŸŒก", + "๐ŸŒค", "๐ŸŒฅ", + "๐ŸŒฆ", + "๐ŸŒง", + "๐ŸŒจ", + "๐ŸŒฉ", + "๐ŸŒช", + "๐ŸŒซ", + "๐ŸŒฌ", "๐ŸŒถ", - "๐Ÿ—", - "๐Ÿ–จ", - "โ™พ", - "โ›ด", - "โ˜", - "8", - "โ—€", + "๐Ÿฝ", + "๐ŸŽ–", + "๐ŸŽ—", + "๐ŸŽ™", + "๐ŸŽš", + "๐ŸŽ›", + "๐ŸŽž", "๐ŸŽŸ", - "๐Ÿ•น", - "๐Ÿ—จ", - "ยฎ", - "โš™", + "๐Ÿ‹", "๐ŸŒ", - "๐Ÿ—œ", - "๐ŸŒค", - "โบ", - "โ˜˜", - "๐Ÿ…ฐ", + "๐Ÿ", + "๐ŸŽ", + "๐Ÿ”", + "๐Ÿ•", + "๐Ÿ–", + "๐Ÿ—", + "๐Ÿ˜", + "๐Ÿ™", + "๐Ÿš", + "๐Ÿ›", + "๐Ÿœ", + "๐Ÿ", + "๐Ÿž", "๐ŸŸ", - "โ–ถ", - "*", + "๐Ÿณ", + "๐Ÿต", + "๐Ÿท", + "๐Ÿฟ", + "๐Ÿ‘", + "๐Ÿ“ฝ", + "๐Ÿ•‰", + "๐Ÿ•Š", + "๐Ÿ•ฏ", + "๐Ÿ•ฐ", + "๐Ÿ•ณ", + "๐Ÿ•ด", + "๐Ÿ•ต", + "๐Ÿ•ถ", + "๐Ÿ•ท", + "๐Ÿ•ธ", + "๐Ÿ•น", "๐Ÿ–‡", - "๐ŸŒฌ", - "๐ŸŽž", + "๐Ÿ–Š", + "๐Ÿ–‹", + "๐Ÿ–Œ", + "๐Ÿ–", + "๐Ÿ–", + "๐Ÿ–ฅ", + "๐Ÿ–จ", + "๐Ÿ–ฑ", + "๐Ÿ–ฒ", + "๐Ÿ–ผ", "๐Ÿ—‚", - "โ–ซ", - "โฌ†", - "๐Ÿš", - "โ†˜", - "โ›“", - "โ˜ƒ", - } + "๐Ÿ—ƒ", + "๐Ÿ—„", + "๐Ÿ—‘", + "๐Ÿ—’", + "๐Ÿ—“", + "๐Ÿ—œ", + "๐Ÿ—", + "๐Ÿ—ž", + "๐Ÿ—ก", + "๐Ÿ—ฃ", + "๐Ÿ—จ", + "๐Ÿ—ฏ", + "๐Ÿ—ณ", + "๐Ÿ—บ", + "๐Ÿ›‹", + "๐Ÿ›", + "๐Ÿ›Ž", + "๐Ÿ›", + "๐Ÿ› ", + "๐Ÿ›ก", + "๐Ÿ›ข", + "๐Ÿ›ฃ", + "๐Ÿ›ค", + "๐Ÿ›ฅ", + "๐Ÿ›ฉ", + "๐Ÿ›ฐ", + "๐Ÿ›ณ", + ] ), ) diff --git a/rich/_unicode_data/unicode6-1-0.py b/rich/_unicode_data/unicode6-1-0.py index cb47985180..29d3e92988 100644 --- a/rich/_unicode_data/unicode6-1-0.py +++ b/rich/_unicode_data/unicode6-1-0.py @@ -4,8 +4,8 @@ from rich.cells import CellTable cell_table = CellTable( - unicode_version="6.1.0", - widths=[ + "6.1.0", + [ (0, 0, 0), (768, 879, 0), (1155, 1161, 0), @@ -156,8 +156,7 @@ (7676, 7679, 0), (8203, 8207, 0), (8232, 8238, 0), - (8288, 8292, 0), - (8298, 8303, 0), + (8288, 8303, 0), (8400, 8432, 0), (9001, 9002, 2), (11503, 11505, 0), @@ -174,7 +173,9 @@ (12441, 12442, 0), (12443, 12543, 2), (12549, 12589, 2), - (12593, 12686, 2), + (12593, 12643, 2), + (12644, 12644, 0), + (12645, 12686, 2), (12688, 12730, 2), (12736, 12771, 2), (12784, 12830, 2), @@ -224,8 +225,9 @@ (65128, 65131, 2), (65279, 65279, 0), (65281, 65376, 2), + (65440, 65440, 0), (65504, 65510, 2), - (65529, 65531, 0), + (65520, 65531, 0), (66045, 66045, 0), (68097, 68099, 0), (68101, 68102, 0), @@ -256,225 +258,223 @@ (127568, 127569, 2), (131072, 196605, 2), (196608, 262141, 2), - (917505, 917505, 0), - (917536, 917631, 0), - (917760, 917999, 0), + (917504, 921599, 0), ], - narrow_to_wide=frozenset( - { - "2", - "โ†ช", - "โ˜", - "๐ŸŒง", - "๐Ÿ›ข", - "โ‰", - "โ™จ", - "โœ”", - "โ˜Ž", - "โ˜ฃ", - "๐Ÿ›", - "๐Ÿ…พ", - "๐Ÿ•ต", - "๐Ÿ—ฃ", - "โ™ฃ", - "๐Ÿ—ž", - "๐Ÿ…ฑ", - "โ˜ช", - "๐Ÿ•", - "๐Ÿž", - "๐Ÿ›ฐ", + frozenset( + [ + "#", + "*", "0", - "๐Ÿ›ณ", - "๐Ÿ•ณ", - "โ™ ", + "1", + "2", + "3", + "4", "5", + "6", + "7", + "8", + "9", + "ยฉ", + "ยฎ", + "โ€ผ", + "โ‰", + "โ„ข", + "โ„น", + "โ†”", + "โ†•", + "โ†–", + "โ†—", + "โ†˜", + "โ†™", + "โ†ฉ", + "โ†ช", "โŒจ", - "๐Ÿ›‹", - "๐Ÿ—’", - "โœณ", - "๐Ÿท", - "๐ŸŒฉ", - "โšง", - "๐Ÿ", - "๐Ÿ•‰", - "โ˜ฆ", - "๐Ÿ‘", - "๐Ÿ›", - "๐Ÿ—บ", - "๐ŸŽ—", - "๐Ÿ…ฟ", - "โ™‚", - "โš›", - "๐Ÿ›ก", + "โ", + "โญ", "โฎ", - "๐Ÿณ", - "๐Ÿ—ƒ", - "๐Ÿ—", - "๐Ÿฟ", - "โ—ป", - "๐Ÿ™", - "๐Ÿ›ฅ", - "6", + "โฏ", "โฑ", - "โ›ฐ", - "๐ŸŽ", - "๐Ÿ•ฏ", - "๐Ÿต", - "๐Ÿ–", - "โœ–", - "๐Ÿ›Ž", - "โ˜‚", - "#", - "โฃ", - "โ™ป", - "๐Ÿ—„", - "3", - "โญ", - "โ˜ธ", - "โ", - "โ›ธ", - "๐Ÿ–", + "โฒ", "โธ", - "โ™ฆ", - "โ‡", - "โฏ", - "โ›น", + "โน", + "โบ", + "โ“‚", + "โ–ช", + "โ–ซ", + "โ–ถ", + "โ—€", + "โ—ป", + "โ—ผ", + "โ˜€", + "โ˜", + "โ˜‚", + "โ˜ƒ", + "โ˜„", + "โ˜Ž", + "โ˜‘", + "โ˜˜", + "โ˜", "โ˜ ", - "๐Ÿ”", - "๐Ÿ•ธ", - "โ†–", - "๐Ÿ—‘", - "๐ŸŒก", - "โœˆ", - "โš’", - "7", - "โœ", - "๐Ÿ•ฐ", - "๐ŸŒซ", + "โ˜ข", + "โ˜ฃ", + "โ˜ฆ", + "โ˜ช", "โ˜ฎ", "โ˜ฏ", - "โฒ", - "๐Ÿ–", - "โœด", - "โšฐ", - "๐Ÿฝ", - "โšฑ", - "๐Ÿœ", - "๐Ÿ—ก", - "๐Ÿ•ท", - "โ™€", - "โ„น", - "๐ŸŒจ", - "โšœ", - "โ˜„", - "โ˜‘", - "โš ", - "โœ", - "9", - "โ“‚", - "โ†ฉ", + "โ˜ธ", "โ˜น", "โ˜บ", - "4", - "โ—ผ", - "โš”", + "โ™€", + "โ™‚", "โ™Ÿ", - "โœ‰", - "โคต", - "๐ŸŽ–", - "โค", - "๐ŸŽš", - "๐Ÿ•Š", - "๐Ÿ—ฏ", - "๐Ÿ‹", - "๐Ÿ—ณ", - "โ†•", - "โ„", - "โœ‚", - "โžก", - "๐Ÿ˜", - "โ›ฑ", + "โ™ ", + "โ™ฃ", "โ™ฅ", - "๐Ÿ–‹", - "๐ŸŒฆ", - "โœ’", - "๐Ÿ“ฝ", + "โ™ฆ", + "โ™จ", + "โ™ป", + "โ™พ", + "โš’", + "โš”", + "โš•", "โš–", - "๐Ÿ–Œ", - "โ˜€", - "โ›ท", - "โ†™", - "โ€ผ", - "๐Ÿ•ด", - "โ†”", + "โš—", + "โš™", + "โš›", + "โšœ", + "โš ", + "โšง", + "โšฐ", + "โšฑ", + "โ›ˆ", "โ›", - "โคด", - "โš•", - "โน", - "๐Ÿ–ฑ", - "โฌ…", - "๐Ÿ›ค", - "๐Ÿ› ", - "๐Ÿ›ฉ", - "๐ŸŒช", - "๐Ÿ", - "โ–ช", + "โ›‘", + "โ›“", "โ›ฉ", - "๐Ÿ•ถ", - "๐Ÿ›ฃ", - "๐Ÿ–ฒ", - "๐Ÿ–ฅ", - "โš—", - "ยฉ", - "โ˜ข", - "โ†—", + "โ›ฐ", + "โ›ฑ", + "โ›ด", + "โ›ท", + "โ›ธ", + "โ›น", + "โœ‚", + "โœˆ", + "โœ‰", "โœŒ", - "โ„ข", - "๐ŸŽ›", "โœ", - "โ›‘", - "๐ŸŽ™", - "1", - "โฌ‡", - "๐Ÿ—“", - "โ›ˆ", + "โœ", + "โœ’", + "โœ”", + "โœ–", + "โœ", "โœก", - "๐Ÿ–Š", - "๐Ÿ–ผ", - "๐Ÿ›", + "โœณ", + "โœด", + "โ„", + "โ‡", + "โฃ", + "โค", + "โžก", + "โคด", + "โคต", + "โฌ…", + "โฌ†", + "โฌ‡", + "๐Ÿ…ฐ", + "๐Ÿ…ฑ", + "๐Ÿ…พ", + "๐Ÿ…ฟ", + "๐ŸŒก", + "๐ŸŒค", "๐ŸŒฅ", + "๐ŸŒฆ", + "๐ŸŒง", + "๐ŸŒจ", + "๐ŸŒฉ", + "๐ŸŒช", + "๐ŸŒซ", + "๐ŸŒฌ", "๐ŸŒถ", - "๐Ÿ—", - "๐Ÿ–จ", - "โ™พ", - "โ›ด", - "โ˜", - "8", - "โ—€", + "๐Ÿฝ", + "๐ŸŽ–", + "๐ŸŽ—", + "๐ŸŽ™", + "๐ŸŽš", + "๐ŸŽ›", + "๐ŸŽž", "๐ŸŽŸ", - "๐Ÿ•น", - "๐Ÿ—จ", - "ยฎ", - "โš™", + "๐Ÿ‹", "๐ŸŒ", - "๐Ÿ—œ", - "๐ŸŒค", - "โบ", - "โ˜˜", - "๐Ÿ…ฐ", + "๐Ÿ", + "๐ŸŽ", + "๐Ÿ”", + "๐Ÿ•", + "๐Ÿ–", + "๐Ÿ—", + "๐Ÿ˜", + "๐Ÿ™", + "๐Ÿš", + "๐Ÿ›", + "๐Ÿœ", + "๐Ÿ", + "๐Ÿž", "๐ŸŸ", - "โ–ถ", - "*", + "๐Ÿณ", + "๐Ÿต", + "๐Ÿท", + "๐Ÿฟ", + "๐Ÿ‘", + "๐Ÿ“ฝ", + "๐Ÿ•‰", + "๐Ÿ•Š", + "๐Ÿ•ฏ", + "๐Ÿ•ฐ", + "๐Ÿ•ณ", + "๐Ÿ•ด", + "๐Ÿ•ต", + "๐Ÿ•ถ", + "๐Ÿ•ท", + "๐Ÿ•ธ", + "๐Ÿ•น", "๐Ÿ–‡", - "๐ŸŒฌ", - "๐ŸŽž", + "๐Ÿ–Š", + "๐Ÿ–‹", + "๐Ÿ–Œ", + "๐Ÿ–", + "๐Ÿ–", + "๐Ÿ–ฅ", + "๐Ÿ–จ", + "๐Ÿ–ฑ", + "๐Ÿ–ฒ", + "๐Ÿ–ผ", "๐Ÿ—‚", - "โ–ซ", - "โฌ†", - "๐Ÿš", - "โ†˜", - "โ›“", - "โ˜ƒ", - } + "๐Ÿ—ƒ", + "๐Ÿ—„", + "๐Ÿ—‘", + "๐Ÿ—’", + "๐Ÿ—“", + "๐Ÿ—œ", + "๐Ÿ—", + "๐Ÿ—ž", + "๐Ÿ—ก", + "๐Ÿ—ฃ", + "๐Ÿ—จ", + "๐Ÿ—ฏ", + "๐Ÿ—ณ", + "๐Ÿ—บ", + "๐Ÿ›‹", + "๐Ÿ›", + "๐Ÿ›Ž", + "๐Ÿ›", + "๐Ÿ› ", + "๐Ÿ›ก", + "๐Ÿ›ข", + "๐Ÿ›ฃ", + "๐Ÿ›ค", + "๐Ÿ›ฅ", + "๐Ÿ›ฉ", + "๐Ÿ›ฐ", + "๐Ÿ›ณ", + ] ), ) diff --git a/rich/_unicode_data/unicode6-2-0.py b/rich/_unicode_data/unicode6-2-0.py index 0476d4a9ac..d0cda351a4 100644 --- a/rich/_unicode_data/unicode6-2-0.py +++ b/rich/_unicode_data/unicode6-2-0.py @@ -4,8 +4,8 @@ from rich.cells import CellTable cell_table = CellTable( - unicode_version="6.2.0", - widths=[ + "6.2.0", + [ (0, 0, 0), (768, 879, 0), (1155, 1161, 0), @@ -156,8 +156,7 @@ (7676, 7679, 0), (8203, 8207, 0), (8232, 8238, 0), - (8288, 8292, 0), - (8298, 8303, 0), + (8288, 8303, 0), (8400, 8432, 0), (9001, 9002, 2), (11503, 11505, 0), @@ -174,7 +173,9 @@ (12441, 12442, 0), (12443, 12543, 2), (12549, 12589, 2), - (12593, 12686, 2), + (12593, 12643, 2), + (12644, 12644, 0), + (12645, 12686, 2), (12688, 12730, 2), (12736, 12771, 2), (12784, 12830, 2), @@ -224,8 +225,9 @@ (65128, 65131, 2), (65279, 65279, 0), (65281, 65376, 2), + (65440, 65440, 0), (65504, 65510, 2), - (65529, 65531, 0), + (65520, 65531, 0), (66045, 66045, 0), (68097, 68099, 0), (68101, 68102, 0), @@ -256,225 +258,223 @@ (127568, 127569, 2), (131072, 196605, 2), (196608, 262141, 2), - (917505, 917505, 0), - (917536, 917631, 0), - (917760, 917999, 0), + (917504, 921599, 0), ], - narrow_to_wide=frozenset( - { - "2", - "โ†ช", - "โ˜", - "๐ŸŒง", - "๐Ÿ›ข", - "โ‰", - "โ™จ", - "โœ”", - "โ˜Ž", - "โ˜ฃ", - "๐Ÿ›", - "๐Ÿ…พ", - "๐Ÿ•ต", - "๐Ÿ—ฃ", - "โ™ฃ", - "๐Ÿ—ž", - "๐Ÿ…ฑ", - "โ˜ช", - "๐Ÿ•", - "๐Ÿž", - "๐Ÿ›ฐ", + frozenset( + [ + "#", + "*", "0", - "๐Ÿ›ณ", - "๐Ÿ•ณ", - "โ™ ", + "1", + "2", + "3", + "4", "5", + "6", + "7", + "8", + "9", + "ยฉ", + "ยฎ", + "โ€ผ", + "โ‰", + "โ„ข", + "โ„น", + "โ†”", + "โ†•", + "โ†–", + "โ†—", + "โ†˜", + "โ†™", + "โ†ฉ", + "โ†ช", "โŒจ", - "๐Ÿ›‹", - "๐Ÿ—’", - "โœณ", - "๐Ÿท", - "๐ŸŒฉ", - "โšง", - "๐Ÿ", - "๐Ÿ•‰", - "โ˜ฆ", - "๐Ÿ‘", - "๐Ÿ›", - "๐Ÿ—บ", - "๐ŸŽ—", - "๐Ÿ…ฟ", - "โ™‚", - "โš›", - "๐Ÿ›ก", + "โ", + "โญ", "โฎ", - "๐Ÿณ", - "๐Ÿ—ƒ", - "๐Ÿ—", - "๐Ÿฟ", - "โ—ป", - "๐Ÿ™", - "๐Ÿ›ฅ", - "6", + "โฏ", "โฑ", - "โ›ฐ", - "๐ŸŽ", - "๐Ÿ•ฏ", - "๐Ÿต", - "๐Ÿ–", - "โœ–", - "๐Ÿ›Ž", - "โ˜‚", - "#", - "โฃ", - "โ™ป", - "๐Ÿ—„", - "3", - "โญ", - "โ˜ธ", - "โ", - "โ›ธ", - "๐Ÿ–", + "โฒ", "โธ", - "โ™ฆ", - "โ‡", - "โฏ", - "โ›น", + "โน", + "โบ", + "โ“‚", + "โ–ช", + "โ–ซ", + "โ–ถ", + "โ—€", + "โ—ป", + "โ—ผ", + "โ˜€", + "โ˜", + "โ˜‚", + "โ˜ƒ", + "โ˜„", + "โ˜Ž", + "โ˜‘", + "โ˜˜", + "โ˜", "โ˜ ", - "๐Ÿ”", - "๐Ÿ•ธ", - "โ†–", - "๐Ÿ—‘", - "๐ŸŒก", - "โœˆ", - "โš’", - "7", - "โœ", - "๐Ÿ•ฐ", - "๐ŸŒซ", + "โ˜ข", + "โ˜ฃ", + "โ˜ฆ", + "โ˜ช", "โ˜ฎ", "โ˜ฏ", - "โฒ", - "๐Ÿ–", - "โœด", - "โšฐ", - "๐Ÿฝ", - "โšฑ", - "๐Ÿœ", - "๐Ÿ—ก", - "๐Ÿ•ท", - "โ™€", - "โ„น", - "๐ŸŒจ", - "โšœ", - "โ˜„", - "โ˜‘", - "โš ", - "โœ", - "9", - "โ“‚", - "โ†ฉ", + "โ˜ธ", "โ˜น", "โ˜บ", - "4", - "โ—ผ", - "โš”", + "โ™€", + "โ™‚", "โ™Ÿ", - "โœ‰", - "โคต", - "๐ŸŽ–", - "โค", - "๐ŸŽš", - "๐Ÿ•Š", - "๐Ÿ—ฏ", - "๐Ÿ‹", - "๐Ÿ—ณ", - "โ†•", - "โ„", - "โœ‚", - "โžก", - "๐Ÿ˜", - "โ›ฑ", + "โ™ ", + "โ™ฃ", "โ™ฅ", - "๐Ÿ–‹", - "๐ŸŒฆ", - "โœ’", - "๐Ÿ“ฝ", + "โ™ฆ", + "โ™จ", + "โ™ป", + "โ™พ", + "โš’", + "โš”", + "โš•", "โš–", - "๐Ÿ–Œ", - "โ˜€", - "โ›ท", - "โ†™", - "โ€ผ", - "๐Ÿ•ด", - "โ†”", + "โš—", + "โš™", + "โš›", + "โšœ", + "โš ", + "โšง", + "โšฐ", + "โšฑ", + "โ›ˆ", "โ›", - "โคด", - "โš•", - "โน", - "๐Ÿ–ฑ", - "โฌ…", - "๐Ÿ›ค", - "๐Ÿ› ", - "๐Ÿ›ฉ", - "๐ŸŒช", - "๐Ÿ", - "โ–ช", + "โ›‘", + "โ›“", "โ›ฉ", - "๐Ÿ•ถ", - "๐Ÿ›ฃ", - "๐Ÿ–ฒ", - "๐Ÿ–ฅ", - "โš—", - "ยฉ", - "โ˜ข", - "โ†—", + "โ›ฐ", + "โ›ฑ", + "โ›ด", + "โ›ท", + "โ›ธ", + "โ›น", + "โœ‚", + "โœˆ", + "โœ‰", "โœŒ", - "โ„ข", - "๐ŸŽ›", "โœ", - "โ›‘", - "๐ŸŽ™", - "1", - "โฌ‡", - "๐Ÿ—“", - "โ›ˆ", + "โœ", + "โœ’", + "โœ”", + "โœ–", + "โœ", "โœก", - "๐Ÿ–Š", - "๐Ÿ–ผ", - "๐Ÿ›", + "โœณ", + "โœด", + "โ„", + "โ‡", + "โฃ", + "โค", + "โžก", + "โคด", + "โคต", + "โฌ…", + "โฌ†", + "โฌ‡", + "๐Ÿ…ฐ", + "๐Ÿ…ฑ", + "๐Ÿ…พ", + "๐Ÿ…ฟ", + "๐ŸŒก", + "๐ŸŒค", "๐ŸŒฅ", + "๐ŸŒฆ", + "๐ŸŒง", + "๐ŸŒจ", + "๐ŸŒฉ", + "๐ŸŒช", + "๐ŸŒซ", + "๐ŸŒฌ", "๐ŸŒถ", - "๐Ÿ—", - "๐Ÿ–จ", - "โ™พ", - "โ›ด", - "โ˜", - "8", - "โ—€", + "๐Ÿฝ", + "๐ŸŽ–", + "๐ŸŽ—", + "๐ŸŽ™", + "๐ŸŽš", + "๐ŸŽ›", + "๐ŸŽž", "๐ŸŽŸ", - "๐Ÿ•น", - "๐Ÿ—จ", - "ยฎ", - "โš™", + "๐Ÿ‹", "๐ŸŒ", - "๐Ÿ—œ", - "๐ŸŒค", - "โบ", - "โ˜˜", - "๐Ÿ…ฐ", + "๐Ÿ", + "๐ŸŽ", + "๐Ÿ”", + "๐Ÿ•", + "๐Ÿ–", + "๐Ÿ—", + "๐Ÿ˜", + "๐Ÿ™", + "๐Ÿš", + "๐Ÿ›", + "๐Ÿœ", + "๐Ÿ", + "๐Ÿž", "๐ŸŸ", - "โ–ถ", - "*", + "๐Ÿณ", + "๐Ÿต", + "๐Ÿท", + "๐Ÿฟ", + "๐Ÿ‘", + "๐Ÿ“ฝ", + "๐Ÿ•‰", + "๐Ÿ•Š", + "๐Ÿ•ฏ", + "๐Ÿ•ฐ", + "๐Ÿ•ณ", + "๐Ÿ•ด", + "๐Ÿ•ต", + "๐Ÿ•ถ", + "๐Ÿ•ท", + "๐Ÿ•ธ", + "๐Ÿ•น", "๐Ÿ–‡", - "๐ŸŒฌ", - "๐ŸŽž", + "๐Ÿ–Š", + "๐Ÿ–‹", + "๐Ÿ–Œ", + "๐Ÿ–", + "๐Ÿ–", + "๐Ÿ–ฅ", + "๐Ÿ–จ", + "๐Ÿ–ฑ", + "๐Ÿ–ฒ", + "๐Ÿ–ผ", "๐Ÿ—‚", - "โ–ซ", - "โฌ†", - "๐Ÿš", - "โ†˜", - "โ›“", - "โ˜ƒ", - } + "๐Ÿ—ƒ", + "๐Ÿ—„", + "๐Ÿ—‘", + "๐Ÿ—’", + "๐Ÿ—“", + "๐Ÿ—œ", + "๐Ÿ—", + "๐Ÿ—ž", + "๐Ÿ—ก", + "๐Ÿ—ฃ", + "๐Ÿ—จ", + "๐Ÿ—ฏ", + "๐Ÿ—ณ", + "๐Ÿ—บ", + "๐Ÿ›‹", + "๐Ÿ›", + "๐Ÿ›Ž", + "๐Ÿ›", + "๐Ÿ› ", + "๐Ÿ›ก", + "๐Ÿ›ข", + "๐Ÿ›ฃ", + "๐Ÿ›ค", + "๐Ÿ›ฅ", + "๐Ÿ›ฉ", + "๐Ÿ›ฐ", + "๐Ÿ›ณ", + ] ), ) diff --git a/rich/_unicode_data/unicode6-3-0.py b/rich/_unicode_data/unicode6-3-0.py index 9b7930971a..cffb7ee942 100644 --- a/rich/_unicode_data/unicode6-3-0.py +++ b/rich/_unicode_data/unicode6-3-0.py @@ -4,8 +4,8 @@ from rich.cells import CellTable cell_table = CellTable( - unicode_version="6.3.0", - widths=[ + "6.3.0", + [ (0, 0, 0), (768, 879, 0), (1155, 1161, 0), @@ -157,8 +157,7 @@ (7676, 7679, 0), (8203, 8207, 0), (8232, 8238, 0), - (8288, 8292, 0), - (8294, 8303, 0), + (8288, 8303, 0), (8400, 8432, 0), (9001, 9002, 2), (11503, 11505, 0), @@ -175,7 +174,9 @@ (12441, 12442, 0), (12443, 12543, 2), (12549, 12589, 2), - (12593, 12686, 2), + (12593, 12643, 2), + (12644, 12644, 0), + (12645, 12686, 2), (12688, 12730, 2), (12736, 12771, 2), (12784, 12830, 2), @@ -225,8 +226,9 @@ (65128, 65131, 2), (65279, 65279, 0), (65281, 65376, 2), + (65440, 65440, 0), (65504, 65510, 2), - (65529, 65531, 0), + (65520, 65531, 0), (66045, 66045, 0), (68097, 68099, 0), (68101, 68102, 0), @@ -257,225 +259,223 @@ (127568, 127569, 2), (131072, 196605, 2), (196608, 262141, 2), - (917505, 917505, 0), - (917536, 917631, 0), - (917760, 917999, 0), + (917504, 921599, 0), ], - narrow_to_wide=frozenset( - { - "2", - "โ†ช", - "โ˜", - "๐ŸŒง", - "๐Ÿ›ข", - "โ‰", - "โ™จ", - "โœ”", - "โ˜Ž", - "โ˜ฃ", - "๐Ÿ›", - "๐Ÿ…พ", - "๐Ÿ•ต", - "๐Ÿ—ฃ", - "โ™ฃ", - "๐Ÿ—ž", - "๐Ÿ…ฑ", - "โ˜ช", - "๐Ÿ•", - "๐Ÿž", - "๐Ÿ›ฐ", + frozenset( + [ + "#", + "*", "0", - "๐Ÿ›ณ", - "๐Ÿ•ณ", - "โ™ ", + "1", + "2", + "3", + "4", "5", + "6", + "7", + "8", + "9", + "ยฉ", + "ยฎ", + "โ€ผ", + "โ‰", + "โ„ข", + "โ„น", + "โ†”", + "โ†•", + "โ†–", + "โ†—", + "โ†˜", + "โ†™", + "โ†ฉ", + "โ†ช", "โŒจ", - "๐Ÿ›‹", - "๐Ÿ—’", - "โœณ", - "๐Ÿท", - "๐ŸŒฉ", - "โšง", - "๐Ÿ", - "๐Ÿ•‰", - "โ˜ฆ", - "๐Ÿ‘", - "๐Ÿ›", - "๐Ÿ—บ", - "๐ŸŽ—", - "๐Ÿ…ฟ", - "โ™‚", - "โš›", - "๐Ÿ›ก", + "โ", + "โญ", "โฎ", - "๐Ÿณ", - "๐Ÿ—ƒ", - "๐Ÿ—", - "๐Ÿฟ", - "โ—ป", - "๐Ÿ™", - "๐Ÿ›ฅ", - "6", + "โฏ", "โฑ", - "โ›ฐ", - "๐ŸŽ", - "๐Ÿ•ฏ", - "๐Ÿต", - "๐Ÿ–", - "โœ–", - "๐Ÿ›Ž", - "โ˜‚", - "#", - "โฃ", - "โ™ป", - "๐Ÿ—„", - "3", - "โญ", - "โ˜ธ", - "โ", - "โ›ธ", - "๐Ÿ–", + "โฒ", "โธ", - "โ™ฆ", - "โ‡", - "โฏ", - "โ›น", + "โน", + "โบ", + "โ“‚", + "โ–ช", + "โ–ซ", + "โ–ถ", + "โ—€", + "โ—ป", + "โ—ผ", + "โ˜€", + "โ˜", + "โ˜‚", + "โ˜ƒ", + "โ˜„", + "โ˜Ž", + "โ˜‘", + "โ˜˜", + "โ˜", "โ˜ ", - "๐Ÿ”", - "๐Ÿ•ธ", - "โ†–", - "๐Ÿ—‘", - "๐ŸŒก", - "โœˆ", - "โš’", - "7", - "โœ", - "๐Ÿ•ฐ", - "๐ŸŒซ", + "โ˜ข", + "โ˜ฃ", + "โ˜ฆ", + "โ˜ช", "โ˜ฎ", "โ˜ฏ", - "โฒ", - "๐Ÿ–", - "โœด", - "โšฐ", - "๐Ÿฝ", - "โšฑ", - "๐Ÿœ", - "๐Ÿ—ก", - "๐Ÿ•ท", - "โ™€", - "โ„น", - "๐ŸŒจ", - "โšœ", - "โ˜„", - "โ˜‘", - "โš ", - "โœ", - "9", - "โ“‚", - "โ†ฉ", + "โ˜ธ", "โ˜น", "โ˜บ", - "4", - "โ—ผ", - "โš”", + "โ™€", + "โ™‚", "โ™Ÿ", - "โœ‰", - "โคต", - "๐ŸŽ–", - "โค", - "๐ŸŽš", - "๐Ÿ•Š", - "๐Ÿ—ฏ", - "๐Ÿ‹", - "๐Ÿ—ณ", - "โ†•", - "โ„", - "โœ‚", - "โžก", - "๐Ÿ˜", - "โ›ฑ", + "โ™ ", + "โ™ฃ", "โ™ฅ", - "๐Ÿ–‹", - "๐ŸŒฆ", - "โœ’", - "๐Ÿ“ฝ", + "โ™ฆ", + "โ™จ", + "โ™ป", + "โ™พ", + "โš’", + "โš”", + "โš•", "โš–", - "๐Ÿ–Œ", - "โ˜€", - "โ›ท", - "โ†™", - "โ€ผ", - "๐Ÿ•ด", - "โ†”", + "โš—", + "โš™", + "โš›", + "โšœ", + "โš ", + "โšง", + "โšฐ", + "โšฑ", + "โ›ˆ", "โ›", - "โคด", - "โš•", - "โน", - "๐Ÿ–ฑ", - "โฌ…", - "๐Ÿ›ค", - "๐Ÿ› ", - "๐Ÿ›ฉ", - "๐ŸŒช", - "๐Ÿ", - "โ–ช", + "โ›‘", + "โ›“", "โ›ฉ", - "๐Ÿ•ถ", - "๐Ÿ›ฃ", - "๐Ÿ–ฒ", - "๐Ÿ–ฅ", - "โš—", - "ยฉ", - "โ˜ข", - "โ†—", + "โ›ฐ", + "โ›ฑ", + "โ›ด", + "โ›ท", + "โ›ธ", + "โ›น", + "โœ‚", + "โœˆ", + "โœ‰", "โœŒ", - "โ„ข", - "๐ŸŽ›", "โœ", - "โ›‘", - "๐ŸŽ™", - "1", - "โฌ‡", - "๐Ÿ—“", - "โ›ˆ", + "โœ", + "โœ’", + "โœ”", + "โœ–", + "โœ", "โœก", - "๐Ÿ–Š", - "๐Ÿ–ผ", - "๐Ÿ›", + "โœณ", + "โœด", + "โ„", + "โ‡", + "โฃ", + "โค", + "โžก", + "โคด", + "โคต", + "โฌ…", + "โฌ†", + "โฌ‡", + "๐Ÿ…ฐ", + "๐Ÿ…ฑ", + "๐Ÿ…พ", + "๐Ÿ…ฟ", + "๐ŸŒก", + "๐ŸŒค", "๐ŸŒฅ", + "๐ŸŒฆ", + "๐ŸŒง", + "๐ŸŒจ", + "๐ŸŒฉ", + "๐ŸŒช", + "๐ŸŒซ", + "๐ŸŒฌ", "๐ŸŒถ", - "๐Ÿ—", - "๐Ÿ–จ", - "โ™พ", - "โ›ด", - "โ˜", - "8", - "โ—€", + "๐Ÿฝ", + "๐ŸŽ–", + "๐ŸŽ—", + "๐ŸŽ™", + "๐ŸŽš", + "๐ŸŽ›", + "๐ŸŽž", "๐ŸŽŸ", - "๐Ÿ•น", - "๐Ÿ—จ", - "ยฎ", - "โš™", + "๐Ÿ‹", "๐ŸŒ", - "๐Ÿ—œ", - "๐ŸŒค", - "โบ", - "โ˜˜", - "๐Ÿ…ฐ", + "๐Ÿ", + "๐ŸŽ", + "๐Ÿ”", + "๐Ÿ•", + "๐Ÿ–", + "๐Ÿ—", + "๐Ÿ˜", + "๐Ÿ™", + "๐Ÿš", + "๐Ÿ›", + "๐Ÿœ", + "๐Ÿ", + "๐Ÿž", "๐ŸŸ", - "โ–ถ", - "*", + "๐Ÿณ", + "๐Ÿต", + "๐Ÿท", + "๐Ÿฟ", + "๐Ÿ‘", + "๐Ÿ“ฝ", + "๐Ÿ•‰", + "๐Ÿ•Š", + "๐Ÿ•ฏ", + "๐Ÿ•ฐ", + "๐Ÿ•ณ", + "๐Ÿ•ด", + "๐Ÿ•ต", + "๐Ÿ•ถ", + "๐Ÿ•ท", + "๐Ÿ•ธ", + "๐Ÿ•น", "๐Ÿ–‡", - "๐ŸŒฌ", - "๐ŸŽž", + "๐Ÿ–Š", + "๐Ÿ–‹", + "๐Ÿ–Œ", + "๐Ÿ–", + "๐Ÿ–", + "๐Ÿ–ฅ", + "๐Ÿ–จ", + "๐Ÿ–ฑ", + "๐Ÿ–ฒ", + "๐Ÿ–ผ", "๐Ÿ—‚", - "โ–ซ", - "โฌ†", - "๐Ÿš", - "โ†˜", - "โ›“", - "โ˜ƒ", - } + "๐Ÿ—ƒ", + "๐Ÿ—„", + "๐Ÿ—‘", + "๐Ÿ—’", + "๐Ÿ—“", + "๐Ÿ—œ", + "๐Ÿ—", + "๐Ÿ—ž", + "๐Ÿ—ก", + "๐Ÿ—ฃ", + "๐Ÿ—จ", + "๐Ÿ—ฏ", + "๐Ÿ—ณ", + "๐Ÿ—บ", + "๐Ÿ›‹", + "๐Ÿ›", + "๐Ÿ›Ž", + "๐Ÿ›", + "๐Ÿ› ", + "๐Ÿ›ก", + "๐Ÿ›ข", + "๐Ÿ›ฃ", + "๐Ÿ›ค", + "๐Ÿ›ฅ", + "๐Ÿ›ฉ", + "๐Ÿ›ฐ", + "๐Ÿ›ณ", + ] ), ) diff --git a/rich/_unicode_data/unicode7-0-0.py b/rich/_unicode_data/unicode7-0-0.py index 7809daf985..996478ac24 100644 --- a/rich/_unicode_data/unicode7-0-0.py +++ b/rich/_unicode_data/unicode7-0-0.py @@ -4,8 +4,8 @@ from rich.cells import CellTable cell_table = CellTable( - unicode_version="7.0.0", - widths=[ + "7.0.0", + [ (0, 0, 0), (768, 879, 0), (1155, 1161, 0), @@ -158,8 +158,7 @@ (7676, 7679, 0), (8203, 8207, 0), (8232, 8238, 0), - (8288, 8292, 0), - (8294, 8303, 0), + (8288, 8303, 0), (8400, 8432, 0), (9001, 9002, 2), (11503, 11505, 0), @@ -176,7 +175,9 @@ (12441, 12442, 0), (12443, 12543, 2), (12549, 12589, 2), - (12593, 12686, 2), + (12593, 12643, 2), + (12644, 12644, 0), + (12645, 12686, 2), (12688, 12730, 2), (12736, 12771, 2), (12784, 12830, 2), @@ -227,8 +228,9 @@ (65128, 65131, 2), (65279, 65279, 0), (65281, 65376, 2), + (65440, 65440, 0), (65504, 65510, 2), - (65529, 65531, 0), + (65520, 65531, 0), (66045, 66045, 0), (66272, 66272, 0), (66422, 66426, 0), @@ -283,225 +285,223 @@ (127568, 127569, 2), (131072, 196605, 2), (196608, 262141, 2), - (917505, 917505, 0), - (917536, 917631, 0), - (917760, 917999, 0), + (917504, 921599, 0), ], - narrow_to_wide=frozenset( - { - "2", - "โ†ช", - "โ˜", - "๐ŸŒง", - "๐Ÿ›ข", - "โ‰", - "โ™จ", - "โœ”", - "โ˜Ž", - "โ˜ฃ", - "๐Ÿ›", - "๐Ÿ…พ", - "๐Ÿ•ต", - "๐Ÿ—ฃ", - "โ™ฃ", - "๐Ÿ—ž", - "๐Ÿ…ฑ", - "โ˜ช", - "๐Ÿ•", - "๐Ÿž", - "๐Ÿ›ฐ", + frozenset( + [ + "#", + "*", "0", - "๐Ÿ›ณ", - "๐Ÿ•ณ", - "โ™ ", + "1", + "2", + "3", + "4", "5", + "6", + "7", + "8", + "9", + "ยฉ", + "ยฎ", + "โ€ผ", + "โ‰", + "โ„ข", + "โ„น", + "โ†”", + "โ†•", + "โ†–", + "โ†—", + "โ†˜", + "โ†™", + "โ†ฉ", + "โ†ช", "โŒจ", - "๐Ÿ›‹", - "๐Ÿ—’", - "โœณ", - "๐Ÿท", - "๐ŸŒฉ", - "โšง", - "๐Ÿ", - "๐Ÿ•‰", - "โ˜ฆ", - "๐Ÿ‘", - "๐Ÿ›", - "๐Ÿ—บ", - "๐ŸŽ—", - "๐Ÿ…ฟ", - "โ™‚", - "โš›", - "๐Ÿ›ก", + "โ", + "โญ", "โฎ", - "๐Ÿณ", - "๐Ÿ—ƒ", - "๐Ÿ—", - "๐Ÿฟ", - "โ—ป", - "๐Ÿ™", - "๐Ÿ›ฅ", - "6", + "โฏ", "โฑ", - "โ›ฐ", - "๐ŸŽ", - "๐Ÿ•ฏ", - "๐Ÿต", - "๐Ÿ–", - "โœ–", - "๐Ÿ›Ž", - "โ˜‚", - "#", - "โฃ", - "โ™ป", - "๐Ÿ—„", - "3", - "โญ", - "โ˜ธ", - "โ", - "โ›ธ", - "๐Ÿ–", + "โฒ", "โธ", - "โ™ฆ", - "โ‡", - "โฏ", - "โ›น", + "โน", + "โบ", + "โ“‚", + "โ–ช", + "โ–ซ", + "โ–ถ", + "โ—€", + "โ—ป", + "โ—ผ", + "โ˜€", + "โ˜", + "โ˜‚", + "โ˜ƒ", + "โ˜„", + "โ˜Ž", + "โ˜‘", + "โ˜˜", + "โ˜", "โ˜ ", - "๐Ÿ”", - "๐Ÿ•ธ", - "โ†–", - "๐Ÿ—‘", - "๐ŸŒก", - "โœˆ", - "โš’", - "7", - "โœ", - "๐Ÿ•ฐ", - "๐ŸŒซ", + "โ˜ข", + "โ˜ฃ", + "โ˜ฆ", + "โ˜ช", "โ˜ฎ", "โ˜ฏ", - "โฒ", - "๐Ÿ–", - "โœด", - "โšฐ", - "๐Ÿฝ", - "โšฑ", - "๐Ÿœ", - "๐Ÿ—ก", - "๐Ÿ•ท", - "โ™€", - "โ„น", - "๐ŸŒจ", - "โšœ", - "โ˜„", - "โ˜‘", - "โš ", - "โœ", - "9", - "โ“‚", - "โ†ฉ", + "โ˜ธ", "โ˜น", "โ˜บ", - "4", - "โ—ผ", - "โš”", + "โ™€", + "โ™‚", "โ™Ÿ", - "โœ‰", - "โคต", - "๐ŸŽ–", - "โค", - "๐ŸŽš", - "๐Ÿ•Š", - "๐Ÿ—ฏ", - "๐Ÿ‹", - "๐Ÿ—ณ", - "โ†•", - "โ„", - "โœ‚", - "โžก", - "๐Ÿ˜", - "โ›ฑ", + "โ™ ", + "โ™ฃ", "โ™ฅ", - "๐Ÿ–‹", - "๐ŸŒฆ", - "โœ’", - "๐Ÿ“ฝ", + "โ™ฆ", + "โ™จ", + "โ™ป", + "โ™พ", + "โš’", + "โš”", + "โš•", "โš–", - "๐Ÿ–Œ", - "โ˜€", - "โ›ท", - "โ†™", - "โ€ผ", - "๐Ÿ•ด", - "โ†”", + "โš—", + "โš™", + "โš›", + "โšœ", + "โš ", + "โšง", + "โšฐ", + "โšฑ", + "โ›ˆ", "โ›", - "โคด", - "โš•", - "โน", - "๐Ÿ–ฑ", - "โฌ…", - "๐Ÿ›ค", - "๐Ÿ› ", - "๐Ÿ›ฉ", - "๐ŸŒช", - "๐Ÿ", - "โ–ช", + "โ›‘", + "โ›“", "โ›ฉ", - "๐Ÿ•ถ", - "๐Ÿ›ฃ", - "๐Ÿ–ฒ", - "๐Ÿ–ฅ", - "โš—", - "ยฉ", - "โ˜ข", - "โ†—", + "โ›ฐ", + "โ›ฑ", + "โ›ด", + "โ›ท", + "โ›ธ", + "โ›น", + "โœ‚", + "โœˆ", + "โœ‰", "โœŒ", - "โ„ข", - "๐ŸŽ›", "โœ", - "โ›‘", - "๐ŸŽ™", - "1", - "โฌ‡", - "๐Ÿ—“", - "โ›ˆ", + "โœ", + "โœ’", + "โœ”", + "โœ–", + "โœ", "โœก", - "๐Ÿ–Š", - "๐Ÿ–ผ", - "๐Ÿ›", + "โœณ", + "โœด", + "โ„", + "โ‡", + "โฃ", + "โค", + "โžก", + "โคด", + "โคต", + "โฌ…", + "โฌ†", + "โฌ‡", + "๐Ÿ…ฐ", + "๐Ÿ…ฑ", + "๐Ÿ…พ", + "๐Ÿ…ฟ", + "๐ŸŒก", + "๐ŸŒค", "๐ŸŒฅ", + "๐ŸŒฆ", + "๐ŸŒง", + "๐ŸŒจ", + "๐ŸŒฉ", + "๐ŸŒช", + "๐ŸŒซ", + "๐ŸŒฌ", "๐ŸŒถ", - "๐Ÿ—", - "๐Ÿ–จ", - "โ™พ", - "โ›ด", - "โ˜", - "8", - "โ—€", + "๐Ÿฝ", + "๐ŸŽ–", + "๐ŸŽ—", + "๐ŸŽ™", + "๐ŸŽš", + "๐ŸŽ›", + "๐ŸŽž", "๐ŸŽŸ", - "๐Ÿ•น", - "๐Ÿ—จ", - "ยฎ", - "โš™", + "๐Ÿ‹", "๐ŸŒ", - "๐Ÿ—œ", - "๐ŸŒค", - "โบ", - "โ˜˜", - "๐Ÿ…ฐ", + "๐Ÿ", + "๐ŸŽ", + "๐Ÿ”", + "๐Ÿ•", + "๐Ÿ–", + "๐Ÿ—", + "๐Ÿ˜", + "๐Ÿ™", + "๐Ÿš", + "๐Ÿ›", + "๐Ÿœ", + "๐Ÿ", + "๐Ÿž", "๐ŸŸ", - "โ–ถ", - "*", + "๐Ÿณ", + "๐Ÿต", + "๐Ÿท", + "๐Ÿฟ", + "๐Ÿ‘", + "๐Ÿ“ฝ", + "๐Ÿ•‰", + "๐Ÿ•Š", + "๐Ÿ•ฏ", + "๐Ÿ•ฐ", + "๐Ÿ•ณ", + "๐Ÿ•ด", + "๐Ÿ•ต", + "๐Ÿ•ถ", + "๐Ÿ•ท", + "๐Ÿ•ธ", + "๐Ÿ•น", "๐Ÿ–‡", - "๐ŸŒฌ", - "๐ŸŽž", + "๐Ÿ–Š", + "๐Ÿ–‹", + "๐Ÿ–Œ", + "๐Ÿ–", + "๐Ÿ–", + "๐Ÿ–ฅ", + "๐Ÿ–จ", + "๐Ÿ–ฑ", + "๐Ÿ–ฒ", + "๐Ÿ–ผ", "๐Ÿ—‚", - "โ–ซ", - "โฌ†", - "๐Ÿš", - "โ†˜", - "โ›“", - "โ˜ƒ", - } + "๐Ÿ—ƒ", + "๐Ÿ—„", + "๐Ÿ—‘", + "๐Ÿ—’", + "๐Ÿ—“", + "๐Ÿ—œ", + "๐Ÿ—", + "๐Ÿ—ž", + "๐Ÿ—ก", + "๐Ÿ—ฃ", + "๐Ÿ—จ", + "๐Ÿ—ฏ", + "๐Ÿ—ณ", + "๐Ÿ—บ", + "๐Ÿ›‹", + "๐Ÿ›", + "๐Ÿ›Ž", + "๐Ÿ›", + "๐Ÿ› ", + "๐Ÿ›ก", + "๐Ÿ›ข", + "๐Ÿ›ฃ", + "๐Ÿ›ค", + "๐Ÿ›ฅ", + "๐Ÿ›ฉ", + "๐Ÿ›ฐ", + "๐Ÿ›ณ", + ] ), ) diff --git a/rich/_unicode_data/unicode8-0-0.py b/rich/_unicode_data/unicode8-0-0.py index 6b1b7889f8..ae34a382a6 100644 --- a/rich/_unicode_data/unicode8-0-0.py +++ b/rich/_unicode_data/unicode8-0-0.py @@ -4,8 +4,8 @@ from rich.cells import CellTable cell_table = CellTable( - unicode_version="8.0.0", - widths=[ + "8.0.0", + [ (0, 0, 0), (768, 879, 0), (1155, 1161, 0), @@ -156,8 +156,7 @@ (7676, 7679, 0), (8203, 8207, 0), (8232, 8238, 0), - (8288, 8292, 0), - (8294, 8303, 0), + (8288, 8303, 0), (8400, 8432, 0), (9001, 9002, 2), (11503, 11505, 0), @@ -174,7 +173,9 @@ (12441, 12442, 0), (12443, 12543, 2), (12549, 12589, 2), - (12593, 12686, 2), + (12593, 12643, 2), + (12644, 12644, 0), + (12645, 12686, 2), (12688, 12730, 2), (12736, 12771, 2), (12784, 12830, 2), @@ -225,8 +226,9 @@ (65128, 65131, 2), (65279, 65279, 0), (65281, 65376, 2), + (65440, 65440, 0), (65504, 65510, 2), - (65529, 65531, 0), + (65520, 65531, 0), (66045, 66045, 0), (66272, 66272, 0), (66422, 66426, 0), @@ -291,225 +293,223 @@ (127995, 127999, 0), (131072, 196605, 2), (196608, 262141, 2), - (917505, 917505, 0), - (917536, 917631, 0), - (917760, 917999, 0), + (917504, 921599, 0), ], - narrow_to_wide=frozenset( - { - "2", - "โ†ช", - "โ˜", - "๐ŸŒง", - "๐Ÿ›ข", - "โ‰", - "โ™จ", - "โœ”", - "โ˜Ž", - "โ˜ฃ", - "๐Ÿ›", - "๐Ÿ…พ", - "๐Ÿ•ต", - "๐Ÿ—ฃ", - "โ™ฃ", - "๐Ÿ—ž", - "๐Ÿ…ฑ", - "โ˜ช", - "๐Ÿ•", - "๐Ÿž", - "๐Ÿ›ฐ", + frozenset( + [ + "#", + "*", "0", - "๐Ÿ›ณ", - "๐Ÿ•ณ", - "โ™ ", + "1", + "2", + "3", + "4", "5", + "6", + "7", + "8", + "9", + "ยฉ", + "ยฎ", + "โ€ผ", + "โ‰", + "โ„ข", + "โ„น", + "โ†”", + "โ†•", + "โ†–", + "โ†—", + "โ†˜", + "โ†™", + "โ†ฉ", + "โ†ช", "โŒจ", - "๐Ÿ›‹", - "๐Ÿ—’", - "โœณ", - "๐Ÿท", - "๐ŸŒฉ", - "โšง", - "๐Ÿ", - "๐Ÿ•‰", - "โ˜ฆ", - "๐Ÿ‘", - "๐Ÿ›", - "๐Ÿ—บ", - "๐ŸŽ—", - "๐Ÿ…ฟ", - "โ™‚", - "โš›", - "๐Ÿ›ก", + "โ", + "โญ", "โฎ", - "๐Ÿณ", - "๐Ÿ—ƒ", - "๐Ÿ—", - "๐Ÿฟ", - "โ—ป", - "๐Ÿ™", - "๐Ÿ›ฅ", - "6", + "โฏ", "โฑ", - "โ›ฐ", - "๐ŸŽ", - "๐Ÿ•ฏ", - "๐Ÿต", - "๐Ÿ–", - "โœ–", - "๐Ÿ›Ž", - "โ˜‚", - "#", - "โฃ", - "โ™ป", - "๐Ÿ—„", - "3", - "โญ", - "โ˜ธ", - "โ", - "โ›ธ", - "๐Ÿ–", + "โฒ", "โธ", - "โ™ฆ", - "โ‡", - "โฏ", - "โ›น", + "โน", + "โบ", + "โ“‚", + "โ–ช", + "โ–ซ", + "โ–ถ", + "โ—€", + "โ—ป", + "โ—ผ", + "โ˜€", + "โ˜", + "โ˜‚", + "โ˜ƒ", + "โ˜„", + "โ˜Ž", + "โ˜‘", + "โ˜˜", + "โ˜", "โ˜ ", - "๐Ÿ”", - "๐Ÿ•ธ", - "โ†–", - "๐Ÿ—‘", - "๐ŸŒก", - "โœˆ", - "โš’", - "7", - "โœ", - "๐Ÿ•ฐ", - "๐ŸŒซ", + "โ˜ข", + "โ˜ฃ", + "โ˜ฆ", + "โ˜ช", "โ˜ฎ", "โ˜ฏ", - "โฒ", - "๐Ÿ–", - "โœด", - "โšฐ", - "๐Ÿฝ", - "โšฑ", - "๐Ÿœ", - "๐Ÿ—ก", - "๐Ÿ•ท", - "โ™€", - "โ„น", - "๐ŸŒจ", - "โšœ", - "โ˜„", - "โ˜‘", - "โš ", - "โœ", - "9", - "โ“‚", - "โ†ฉ", + "โ˜ธ", "โ˜น", "โ˜บ", - "4", - "โ—ผ", - "โš”", + "โ™€", + "โ™‚", "โ™Ÿ", - "โœ‰", - "โคต", - "๐ŸŽ–", - "โค", - "๐ŸŽš", - "๐Ÿ•Š", - "๐Ÿ—ฏ", - "๐Ÿ‹", - "๐Ÿ—ณ", - "โ†•", - "โ„", - "โœ‚", - "โžก", - "๐Ÿ˜", - "โ›ฑ", + "โ™ ", + "โ™ฃ", "โ™ฅ", - "๐Ÿ–‹", - "๐ŸŒฆ", - "โœ’", - "๐Ÿ“ฝ", + "โ™ฆ", + "โ™จ", + "โ™ป", + "โ™พ", + "โš’", + "โš”", + "โš•", "โš–", - "๐Ÿ–Œ", - "โ˜€", - "โ›ท", - "โ†™", - "โ€ผ", - "๐Ÿ•ด", - "โ†”", + "โš—", + "โš™", + "โš›", + "โšœ", + "โš ", + "โšง", + "โšฐ", + "โšฑ", + "โ›ˆ", "โ›", - "โคด", - "โš•", - "โน", - "๐Ÿ–ฑ", - "โฌ…", - "๐Ÿ›ค", - "๐Ÿ› ", - "๐Ÿ›ฉ", - "๐ŸŒช", - "๐Ÿ", - "โ–ช", + "โ›‘", + "โ›“", "โ›ฉ", - "๐Ÿ•ถ", - "๐Ÿ›ฃ", - "๐Ÿ–ฒ", - "๐Ÿ–ฅ", - "โš—", - "ยฉ", - "โ˜ข", - "โ†—", + "โ›ฐ", + "โ›ฑ", + "โ›ด", + "โ›ท", + "โ›ธ", + "โ›น", + "โœ‚", + "โœˆ", + "โœ‰", "โœŒ", - "โ„ข", - "๐ŸŽ›", "โœ", - "โ›‘", - "๐ŸŽ™", - "1", - "โฌ‡", - "๐Ÿ—“", - "โ›ˆ", + "โœ", + "โœ’", + "โœ”", + "โœ–", + "โœ", "โœก", - "๐Ÿ–Š", - "๐Ÿ–ผ", - "๐Ÿ›", + "โœณ", + "โœด", + "โ„", + "โ‡", + "โฃ", + "โค", + "โžก", + "โคด", + "โคต", + "โฌ…", + "โฌ†", + "โฌ‡", + "๐Ÿ…ฐ", + "๐Ÿ…ฑ", + "๐Ÿ…พ", + "๐Ÿ…ฟ", + "๐ŸŒก", + "๐ŸŒค", "๐ŸŒฅ", + "๐ŸŒฆ", + "๐ŸŒง", + "๐ŸŒจ", + "๐ŸŒฉ", + "๐ŸŒช", + "๐ŸŒซ", + "๐ŸŒฌ", "๐ŸŒถ", - "๐Ÿ—", - "๐Ÿ–จ", - "โ™พ", - "โ›ด", - "โ˜", - "8", - "โ—€", + "๐Ÿฝ", + "๐ŸŽ–", + "๐ŸŽ—", + "๐ŸŽ™", + "๐ŸŽš", + "๐ŸŽ›", + "๐ŸŽž", "๐ŸŽŸ", - "๐Ÿ•น", - "๐Ÿ—จ", - "ยฎ", - "โš™", + "๐Ÿ‹", "๐ŸŒ", - "๐Ÿ—œ", - "๐ŸŒค", - "โบ", - "โ˜˜", - "๐Ÿ…ฐ", + "๐Ÿ", + "๐ŸŽ", + "๐Ÿ”", + "๐Ÿ•", + "๐Ÿ–", + "๐Ÿ—", + "๐Ÿ˜", + "๐Ÿ™", + "๐Ÿš", + "๐Ÿ›", + "๐Ÿœ", + "๐Ÿ", + "๐Ÿž", "๐ŸŸ", - "โ–ถ", - "*", + "๐Ÿณ", + "๐Ÿต", + "๐Ÿท", + "๐Ÿฟ", + "๐Ÿ‘", + "๐Ÿ“ฝ", + "๐Ÿ•‰", + "๐Ÿ•Š", + "๐Ÿ•ฏ", + "๐Ÿ•ฐ", + "๐Ÿ•ณ", + "๐Ÿ•ด", + "๐Ÿ•ต", + "๐Ÿ•ถ", + "๐Ÿ•ท", + "๐Ÿ•ธ", + "๐Ÿ•น", "๐Ÿ–‡", - "๐ŸŒฌ", - "๐ŸŽž", + "๐Ÿ–Š", + "๐Ÿ–‹", + "๐Ÿ–Œ", + "๐Ÿ–", + "๐Ÿ–", + "๐Ÿ–ฅ", + "๐Ÿ–จ", + "๐Ÿ–ฑ", + "๐Ÿ–ฒ", + "๐Ÿ–ผ", "๐Ÿ—‚", - "โ–ซ", - "โฌ†", - "๐Ÿš", - "โ†˜", - "โ›“", - "โ˜ƒ", - } + "๐Ÿ—ƒ", + "๐Ÿ—„", + "๐Ÿ—‘", + "๐Ÿ—’", + "๐Ÿ—“", + "๐Ÿ—œ", + "๐Ÿ—", + "๐Ÿ—ž", + "๐Ÿ—ก", + "๐Ÿ—ฃ", + "๐Ÿ—จ", + "๐Ÿ—ฏ", + "๐Ÿ—ณ", + "๐Ÿ—บ", + "๐Ÿ›‹", + "๐Ÿ›", + "๐Ÿ›Ž", + "๐Ÿ›", + "๐Ÿ› ", + "๐Ÿ›ก", + "๐Ÿ›ข", + "๐Ÿ›ฃ", + "๐Ÿ›ค", + "๐Ÿ›ฅ", + "๐Ÿ›ฉ", + "๐Ÿ›ฐ", + "๐Ÿ›ณ", + ] ), ) diff --git a/rich/_unicode_data/unicode9-0-0.py b/rich/_unicode_data/unicode9-0-0.py index 329020dcd7..b15f67d44e 100644 --- a/rich/_unicode_data/unicode9-0-0.py +++ b/rich/_unicode_data/unicode9-0-0.py @@ -4,8 +4,8 @@ from rich.cells import CellTable cell_table = CellTable( - unicode_version="9.0.0", - widths=[ + "9.0.0", + [ (0, 0, 0), (768, 879, 0), (1155, 1161, 0), @@ -14,16 +14,14 @@ (1473, 1474, 0), (1476, 1477, 0), (1479, 1479, 0), - (1536, 1541, 0), (1552, 1562, 0), (1564, 1564, 0), (1611, 1631, 0), (1648, 1648, 0), - (1750, 1757, 0), + (1750, 1756, 0), (1759, 1764, 0), (1767, 1768, 0), (1770, 1773, 0), - (1807, 1807, 0), (1809, 1809, 0), (1840, 1866, 0), (1958, 1968, 0), @@ -33,7 +31,8 @@ (2085, 2087, 0), (2089, 2093, 0), (2137, 2139, 0), - (2260, 2307, 0), + (2260, 2273, 0), + (2275, 2307, 0), (2362, 2364, 0), (2366, 2383, 0), (2385, 2391, 0), @@ -157,8 +156,7 @@ (7675, 7679, 0), (8203, 8207, 0), (8232, 8238, 0), - (8288, 8292, 0), - (8294, 8303, 0), + (8288, 8303, 0), (8400, 8432, 0), (8986, 8987, 2), (9001, 9002, 2), @@ -208,7 +206,9 @@ (12441, 12442, 0), (12443, 12543, 2), (12549, 12589, 2), - (12593, 12686, 2), + (12593, 12643, 2), + (12644, 12644, 0), + (12645, 12686, 2), (12688, 12730, 2), (12736, 12771, 2), (12784, 12830, 2), @@ -259,8 +259,9 @@ (65128, 65131, 2), (65279, 65279, 0), (65281, 65376, 2), + (65440, 65440, 0), (65504, 65510, 2), - (65529, 65531, 0), + (65520, 65531, 0), (66045, 66045, 0), (66272, 66272, 0), (66422, 66426, 0), @@ -274,7 +275,6 @@ (69688, 69702, 0), (69759, 69762, 0), (69808, 69818, 0), - (69821, 69821, 0), (69888, 69890, 0), (69927, 69940, 0), (70003, 70003, 0), @@ -376,225 +376,223 @@ (129472, 129472, 2), (131072, 196605, 2), (196608, 262141, 2), - (917505, 917505, 0), - (917536, 917631, 0), - (917760, 917999, 0), + (917504, 921599, 0), ], - narrow_to_wide=frozenset( - { - "2", - "โ†ช", - "โ˜", - "๐ŸŒง", - "๐Ÿ›ข", - "โ‰", - "โ™จ", - "โœ”", - "โ˜Ž", - "โ˜ฃ", - "๐Ÿ›", - "๐Ÿ…พ", - "๐Ÿ•ต", - "๐Ÿ—ฃ", - "โ™ฃ", - "๐Ÿ—ž", - "๐Ÿ…ฑ", - "โ˜ช", - "๐Ÿ•", - "๐Ÿž", - "๐Ÿ›ฐ", + frozenset( + [ + "#", + "*", "0", - "๐Ÿ›ณ", - "๐Ÿ•ณ", - "โ™ ", + "1", + "2", + "3", + "4", "5", + "6", + "7", + "8", + "9", + "ยฉ", + "ยฎ", + "โ€ผ", + "โ‰", + "โ„ข", + "โ„น", + "โ†”", + "โ†•", + "โ†–", + "โ†—", + "โ†˜", + "โ†™", + "โ†ฉ", + "โ†ช", "โŒจ", - "๐Ÿ›‹", - "๐Ÿ—’", - "โœณ", - "๐Ÿท", - "๐ŸŒฉ", - "โšง", - "๐Ÿ", - "๐Ÿ•‰", - "โ˜ฆ", - "๐Ÿ‘", - "๐Ÿ›", - "๐Ÿ—บ", - "๐ŸŽ—", - "๐Ÿ…ฟ", - "โ™‚", - "โš›", - "๐Ÿ›ก", + "โ", + "โญ", "โฎ", - "๐Ÿณ", - "๐Ÿ—ƒ", - "๐Ÿ—", - "๐Ÿฟ", - "โ—ป", - "๐Ÿ™", - "๐Ÿ›ฅ", - "6", + "โฏ", "โฑ", - "โ›ฐ", - "๐ŸŽ", - "๐Ÿ•ฏ", - "๐Ÿต", - "๐Ÿ–", - "โœ–", - "๐Ÿ›Ž", - "โ˜‚", - "#", - "โฃ", - "โ™ป", - "๐Ÿ—„", - "3", - "โญ", - "โ˜ธ", - "โ", - "โ›ธ", - "๐Ÿ–", + "โฒ", "โธ", - "โ™ฆ", - "โ‡", - "โฏ", - "โ›น", + "โน", + "โบ", + "โ“‚", + "โ–ช", + "โ–ซ", + "โ–ถ", + "โ—€", + "โ—ป", + "โ—ผ", + "โ˜€", + "โ˜", + "โ˜‚", + "โ˜ƒ", + "โ˜„", + "โ˜Ž", + "โ˜‘", + "โ˜˜", + "โ˜", "โ˜ ", - "๐Ÿ”", - "๐Ÿ•ธ", - "โ†–", - "๐Ÿ—‘", - "๐ŸŒก", - "โœˆ", - "โš’", - "7", - "โœ", - "๐Ÿ•ฐ", - "๐ŸŒซ", + "โ˜ข", + "โ˜ฃ", + "โ˜ฆ", + "โ˜ช", "โ˜ฎ", "โ˜ฏ", - "โฒ", - "๐Ÿ–", - "โœด", - "โšฐ", - "๐Ÿฝ", - "โšฑ", - "๐Ÿœ", - "๐Ÿ—ก", - "๐Ÿ•ท", - "โ™€", - "โ„น", - "๐ŸŒจ", - "โšœ", - "โ˜„", - "โ˜‘", - "โš ", - "โœ", - "9", - "โ“‚", - "โ†ฉ", + "โ˜ธ", "โ˜น", "โ˜บ", - "4", - "โ—ผ", - "โš”", + "โ™€", + "โ™‚", "โ™Ÿ", - "โœ‰", - "โคต", - "๐ŸŽ–", - "โค", - "๐ŸŽš", - "๐Ÿ•Š", - "๐Ÿ—ฏ", - "๐Ÿ‹", - "๐Ÿ—ณ", - "โ†•", - "โ„", - "โœ‚", - "โžก", - "๐Ÿ˜", - "โ›ฑ", + "โ™ ", + "โ™ฃ", "โ™ฅ", - "๐Ÿ–‹", - "๐ŸŒฆ", - "โœ’", - "๐Ÿ“ฝ", + "โ™ฆ", + "โ™จ", + "โ™ป", + "โ™พ", + "โš’", + "โš”", + "โš•", "โš–", - "๐Ÿ–Œ", - "โ˜€", - "โ›ท", - "โ†™", - "โ€ผ", - "๐Ÿ•ด", - "โ†”", + "โš—", + "โš™", + "โš›", + "โšœ", + "โš ", + "โšง", + "โšฐ", + "โšฑ", + "โ›ˆ", "โ›", - "โคด", - "โš•", - "โน", - "๐Ÿ–ฑ", - "โฌ…", - "๐Ÿ›ค", - "๐Ÿ› ", - "๐Ÿ›ฉ", - "๐ŸŒช", - "๐Ÿ", - "โ–ช", + "โ›‘", + "โ›“", "โ›ฉ", - "๐Ÿ•ถ", - "๐Ÿ›ฃ", - "๐Ÿ–ฒ", - "๐Ÿ–ฅ", - "โš—", - "ยฉ", - "โ˜ข", - "โ†—", + "โ›ฐ", + "โ›ฑ", + "โ›ด", + "โ›ท", + "โ›ธ", + "โ›น", + "โœ‚", + "โœˆ", + "โœ‰", "โœŒ", - "โ„ข", - "๐ŸŽ›", "โœ", - "โ›‘", - "๐ŸŽ™", - "1", - "โฌ‡", - "๐Ÿ—“", - "โ›ˆ", + "โœ", + "โœ’", + "โœ”", + "โœ–", + "โœ", "โœก", - "๐Ÿ–Š", - "๐Ÿ–ผ", - "๐Ÿ›", + "โœณ", + "โœด", + "โ„", + "โ‡", + "โฃ", + "โค", + "โžก", + "โคด", + "โคต", + "โฌ…", + "โฌ†", + "โฌ‡", + "๐Ÿ…ฐ", + "๐Ÿ…ฑ", + "๐Ÿ…พ", + "๐Ÿ…ฟ", + "๐ŸŒก", + "๐ŸŒค", "๐ŸŒฅ", + "๐ŸŒฆ", + "๐ŸŒง", + "๐ŸŒจ", + "๐ŸŒฉ", + "๐ŸŒช", + "๐ŸŒซ", + "๐ŸŒฌ", "๐ŸŒถ", - "๐Ÿ—", - "๐Ÿ–จ", - "โ™พ", - "โ›ด", - "โ˜", - "8", - "โ—€", + "๐Ÿฝ", + "๐ŸŽ–", + "๐ŸŽ—", + "๐ŸŽ™", + "๐ŸŽš", + "๐ŸŽ›", + "๐ŸŽž", "๐ŸŽŸ", - "๐Ÿ•น", - "๐Ÿ—จ", - "ยฎ", - "โš™", + "๐Ÿ‹", "๐ŸŒ", - "๐Ÿ—œ", - "๐ŸŒค", - "โบ", - "โ˜˜", - "๐Ÿ…ฐ", + "๐Ÿ", + "๐ŸŽ", + "๐Ÿ”", + "๐Ÿ•", + "๐Ÿ–", + "๐Ÿ—", + "๐Ÿ˜", + "๐Ÿ™", + "๐Ÿš", + "๐Ÿ›", + "๐Ÿœ", + "๐Ÿ", + "๐Ÿž", "๐ŸŸ", - "โ–ถ", - "*", + "๐Ÿณ", + "๐Ÿต", + "๐Ÿท", + "๐Ÿฟ", + "๐Ÿ‘", + "๐Ÿ“ฝ", + "๐Ÿ•‰", + "๐Ÿ•Š", + "๐Ÿ•ฏ", + "๐Ÿ•ฐ", + "๐Ÿ•ณ", + "๐Ÿ•ด", + "๐Ÿ•ต", + "๐Ÿ•ถ", + "๐Ÿ•ท", + "๐Ÿ•ธ", + "๐Ÿ•น", "๐Ÿ–‡", - "๐ŸŒฌ", - "๐ŸŽž", + "๐Ÿ–Š", + "๐Ÿ–‹", + "๐Ÿ–Œ", + "๐Ÿ–", + "๐Ÿ–", + "๐Ÿ–ฅ", + "๐Ÿ–จ", + "๐Ÿ–ฑ", + "๐Ÿ–ฒ", + "๐Ÿ–ผ", "๐Ÿ—‚", - "โ–ซ", - "โฌ†", - "๐Ÿš", - "โ†˜", - "โ›“", - "โ˜ƒ", - } + "๐Ÿ—ƒ", + "๐Ÿ—„", + "๐Ÿ—‘", + "๐Ÿ—’", + "๐Ÿ—“", + "๐Ÿ—œ", + "๐Ÿ—", + "๐Ÿ—ž", + "๐Ÿ—ก", + "๐Ÿ—ฃ", + "๐Ÿ—จ", + "๐Ÿ—ฏ", + "๐Ÿ—ณ", + "๐Ÿ—บ", + "๐Ÿ›‹", + "๐Ÿ›", + "๐Ÿ›Ž", + "๐Ÿ›", + "๐Ÿ› ", + "๐Ÿ›ก", + "๐Ÿ›ข", + "๐Ÿ›ฃ", + "๐Ÿ›ค", + "๐Ÿ›ฅ", + "๐Ÿ›ฉ", + "๐Ÿ›ฐ", + "๐Ÿ›ณ", + ] ), ) diff --git a/tools/make_width_tables.py b/tools/make_width_tables.py index 8f0e0341fc..72764277e8 100644 --- a/tools/make_width_tables.py +++ b/tools/make_width_tables.py @@ -43,7 +43,7 @@ from rich.cells import CellTable -cell_table = {cell_table!r} +cell_table = CellTable({cell_table.unicode_version!r}, {cell_table.widths!r}, frozenset({sorted(cell_table.narrow_to_wide)!r})) """ version_path = version.replace(".", "-") path = Path(f"../rich/_unicode_data/unicode{version_path}.py").resolve().absolute()