diff --git a/CHANGELOG.md b/CHANGELOG.md
index bdd4f15974..6a49128015 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,11 +5,9 @@ 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.3] - 2026-02-19
+## [14.3.4] - 2026-02-20
-### Fixed
-
-- Fixed infinite loop with `cells.split_graphemes` https://github.com/Textualize/rich/pull/4006
+- Fixed width of more emojis and languages with new runtime module dependency wcwidth, https://github.com/Textualize/rich/pull/3956
## [14.3.2] - 2026-02-01
diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
index 4d77a0e3ed..64ef622e98 100644
--- a/CONTRIBUTORS.md
+++ b/CONTRIBUTORS.md
@@ -100,3 +100,4 @@ The following people have contributed to the development of Rich:
- [Brandon Capener](https://github.com/bcapener)
- [Alex Zheng](https://github.com/alexzheng111)
- [Sebastian Speitel](https://github.com/SebastianSpeitel)
+- [Jeff Quast](https://github.com/jquast)
diff --git a/FAQ.md b/FAQ.md
index d5377fb823..f40f2274d4 100644
--- a/FAQ.md
+++ b/FAQ.md
@@ -100,13 +100,9 @@ See the docs on [console markup](https://rich.readthedocs.io/en/latest/markup.ht
## Why does emoji break alignment in a Table or Panel?
-Certain emoji take up double space within the terminal. Unfortunately, terminals don't always agree how wide a given character should be.
+Rich uses python wcwidth for character width measurement, which follows a [specification](https://wcwidth.readthedocs.io/en/latest/specs.html) that includes support for complex emoji and languages (grapheme clustering).
-Rich has no way of knowing how wide a character will be on any given terminal. This can break alignment in containers like Table and Panel, where Rich needs to know the width of the content.
-
-There are also *multiple codepoints* characters, such as country flags, and emoji modifiers, which produce wildly different results across terminal emulators.
-
-Fortunately, most characters will work just fine. But you may have to avoid using the emojis that break alignment. You will get good results if you stick to emoji released on or before version 9 of the Unicode database,
+Although *all* terminals do not fully support complex emoji, Rich support matches the correct presentation of many actively developed terminal emulators, tabulated and reported as [ucs-detect results](https://ucs-detect.readthedocs.io/results.html).
diff --git a/examples/emoji.py b/examples/emoji.py
new file mode 100644
index 0000000000..deb7c99320
--- /dev/null
+++ b/examples/emoji.py
@@ -0,0 +1,80 @@
+"""
+Demonstrates emoji, grapheme clusters, complex language text
+"""
+from rich.console import Console
+from rich.panel import Panel
+from rich.table import Table
+
+def main():
+ console = Console()
+
+ table = Table(title="Emoji & Grapheme Clusters")
+ table.add_column("Type", style="cyan")
+ table.add_column("Example", justify="center")
+ table.add_column("Codepoints", style="dim")
+ # all emojis are written with \uEscapes because editors also have a hard time
+ table.add_row(
+ "ZWJ Family",
+ "\U0001F468\u200D\U0001F469\u200D\U0001F467\u200D\U0001F466",
+ "4 emoji + 3 ZWJ",
+ )
+ table.add_row("Skin Tone", "\U0001F44B\U0001F3FD", "wave + modifier")
+ table.add_row(
+ "Flags",
+ "\U0001F1E8\U0001F1E6 \U0001F1EC\U0001F1E7 \U0001F1EF\U0001F1F5",
+ "regional indicators",
+ )
+ table.add_row(
+ "VS16 Emoji", "\u2764\uFE0F \u2728 \u267B\uFE0F \u2615", "with variation selectors"
+ )
+ table.add_row(
+ "Keycap", "1\uFE0F\u20E3 2\uFE0F\u20E3 #\uFE0F\u20E3", "digit + VS16 + combining"
+ )
+ table.add_row("Combining", "e\u0301 n\u0303 u\u0308", "base + combining accent")
+ table.add_row("CJK", "\u5bcc\u58eb\u5c71 \u6771\u4eac", "wide characters")
+ table.add_row(
+ "Standalone Skin Tone", "\U0001F3FB \U0001F3FD \U0001F3FF", "modifiers without base"
+ )
+ table.add_row(
+ "Standalone Regional", "\U0001F1E8 \U0001F1E6", "unpaired indicators"
+ )
+
+
+ console.print(table, justify="center")
+ console.print()
+
+ # Complex scripts with combining marks, zero-width characters, or stacking
+ # (first lines from UDHR Article 1) https://github.com/eric-muller/udhr
+ text = (
+ "[bold]Complex Scripts (UDHR Article 1)[/]\n\n"
+ # Arabic: RTL, combining vowel marks (harakat)
+ "[cyan]Arabic:[/] \u064A\u0648\u0644\u062F \u062C\u0645\u064A\u0639"
+ " \u0627\u0644\u0646\u0627\u0633 \u0623\u062D\u0631\u0627\u0631\u0627\n"
+ # Hindi (Devanagari): combining vowel signs, virama conjuncts
+ "[cyan]Hindi:[/] \u0938\u092D\u0940 \u092E\u0928\u0941\u0937\u094D\u092F\u094B\u0902"
+ " \u0915\u094B \u0917\u094C\u0930\u0935 \u0914\u0930"
+ " \u0905\u0927\u093F\u0915\u093E\u0930\u094B\u0902\n"
+ # Thai: above/below combining vowels and tone marks
+ "[cyan]Thai:[/] \u0E21\u0E19\u0E38\u0E29\u0E22\u0E4C\u0E17\u0E31\u0E49\u0E07"
+ "\u0E2B\u0E25\u0E32\u0E22\u0E40\u0E01\u0E34\u0E14\u0E21\u0E32\n"
+ # Tibetan: stacked consonants, subjoined letters
+ "[cyan]Tibetan:[/] \u0F66\u0F90\u0FB1\u0F7A\u0F0B\u0F56\u0F7C\u0F0B"
+ "\u0F58\u0F72\u0F0B\u0F62\u0F72\u0F42\u0F66\u0F0B\u0F40\u0F72\n"
+ # Sinhala: round/curvy script, virama conjuncts
+ "[cyan]Sinhala:[/] \u0DC3\u0DD2\u0DBA\u0DBD\u0DD4 \u0DB8\u0DB1\u0DD4"
+ "\u0DC2\u0DCA\u200D\u0DBA\u0DBA\u0DB1\u0DCA\n"
+ # Hebrew: RTL, combining niqqud vowel points
+ "[cyan]Hebrew:[/] \u05DB\u05BC\u05B8\u05DC\u05BE\u05D1\u05B0\u05E0\u05B5\u05D9"
+ " \u05D4\u05B8\u05D0\u05B8\u05D3\u05B8\u05DD\n"
+ # French: decomposed combining accents (ê é)
+ "[cyan]French:[/] Tous les e\u0302tres humains naissent e\u0301gaux\n"
+ # Polish: combining ogonek and acute (ą ę ó)
+ "[cyan]Polish:[/] Wszyscy ludzie rodza\u0328 sie\u0328 ro\u0301wni\n"
+ # Yoruba: combining tone marks (à é í ò)
+ "[cyan]Yoruba:[/] Gbogbo e\u0300ni\u0301ya\u0301n la\u0301 a bi ni\u0301"
+ )
+ console.print(Panel(text, title="\U0001F30D Languages", border_style="blue"))
+
+
+if __name__ == "__main__":
+ main()
diff --git a/poetry.lock b/poetry.lock
index 0234516312..b3b156db50 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -1,4 +1,4 @@
-# This file is automatically @generated by Poetry 2.1.3 and should not be changed by hand.
+# This file is automatically @generated by Poetry 2.3.2 and should not be changed by hand.
[[package]]
name = "appnope"
@@ -989,6 +989,7 @@ files = [
{file = "typing_extensions-4.13.2-py3-none-any.whl", hash = "sha256:a439e7c04b49fec3e5d3e2beaa21755cadbbdc391694e28ccdd36ca4a1408f8c"},
{file = "typing_extensions-4.13.2.tar.gz", hash = "sha256:e6c81219bd689f51865d9e372991c540bda33a0379d5573cddb9a3a23f7caaef"},
]
+markers = {main = "extra == \"jupyter\" and python_version < \"3.10\""}
[[package]]
name = "virtualenv"
@@ -1014,15 +1015,14 @@ test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess
[[package]]
name = "wcwidth"
-version = "0.2.14"
+version = "0.5.3"
description = "Measures the displayed width of unicode strings in a terminal"
-optional = true
-python-versions = ">=3.6"
+optional = false
+python-versions = ">=3.8"
groups = ["main"]
-markers = "extra == \"jupyter\""
files = [
- {file = "wcwidth-0.2.14-py2.py3-none-any.whl", hash = "sha256:a7bb560c8aee30f9957e5f9895805edd20602f2d7f720186dfd906e82b4982e1"},
- {file = "wcwidth-0.2.14.tar.gz", hash = "sha256:4d478375d31bc5395a3c55c40ccdf3354688364cd61c4f6adacaa9215d0b3605"},
+ {file = "wcwidth-0.5.3-py3-none-any.whl", hash = "sha256:d584eff31cd4753e1e5ff6c12e1edfdb324c995713f75d26c29807bb84bf649e"},
+ {file = "wcwidth-0.5.3.tar.gz", hash = "sha256:53123b7af053c74e9fe2e92ac810301f6139e64379031f7124574212fb3b4091"},
]
[[package]]
@@ -1044,4 +1044,4 @@ jupyter = ["ipywidgets"]
[metadata]
lock-version = "2.1"
python-versions = ">=3.8.0"
-content-hash = "610597849eb5fb1d82cd5e647d616dd41412674d531c2f7819380bbc9b54e8e2"
+content-hash = "ba1a61b9b59e7618059d62a58803047db92f9a6bda38c89f00a711004e2a5590"
diff --git a/pyproject.toml b/pyproject.toml
index a98f6585d1..82feb2dee4 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -30,6 +30,7 @@ include = ["rich/py.typed"]
[tool.poetry.dependencies]
python = ">=3.8.0"
pygments = "^2.13.0"
+wcwidth = ">=0.5.3"
ipywidgets = { version = ">=7.5.1,<9", optional = true }
markdown-it-py = ">=2.2.0"
diff --git a/questions/emoji_broken.question.md b/questions/emoji_broken.question.md
index 44a51921bd..dde88c6aa3 100644
--- a/questions/emoji_broken.question.md
+++ b/questions/emoji_broken.question.md
@@ -2,10 +2,6 @@
title: "Why does emoji break alignment in a Table or Panel?"
---
-Certain emoji take up double space within the terminal. Unfortunately, terminals don't always agree how wide a given character should be.
+Rich uses python wcwidth for character width measurement, which follows a [specification](https://wcwidth.readthedocs.io/en/latest/specs.html) that includes support for complex emoji and languages (grapheme clustering).
-Rich has no way of knowing how wide a character will be on any given terminal. This can break alignment in containers like Table and Panel, where Rich needs to know the width of the content.
-
-There are also *multiple codepoints* characters, such as country flags, and emoji modifiers, which produce wildly different results across terminal emulators.
-
-Fortunately, most characters will work just fine. But you may have to avoid using the emojis that break alignment. You will get good results if you stick to emoji released on or before version 9 of the Unicode database,
+Although *all* terminals do not fully support complex emoji, Rich support matches the correct presentation of many actively developed terminal emulators, tabulated and reported as [ucs-detect results](https://ucs-detect.readthedocs.io/results.html).
diff --git a/rich/_unicode_data/__init__.py b/rich/_unicode_data/__init__.py
deleted file mode 100644
index ce54baef4e..0000000000
--- a/rich/_unicode_data/__init__.py
+++ /dev/null
@@ -1,93 +0,0 @@
-from __future__ import annotations
-
-import bisect
-import os
-import sys
-
-if sys.version_info[:2] >= (3, 9):
- from functools import cache
-else:
- from functools import lru_cache as cache # pragma: no cover
-
-from importlib import import_module
-from typing import TYPE_CHECKING, cast
-
-from rich._unicode_data._versions import VERSIONS
-
-if TYPE_CHECKING:
- from rich.cells import CellTable
-
-VERSION_ORDER = sorted(
- [
- tuple(
- map(int, version.split(".")),
- )
- for version in VERSIONS
- ]
-)
-VERSION_SET = frozenset(VERSIONS)
-
-
-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.
- """
- version_integers: tuple[int, ...]
- 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 = cast("tuple[int, int, int]", version_integers[:3])
- return triple
-
-
-@cache
-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 == "auto":
- 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 reasonable
- unicode_version = "latest"
-
- if unicode_version == "latest":
- version = VERSIONS[-1]
- else:
- 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")
- if TYPE_CHECKING:
- assert isinstance(module.cell_table, CellTable)
- return module.cell_table
diff --git a/rich/_unicode_data/_versions.py b/rich/_unicode_data/_versions.py
deleted file mode 100644
index be98418d13..0000000000
--- a/rich/_unicode_data/_versions.py
+++ /dev/null
@@ -1,23 +0,0 @@
-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
deleted file mode 100644
index f318087837..0000000000
--- a/rich/_unicode_data/unicode10-0-0.py
+++ /dev/null
@@ -1,611 +0,0 @@
-# Auto generated by tools/make_width_tables.py
-# Data from wcwidth project (https://github.com/jquast/wcwidth)
-
-from rich.cells import CellTable
-
-cell_table = CellTable(
- "10.0.0",
- [
- (0, 0, 0),
- (768, 879, 0),
- (1155, 1161, 0),
- (1425, 1469, 0),
- (1471, 1471, 0),
- (1473, 1474, 0),
- (1476, 1477, 0),
- (1479, 1479, 0),
- (1552, 1562, 0),
- (1564, 1564, 0),
- (1611, 1631, 0),
- (1648, 1648, 0),
- (1750, 1756, 0),
- (1759, 1764, 0),
- (1767, 1768, 0),
- (1770, 1773, 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, 2273, 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),
- (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, 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, 12643, 2),
- (12644, 12644, 0),
- (12645, 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),
- (65440, 65440, 0),
- (65504, 65510, 2),
- (65520, 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),
- (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),
- (917504, 921599, 0),
- ],
- frozenset(
- [
- "#",
- "*",
- "0",
- "1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "©",
- "®",
- "‼",
- "⁉",
- "™",
- "ℹ",
- "↔",
- "↕",
- "↖",
- "↗",
- "↘",
- "↙",
- "↩",
- "↪",
- "⌨",
- "⏏",
- "⏭",
- "⏮",
- "⏯",
- "⏱",
- "⏲",
- "⏸",
- "⏹",
- "⏺",
- "Ⓜ",
- "▪",
- "▫",
- "▶",
- "◀",
- "◻",
- "◼",
- "☀",
- "☁",
- "☂",
- "☃",
- "☄",
- "☎",
- "☑",
- "☘",
- "☝",
- "☠",
- "☢",
- "☣",
- "☦",
- "☪",
- "☮",
- "☯",
- "☸",
- "☹",
- "☺",
- "♀",
- "♂",
- "♟",
- "♠",
- "♣",
- "♥",
- "♦",
- "♨",
- "♻",
- "♾",
- "⚒",
- "⚔",
- "⚕",
- "⚖",
- "⚗",
- "⚙",
- "⚛",
- "⚜",
- "⚠",
- "⚧",
- "⚰",
- "⚱",
- "⛈",
- "⛏",
- "⛑",
- "⛓",
- "⛩",
- "⛰",
- "⛱",
- "⛴",
- "⛷",
- "⛸",
- "⛹",
- "✂",
- "✈",
- "✉",
- "✌",
- "✍",
- "✏",
- "✒",
- "✔",
- "✖",
- "✝",
- "✡",
- "✳",
- "✴",
- "❄",
- "❇",
- "❣",
- "❤",
- "➡",
- "⤴",
- "⤵",
- "⬅",
- "⬆",
- "⬇",
- "🅰",
- "🅱",
- "🅾",
- "🅿",
- "🌡",
- "🌤",
- "🌥",
- "🌦",
- "🌧",
- "🌨",
- "🌩",
- "🌪",
- "🌫",
- "🌬",
- "🌶",
- "🍽",
- "🎖",
- "🎗",
- "🎙",
- "🎚",
- "🎛",
- "🎞",
- "🎟",
- "🏋",
- "🏌",
- "🏍",
- "🏎",
- "🏔",
- "🏕",
- "🏖",
- "🏗",
- "🏘",
- "🏙",
- "🏚",
- "🏛",
- "🏜",
- "🏝",
- "🏞",
- "🏟",
- "🏳",
- "🏵",
- "🏷",
- "🐿",
- "👁",
- "📽",
- "🕉",
- "🕊",
- "🕯",
- "🕰",
- "🕳",
- "🕴",
- "🕵",
- "🕶",
- "🕷",
- "🕸",
- "🕹",
- "🖇",
- "🖊",
- "🖋",
- "🖌",
- "🖍",
- "🖐",
- "🖥",
- "🖨",
- "🖱",
- "🖲",
- "🖼",
- "🗂",
- "🗃",
- "🗄",
- "🗑",
- "🗒",
- "🗓",
- "🗜",
- "🗝",
- "🗞",
- "🗡",
- "🗣",
- "🗨",
- "🗯",
- "🗳",
- "🗺",
- "🛋",
- "🛍",
- "🛎",
- "🛏",
- "🛠",
- "🛡",
- "🛢",
- "🛣",
- "🛤",
- "🛥",
- "🛩",
- "🛰",
- "🛳",
- ]
- ),
-)
diff --git a/rich/_unicode_data/unicode11-0-0.py b/rich/_unicode_data/unicode11-0-0.py
deleted file mode 100644
index 058bb342ca..0000000000
--- a/rich/_unicode_data/unicode11-0-0.py
+++ /dev/null
@@ -1,625 +0,0 @@
-# Auto generated by tools/make_width_tables.py
-# Data from wcwidth project (https://github.com/jquast/wcwidth)
-
-from rich.cells import CellTable
-
-cell_table = CellTable(
- "11.0.0",
- [
- (0, 0, 0),
- (768, 879, 0),
- (1155, 1161, 0),
- (1425, 1469, 0),
- (1471, 1471, 0),
- (1473, 1474, 0),
- (1476, 1477, 0),
- (1479, 1479, 0),
- (1552, 1562, 0),
- (1564, 1564, 0),
- (1611, 1631, 0),
- (1648, 1648, 0),
- (1750, 1756, 0),
- (1759, 1764, 0),
- (1767, 1768, 0),
- (1770, 1773, 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, 2273, 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),
- (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, 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, 12643, 2),
- (12644, 12644, 0),
- (12645, 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),
- (65440, 65440, 0),
- (65504, 65510, 2),
- (65520, 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),
- (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),
- (917504, 921599, 0),
- ],
- frozenset(
- [
- "#",
- "*",
- "0",
- "1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "©",
- "®",
- "‼",
- "⁉",
- "™",
- "ℹ",
- "↔",
- "↕",
- "↖",
- "↗",
- "↘",
- "↙",
- "↩",
- "↪",
- "⌨",
- "⏏",
- "⏭",
- "⏮",
- "⏯",
- "⏱",
- "⏲",
- "⏸",
- "⏹",
- "⏺",
- "Ⓜ",
- "▪",
- "▫",
- "▶",
- "◀",
- "◻",
- "◼",
- "☀",
- "☁",
- "☂",
- "☃",
- "☄",
- "☎",
- "☑",
- "☘",
- "☝",
- "☠",
- "☢",
- "☣",
- "☦",
- "☪",
- "☮",
- "☯",
- "☸",
- "☹",
- "☺",
- "♀",
- "♂",
- "♟",
- "♠",
- "♣",
- "♥",
- "♦",
- "♨",
- "♻",
- "♾",
- "⚒",
- "⚔",
- "⚕",
- "⚖",
- "⚗",
- "⚙",
- "⚛",
- "⚜",
- "⚠",
- "⚧",
- "⚰",
- "⚱",
- "⛈",
- "⛏",
- "⛑",
- "⛓",
- "⛩",
- "⛰",
- "⛱",
- "⛴",
- "⛷",
- "⛸",
- "⛹",
- "✂",
- "✈",
- "✉",
- "✌",
- "✍",
- "✏",
- "✒",
- "✔",
- "✖",
- "✝",
- "✡",
- "✳",
- "✴",
- "❄",
- "❇",
- "❣",
- "❤",
- "➡",
- "⤴",
- "⤵",
- "⬅",
- "⬆",
- "⬇",
- "🅰",
- "🅱",
- "🅾",
- "🅿",
- "🌡",
- "🌤",
- "🌥",
- "🌦",
- "🌧",
- "🌨",
- "🌩",
- "🌪",
- "🌫",
- "🌬",
- "🌶",
- "🍽",
- "🎖",
- "🎗",
- "🎙",
- "🎚",
- "🎛",
- "🎞",
- "🎟",
- "🏋",
- "🏌",
- "🏍",
- "🏎",
- "🏔",
- "🏕",
- "🏖",
- "🏗",
- "🏘",
- "🏙",
- "🏚",
- "🏛",
- "🏜",
- "🏝",
- "🏞",
- "🏟",
- "🏳",
- "🏵",
- "🏷",
- "🐿",
- "👁",
- "📽",
- "🕉",
- "🕊",
- "🕯",
- "🕰",
- "🕳",
- "🕴",
- "🕵",
- "🕶",
- "🕷",
- "🕸",
- "🕹",
- "🖇",
- "🖊",
- "🖋",
- "🖌",
- "🖍",
- "🖐",
- "🖥",
- "🖨",
- "🖱",
- "🖲",
- "🖼",
- "🗂",
- "🗃",
- "🗄",
- "🗑",
- "🗒",
- "🗓",
- "🗜",
- "🗝",
- "🗞",
- "🗡",
- "🗣",
- "🗨",
- "🗯",
- "🗳",
- "🗺",
- "🛋",
- "🛍",
- "🛎",
- "🛏",
- "🛠",
- "🛡",
- "🛢",
- "🛣",
- "🛤",
- "🛥",
- "🛩",
- "🛰",
- "🛳",
- ]
- ),
-)
diff --git a/rich/_unicode_data/unicode12-0-0.py b/rich/_unicode_data/unicode12-0-0.py
deleted file mode 100644
index 7b0022513d..0000000000
--- a/rich/_unicode_data/unicode12-0-0.py
+++ /dev/null
@@ -1,637 +0,0 @@
-# Auto generated by tools/make_width_tables.py
-# Data from wcwidth project (https://github.com/jquast/wcwidth)
-
-from rich.cells import CellTable
-
-cell_table = CellTable(
- "12.0.0",
- [
- (0, 0, 0),
- (768, 879, 0),
- (1155, 1161, 0),
- (1425, 1469, 0),
- (1471, 1471, 0),
- (1473, 1474, 0),
- (1476, 1477, 0),
- (1479, 1479, 0),
- (1552, 1562, 0),
- (1564, 1564, 0),
- (1611, 1631, 0),
- (1648, 1648, 0),
- (1750, 1756, 0),
- (1759, 1764, 0),
- (1767, 1768, 0),
- (1770, 1773, 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, 2273, 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),
- (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, 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, 12643, 2),
- (12644, 12644, 0),
- (12645, 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),
- (65440, 65440, 0),
- (65504, 65510, 2),
- (65520, 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),
- (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),
- (917504, 921599, 0),
- ],
- frozenset(
- [
- "#",
- "*",
- "0",
- "1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "©",
- "®",
- "‼",
- "⁉",
- "™",
- "ℹ",
- "↔",
- "↕",
- "↖",
- "↗",
- "↘",
- "↙",
- "↩",
- "↪",
- "⌨",
- "⏏",
- "⏭",
- "⏮",
- "⏯",
- "⏱",
- "⏲",
- "⏸",
- "⏹",
- "⏺",
- "Ⓜ",
- "▪",
- "▫",
- "▶",
- "◀",
- "◻",
- "◼",
- "☀",
- "☁",
- "☂",
- "☃",
- "☄",
- "☎",
- "☑",
- "☘",
- "☝",
- "☠",
- "☢",
- "☣",
- "☦",
- "☪",
- "☮",
- "☯",
- "☸",
- "☹",
- "☺",
- "♀",
- "♂",
- "♟",
- "♠",
- "♣",
- "♥",
- "♦",
- "♨",
- "♻",
- "♾",
- "⚒",
- "⚔",
- "⚕",
- "⚖",
- "⚗",
- "⚙",
- "⚛",
- "⚜",
- "⚠",
- "⚧",
- "⚰",
- "⚱",
- "⛈",
- "⛏",
- "⛑",
- "⛓",
- "⛩",
- "⛰",
- "⛱",
- "⛴",
- "⛷",
- "⛸",
- "⛹",
- "✂",
- "✈",
- "✉",
- "✌",
- "✍",
- "✏",
- "✒",
- "✔",
- "✖",
- "✝",
- "✡",
- "✳",
- "✴",
- "❄",
- "❇",
- "❣",
- "❤",
- "➡",
- "⤴",
- "⤵",
- "⬅",
- "⬆",
- "⬇",
- "🅰",
- "🅱",
- "🅾",
- "🅿",
- "🌡",
- "🌤",
- "🌥",
- "🌦",
- "🌧",
- "🌨",
- "🌩",
- "🌪",
- "🌫",
- "🌬",
- "🌶",
- "🍽",
- "🎖",
- "🎗",
- "🎙",
- "🎚",
- "🎛",
- "🎞",
- "🎟",
- "🏋",
- "🏌",
- "🏍",
- "🏎",
- "🏔",
- "🏕",
- "🏖",
- "🏗",
- "🏘",
- "🏙",
- "🏚",
- "🏛",
- "🏜",
- "🏝",
- "🏞",
- "🏟",
- "🏳",
- "🏵",
- "🏷",
- "🐿",
- "👁",
- "📽",
- "🕉",
- "🕊",
- "🕯",
- "🕰",
- "🕳",
- "🕴",
- "🕵",
- "🕶",
- "🕷",
- "🕸",
- "🕹",
- "🖇",
- "🖊",
- "🖋",
- "🖌",
- "🖍",
- "🖐",
- "🖥",
- "🖨",
- "🖱",
- "🖲",
- "🖼",
- "🗂",
- "🗃",
- "🗄",
- "🗑",
- "🗒",
- "🗓",
- "🗜",
- "🗝",
- "🗞",
- "🗡",
- "🗣",
- "🗨",
- "🗯",
- "🗳",
- "🗺",
- "🛋",
- "🛍",
- "🛎",
- "🛏",
- "🛠",
- "🛡",
- "🛢",
- "🛣",
- "🛤",
- "🛥",
- "🛩",
- "🛰",
- "🛳",
- ]
- ),
-)
diff --git a/rich/_unicode_data/unicode12-1-0.py b/rich/_unicode_data/unicode12-1-0.py
deleted file mode 100644
index 2dbcf3794e..0000000000
--- a/rich/_unicode_data/unicode12-1-0.py
+++ /dev/null
@@ -1,636 +0,0 @@
-# Auto generated by tools/make_width_tables.py
-# Data from wcwidth project (https://github.com/jquast/wcwidth)
-
-from rich.cells import CellTable
-
-cell_table = CellTable(
- "12.1.0",
- [
- (0, 0, 0),
- (768, 879, 0),
- (1155, 1161, 0),
- (1425, 1469, 0),
- (1471, 1471, 0),
- (1473, 1474, 0),
- (1476, 1477, 0),
- (1479, 1479, 0),
- (1552, 1562, 0),
- (1564, 1564, 0),
- (1611, 1631, 0),
- (1648, 1648, 0),
- (1750, 1756, 0),
- (1759, 1764, 0),
- (1767, 1768, 0),
- (1770, 1773, 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, 2273, 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),
- (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, 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, 12643, 2),
- (12644, 12644, 0),
- (12645, 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),
- (65440, 65440, 0),
- (65504, 65510, 2),
- (65520, 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),
- (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),
- (917504, 921599, 0),
- ],
- frozenset(
- [
- "#",
- "*",
- "0",
- "1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "©",
- "®",
- "‼",
- "⁉",
- "™",
- "ℹ",
- "↔",
- "↕",
- "↖",
- "↗",
- "↘",
- "↙",
- "↩",
- "↪",
- "⌨",
- "⏏",
- "⏭",
- "⏮",
- "⏯",
- "⏱",
- "⏲",
- "⏸",
- "⏹",
- "⏺",
- "Ⓜ",
- "▪",
- "▫",
- "▶",
- "◀",
- "◻",
- "◼",
- "☀",
- "☁",
- "☂",
- "☃",
- "☄",
- "☎",
- "☑",
- "☘",
- "☝",
- "☠",
- "☢",
- "☣",
- "☦",
- "☪",
- "☮",
- "☯",
- "☸",
- "☹",
- "☺",
- "♀",
- "♂",
- "♟",
- "♠",
- "♣",
- "♥",
- "♦",
- "♨",
- "♻",
- "♾",
- "⚒",
- "⚔",
- "⚕",
- "⚖",
- "⚗",
- "⚙",
- "⚛",
- "⚜",
- "⚠",
- "⚧",
- "⚰",
- "⚱",
- "⛈",
- "⛏",
- "⛑",
- "⛓",
- "⛩",
- "⛰",
- "⛱",
- "⛴",
- "⛷",
- "⛸",
- "⛹",
- "✂",
- "✈",
- "✉",
- "✌",
- "✍",
- "✏",
- "✒",
- "✔",
- "✖",
- "✝",
- "✡",
- "✳",
- "✴",
- "❄",
- "❇",
- "❣",
- "❤",
- "➡",
- "⤴",
- "⤵",
- "⬅",
- "⬆",
- "⬇",
- "🅰",
- "🅱",
- "🅾",
- "🅿",
- "🌡",
- "🌤",
- "🌥",
- "🌦",
- "🌧",
- "🌨",
- "🌩",
- "🌪",
- "🌫",
- "🌬",
- "🌶",
- "🍽",
- "🎖",
- "🎗",
- "🎙",
- "🎚",
- "🎛",
- "🎞",
- "🎟",
- "🏋",
- "🏌",
- "🏍",
- "🏎",
- "🏔",
- "🏕",
- "🏖",
- "🏗",
- "🏘",
- "🏙",
- "🏚",
- "🏛",
- "🏜",
- "🏝",
- "🏞",
- "🏟",
- "🏳",
- "🏵",
- "🏷",
- "🐿",
- "👁",
- "📽",
- "🕉",
- "🕊",
- "🕯",
- "🕰",
- "🕳",
- "🕴",
- "🕵",
- "🕶",
- "🕷",
- "🕸",
- "🕹",
- "🖇",
- "🖊",
- "🖋",
- "🖌",
- "🖍",
- "🖐",
- "🖥",
- "🖨",
- "🖱",
- "🖲",
- "🖼",
- "🗂",
- "🗃",
- "🗄",
- "🗑",
- "🗒",
- "🗓",
- "🗜",
- "🗝",
- "🗞",
- "🗡",
- "🗣",
- "🗨",
- "🗯",
- "🗳",
- "🗺",
- "🛋",
- "🛍",
- "🛎",
- "🛏",
- "🛠",
- "🛡",
- "🛢",
- "🛣",
- "🛤",
- "🛥",
- "🛩",
- "🛰",
- "🛳",
- ]
- ),
-)
diff --git a/rich/_unicode_data/unicode13-0-0.py b/rich/_unicode_data/unicode13-0-0.py
deleted file mode 100644
index 13fbc74b0a..0000000000
--- a/rich/_unicode_data/unicode13-0-0.py
+++ /dev/null
@@ -1,648 +0,0 @@
-# Auto generated by tools/make_width_tables.py
-# Data from wcwidth project (https://github.com/jquast/wcwidth)
-
-from rich.cells import CellTable
-
-cell_table = CellTable(
- "13.0.0",
- [
- (0, 0, 0),
- (768, 879, 0),
- (1155, 1161, 0),
- (1425, 1469, 0),
- (1471, 1471, 0),
- (1473, 1474, 0),
- (1476, 1477, 0),
- (1479, 1479, 0),
- (1552, 1562, 0),
- (1564, 1564, 0),
- (1611, 1631, 0),
- (1648, 1648, 0),
- (1750, 1756, 0),
- (1759, 1764, 0),
- (1767, 1768, 0),
- (1770, 1773, 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, 2273, 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),
- (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, 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, 12643, 2),
- (12644, 12644, 0),
- (12645, 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),
- (65440, 65440, 0),
- (65504, 65510, 2),
- (65520, 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),
- (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),
- (917504, 921599, 0),
- ],
- frozenset(
- [
- "#",
- "*",
- "0",
- "1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "©",
- "®",
- "‼",
- "⁉",
- "™",
- "ℹ",
- "↔",
- "↕",
- "↖",
- "↗",
- "↘",
- "↙",
- "↩",
- "↪",
- "⌨",
- "⏏",
- "⏭",
- "⏮",
- "⏯",
- "⏱",
- "⏲",
- "⏸",
- "⏹",
- "⏺",
- "Ⓜ",
- "▪",
- "▫",
- "▶",
- "◀",
- "◻",
- "◼",
- "☀",
- "☁",
- "☂",
- "☃",
- "☄",
- "☎",
- "☑",
- "☘",
- "☝",
- "☠",
- "☢",
- "☣",
- "☦",
- "☪",
- "☮",
- "☯",
- "☸",
- "☹",
- "☺",
- "♀",
- "♂",
- "♟",
- "♠",
- "♣",
- "♥",
- "♦",
- "♨",
- "♻",
- "♾",
- "⚒",
- "⚔",
- "⚕",
- "⚖",
- "⚗",
- "⚙",
- "⚛",
- "⚜",
- "⚠",
- "⚧",
- "⚰",
- "⚱",
- "⛈",
- "⛏",
- "⛑",
- "⛓",
- "⛩",
- "⛰",
- "⛱",
- "⛴",
- "⛷",
- "⛸",
- "⛹",
- "✂",
- "✈",
- "✉",
- "✌",
- "✍",
- "✏",
- "✒",
- "✔",
- "✖",
- "✝",
- "✡",
- "✳",
- "✴",
- "❄",
- "❇",
- "❣",
- "❤",
- "➡",
- "⤴",
- "⤵",
- "⬅",
- "⬆",
- "⬇",
- "🅰",
- "🅱",
- "🅾",
- "🅿",
- "🌡",
- "🌤",
- "🌥",
- "🌦",
- "🌧",
- "🌨",
- "🌩",
- "🌪",
- "🌫",
- "🌬",
- "🌶",
- "🍽",
- "🎖",
- "🎗",
- "🎙",
- "🎚",
- "🎛",
- "🎞",
- "🎟",
- "🏋",
- "🏌",
- "🏍",
- "🏎",
- "🏔",
- "🏕",
- "🏖",
- "🏗",
- "🏘",
- "🏙",
- "🏚",
- "🏛",
- "🏜",
- "🏝",
- "🏞",
- "🏟",
- "🏳",
- "🏵",
- "🏷",
- "🐿",
- "👁",
- "📽",
- "🕉",
- "🕊",
- "🕯",
- "🕰",
- "🕳",
- "🕴",
- "🕵",
- "🕶",
- "🕷",
- "🕸",
- "🕹",
- "🖇",
- "🖊",
- "🖋",
- "🖌",
- "🖍",
- "🖐",
- "🖥",
- "🖨",
- "🖱",
- "🖲",
- "🖼",
- "🗂",
- "🗃",
- "🗄",
- "🗑",
- "🗒",
- "🗓",
- "🗜",
- "🗝",
- "🗞",
- "🗡",
- "🗣",
- "🗨",
- "🗯",
- "🗳",
- "🗺",
- "🛋",
- "🛍",
- "🛎",
- "🛏",
- "🛠",
- "🛡",
- "🛢",
- "🛣",
- "🛤",
- "🛥",
- "🛩",
- "🛰",
- "🛳",
- ]
- ),
-)
diff --git a/rich/_unicode_data/unicode14-0-0.py b/rich/_unicode_data/unicode14-0-0.py
deleted file mode 100644
index 9fa9e29e7f..0000000000
--- a/rich/_unicode_data/unicode14-0-0.py
+++ /dev/null
@@ -1,661 +0,0 @@
-# Auto generated by tools/make_width_tables.py
-# Data from wcwidth project (https://github.com/jquast/wcwidth)
-
-from rich.cells import CellTable
-
-cell_table = CellTable(
- "14.0.0",
- [
- (0, 0, 0),
- (768, 879, 0),
- (1155, 1161, 0),
- (1425, 1469, 0),
- (1471, 1471, 0),
- (1473, 1474, 0),
- (1476, 1477, 0),
- (1479, 1479, 0),
- (1552, 1562, 0),
- (1564, 1564, 0),
- (1611, 1631, 0),
- (1648, 1648, 0),
- (1750, 1756, 0),
- (1759, 1764, 0),
- (1767, 1768, 0),
- (1770, 1773, 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),
- (2200, 2207, 0),
- (2250, 2273, 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),
- (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, 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, 12643, 2),
- (12644, 12644, 0),
- (12645, 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),
- (65440, 65440, 0),
- (65504, 65510, 2),
- (65520, 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),
- (69826, 69826, 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),
- (917504, 921599, 0),
- ],
- frozenset(
- [
- "#",
- "*",
- "0",
- "1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "©",
- "®",
- "‼",
- "⁉",
- "™",
- "ℹ",
- "↔",
- "↕",
- "↖",
- "↗",
- "↘",
- "↙",
- "↩",
- "↪",
- "⌨",
- "⏏",
- "⏭",
- "⏮",
- "⏯",
- "⏱",
- "⏲",
- "⏸",
- "⏹",
- "⏺",
- "Ⓜ",
- "▪",
- "▫",
- "▶",
- "◀",
- "◻",
- "◼",
- "☀",
- "☁",
- "☂",
- "☃",
- "☄",
- "☎",
- "☑",
- "☘",
- "☝",
- "☠",
- "☢",
- "☣",
- "☦",
- "☪",
- "☮",
- "☯",
- "☸",
- "☹",
- "☺",
- "♀",
- "♂",
- "♟",
- "♠",
- "♣",
- "♥",
- "♦",
- "♨",
- "♻",
- "♾",
- "⚒",
- "⚔",
- "⚕",
- "⚖",
- "⚗",
- "⚙",
- "⚛",
- "⚜",
- "⚠",
- "⚧",
- "⚰",
- "⚱",
- "⛈",
- "⛏",
- "⛑",
- "⛓",
- "⛩",
- "⛰",
- "⛱",
- "⛴",
- "⛷",
- "⛸",
- "⛹",
- "✂",
- "✈",
- "✉",
- "✌",
- "✍",
- "✏",
- "✒",
- "✔",
- "✖",
- "✝",
- "✡",
- "✳",
- "✴",
- "❄",
- "❇",
- "❣",
- "❤",
- "➡",
- "⤴",
- "⤵",
- "⬅",
- "⬆",
- "⬇",
- "🅰",
- "🅱",
- "🅾",
- "🅿",
- "🌡",
- "🌤",
- "🌥",
- "🌦",
- "🌧",
- "🌨",
- "🌩",
- "🌪",
- "🌫",
- "🌬",
- "🌶",
- "🍽",
- "🎖",
- "🎗",
- "🎙",
- "🎚",
- "🎛",
- "🎞",
- "🎟",
- "🏋",
- "🏌",
- "🏍",
- "🏎",
- "🏔",
- "🏕",
- "🏖",
- "🏗",
- "🏘",
- "🏙",
- "🏚",
- "🏛",
- "🏜",
- "🏝",
- "🏞",
- "🏟",
- "🏳",
- "🏵",
- "🏷",
- "🐿",
- "👁",
- "📽",
- "🕉",
- "🕊",
- "🕯",
- "🕰",
- "🕳",
- "🕴",
- "🕵",
- "🕶",
- "🕷",
- "🕸",
- "🕹",
- "🖇",
- "🖊",
- "🖋",
- "🖌",
- "🖍",
- "🖐",
- "🖥",
- "🖨",
- "🖱",
- "🖲",
- "🖼",
- "🗂",
- "🗃",
- "🗄",
- "🗑",
- "🗒",
- "🗓",
- "🗜",
- "🗝",
- "🗞",
- "🗡",
- "🗣",
- "🗨",
- "🗯",
- "🗳",
- "🗺",
- "🛋",
- "🛍",
- "🛎",
- "🛏",
- "🛠",
- "🛡",
- "🛢",
- "🛣",
- "🛤",
- "🛥",
- "🛩",
- "🛰",
- "🛳",
- ]
- ),
-)
diff --git a/rich/_unicode_data/unicode15-0-0.py b/rich/_unicode_data/unicode15-0-0.py
deleted file mode 100644
index 84dd5be936..0000000000
--- a/rich/_unicode_data/unicode15-0-0.py
+++ /dev/null
@@ -1,671 +0,0 @@
-# Auto generated by tools/make_width_tables.py
-# Data from wcwidth project (https://github.com/jquast/wcwidth)
-
-from rich.cells import CellTable
-
-cell_table = CellTable(
- "15.0.0",
- [
- (0, 0, 0),
- (768, 879, 0),
- (1155, 1161, 0),
- (1425, 1469, 0),
- (1471, 1471, 0),
- (1473, 1474, 0),
- (1476, 1477, 0),
- (1479, 1479, 0),
- (1552, 1562, 0),
- (1564, 1564, 0),
- (1611, 1631, 0),
- (1648, 1648, 0),
- (1750, 1756, 0),
- (1759, 1764, 0),
- (1767, 1768, 0),
- (1770, 1773, 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),
- (2200, 2207, 0),
- (2250, 2273, 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),
- (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, 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, 12643, 2),
- (12644, 12644, 0),
- (12645, 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),
- (65440, 65440, 0),
- (65504, 65510, 2),
- (65520, 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),
- (69826, 69826, 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),
- (917504, 921599, 0),
- ],
- frozenset(
- [
- "#",
- "*",
- "0",
- "1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "©",
- "®",
- "‼",
- "⁉",
- "™",
- "ℹ",
- "↔",
- "↕",
- "↖",
- "↗",
- "↘",
- "↙",
- "↩",
- "↪",
- "⌨",
- "⏏",
- "⏭",
- "⏮",
- "⏯",
- "⏱",
- "⏲",
- "⏸",
- "⏹",
- "⏺",
- "Ⓜ",
- "▪",
- "▫",
- "▶",
- "◀",
- "◻",
- "◼",
- "☀",
- "☁",
- "☂",
- "☃",
- "☄",
- "☎",
- "☑",
- "☘",
- "☝",
- "☠",
- "☢",
- "☣",
- "☦",
- "☪",
- "☮",
- "☯",
- "☸",
- "☹",
- "☺",
- "♀",
- "♂",
- "♟",
- "♠",
- "♣",
- "♥",
- "♦",
- "♨",
- "♻",
- "♾",
- "⚒",
- "⚔",
- "⚕",
- "⚖",
- "⚗",
- "⚙",
- "⚛",
- "⚜",
- "⚠",
- "⚧",
- "⚰",
- "⚱",
- "⛈",
- "⛏",
- "⛑",
- "⛓",
- "⛩",
- "⛰",
- "⛱",
- "⛴",
- "⛷",
- "⛸",
- "⛹",
- "✂",
- "✈",
- "✉",
- "✌",
- "✍",
- "✏",
- "✒",
- "✔",
- "✖",
- "✝",
- "✡",
- "✳",
- "✴",
- "❄",
- "❇",
- "❣",
- "❤",
- "➡",
- "⤴",
- "⤵",
- "⬅",
- "⬆",
- "⬇",
- "🅰",
- "🅱",
- "🅾",
- "🅿",
- "🌡",
- "🌤",
- "🌥",
- "🌦",
- "🌧",
- "🌨",
- "🌩",
- "🌪",
- "🌫",
- "🌬",
- "🌶",
- "🍽",
- "🎖",
- "🎗",
- "🎙",
- "🎚",
- "🎛",
- "🎞",
- "🎟",
- "🏋",
- "🏌",
- "🏍",
- "🏎",
- "🏔",
- "🏕",
- "🏖",
- "🏗",
- "🏘",
- "🏙",
- "🏚",
- "🏛",
- "🏜",
- "🏝",
- "🏞",
- "🏟",
- "🏳",
- "🏵",
- "🏷",
- "🐿",
- "👁",
- "📽",
- "🕉",
- "🕊",
- "🕯",
- "🕰",
- "🕳",
- "🕴",
- "🕵",
- "🕶",
- "🕷",
- "🕸",
- "🕹",
- "🖇",
- "🖊",
- "🖋",
- "🖌",
- "🖍",
- "🖐",
- "🖥",
- "🖨",
- "🖱",
- "🖲",
- "🖼",
- "🗂",
- "🗃",
- "🗄",
- "🗑",
- "🗒",
- "🗓",
- "🗜",
- "🗝",
- "🗞",
- "🗡",
- "🗣",
- "🗨",
- "🗯",
- "🗳",
- "🗺",
- "🛋",
- "🛍",
- "🛎",
- "🛏",
- "🛠",
- "🛡",
- "🛢",
- "🛣",
- "🛤",
- "🛥",
- "🛩",
- "🛰",
- "🛳",
- ]
- ),
-)
diff --git a/rich/_unicode_data/unicode15-1-0.py b/rich/_unicode_data/unicode15-1-0.py
deleted file mode 100644
index aa9f2c3e31..0000000000
--- a/rich/_unicode_data/unicode15-1-0.py
+++ /dev/null
@@ -1,670 +0,0 @@
-# Auto generated by tools/make_width_tables.py
-# Data from wcwidth project (https://github.com/jquast/wcwidth)
-
-from rich.cells import CellTable
-
-cell_table = CellTable(
- "15.1.0",
- [
- (0, 0, 0),
- (768, 879, 0),
- (1155, 1161, 0),
- (1425, 1469, 0),
- (1471, 1471, 0),
- (1473, 1474, 0),
- (1476, 1477, 0),
- (1479, 1479, 0),
- (1552, 1562, 0),
- (1564, 1564, 0),
- (1611, 1631, 0),
- (1648, 1648, 0),
- (1750, 1756, 0),
- (1759, 1764, 0),
- (1767, 1768, 0),
- (1770, 1773, 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),
- (2200, 2207, 0),
- (2250, 2273, 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),
- (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, 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, 12643, 2),
- (12644, 12644, 0),
- (12645, 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),
- (65440, 65440, 0),
- (65504, 65510, 2),
- (65520, 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),
- (69826, 69826, 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),
- (917504, 921599, 0),
- ],
- frozenset(
- [
- "#",
- "*",
- "0",
- "1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "©",
- "®",
- "‼",
- "⁉",
- "™",
- "ℹ",
- "↔",
- "↕",
- "↖",
- "↗",
- "↘",
- "↙",
- "↩",
- "↪",
- "⌨",
- "⏏",
- "⏭",
- "⏮",
- "⏯",
- "⏱",
- "⏲",
- "⏸",
- "⏹",
- "⏺",
- "Ⓜ",
- "▪",
- "▫",
- "▶",
- "◀",
- "◻",
- "◼",
- "☀",
- "☁",
- "☂",
- "☃",
- "☄",
- "☎",
- "☑",
- "☘",
- "☝",
- "☠",
- "☢",
- "☣",
- "☦",
- "☪",
- "☮",
- "☯",
- "☸",
- "☹",
- "☺",
- "♀",
- "♂",
- "♟",
- "♠",
- "♣",
- "♥",
- "♦",
- "♨",
- "♻",
- "♾",
- "⚒",
- "⚔",
- "⚕",
- "⚖",
- "⚗",
- "⚙",
- "⚛",
- "⚜",
- "⚠",
- "⚧",
- "⚰",
- "⚱",
- "⛈",
- "⛏",
- "⛑",
- "⛓",
- "⛩",
- "⛰",
- "⛱",
- "⛴",
- "⛷",
- "⛸",
- "⛹",
- "✂",
- "✈",
- "✉",
- "✌",
- "✍",
- "✏",
- "✒",
- "✔",
- "✖",
- "✝",
- "✡",
- "✳",
- "✴",
- "❄",
- "❇",
- "❣",
- "❤",
- "➡",
- "⤴",
- "⤵",
- "⬅",
- "⬆",
- "⬇",
- "🅰",
- "🅱",
- "🅾",
- "🅿",
- "🌡",
- "🌤",
- "🌥",
- "🌦",
- "🌧",
- "🌨",
- "🌩",
- "🌪",
- "🌫",
- "🌬",
- "🌶",
- "🍽",
- "🎖",
- "🎗",
- "🎙",
- "🎚",
- "🎛",
- "🎞",
- "🎟",
- "🏋",
- "🏌",
- "🏍",
- "🏎",
- "🏔",
- "🏕",
- "🏖",
- "🏗",
- "🏘",
- "🏙",
- "🏚",
- "🏛",
- "🏜",
- "🏝",
- "🏞",
- "🏟",
- "🏳",
- "🏵",
- "🏷",
- "🐿",
- "👁",
- "📽",
- "🕉",
- "🕊",
- "🕯",
- "🕰",
- "🕳",
- "🕴",
- "🕵",
- "🕶",
- "🕷",
- "🕸",
- "🕹",
- "🖇",
- "🖊",
- "🖋",
- "🖌",
- "🖍",
- "🖐",
- "🖥",
- "🖨",
- "🖱",
- "🖲",
- "🖼",
- "🗂",
- "🗃",
- "🗄",
- "🗑",
- "🗒",
- "🗓",
- "🗜",
- "🗝",
- "🗞",
- "🗡",
- "🗣",
- "🗨",
- "🗯",
- "🗳",
- "🗺",
- "🛋",
- "🛍",
- "🛎",
- "🛏",
- "🛠",
- "🛡",
- "🛢",
- "🛣",
- "🛤",
- "🛥",
- "🛩",
- "🛰",
- "🛳",
- ]
- ),
-)
diff --git a/rich/_unicode_data/unicode16-0-0.py b/rich/_unicode_data/unicode16-0-0.py
deleted file mode 100644
index b3fe2359df..0000000000
--- a/rich/_unicode_data/unicode16-0-0.py
+++ /dev/null
@@ -1,683 +0,0 @@
-# Auto generated by tools/make_width_tables.py
-# Data from wcwidth project (https://github.com/jquast/wcwidth)
-
-from rich.cells import CellTable
-
-cell_table = CellTable(
- "16.0.0",
- [
- (0, 0, 0),
- (768, 879, 0),
- (1155, 1161, 0),
- (1425, 1469, 0),
- (1471, 1471, 0),
- (1473, 1474, 0),
- (1476, 1477, 0),
- (1479, 1479, 0),
- (1552, 1562, 0),
- (1564, 1564, 0),
- (1611, 1631, 0),
- (1648, 1648, 0),
- (1750, 1756, 0),
- (1759, 1764, 0),
- (1767, 1768, 0),
- (1770, 1773, 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),
- (2199, 2207, 0),
- (2250, 2273, 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),
- (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, 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, 12643, 2),
- (12644, 12644, 0),
- (12645, 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),
- (65440, 65440, 0),
- (65504, 65510, 2),
- (65520, 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),
- (69826, 69826, 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),
- (917504, 921599, 0),
- ],
- frozenset(
- [
- "#",
- "*",
- "0",
- "1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "©",
- "®",
- "‼",
- "⁉",
- "™",
- "ℹ",
- "↔",
- "↕",
- "↖",
- "↗",
- "↘",
- "↙",
- "↩",
- "↪",
- "⌨",
- "⏏",
- "⏭",
- "⏮",
- "⏯",
- "⏱",
- "⏲",
- "⏸",
- "⏹",
- "⏺",
- "Ⓜ",
- "▪",
- "▫",
- "▶",
- "◀",
- "◻",
- "◼",
- "☀",
- "☁",
- "☂",
- "☃",
- "☄",
- "☎",
- "☑",
- "☘",
- "☝",
- "☠",
- "☢",
- "☣",
- "☦",
- "☪",
- "☮",
- "☯",
- "☸",
- "☹",
- "☺",
- "♀",
- "♂",
- "♟",
- "♠",
- "♣",
- "♥",
- "♦",
- "♨",
- "♻",
- "♾",
- "⚒",
- "⚔",
- "⚕",
- "⚖",
- "⚗",
- "⚙",
- "⚛",
- "⚜",
- "⚠",
- "⚧",
- "⚰",
- "⚱",
- "⛈",
- "⛏",
- "⛑",
- "⛓",
- "⛩",
- "⛰",
- "⛱",
- "⛴",
- "⛷",
- "⛸",
- "⛹",
- "✂",
- "✈",
- "✉",
- "✌",
- "✍",
- "✏",
- "✒",
- "✔",
- "✖",
- "✝",
- "✡",
- "✳",
- "✴",
- "❄",
- "❇",
- "❣",
- "❤",
- "➡",
- "⤴",
- "⤵",
- "⬅",
- "⬆",
- "⬇",
- "🅰",
- "🅱",
- "🅾",
- "🅿",
- "🌡",
- "🌤",
- "🌥",
- "🌦",
- "🌧",
- "🌨",
- "🌩",
- "🌪",
- "🌫",
- "🌬",
- "🌶",
- "🍽",
- "🎖",
- "🎗",
- "🎙",
- "🎚",
- "🎛",
- "🎞",
- "🎟",
- "🏋",
- "🏌",
- "🏍",
- "🏎",
- "🏔",
- "🏕",
- "🏖",
- "🏗",
- "🏘",
- "🏙",
- "🏚",
- "🏛",
- "🏜",
- "🏝",
- "🏞",
- "🏟",
- "🏳",
- "🏵",
- "🏷",
- "🐿",
- "👁",
- "📽",
- "🕉",
- "🕊",
- "🕯",
- "🕰",
- "🕳",
- "🕴",
- "🕵",
- "🕶",
- "🕷",
- "🕸",
- "🕹",
- "🖇",
- "🖊",
- "🖋",
- "🖌",
- "🖍",
- "🖐",
- "🖥",
- "🖨",
- "🖱",
- "🖲",
- "🖼",
- "🗂",
- "🗃",
- "🗄",
- "🗑",
- "🗒",
- "🗓",
- "🗜",
- "🗝",
- "🗞",
- "🗡",
- "🗣",
- "🗨",
- "🗯",
- "🗳",
- "🗺",
- "🛋",
- "🛍",
- "🛎",
- "🛏",
- "🛠",
- "🛡",
- "🛢",
- "🛣",
- "🛤",
- "🛥",
- "🛩",
- "🛰",
- "🛳",
- ]
- ),
-)
diff --git a/rich/_unicode_data/unicode17-0-0.py b/rich/_unicode_data/unicode17-0-0.py
deleted file mode 100644
index 4108bb44de..0000000000
--- a/rich/_unicode_data/unicode17-0-0.py
+++ /dev/null
@@ -1,691 +0,0 @@
-# Auto generated by tools/make_width_tables.py
-# Data from wcwidth project (https://github.com/jquast/wcwidth)
-
-from rich.cells import CellTable
-
-cell_table = CellTable(
- "17.0.0",
- [
- (0, 0, 0),
- (768, 879, 0),
- (1155, 1161, 0),
- (1425, 1469, 0),
- (1471, 1471, 0),
- (1473, 1474, 0),
- (1476, 1477, 0),
- (1479, 1479, 0),
- (1552, 1562, 0),
- (1564, 1564, 0),
- (1611, 1631, 0),
- (1648, 1648, 0),
- (1750, 1756, 0),
- (1759, 1764, 0),
- (1767, 1768, 0),
- (1770, 1773, 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),
- (2199, 2207, 0),
- (2250, 2273, 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),
- (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, 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, 12643, 2),
- (12644, 12644, 0),
- (12645, 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),
- (65440, 65440, 0),
- (65504, 65510, 2),
- (65520, 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),
- (69826, 69826, 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),
- (917504, 921599, 0),
- ],
- frozenset(
- [
- "#",
- "*",
- "0",
- "1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "©",
- "®",
- "‼",
- "⁉",
- "™",
- "ℹ",
- "↔",
- "↕",
- "↖",
- "↗",
- "↘",
- "↙",
- "↩",
- "↪",
- "⌨",
- "⏏",
- "⏭",
- "⏮",
- "⏯",
- "⏱",
- "⏲",
- "⏸",
- "⏹",
- "⏺",
- "Ⓜ",
- "▪",
- "▫",
- "▶",
- "◀",
- "◻",
- "◼",
- "☀",
- "☁",
- "☂",
- "☃",
- "☄",
- "☎",
- "☑",
- "☘",
- "☝",
- "☠",
- "☢",
- "☣",
- "☦",
- "☪",
- "☮",
- "☯",
- "☸",
- "☹",
- "☺",
- "♀",
- "♂",
- "♟",
- "♠",
- "♣",
- "♥",
- "♦",
- "♨",
- "♻",
- "♾",
- "⚒",
- "⚔",
- "⚕",
- "⚖",
- "⚗",
- "⚙",
- "⚛",
- "⚜",
- "⚠",
- "⚧",
- "⚰",
- "⚱",
- "⛈",
- "⛏",
- "⛑",
- "⛓",
- "⛩",
- "⛰",
- "⛱",
- "⛴",
- "⛷",
- "⛸",
- "⛹",
- "✂",
- "✈",
- "✉",
- "✌",
- "✍",
- "✏",
- "✒",
- "✔",
- "✖",
- "✝",
- "✡",
- "✳",
- "✴",
- "❄",
- "❇",
- "❣",
- "❤",
- "➡",
- "⤴",
- "⤵",
- "⬅",
- "⬆",
- "⬇",
- "🅰",
- "🅱",
- "🅾",
- "🅿",
- "🌡",
- "🌤",
- "🌥",
- "🌦",
- "🌧",
- "🌨",
- "🌩",
- "🌪",
- "🌫",
- "🌬",
- "🌶",
- "🍽",
- "🎖",
- "🎗",
- "🎙",
- "🎚",
- "🎛",
- "🎞",
- "🎟",
- "🏋",
- "🏌",
- "🏍",
- "🏎",
- "🏔",
- "🏕",
- "🏖",
- "🏗",
- "🏘",
- "🏙",
- "🏚",
- "🏛",
- "🏜",
- "🏝",
- "🏞",
- "🏟",
- "🏳",
- "🏵",
- "🏷",
- "🐿",
- "👁",
- "📽",
- "🕉",
- "🕊",
- "🕯",
- "🕰",
- "🕳",
- "🕴",
- "🕵",
- "🕶",
- "🕷",
- "🕸",
- "🕹",
- "🖇",
- "🖊",
- "🖋",
- "🖌",
- "🖍",
- "🖐",
- "🖥",
- "🖨",
- "🖱",
- "🖲",
- "🖼",
- "🗂",
- "🗃",
- "🗄",
- "🗑",
- "🗒",
- "🗓",
- "🗜",
- "🗝",
- "🗞",
- "🗡",
- "🗣",
- "🗨",
- "🗯",
- "🗳",
- "🗺",
- "🛋",
- "🛍",
- "🛎",
- "🛏",
- "🛠",
- "🛡",
- "🛢",
- "🛣",
- "🛤",
- "🛥",
- "🛩",
- "🛰",
- "🛳",
- ]
- ),
-)
diff --git a/rich/_unicode_data/unicode4-1-0.py b/rich/_unicode_data/unicode4-1-0.py
deleted file mode 100644
index 23ff5cf1d0..0000000000
--- a/rich/_unicode_data/unicode4-1-0.py
+++ /dev/null
@@ -1,425 +0,0 @@
-# Auto generated by tools/make_width_tables.py
-# Data from wcwidth project (https://github.com/jquast/wcwidth)
-
-from rich.cells import CellTable
-
-cell_table = CellTable(
- "4.1.0",
- [
- (0, 8, 0),
- (14, 31, 0),
- (127, 132, 0),
- (134, 159, 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, 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, 12643, 2),
- (12644, 12644, 0),
- (12645, 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, 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),
- (65072, 65106, 2),
- (65108, 65126, 2),
- (65128, 65131, 2),
- (65279, 65279, 0),
- (65281, 65376, 2),
- (65440, 65440, 0),
- (65504, 65510, 2),
- (65520, 65531, 0),
- (65534, 65535, 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),
- (131070, 131071, 0),
- (131072, 196605, 2),
- (196606, 196607, 0),
- (196608, 262141, 2),
- (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),
- ],
- frozenset(
- [
- "#",
- "*",
- "0",
- "1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "©",
- "®",
- "‼",
- "⁉",
- "™",
- "ℹ",
- "↔",
- "↕",
- "↖",
- "↗",
- "↘",
- "↙",
- "↩",
- "↪",
- "⌨",
- "⏏",
- "⏭",
- "⏮",
- "⏯",
- "⏱",
- "⏲",
- "⏸",
- "⏹",
- "⏺",
- "Ⓜ",
- "▪",
- "▫",
- "▶",
- "◀",
- "◻",
- "◼",
- "☀",
- "☁",
- "☂",
- "☃",
- "☄",
- "☎",
- "☑",
- "☘",
- "☝",
- "☠",
- "☢",
- "☣",
- "☦",
- "☪",
- "☮",
- "☯",
- "☸",
- "☹",
- "☺",
- "♀",
- "♂",
- "♟",
- "♠",
- "♣",
- "♥",
- "♦",
- "♨",
- "♻",
- "♾",
- "⚒",
- "⚔",
- "⚕",
- "⚖",
- "⚗",
- "⚙",
- "⚛",
- "⚜",
- "⚠",
- "⚧",
- "⚰",
- "⚱",
- "⛈",
- "⛏",
- "⛑",
- "⛓",
- "⛩",
- "⛰",
- "⛱",
- "⛴",
- "⛷",
- "⛸",
- "⛹",
- "✂",
- "✈",
- "✉",
- "✌",
- "✍",
- "✏",
- "✒",
- "✔",
- "✖",
- "✝",
- "✡",
- "✳",
- "✴",
- "❄",
- "❇",
- "❣",
- "❤",
- "➡",
- "⤴",
- "⤵",
- "⬅",
- "⬆",
- "⬇",
- "🅰",
- "🅱",
- "🅾",
- "🅿",
- "🌡",
- "🌤",
- "🌥",
- "🌦",
- "🌧",
- "🌨",
- "🌩",
- "🌪",
- "🌫",
- "🌬",
- "🌶",
- "🍽",
- "🎖",
- "🎗",
- "🎙",
- "🎚",
- "🎛",
- "🎞",
- "🎟",
- "🏋",
- "🏌",
- "🏍",
- "🏎",
- "🏔",
- "🏕",
- "🏖",
- "🏗",
- "🏘",
- "🏙",
- "🏚",
- "🏛",
- "🏜",
- "🏝",
- "🏞",
- "🏟",
- "🏳",
- "🏵",
- "🏷",
- "🐿",
- "👁",
- "📽",
- "🕉",
- "🕊",
- "🕯",
- "🕰",
- "🕳",
- "🕴",
- "🕵",
- "🕶",
- "🕷",
- "🕸",
- "🕹",
- "🖇",
- "🖊",
- "🖋",
- "🖌",
- "🖍",
- "🖐",
- "🖥",
- "🖨",
- "🖱",
- "🖲",
- "🖼",
- "🗂",
- "🗃",
- "🗄",
- "🗑",
- "🗒",
- "🗓",
- "🗜",
- "🗝",
- "🗞",
- "🗡",
- "🗣",
- "🗨",
- "🗯",
- "🗳",
- "🗺",
- "🛋",
- "🛍",
- "🛎",
- "🛏",
- "🛠",
- "🛡",
- "🛢",
- "🛣",
- "🛤",
- "🛥",
- "🛩",
- "🛰",
- "🛳",
- ]
- ),
-)
diff --git a/rich/_unicode_data/unicode5-0-0.py b/rich/_unicode_data/unicode5-0-0.py
deleted file mode 100644
index 599fb78570..0000000000
--- a/rich/_unicode_data/unicode5-0-0.py
+++ /dev/null
@@ -1,430 +0,0 @@
-# Auto generated by tools/make_width_tables.py
-# Data from wcwidth project (https://github.com/jquast/wcwidth)
-
-from rich.cells import CellTable
-
-cell_table = CellTable(
- "5.0.0",
- [
- (0, 8, 0),
- (14, 31, 0),
- (127, 132, 0),
- (134, 159, 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, 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, 12643, 2),
- (12644, 12644, 0),
- (12645, 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, 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),
- (65072, 65106, 2),
- (65108, 65126, 2),
- (65128, 65131, 2),
- (65279, 65279, 0),
- (65281, 65376, 2),
- (65440, 65440, 0),
- (65504, 65510, 2),
- (65520, 65531, 0),
- (65534, 65535, 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),
- (131070, 131071, 0),
- (131072, 196605, 2),
- (196606, 196607, 0),
- (196608, 262141, 2),
- (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),
- ],
- frozenset(
- [
- "#",
- "*",
- "0",
- "1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "©",
- "®",
- "‼",
- "⁉",
- "™",
- "ℹ",
- "↔",
- "↕",
- "↖",
- "↗",
- "↘",
- "↙",
- "↩",
- "↪",
- "⌨",
- "⏏",
- "⏭",
- "⏮",
- "⏯",
- "⏱",
- "⏲",
- "⏸",
- "⏹",
- "⏺",
- "Ⓜ",
- "▪",
- "▫",
- "▶",
- "◀",
- "◻",
- "◼",
- "☀",
- "☁",
- "☂",
- "☃",
- "☄",
- "☎",
- "☑",
- "☘",
- "☝",
- "☠",
- "☢",
- "☣",
- "☦",
- "☪",
- "☮",
- "☯",
- "☸",
- "☹",
- "☺",
- "♀",
- "♂",
- "♟",
- "♠",
- "♣",
- "♥",
- "♦",
- "♨",
- "♻",
- "♾",
- "⚒",
- "⚔",
- "⚕",
- "⚖",
- "⚗",
- "⚙",
- "⚛",
- "⚜",
- "⚠",
- "⚧",
- "⚰",
- "⚱",
- "⛈",
- "⛏",
- "⛑",
- "⛓",
- "⛩",
- "⛰",
- "⛱",
- "⛴",
- "⛷",
- "⛸",
- "⛹",
- "✂",
- "✈",
- "✉",
- "✌",
- "✍",
- "✏",
- "✒",
- "✔",
- "✖",
- "✝",
- "✡",
- "✳",
- "✴",
- "❄",
- "❇",
- "❣",
- "❤",
- "➡",
- "⤴",
- "⤵",
- "⬅",
- "⬆",
- "⬇",
- "🅰",
- "🅱",
- "🅾",
- "🅿",
- "🌡",
- "🌤",
- "🌥",
- "🌦",
- "🌧",
- "🌨",
- "🌩",
- "🌪",
- "🌫",
- "🌬",
- "🌶",
- "🍽",
- "🎖",
- "🎗",
- "🎙",
- "🎚",
- "🎛",
- "🎞",
- "🎟",
- "🏋",
- "🏌",
- "🏍",
- "🏎",
- "🏔",
- "🏕",
- "🏖",
- "🏗",
- "🏘",
- "🏙",
- "🏚",
- "🏛",
- "🏜",
- "🏝",
- "🏞",
- "🏟",
- "🏳",
- "🏵",
- "🏷",
- "🐿",
- "👁",
- "📽",
- "🕉",
- "🕊",
- "🕯",
- "🕰",
- "🕳",
- "🕴",
- "🕵",
- "🕶",
- "🕷",
- "🕸",
- "🕹",
- "🖇",
- "🖊",
- "🖋",
- "🖌",
- "🖍",
- "🖐",
- "🖥",
- "🖨",
- "🖱",
- "🖲",
- "🖼",
- "🗂",
- "🗃",
- "🗄",
- "🗑",
- "🗒",
- "🗓",
- "🗜",
- "🗝",
- "🗞",
- "🗡",
- "🗣",
- "🗨",
- "🗯",
- "🗳",
- "🗺",
- "🛋",
- "🛍",
- "🛎",
- "🛏",
- "🛠",
- "🛡",
- "🛢",
- "🛣",
- "🛤",
- "🛥",
- "🛩",
- "🛰",
- "🛳",
- ]
- ),
-)
diff --git a/rich/_unicode_data/unicode5-1-0.py b/rich/_unicode_data/unicode5-1-0.py
deleted file mode 100644
index 016e7825ec..0000000000
--- a/rich/_unicode_data/unicode5-1-0.py
+++ /dev/null
@@ -1,433 +0,0 @@
-# Auto generated by tools/make_width_tables.py
-# Data from wcwidth project (https://github.com/jquast/wcwidth)
-
-from rich.cells import CellTable
-
-cell_table = CellTable(
- "5.1.0",
- [
- (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, 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, 12643, 2),
- (12644, 12644, 0),
- (12645, 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),
- (65440, 65440, 0),
- (65504, 65510, 2),
- (65520, 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),
- (917504, 921599, 0),
- ],
- frozenset(
- [
- "#",
- "*",
- "0",
- "1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "©",
- "®",
- "‼",
- "⁉",
- "™",
- "ℹ",
- "↔",
- "↕",
- "↖",
- "↗",
- "↘",
- "↙",
- "↩",
- "↪",
- "⌨",
- "⏏",
- "⏭",
- "⏮",
- "⏯",
- "⏱",
- "⏲",
- "⏸",
- "⏹",
- "⏺",
- "Ⓜ",
- "▪",
- "▫",
- "▶",
- "◀",
- "◻",
- "◼",
- "☀",
- "☁",
- "☂",
- "☃",
- "☄",
- "☎",
- "☑",
- "☘",
- "☝",
- "☠",
- "☢",
- "☣",
- "☦",
- "☪",
- "☮",
- "☯",
- "☸",
- "☹",
- "☺",
- "♀",
- "♂",
- "♟",
- "♠",
- "♣",
- "♥",
- "♦",
- "♨",
- "♻",
- "♾",
- "⚒",
- "⚔",
- "⚕",
- "⚖",
- "⚗",
- "⚙",
- "⚛",
- "⚜",
- "⚠",
- "⚧",
- "⚰",
- "⚱",
- "⛈",
- "⛏",
- "⛑",
- "⛓",
- "⛩",
- "⛰",
- "⛱",
- "⛴",
- "⛷",
- "⛸",
- "⛹",
- "✂",
- "✈",
- "✉",
- "✌",
- "✍",
- "✏",
- "✒",
- "✔",
- "✖",
- "✝",
- "✡",
- "✳",
- "✴",
- "❄",
- "❇",
- "❣",
- "❤",
- "➡",
- "⤴",
- "⤵",
- "⬅",
- "⬆",
- "⬇",
- "🅰",
- "🅱",
- "🅾",
- "🅿",
- "🌡",
- "🌤",
- "🌥",
- "🌦",
- "🌧",
- "🌨",
- "🌩",
- "🌪",
- "🌫",
- "🌬",
- "🌶",
- "🍽",
- "🎖",
- "🎗",
- "🎙",
- "🎚",
- "🎛",
- "🎞",
- "🎟",
- "🏋",
- "🏌",
- "🏍",
- "🏎",
- "🏔",
- "🏕",
- "🏖",
- "🏗",
- "🏘",
- "🏙",
- "🏚",
- "🏛",
- "🏜",
- "🏝",
- "🏞",
- "🏟",
- "🏳",
- "🏵",
- "🏷",
- "🐿",
- "👁",
- "📽",
- "🕉",
- "🕊",
- "🕯",
- "🕰",
- "🕳",
- "🕴",
- "🕵",
- "🕶",
- "🕷",
- "🕸",
- "🕹",
- "🖇",
- "🖊",
- "🖋",
- "🖌",
- "🖍",
- "🖐",
- "🖥",
- "🖨",
- "🖱",
- "🖲",
- "🖼",
- "🗂",
- "🗃",
- "🗄",
- "🗑",
- "🗒",
- "🗓",
- "🗜",
- "🗝",
- "🗞",
- "🗡",
- "🗣",
- "🗨",
- "🗯",
- "🗳",
- "🗺",
- "🛋",
- "🛍",
- "🛎",
- "🛏",
- "🛠",
- "🛡",
- "🛢",
- "🛣",
- "🛤",
- "🛥",
- "🛩",
- "🛰",
- "🛳",
- ]
- ),
-)
diff --git a/rich/_unicode_data/unicode5-2-0.py b/rich/_unicode_data/unicode5-2-0.py
deleted file mode 100644
index e984f12e95..0000000000
--- a/rich/_unicode_data/unicode5-2-0.py
+++ /dev/null
@@ -1,461 +0,0 @@
-# Auto generated by tools/make_width_tables.py
-# Data from wcwidth project (https://github.com/jquast/wcwidth)
-
-from rich.cells import CellTable
-
-cell_table = CellTable(
- "5.2.0",
- [
- (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, 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, 12643, 2),
- (12644, 12644, 0),
- (12645, 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),
- (65440, 65440, 0),
- (65504, 65510, 2),
- (65520, 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),
- (917504, 921599, 0),
- ],
- frozenset(
- [
- "#",
- "*",
- "0",
- "1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "©",
- "®",
- "‼",
- "⁉",
- "™",
- "ℹ",
- "↔",
- "↕",
- "↖",
- "↗",
- "↘",
- "↙",
- "↩",
- "↪",
- "⌨",
- "⏏",
- "⏭",
- "⏮",
- "⏯",
- "⏱",
- "⏲",
- "⏸",
- "⏹",
- "⏺",
- "Ⓜ",
- "▪",
- "▫",
- "▶",
- "◀",
- "◻",
- "◼",
- "☀",
- "☁",
- "☂",
- "☃",
- "☄",
- "☎",
- "☑",
- "☘",
- "☝",
- "☠",
- "☢",
- "☣",
- "☦",
- "☪",
- "☮",
- "☯",
- "☸",
- "☹",
- "☺",
- "♀",
- "♂",
- "♟",
- "♠",
- "♣",
- "♥",
- "♦",
- "♨",
- "♻",
- "♾",
- "⚒",
- "⚔",
- "⚕",
- "⚖",
- "⚗",
- "⚙",
- "⚛",
- "⚜",
- "⚠",
- "⚧",
- "⚰",
- "⚱",
- "⛈",
- "⛏",
- "⛑",
- "⛓",
- "⛩",
- "⛰",
- "⛱",
- "⛴",
- "⛷",
- "⛸",
- "⛹",
- "✂",
- "✈",
- "✉",
- "✌",
- "✍",
- "✏",
- "✒",
- "✔",
- "✖",
- "✝",
- "✡",
- "✳",
- "✴",
- "❄",
- "❇",
- "❣",
- "❤",
- "➡",
- "⤴",
- "⤵",
- "⬅",
- "⬆",
- "⬇",
- "🅰",
- "🅱",
- "🅾",
- "🅿",
- "🌡",
- "🌤",
- "🌥",
- "🌦",
- "🌧",
- "🌨",
- "🌩",
- "🌪",
- "🌫",
- "🌬",
- "🌶",
- "🍽",
- "🎖",
- "🎗",
- "🎙",
- "🎚",
- "🎛",
- "🎞",
- "🎟",
- "🏋",
- "🏌",
- "🏍",
- "🏎",
- "🏔",
- "🏕",
- "🏖",
- "🏗",
- "🏘",
- "🏙",
- "🏚",
- "🏛",
- "🏜",
- "🏝",
- "🏞",
- "🏟",
- "🏳",
- "🏵",
- "🏷",
- "🐿",
- "👁",
- "📽",
- "🕉",
- "🕊",
- "🕯",
- "🕰",
- "🕳",
- "🕴",
- "🕵",
- "🕶",
- "🕷",
- "🕸",
- "🕹",
- "🖇",
- "🖊",
- "🖋",
- "🖌",
- "🖍",
- "🖐",
- "🖥",
- "🖨",
- "🖱",
- "🖲",
- "🖼",
- "🗂",
- "🗃",
- "🗄",
- "🗑",
- "🗒",
- "🗓",
- "🗜",
- "🗝",
- "🗞",
- "🗡",
- "🗣",
- "🗨",
- "🗯",
- "🗳",
- "🗺",
- "🛋",
- "🛍",
- "🛎",
- "🛏",
- "🛠",
- "🛡",
- "🛢",
- "🛣",
- "🛤",
- "🛥",
- "🛩",
- "🛰",
- "🛳",
- ]
- ),
-)
diff --git a/rich/_unicode_data/unicode6-0-0.py b/rich/_unicode_data/unicode6-0-0.py
deleted file mode 100644
index 8d5abb455c..0000000000
--- a/rich/_unicode_data/unicode6-0-0.py
+++ /dev/null
@@ -1,469 +0,0 @@
-# Auto generated by tools/make_width_tables.py
-# Data from wcwidth project (https://github.com/jquast/wcwidth)
-
-from rich.cells import CellTable
-
-cell_table = CellTable(
- "6.0.0",
- [
- (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, 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, 12643, 2),
- (12644, 12644, 0),
- (12645, 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),
- (65440, 65440, 0),
- (65504, 65510, 2),
- (65520, 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),
- (917504, 921599, 0),
- ],
- frozenset(
- [
- "#",
- "*",
- "0",
- "1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "©",
- "®",
- "‼",
- "⁉",
- "™",
- "ℹ",
- "↔",
- "↕",
- "↖",
- "↗",
- "↘",
- "↙",
- "↩",
- "↪",
- "⌨",
- "⏏",
- "⏭",
- "⏮",
- "⏯",
- "⏱",
- "⏲",
- "⏸",
- "⏹",
- "⏺",
- "Ⓜ",
- "▪",
- "▫",
- "▶",
- "◀",
- "◻",
- "◼",
- "☀",
- "☁",
- "☂",
- "☃",
- "☄",
- "☎",
- "☑",
- "☘",
- "☝",
- "☠",
- "☢",
- "☣",
- "☦",
- "☪",
- "☮",
- "☯",
- "☸",
- "☹",
- "☺",
- "♀",
- "♂",
- "♟",
- "♠",
- "♣",
- "♥",
- "♦",
- "♨",
- "♻",
- "♾",
- "⚒",
- "⚔",
- "⚕",
- "⚖",
- "⚗",
- "⚙",
- "⚛",
- "⚜",
- "⚠",
- "⚧",
- "⚰",
- "⚱",
- "⛈",
- "⛏",
- "⛑",
- "⛓",
- "⛩",
- "⛰",
- "⛱",
- "⛴",
- "⛷",
- "⛸",
- "⛹",
- "✂",
- "✈",
- "✉",
- "✌",
- "✍",
- "✏",
- "✒",
- "✔",
- "✖",
- "✝",
- "✡",
- "✳",
- "✴",
- "❄",
- "❇",
- "❣",
- "❤",
- "➡",
- "⤴",
- "⤵",
- "⬅",
- "⬆",
- "⬇",
- "🅰",
- "🅱",
- "🅾",
- "🅿",
- "🌡",
- "🌤",
- "🌥",
- "🌦",
- "🌧",
- "🌨",
- "🌩",
- "🌪",
- "🌫",
- "🌬",
- "🌶",
- "🍽",
- "🎖",
- "🎗",
- "🎙",
- "🎚",
- "🎛",
- "🎞",
- "🎟",
- "🏋",
- "🏌",
- "🏍",
- "🏎",
- "🏔",
- "🏕",
- "🏖",
- "🏗",
- "🏘",
- "🏙",
- "🏚",
- "🏛",
- "🏜",
- "🏝",
- "🏞",
- "🏟",
- "🏳",
- "🏵",
- "🏷",
- "🐿",
- "👁",
- "📽",
- "🕉",
- "🕊",
- "🕯",
- "🕰",
- "🕳",
- "🕴",
- "🕵",
- "🕶",
- "🕷",
- "🕸",
- "🕹",
- "🖇",
- "🖊",
- "🖋",
- "🖌",
- "🖍",
- "🖐",
- "🖥",
- "🖨",
- "🖱",
- "🖲",
- "🖼",
- "🗂",
- "🗃",
- "🗄",
- "🗑",
- "🗒",
- "🗓",
- "🗜",
- "🗝",
- "🗞",
- "🗡",
- "🗣",
- "🗨",
- "🗯",
- "🗳",
- "🗺",
- "🛋",
- "🛍",
- "🛎",
- "🛏",
- "🛠",
- "🛡",
- "🛢",
- "🛣",
- "🛤",
- "🛥",
- "🛩",
- "🛰",
- "🛳",
- ]
- ),
-)
diff --git a/rich/_unicode_data/unicode6-1-0.py b/rich/_unicode_data/unicode6-1-0.py
deleted file mode 100644
index 29d3e92988..0000000000
--- a/rich/_unicode_data/unicode6-1-0.py
+++ /dev/null
@@ -1,480 +0,0 @@
-# Auto generated by tools/make_width_tables.py
-# Data from wcwidth project (https://github.com/jquast/wcwidth)
-
-from rich.cells import CellTable
-
-cell_table = CellTable(
- "6.1.0",
- [
- (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, 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, 12643, 2),
- (12644, 12644, 0),
- (12645, 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),
- (65440, 65440, 0),
- (65504, 65510, 2),
- (65520, 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),
- (917504, 921599, 0),
- ],
- frozenset(
- [
- "#",
- "*",
- "0",
- "1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "©",
- "®",
- "‼",
- "⁉",
- "™",
- "ℹ",
- "↔",
- "↕",
- "↖",
- "↗",
- "↘",
- "↙",
- "↩",
- "↪",
- "⌨",
- "⏏",
- "⏭",
- "⏮",
- "⏯",
- "⏱",
- "⏲",
- "⏸",
- "⏹",
- "⏺",
- "Ⓜ",
- "▪",
- "▫",
- "▶",
- "◀",
- "◻",
- "◼",
- "☀",
- "☁",
- "☂",
- "☃",
- "☄",
- "☎",
- "☑",
- "☘",
- "☝",
- "☠",
- "☢",
- "☣",
- "☦",
- "☪",
- "☮",
- "☯",
- "☸",
- "☹",
- "☺",
- "♀",
- "♂",
- "♟",
- "♠",
- "♣",
- "♥",
- "♦",
- "♨",
- "♻",
- "♾",
- "⚒",
- "⚔",
- "⚕",
- "⚖",
- "⚗",
- "⚙",
- "⚛",
- "⚜",
- "⚠",
- "⚧",
- "⚰",
- "⚱",
- "⛈",
- "⛏",
- "⛑",
- "⛓",
- "⛩",
- "⛰",
- "⛱",
- "⛴",
- "⛷",
- "⛸",
- "⛹",
- "✂",
- "✈",
- "✉",
- "✌",
- "✍",
- "✏",
- "✒",
- "✔",
- "✖",
- "✝",
- "✡",
- "✳",
- "✴",
- "❄",
- "❇",
- "❣",
- "❤",
- "➡",
- "⤴",
- "⤵",
- "⬅",
- "⬆",
- "⬇",
- "🅰",
- "🅱",
- "🅾",
- "🅿",
- "🌡",
- "🌤",
- "🌥",
- "🌦",
- "🌧",
- "🌨",
- "🌩",
- "🌪",
- "🌫",
- "🌬",
- "🌶",
- "🍽",
- "🎖",
- "🎗",
- "🎙",
- "🎚",
- "🎛",
- "🎞",
- "🎟",
- "🏋",
- "🏌",
- "🏍",
- "🏎",
- "🏔",
- "🏕",
- "🏖",
- "🏗",
- "🏘",
- "🏙",
- "🏚",
- "🏛",
- "🏜",
- "🏝",
- "🏞",
- "🏟",
- "🏳",
- "🏵",
- "🏷",
- "🐿",
- "👁",
- "📽",
- "🕉",
- "🕊",
- "🕯",
- "🕰",
- "🕳",
- "🕴",
- "🕵",
- "🕶",
- "🕷",
- "🕸",
- "🕹",
- "🖇",
- "🖊",
- "🖋",
- "🖌",
- "🖍",
- "🖐",
- "🖥",
- "🖨",
- "🖱",
- "🖲",
- "🖼",
- "🗂",
- "🗃",
- "🗄",
- "🗑",
- "🗒",
- "🗓",
- "🗜",
- "🗝",
- "🗞",
- "🗡",
- "🗣",
- "🗨",
- "🗯",
- "🗳",
- "🗺",
- "🛋",
- "🛍",
- "🛎",
- "🛏",
- "🛠",
- "🛡",
- "🛢",
- "🛣",
- "🛤",
- "🛥",
- "🛩",
- "🛰",
- "🛳",
- ]
- ),
-)
diff --git a/rich/_unicode_data/unicode6-2-0.py b/rich/_unicode_data/unicode6-2-0.py
deleted file mode 100644
index d0cda351a4..0000000000
--- a/rich/_unicode_data/unicode6-2-0.py
+++ /dev/null
@@ -1,480 +0,0 @@
-# Auto generated by tools/make_width_tables.py
-# Data from wcwidth project (https://github.com/jquast/wcwidth)
-
-from rich.cells import CellTable
-
-cell_table = CellTable(
- "6.2.0",
- [
- (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, 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, 12643, 2),
- (12644, 12644, 0),
- (12645, 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),
- (65440, 65440, 0),
- (65504, 65510, 2),
- (65520, 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),
- (917504, 921599, 0),
- ],
- frozenset(
- [
- "#",
- "*",
- "0",
- "1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "©",
- "®",
- "‼",
- "⁉",
- "™",
- "ℹ",
- "↔",
- "↕",
- "↖",
- "↗",
- "↘",
- "↙",
- "↩",
- "↪",
- "⌨",
- "⏏",
- "⏭",
- "⏮",
- "⏯",
- "⏱",
- "⏲",
- "⏸",
- "⏹",
- "⏺",
- "Ⓜ",
- "▪",
- "▫",
- "▶",
- "◀",
- "◻",
- "◼",
- "☀",
- "☁",
- "☂",
- "☃",
- "☄",
- "☎",
- "☑",
- "☘",
- "☝",
- "☠",
- "☢",
- "☣",
- "☦",
- "☪",
- "☮",
- "☯",
- "☸",
- "☹",
- "☺",
- "♀",
- "♂",
- "♟",
- "♠",
- "♣",
- "♥",
- "♦",
- "♨",
- "♻",
- "♾",
- "⚒",
- "⚔",
- "⚕",
- "⚖",
- "⚗",
- "⚙",
- "⚛",
- "⚜",
- "⚠",
- "⚧",
- "⚰",
- "⚱",
- "⛈",
- "⛏",
- "⛑",
- "⛓",
- "⛩",
- "⛰",
- "⛱",
- "⛴",
- "⛷",
- "⛸",
- "⛹",
- "✂",
- "✈",
- "✉",
- "✌",
- "✍",
- "✏",
- "✒",
- "✔",
- "✖",
- "✝",
- "✡",
- "✳",
- "✴",
- "❄",
- "❇",
- "❣",
- "❤",
- "➡",
- "⤴",
- "⤵",
- "⬅",
- "⬆",
- "⬇",
- "🅰",
- "🅱",
- "🅾",
- "🅿",
- "🌡",
- "🌤",
- "🌥",
- "🌦",
- "🌧",
- "🌨",
- "🌩",
- "🌪",
- "🌫",
- "🌬",
- "🌶",
- "🍽",
- "🎖",
- "🎗",
- "🎙",
- "🎚",
- "🎛",
- "🎞",
- "🎟",
- "🏋",
- "🏌",
- "🏍",
- "🏎",
- "🏔",
- "🏕",
- "🏖",
- "🏗",
- "🏘",
- "🏙",
- "🏚",
- "🏛",
- "🏜",
- "🏝",
- "🏞",
- "🏟",
- "🏳",
- "🏵",
- "🏷",
- "🐿",
- "👁",
- "📽",
- "🕉",
- "🕊",
- "🕯",
- "🕰",
- "🕳",
- "🕴",
- "🕵",
- "🕶",
- "🕷",
- "🕸",
- "🕹",
- "🖇",
- "🖊",
- "🖋",
- "🖌",
- "🖍",
- "🖐",
- "🖥",
- "🖨",
- "🖱",
- "🖲",
- "🖼",
- "🗂",
- "🗃",
- "🗄",
- "🗑",
- "🗒",
- "🗓",
- "🗜",
- "🗝",
- "🗞",
- "🗡",
- "🗣",
- "🗨",
- "🗯",
- "🗳",
- "🗺",
- "🛋",
- "🛍",
- "🛎",
- "🛏",
- "🛠",
- "🛡",
- "🛢",
- "🛣",
- "🛤",
- "🛥",
- "🛩",
- "🛰",
- "🛳",
- ]
- ),
-)
diff --git a/rich/_unicode_data/unicode6-3-0.py b/rich/_unicode_data/unicode6-3-0.py
deleted file mode 100644
index cffb7ee942..0000000000
--- a/rich/_unicode_data/unicode6-3-0.py
+++ /dev/null
@@ -1,481 +0,0 @@
-# Auto generated by tools/make_width_tables.py
-# Data from wcwidth project (https://github.com/jquast/wcwidth)
-
-from rich.cells import CellTable
-
-cell_table = CellTable(
- "6.3.0",
- [
- (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, 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, 12643, 2),
- (12644, 12644, 0),
- (12645, 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),
- (65440, 65440, 0),
- (65504, 65510, 2),
- (65520, 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),
- (917504, 921599, 0),
- ],
- frozenset(
- [
- "#",
- "*",
- "0",
- "1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "©",
- "®",
- "‼",
- "⁉",
- "™",
- "ℹ",
- "↔",
- "↕",
- "↖",
- "↗",
- "↘",
- "↙",
- "↩",
- "↪",
- "⌨",
- "⏏",
- "⏭",
- "⏮",
- "⏯",
- "⏱",
- "⏲",
- "⏸",
- "⏹",
- "⏺",
- "Ⓜ",
- "▪",
- "▫",
- "▶",
- "◀",
- "◻",
- "◼",
- "☀",
- "☁",
- "☂",
- "☃",
- "☄",
- "☎",
- "☑",
- "☘",
- "☝",
- "☠",
- "☢",
- "☣",
- "☦",
- "☪",
- "☮",
- "☯",
- "☸",
- "☹",
- "☺",
- "♀",
- "♂",
- "♟",
- "♠",
- "♣",
- "♥",
- "♦",
- "♨",
- "♻",
- "♾",
- "⚒",
- "⚔",
- "⚕",
- "⚖",
- "⚗",
- "⚙",
- "⚛",
- "⚜",
- "⚠",
- "⚧",
- "⚰",
- "⚱",
- "⛈",
- "⛏",
- "⛑",
- "⛓",
- "⛩",
- "⛰",
- "⛱",
- "⛴",
- "⛷",
- "⛸",
- "⛹",
- "✂",
- "✈",
- "✉",
- "✌",
- "✍",
- "✏",
- "✒",
- "✔",
- "✖",
- "✝",
- "✡",
- "✳",
- "✴",
- "❄",
- "❇",
- "❣",
- "❤",
- "➡",
- "⤴",
- "⤵",
- "⬅",
- "⬆",
- "⬇",
- "🅰",
- "🅱",
- "🅾",
- "🅿",
- "🌡",
- "🌤",
- "🌥",
- "🌦",
- "🌧",
- "🌨",
- "🌩",
- "🌪",
- "🌫",
- "🌬",
- "🌶",
- "🍽",
- "🎖",
- "🎗",
- "🎙",
- "🎚",
- "🎛",
- "🎞",
- "🎟",
- "🏋",
- "🏌",
- "🏍",
- "🏎",
- "🏔",
- "🏕",
- "🏖",
- "🏗",
- "🏘",
- "🏙",
- "🏚",
- "🏛",
- "🏜",
- "🏝",
- "🏞",
- "🏟",
- "🏳",
- "🏵",
- "🏷",
- "🐿",
- "👁",
- "📽",
- "🕉",
- "🕊",
- "🕯",
- "🕰",
- "🕳",
- "🕴",
- "🕵",
- "🕶",
- "🕷",
- "🕸",
- "🕹",
- "🖇",
- "🖊",
- "🖋",
- "🖌",
- "🖍",
- "🖐",
- "🖥",
- "🖨",
- "🖱",
- "🖲",
- "🖼",
- "🗂",
- "🗃",
- "🗄",
- "🗑",
- "🗒",
- "🗓",
- "🗜",
- "🗝",
- "🗞",
- "🗡",
- "🗣",
- "🗨",
- "🗯",
- "🗳",
- "🗺",
- "🛋",
- "🛍",
- "🛎",
- "🛏",
- "🛠",
- "🛡",
- "🛢",
- "🛣",
- "🛤",
- "🛥",
- "🛩",
- "🛰",
- "🛳",
- ]
- ),
-)
diff --git a/rich/_unicode_data/unicode7-0-0.py b/rich/_unicode_data/unicode7-0-0.py
deleted file mode 100644
index 996478ac24..0000000000
--- a/rich/_unicode_data/unicode7-0-0.py
+++ /dev/null
@@ -1,507 +0,0 @@
-# Auto generated by tools/make_width_tables.py
-# Data from wcwidth project (https://github.com/jquast/wcwidth)
-
-from rich.cells import CellTable
-
-cell_table = CellTable(
- "7.0.0",
- [
- (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, 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, 12643, 2),
- (12644, 12644, 0),
- (12645, 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),
- (65440, 65440, 0),
- (65504, 65510, 2),
- (65520, 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),
- (917504, 921599, 0),
- ],
- frozenset(
- [
- "#",
- "*",
- "0",
- "1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "©",
- "®",
- "‼",
- "⁉",
- "™",
- "ℹ",
- "↔",
- "↕",
- "↖",
- "↗",
- "↘",
- "↙",
- "↩",
- "↪",
- "⌨",
- "⏏",
- "⏭",
- "⏮",
- "⏯",
- "⏱",
- "⏲",
- "⏸",
- "⏹",
- "⏺",
- "Ⓜ",
- "▪",
- "▫",
- "▶",
- "◀",
- "◻",
- "◼",
- "☀",
- "☁",
- "☂",
- "☃",
- "☄",
- "☎",
- "☑",
- "☘",
- "☝",
- "☠",
- "☢",
- "☣",
- "☦",
- "☪",
- "☮",
- "☯",
- "☸",
- "☹",
- "☺",
- "♀",
- "♂",
- "♟",
- "♠",
- "♣",
- "♥",
- "♦",
- "♨",
- "♻",
- "♾",
- "⚒",
- "⚔",
- "⚕",
- "⚖",
- "⚗",
- "⚙",
- "⚛",
- "⚜",
- "⚠",
- "⚧",
- "⚰",
- "⚱",
- "⛈",
- "⛏",
- "⛑",
- "⛓",
- "⛩",
- "⛰",
- "⛱",
- "⛴",
- "⛷",
- "⛸",
- "⛹",
- "✂",
- "✈",
- "✉",
- "✌",
- "✍",
- "✏",
- "✒",
- "✔",
- "✖",
- "✝",
- "✡",
- "✳",
- "✴",
- "❄",
- "❇",
- "❣",
- "❤",
- "➡",
- "⤴",
- "⤵",
- "⬅",
- "⬆",
- "⬇",
- "🅰",
- "🅱",
- "🅾",
- "🅿",
- "🌡",
- "🌤",
- "🌥",
- "🌦",
- "🌧",
- "🌨",
- "🌩",
- "🌪",
- "🌫",
- "🌬",
- "🌶",
- "🍽",
- "🎖",
- "🎗",
- "🎙",
- "🎚",
- "🎛",
- "🎞",
- "🎟",
- "🏋",
- "🏌",
- "🏍",
- "🏎",
- "🏔",
- "🏕",
- "🏖",
- "🏗",
- "🏘",
- "🏙",
- "🏚",
- "🏛",
- "🏜",
- "🏝",
- "🏞",
- "🏟",
- "🏳",
- "🏵",
- "🏷",
- "🐿",
- "👁",
- "📽",
- "🕉",
- "🕊",
- "🕯",
- "🕰",
- "🕳",
- "🕴",
- "🕵",
- "🕶",
- "🕷",
- "🕸",
- "🕹",
- "🖇",
- "🖊",
- "🖋",
- "🖌",
- "🖍",
- "🖐",
- "🖥",
- "🖨",
- "🖱",
- "🖲",
- "🖼",
- "🗂",
- "🗃",
- "🗄",
- "🗑",
- "🗒",
- "🗓",
- "🗜",
- "🗝",
- "🗞",
- "🗡",
- "🗣",
- "🗨",
- "🗯",
- "🗳",
- "🗺",
- "🛋",
- "🛍",
- "🛎",
- "🛏",
- "🛠",
- "🛡",
- "🛢",
- "🛣",
- "🛤",
- "🛥",
- "🛩",
- "🛰",
- "🛳",
- ]
- ),
-)
diff --git a/rich/_unicode_data/unicode8-0-0.py b/rich/_unicode_data/unicode8-0-0.py
deleted file mode 100644
index ae34a382a6..0000000000
--- a/rich/_unicode_data/unicode8-0-0.py
+++ /dev/null
@@ -1,515 +0,0 @@
-# Auto generated by tools/make_width_tables.py
-# Data from wcwidth project (https://github.com/jquast/wcwidth)
-
-from rich.cells import CellTable
-
-cell_table = CellTable(
- "8.0.0",
- [
- (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, 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, 12643, 2),
- (12644, 12644, 0),
- (12645, 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),
- (65440, 65440, 0),
- (65504, 65510, 2),
- (65520, 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),
- (917504, 921599, 0),
- ],
- frozenset(
- [
- "#",
- "*",
- "0",
- "1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "©",
- "®",
- "‼",
- "⁉",
- "™",
- "ℹ",
- "↔",
- "↕",
- "↖",
- "↗",
- "↘",
- "↙",
- "↩",
- "↪",
- "⌨",
- "⏏",
- "⏭",
- "⏮",
- "⏯",
- "⏱",
- "⏲",
- "⏸",
- "⏹",
- "⏺",
- "Ⓜ",
- "▪",
- "▫",
- "▶",
- "◀",
- "◻",
- "◼",
- "☀",
- "☁",
- "☂",
- "☃",
- "☄",
- "☎",
- "☑",
- "☘",
- "☝",
- "☠",
- "☢",
- "☣",
- "☦",
- "☪",
- "☮",
- "☯",
- "☸",
- "☹",
- "☺",
- "♀",
- "♂",
- "♟",
- "♠",
- "♣",
- "♥",
- "♦",
- "♨",
- "♻",
- "♾",
- "⚒",
- "⚔",
- "⚕",
- "⚖",
- "⚗",
- "⚙",
- "⚛",
- "⚜",
- "⚠",
- "⚧",
- "⚰",
- "⚱",
- "⛈",
- "⛏",
- "⛑",
- "⛓",
- "⛩",
- "⛰",
- "⛱",
- "⛴",
- "⛷",
- "⛸",
- "⛹",
- "✂",
- "✈",
- "✉",
- "✌",
- "✍",
- "✏",
- "✒",
- "✔",
- "✖",
- "✝",
- "✡",
- "✳",
- "✴",
- "❄",
- "❇",
- "❣",
- "❤",
- "➡",
- "⤴",
- "⤵",
- "⬅",
- "⬆",
- "⬇",
- "🅰",
- "🅱",
- "🅾",
- "🅿",
- "🌡",
- "🌤",
- "🌥",
- "🌦",
- "🌧",
- "🌨",
- "🌩",
- "🌪",
- "🌫",
- "🌬",
- "🌶",
- "🍽",
- "🎖",
- "🎗",
- "🎙",
- "🎚",
- "🎛",
- "🎞",
- "🎟",
- "🏋",
- "🏌",
- "🏍",
- "🏎",
- "🏔",
- "🏕",
- "🏖",
- "🏗",
- "🏘",
- "🏙",
- "🏚",
- "🏛",
- "🏜",
- "🏝",
- "🏞",
- "🏟",
- "🏳",
- "🏵",
- "🏷",
- "🐿",
- "👁",
- "📽",
- "🕉",
- "🕊",
- "🕯",
- "🕰",
- "🕳",
- "🕴",
- "🕵",
- "🕶",
- "🕷",
- "🕸",
- "🕹",
- "🖇",
- "🖊",
- "🖋",
- "🖌",
- "🖍",
- "🖐",
- "🖥",
- "🖨",
- "🖱",
- "🖲",
- "🖼",
- "🗂",
- "🗃",
- "🗄",
- "🗑",
- "🗒",
- "🗓",
- "🗜",
- "🗝",
- "🗞",
- "🗡",
- "🗣",
- "🗨",
- "🗯",
- "🗳",
- "🗺",
- "🛋",
- "🛍",
- "🛎",
- "🛏",
- "🛠",
- "🛡",
- "🛢",
- "🛣",
- "🛤",
- "🛥",
- "🛩",
- "🛰",
- "🛳",
- ]
- ),
-)
diff --git a/rich/_unicode_data/unicode9-0-0.py b/rich/_unicode_data/unicode9-0-0.py
deleted file mode 100644
index b15f67d44e..0000000000
--- a/rich/_unicode_data/unicode9-0-0.py
+++ /dev/null
@@ -1,598 +0,0 @@
-# Auto generated by tools/make_width_tables.py
-# Data from wcwidth project (https://github.com/jquast/wcwidth)
-
-from rich.cells import CellTable
-
-cell_table = CellTable(
- "9.0.0",
- [
- (0, 0, 0),
- (768, 879, 0),
- (1155, 1161, 0),
- (1425, 1469, 0),
- (1471, 1471, 0),
- (1473, 1474, 0),
- (1476, 1477, 0),
- (1479, 1479, 0),
- (1552, 1562, 0),
- (1564, 1564, 0),
- (1611, 1631, 0),
- (1648, 1648, 0),
- (1750, 1756, 0),
- (1759, 1764, 0),
- (1767, 1768, 0),
- (1770, 1773, 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, 2273, 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),
- (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, 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, 12643, 2),
- (12644, 12644, 0),
- (12645, 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),
- (65440, 65440, 0),
- (65504, 65510, 2),
- (65520, 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),
- (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),
- (917504, 921599, 0),
- ],
- frozenset(
- [
- "#",
- "*",
- "0",
- "1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "©",
- "®",
- "‼",
- "⁉",
- "™",
- "ℹ",
- "↔",
- "↕",
- "↖",
- "↗",
- "↘",
- "↙",
- "↩",
- "↪",
- "⌨",
- "⏏",
- "⏭",
- "⏮",
- "⏯",
- "⏱",
- "⏲",
- "⏸",
- "⏹",
- "⏺",
- "Ⓜ",
- "▪",
- "▫",
- "▶",
- "◀",
- "◻",
- "◼",
- "☀",
- "☁",
- "☂",
- "☃",
- "☄",
- "☎",
- "☑",
- "☘",
- "☝",
- "☠",
- "☢",
- "☣",
- "☦",
- "☪",
- "☮",
- "☯",
- "☸",
- "☹",
- "☺",
- "♀",
- "♂",
- "♟",
- "♠",
- "♣",
- "♥",
- "♦",
- "♨",
- "♻",
- "♾",
- "⚒",
- "⚔",
- "⚕",
- "⚖",
- "⚗",
- "⚙",
- "⚛",
- "⚜",
- "⚠",
- "⚧",
- "⚰",
- "⚱",
- "⛈",
- "⛏",
- "⛑",
- "⛓",
- "⛩",
- "⛰",
- "⛱",
- "⛴",
- "⛷",
- "⛸",
- "⛹",
- "✂",
- "✈",
- "✉",
- "✌",
- "✍",
- "✏",
- "✒",
- "✔",
- "✖",
- "✝",
- "✡",
- "✳",
- "✴",
- "❄",
- "❇",
- "❣",
- "❤",
- "➡",
- "⤴",
- "⤵",
- "⬅",
- "⬆",
- "⬇",
- "🅰",
- "🅱",
- "🅾",
- "🅿",
- "🌡",
- "🌤",
- "🌥",
- "🌦",
- "🌧",
- "🌨",
- "🌩",
- "🌪",
- "🌫",
- "🌬",
- "🌶",
- "🍽",
- "🎖",
- "🎗",
- "🎙",
- "🎚",
- "🎛",
- "🎞",
- "🎟",
- "🏋",
- "🏌",
- "🏍",
- "🏎",
- "🏔",
- "🏕",
- "🏖",
- "🏗",
- "🏘",
- "🏙",
- "🏚",
- "🏛",
- "🏜",
- "🏝",
- "🏞",
- "🏟",
- "🏳",
- "🏵",
- "🏷",
- "🐿",
- "👁",
- "📽",
- "🕉",
- "🕊",
- "🕯",
- "🕰",
- "🕳",
- "🕴",
- "🕵",
- "🕶",
- "🕷",
- "🕸",
- "🕹",
- "🖇",
- "🖊",
- "🖋",
- "🖌",
- "🖍",
- "🖐",
- "🖥",
- "🖨",
- "🖱",
- "🖲",
- "🖼",
- "🗂",
- "🗃",
- "🗄",
- "🗑",
- "🗒",
- "🗓",
- "🗜",
- "🗝",
- "🗞",
- "🗡",
- "🗣",
- "🗨",
- "🗯",
- "🗳",
- "🗺",
- "🛋",
- "🛍",
- "🛎",
- "🛏",
- "🛠",
- "🛡",
- "🛢",
- "🛣",
- "🛤",
- "🛥",
- "🛩",
- "🛰",
- "🛳",
- ]
- ),
-)
diff --git a/rich/cells.py b/rich/cells.py
index 9d590b04e8..af93d219ec 100644
--- a/rich/cells.py
+++ b/rich/cells.py
@@ -1,15 +1,13 @@
from __future__ import annotations
from functools import lru_cache
-from operator import itemgetter
-from typing import Callable, NamedTuple, Sequence, Tuple
+from typing import Callable, Tuple
-from rich._unicode_data import load as load_cell_table
+from wcwidth import clip, iter_graphemes, wcwidth
+from wcwidth import width as wcwidth_width
CellSpan = 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]] = [
@@ -35,14 +33,6 @@
_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[str]
-
-
@lru_cache(maxsize=4096)
def get_character_cell_size(character: str, unicode_version: str = "auto") -> int:
"""Get the cell size of a character.
@@ -54,28 +44,7 @@ def get_character_cell_size(character: str, unicode_version: str = "auto") -> in
Returns:
int: Number of cells (0, 1 or 2) occupied by that character.
"""
- codepoint = ord(character)
- if codepoint and codepoint < 32 or 0x07F <= codepoint < 0x0A0:
- return 0
- table = load_cell_table(unicode_version).widths
-
- last_entry = table[-1]
- if codepoint > last_entry[1]:
- return 1
-
- lower_bound = 0
- upper_bound = len(table) - 1
-
- while lower_bound <= upper_bound:
- index = (lower_bound + upper_bound) >> 1
- start, end, width = table[index]
- if codepoint < start:
- upper_bound = index - 1
- elif codepoint > end:
- lower_bound = index + 1
- else:
- return width
- return 1
+ return max(0, wcwidth(character))
@lru_cache(4096)
@@ -124,38 +93,7 @@ def _cell_len(text: str, unicode_version: str) -> int:
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
- )
-
- cell_table = load_cell_table(unicode_version)
- total_width = 0
- last_measured_character: str | None = None
-
- SPECIAL = {"\u200d", "\ufe0f"}
-
- index = 0
- character_count = len(text)
-
- while index < character_count:
- character = text[index]
- if character in SPECIAL:
- if character == "\u200d":
- index += 1
- elif last_measured_character:
- total_width += last_measured_character in cell_table.narrow_to_wide
- last_measured_character = None
- else:
- if character_width := get_character_cell_size(character, unicode_version):
- last_measured_character = character
- total_width += character_width
- index += 1
-
- return total_width
+ return wcwidth_width(text, control_codes="ignore")
def split_graphemes(
@@ -176,63 +114,24 @@ def split_graphemes(
and CELL LENGTH is the cell length of the single grapheme.
"""
- 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 not spans:
- # ZWJ or variation selector at the beginning of the string doesn't really make sense.
- # But handle it, we must.
- spans.append((index, index := index + 1, 0))
- continue
- if character == "\u200d":
- # zero width joiner
- # The condition handles the case where a ZWJ is at the end of the string, and has nothing to join
- index += 2 if index < (codepoint_count - 1) else 1
- start, _end, cell_length = spans[-1]
- spans[-1] = (start, index, cell_length)
- else:
- # variation selector 16
- index += 1
- if last_measured_character:
- 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)
- else:
- # No previous character to change the size of.
- # Shouldn't occur in practice.
- # But handle it, we must.
- start, _end, cell_length = spans[-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
- else:
- # Character has zero width
- if spans:
- # zero width characters are associated with the previous character
+ pos = 0
+ for grapheme in iter_graphemes(text):
+ grapheme_len = len(grapheme)
+ grapheme_width = wcwidth_width(grapheme, control_codes="ignore")
+ if grapheme_width > 0 or spans:
+ if grapheme_width > 0:
+ spans.append((pos, pos + grapheme_len, grapheme_width))
+ total_width += grapheme_width
+ elif spans:
start, _end, cell_length = spans[-1]
- spans[-1] = (start, index := index + 1, cell_length)
- else:
- # A zero width character with no prior spans
- spans.append((index, index := index + 1, 0))
-
+ spans[-1] = (start, pos + grapheme_len, cell_length)
+ pos += grapheme_len
return (spans, total_width)
-def _split_text(
+def split_text(
text: str, cell_position: int, unicode_version: str = "auto"
) -> tuple[str, str]:
"""Split text by cell position.
@@ -249,51 +148,12 @@ def _split_text(
"""
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:
- if offset >= len(spans):
- return text, ""
- 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: # 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
- 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)
+ total = wcwidth_width(text, control_codes="ignore")
+ left = clip(text, 0, cell_position)
+ right = clip(text, cell_position, total)
+ return left, right
def set_cell_size(text: str, total: int, unicode_version: str = "auto") -> str:
@@ -319,7 +179,7 @@ def set_cell_size(text: str, total: int, unicode_version: str = "auto") -> str:
return text
if cell_size < total:
return text + " " * (total - cell_size)
- text, _ = _split_text(text, total, unicode_version)
+ text, _ = split_text(text, total, unicode_version)
return text
diff --git a/rich/segment.py b/rich/segment.py
index 0df63fdefe..6ec6afad42 100644
--- a/rich/segment.py
+++ b/rich/segment.py
@@ -20,8 +20,8 @@
_is_single_cell_widths,
cached_cell_len,
cell_len,
- get_character_cell_size,
set_cell_size,
+ split_text,
)
from .repr import Result, rich_repr
from .style import Style
@@ -127,33 +127,11 @@ def _split_cells(cls, segment: "Segment", cut: int) -> Tuple["Segment", "Segment
if cut >= cell_length:
return segment, _Segment("", style, control)
- cell_size = get_character_cell_size
-
- pos = int((cut / cell_length) * len(text))
-
- while True:
- before = text[:pos]
- cell_pos = cell_len(before)
- out_by = cell_pos - cut
- if not out_by:
- return (
- _Segment(before, style, control),
- _Segment(text[pos:], style, control),
- )
- if out_by == -1 and cell_size(text[pos]) == 2:
- return (
- _Segment(text[:pos] + " ", style, control),
- _Segment(" " + text[pos + 1 :], style, control),
- )
- if out_by == +1 and cell_size(text[pos - 1]) == 2:
- return (
- _Segment(text[: pos - 1] + " ", style, control),
- _Segment(" " + text[pos:], style, control),
- )
- if cell_pos < cut:
- pos += 1
- else:
- pos -= 1
+ left, right = split_text(text, cut)
+ return (
+ _Segment(left, style, control),
+ _Segment(right, style, control),
+ )
def split_cells(self, cut: int) -> Tuple["Segment", "Segment"]:
"""Split segment in to two segments at the specified column.
diff --git a/tests/test_cells.py b/tests/test_cells.py
index 0aff1159bf..14d7d53b9d 100644
--- a/tests/test_cells.py
+++ b/tests/test_cells.py
@@ -252,3 +252,76 @@ def test_non_printable():
for ordinal in range(31):
character = chr(ordinal)
assert cell_len(character) == 0
+
+
+CA_FLAG = "\U0001F1E8\U0001F1E6" # 🇨🇦 Canada flag
+GB_FLAG = "\U0001F1EC\U0001F1E7" # 🇬🇧 Great Britain flag
+FAMILY = "\U0001F468\u200D\U0001F469\u200D\U0001F467" # 👨👩👧 family ZWJ sequence
+WAVE_SKIN = "\U0001F44B\U0001F3FD" # 👋🏽 wave with skin tone
+HEART_VS16 = "\u2764\uFE0F" # ❤️ heart with VS-16
+
+
+@pytest.mark.parametrize(
+ "text,expected",
+ [
+ (CA_FLAG, 2),
+ (GB_FLAG, 2),
+ (CA_FLAG + GB_FLAG, 4),
+ (FAMILY, 2),
+ (WAVE_SKIN, 2),
+ (HEART_VS16, 2),
+ ("e\u0301", 1), # é combining acute accent
+ # 👨👩👧👦 family ZWJ sequence (4 members)
+ ("\U0001F468\u200D\U0001F469\u200D\U0001F467\u200D\U0001F466", 2),
+ ("\U0001F3FB", 2), # 🏻 skin tone modifier alone
+ ("\U0001F1E8", 2), # 🇨 single regional indicator alone
+ ("\uFE0F", 0), # VS-16 variation selector alone
+ ("\u20E3", 0), # ⃣ combining enclosing keycap alone
+ ],
+)
+def test_cell_len_grapheme_clusters(text: str, expected: int) -> None:
+ assert cell_len(text) == expected
+
+
+@pytest.mark.parametrize(
+ "text,expected_spans,expected_cell_length",
+ [
+ (CA_FLAG, [(0, 2, 2)], 2),
+ (CA_FLAG + GB_FLAG, [(0, 2, 2), (2, 4, 2)], 4),
+ (WAVE_SKIN, [(0, 2, 2)], 2),
+ ("a" + CA_FLAG + "b", [(0, 1, 1), (1, 3, 2), (3, 4, 1)], 4),
+ ("e\u0301", [(0, 2, 1)], 1), # é combining acute accent
+ ],
+)
+def test_split_graphemes_clusters(
+ text: str,
+ expected_spans: list[CellSpan],
+ expected_cell_length: int,
+) -> None:
+ spans, cell_length = split_graphemes(text)
+ assert spans == expected_spans
+ assert cell_length == expected_cell_length
+
+
+@pytest.mark.parametrize(
+ "text,offset,left,right",
+ [
+ (CA_FLAG, 0, "", CA_FLAG),
+ (CA_FLAG, 1, " ", " "),
+ (CA_FLAG, 2, CA_FLAG, ""),
+ (CA_FLAG + "x", 2, CA_FLAG, "x"),
+ (FAMILY + "x", 2, FAMILY, "x"),
+ ],
+)
+def test_split_text_grapheme_clusters(
+ text: str, offset: int, left: str, right: str
+) -> None:
+ assert split_text(text, offset) == (left, right)
+
+
+def test_chop_cells_grapheme_clusters():
+ assert chop_cells(CA_FLAG + GB_FLAG, 3) == [CA_FLAG, GB_FLAG]
+ assert chop_cells(CA_FLAG + "x" + GB_FLAG, 3) == [
+ CA_FLAG + "x",
+ GB_FLAG,
+ ]
diff --git a/tests/test_unicode_data.py b/tests/test_unicode_data.py
deleted file mode 100644
index 88fc9390fd..0000000000
--- a/tests/test_unicode_data.py
+++ /dev/null
@@ -1,64 +0,0 @@
-from __future__ import annotations
-
-import pytest
-
-from rich._unicode_data import VERSIONS, _parse_version, load
-
-
-def test_load():
- """Test all versions may be loaded."""
- for version in VERSIONS:
- load(version)
-
-
-@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"
diff --git a/tools/make_width_tables.py b/tools/make_width_tables.py
deleted file mode 100644
index 72764277e8..0000000000
--- a/tools/make_width_tables.py
+++ /dev/null
@@ -1,53 +0,0 @@
-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.cells 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)
-
-subprocess.run(f"black {path}", shell=True)
-
-
-narrow_to_wide: set[str] = set()
-for start, end in VS16_NARROW_TO_WIDE["9.0.0"]:
- narrow_to_wide.update(chr(codepoint) for codepoint in range(start, end + 1))
-
-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.sort()
-
- 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
-
-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()
- with open(path, "wt") as file_out:
- file_out.write(table_file)
-
- subprocess.run(f"black {path}", shell=True)