python-pip/backport-0003-CVE-2024-3651.patch
2024-06-19 18:56:47 +08:00

1105 lines
33 KiB
Diff
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

From 8bbb873421dd565af69541844a61a4d0fbf6aa60 Mon Sep 17 00:00:00 2001
From: Kim Davies <kim.davies@iana.org>
Date: Sun, 3 Oct 2021 08:38:24 -0700
Subject: [PATCH] Resync type annotations with master
Reference:https://github.com/kjd/idna/commit/8bbb873421dd565af69541844a61a4d0fbf6aa60
Conflict:NA
---
src/pip/_vendor/idna/codec.py | 15 +-
src/pip/_vendor/idna/compat.py | 9 +-
src/pip/_vendor/idna/core.py | 54 +++----
src/pip/_vendor/idna/intranges.py | 12 +-
src/pip/_vendor/idna/uts46data.py | 243 ++++++++++--------------------
5 files changed, 111 insertions(+), 222 deletions(-)
diff --git a/src/pip/_vendor/idna/codec.py b/src/pip/_vendor/idna/codec.py
index 080f22a..1ca9ba6 100644
--- a/src/pip/_vendor/idna/codec.py
+++ b/src/pip/_vendor/idna/codec.py
@@ -7,8 +7,7 @@ _unicode_dots_re = re.compile('[\u002e\u3002\uff0e\uff61]')
class Codec(codecs.Codec):
- def encode(self, data, errors='strict'):
- # type: (str, str) -> Tuple[bytes, int]
+ def encode(self, data: str, errors: str = 'strict') -> Tuple[bytes, int]:
if errors != 'strict':
raise IDNAError('Unsupported error handling \"{}\"'.format(errors))
@@ -17,8 +16,7 @@ class Codec(codecs.Codec):
return encode(data), len(data)
- def decode(self, data, errors='strict'):
- # type: (bytes, str) -> Tuple[str, int]
+ def decode(self, data: bytes, errors: str = 'strict') -> Tuple[str, int]:
if errors != 'strict':
raise IDNAError('Unsupported error handling \"{}\"'.format(errors))
@@ -28,8 +26,7 @@ class Codec(codecs.Codec):
return decode(data), len(data)
class IncrementalEncoder(codecs.BufferedIncrementalEncoder):
- def _buffer_encode(self, data, errors, final): # type: ignore
- # type: (str, str, bool) -> Tuple[str, int]
+ def _buffer_encode(self, data: str, errors: str, final: bool) -> Tuple[str, int]: # type: ignore
if errors != 'strict':
raise IDNAError('Unsupported error handling \"{}\"'.format(errors))
@@ -62,8 +59,7 @@ class IncrementalEncoder(codecs.BufferedIncrementalEncoder):
return result_str, size
class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
- def _buffer_decode(self, data, errors, final): # type: ignore
- # type: (str, str, bool) -> Tuple[str, int]
+ def _buffer_decode(self, data: str, errors: str, final: bool) -> Tuple[str, int]: # type: ignore
if errors != 'strict':
raise IDNAError('Unsupported error handling \"{}\"'.format(errors))
@@ -103,8 +99,7 @@ class StreamReader(Codec, codecs.StreamReader):
pass
-def getregentry():
- # type: () -> codecs.CodecInfo
+def getregentry() -> codecs.CodecInfo:
# Compatibility as a search_function for codecs.register()
return codecs.CodecInfo(
name='idna',
diff --git a/src/pip/_vendor/idna/compat.py b/src/pip/_vendor/idna/compat.py
index dc896c7..786e6bd 100644
--- a/src/pip/_vendor/idna/compat.py
+++ b/src/pip/_vendor/idna/compat.py
@@ -2,15 +2,12 @@ from .core import *
from .codec import *
from typing import Any, Union
-def ToASCII(label):
- # type: (str) -> bytes
+def ToASCII(label: str) -> bytes:
return encode(label)
-def ToUnicode(label):
- # type: (Union[bytes, bytearray]) -> str
+def ToUnicode(label: Union[bytes, bytearray]) -> str:
return decode(label)
-def nameprep(s):
- # type: (Any) -> None
+def nameprep(s: Any) -> None:
raise NotImplementedError('IDNA 2008 does not utilise nameprep protocol')
diff --git a/src/pip/_vendor/idna/core.py b/src/pip/_vendor/idna/core.py
index 871ebd3..20f2b63 100644
--- a/src/pip/_vendor/idna/core.py
+++ b/src/pip/_vendor/idna/core.py
@@ -29,43 +29,36 @@ class InvalidCodepointContext(IDNAError):
pass
-def _combining_class(cp):
- # type: (int) -> int
+def _combining_class(cp: int) -> int:
v = unicodedata.combining(chr(cp))
if v == 0:
if not unicodedata.name(chr(cp)):
raise ValueError('Unknown character in unicodedata')
return v
-def _is_script(cp, script):
- # type: (str, str) -> bool
+def _is_script(cp: str, script: str) -> bool:
return intranges_contain(ord(cp), idnadata.scripts[script])
-def _punycode(s):
- # type: (str) -> bytes
+def _punycode(s: str) -> bytes:
return s.encode('punycode')
-def _unot(s):
- # type: (int) -> str
+def _unot(s: int) -> str:
return 'U+{:04X}'.format(s)
-def valid_label_length(label):
- # type: (Union[bytes, str]) -> bool
+def valid_label_length(label: Union[bytes, str]) -> bool:
if len(label) > 63:
return False
return True
-def valid_string_length(label, trailing_dot):
- # type: (Union[bytes, str], bool) -> bool
+def valid_string_length(label: Union[bytes, str], trailing_dot: bool) -> bool:
if len(label) > (254 if trailing_dot else 253):
return False
return True
-def check_bidi(label, check_ltr=False):
- # type: (str, bool) -> bool
+def check_bidi(label: str, check_ltr: bool = False) -> bool:
# Bidi rules should only be applied if string contains RTL characters
bidi_label = False
for (idx, cp) in enumerate(label, 1):
@@ -124,15 +117,13 @@ def check_bidi(label, check_ltr=False):
return True
-def check_initial_combiner(label):
- # type: (str) -> bool
+def check_initial_combiner(label: str) -> bool:
if unicodedata.category(label[0])[0] == 'M':
raise IDNAError('Label begins with an illegal combining character')
return True
-def check_hyphen_ok(label):
- # type: (str) -> bool
+def check_hyphen_ok(label: str) -> bool:
if label[2:4] == '--':
raise IDNAError('Label has disallowed hyphens in 3rd and 4th position')
if label[0] == '-' or label[-1] == '-':
@@ -140,14 +131,12 @@ def check_hyphen_ok(label):
return True
-def check_nfc(label):
- # type: (str) -> None
+def check_nfc(label: str) -> None:
if unicodedata.normalize('NFC', label) != label:
raise IDNAError('Label must be in Normalization Form C')
-def valid_contextj(label, pos):
- # type: (str, int) -> bool
+def valid_contextj(label: str, pos: int) -> bool:
cp_value = ord(label[pos])
if cp_value == 0x200c:
@@ -190,8 +179,7 @@ def valid_contextj(label, pos):
return False
-def valid_contexto(label, pos, exception=False):
- # type: (str, int, bool) -> bool
+def valid_contexto(label: str, pos: int, exception: bool = False) -> bool:
cp_value = ord(label[pos])
if cp_value == 0x00b7:
@@ -233,8 +221,7 @@ def valid_contexto(label, pos, exception=False):
return False
-def check_label(label):
- # type: (Union[str, bytes, bytearray]) -> None
+def check_label(label: Union[str, bytes, bytearray]) -> None:
if isinstance(label, (bytes, bytearray)):
label = label.decode('utf-8')
if len(label) == 0:
@@ -265,8 +252,7 @@ def check_label(label):
check_bidi(label)
-def alabel(label):
- # type: (str) -> bytes
+def alabel(label: str) -> bytes:
try:
label_bytes = label.encode('ascii')
ulabel(label_bytes)
@@ -290,8 +276,7 @@ def alabel(label):
return label_bytes
-def ulabel(label):
- # type: (Union[str, bytes, bytearray]) -> str
+def ulabel(label: Union[str, bytes, bytearray]) -> str:
if not isinstance(label, (bytes, bytearray)):
try:
label_bytes = label.encode('ascii')
@@ -317,8 +302,7 @@ def ulabel(label):
return label
-def uts46_remap(domain, std3_rules=True, transitional=False):
- # type: (str, bool, bool) -> str
+def uts46_remap(domain: str, std3_rules: bool = True, transitional: bool = False) -> str:
"""Re-map the characters in the string according to UTS46 processing."""
from .uts46data import uts46data
output = ''
@@ -350,8 +334,7 @@ def uts46_remap(domain, std3_rules=True, transitional=False):
return unicodedata.normalize('NFC', output)
-def encode(s, strict=False, uts46=False, std3_rules=False, transitional=False):
- # type: (Union[str, bytes, bytearray], bool, bool, bool, bool) -> bytes
+def encode(s: Union[str, bytes, bytearray], strict: bool = False, uts46: bool = False, std3_rules: bool = False, transitional: bool = False) -> bytes:
if isinstance(s, (bytes, bytearray)):
s = s.decode('ascii')
if uts46:
@@ -381,8 +364,7 @@ def encode(s, strict=False, uts46=False, std3_rules=False, transitional=False):
return s
-def decode(s, strict=False, uts46=False, std3_rules=False):
- # type: (Union[str, bytes, bytearray], bool, bool, bool) -> str
+def decode(s: Union[str, bytes, bytearray], strict: bool = False, uts46: bool = False, std3_rules: bool = False) -> str:
try:
if isinstance(s, (bytes, bytearray)):
s = s.decode('ascii')
diff --git a/src/pip/_vendor/idna/intranges.py b/src/pip/_vendor/idna/intranges.py
index ee364a9..6a43b04 100644
--- a/src/pip/_vendor/idna/intranges.py
+++ b/src/pip/_vendor/idna/intranges.py
@@ -8,8 +8,7 @@ in the original list?" in time O(log(# runs)).
import bisect
from typing import List, Tuple
-def intranges_from_list(list_):
- # type: (List[int]) -> Tuple[int, ...]
+def intranges_from_list(list_: List[int]) -> Tuple[int, ...]:
"""Represent a list of integers as a sequence of ranges:
((start_0, end_0), (start_1, end_1), ...), such that the original
integers are exactly those x such that start_i <= x < end_i for some i.
@@ -30,17 +29,14 @@ def intranges_from_list(list_):
return tuple(ranges)
-def _encode_range(start, end):
- # type: (int, int) -> int
+def _encode_range(start: int, end: int) -> int:
return (start << 32) | end
-def _decode_range(r):
- # type: (int) -> Tuple[int, int]
+def _decode_range(r: int) -> Tuple[int, int]:
return (r >> 32), (r & ((1 << 32) - 1))
-def intranges_contain(int_, ranges):
- # type: (int, Tuple[int, ...]) -> bool
+def intranges_contain(int_: int, ranges: Tuple[int, ...]) -> bool:
"""Determine if `int_` falls into one of the ranges in `ranges`."""
tuple_ = _encode_range(int_, 0)
pos = bisect.bisect_left(ranges, tuple_)
diff --git a/src/pip/_vendor/idna/uts46data.py b/src/pip/_vendor/idna/uts46data.py
index c765248..8f65705 100644
--- a/src/pip/_vendor/idna/uts46data.py
+++ b/src/pip/_vendor/idna/uts46data.py
@@ -8,8 +8,7 @@ from typing import List, Tuple, Union
__version__ = '14.0.0'
-def _seg_0():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_0() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x0, '3'),
(0x1, '3'),
@@ -113,8 +112,7 @@ def _seg_0():
(0x63, 'V'),
]
-def _seg_1():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_1() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x64, 'V'),
(0x65, 'V'),
@@ -218,8 +216,7 @@ def _seg_1():
(0xC7, 'M', 'ç'),
]
-def _seg_2():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_2() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0xC8, 'M', 'è'),
(0xC9, 'M', 'é'),
@@ -323,8 +320,7 @@ def _seg_2():
(0x12B, 'V'),
]
-def _seg_3():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_3() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x12C, 'M', 'ĭ'),
(0x12D, 'V'),
@@ -428,8 +424,7 @@ def _seg_3():
(0x193, 'M', 'ɠ'),
]
-def _seg_4():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_4() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x194, 'M', 'ɣ'),
(0x195, 'V'),
@@ -533,8 +528,7 @@ def _seg_4():
(0x20C, 'M', 'ȍ'),
]
-def _seg_5():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_5() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x20D, 'V'),
(0x20E, 'M', 'ȏ'),
@@ -638,8 +632,7 @@ def _seg_5():
(0x377, 'V'),
]
-def _seg_6():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_6() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x378, 'X'),
(0x37A, '3', ' ι'),
@@ -743,8 +736,7 @@ def _seg_6():
(0x402, 'M', 'ђ'),
]
-def _seg_7():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_7() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x403, 'M', 'ѓ'),
(0x404, 'M', 'є'),
@@ -848,8 +840,7 @@ def _seg_7():
(0x49D, 'V'),
]
-def _seg_8():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_8() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x49E, 'M', 'ҟ'),
(0x49F, 'V'),
@@ -953,8 +944,7 @@ def _seg_8():
(0x502, 'M', 'ԃ'),
]
-def _seg_9():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_9() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x503, 'V'),
(0x504, 'M', 'ԅ'),
@@ -1058,8 +1048,7 @@ def _seg_9():
(0x61D, 'V'),
]
-def _seg_10():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_10() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x675, 'M', 'اٴ'),
(0x676, 'M', 'وٴ'),
@@ -1163,8 +1152,7 @@ def _seg_10():
(0xA5D, 'X'),
]
-def _seg_11():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_11() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0xA5E, 'M', 'ਫ਼'),
(0xA5F, 'X'),
@@ -1268,8 +1256,7 @@ def _seg_11():
(0xC2A, 'V'),
]
-def _seg_12():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_12() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0xC3A, 'X'),
(0xC3C, 'V'),
@@ -1373,8 +1360,7 @@ def _seg_12():
(0xEB4, 'V'),
]
-def _seg_13():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_13() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0xEBE, 'X'),
(0xEC0, 'V'),
@@ -1478,8 +1464,7 @@ def _seg_13():
(0x1312, 'V'),
]
-def _seg_14():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_14() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x1316, 'X'),
(0x1318, 'V'),
@@ -1583,8 +1568,7 @@ def _seg_14():
(0x1C80, 'M', 'в'),
]
-def _seg_15():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_15() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x1C81, 'M', 'д'),
(0x1C82, 'M', 'о'),
@@ -1688,8 +1672,7 @@ def _seg_15():
(0x1D53, 'M', 'ɔ'),
]
-def _seg_16():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_16() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x1D54, 'M', 'ᴖ'),
(0x1D55, 'M', 'ᴗ'),
@@ -1793,8 +1776,7 @@ def _seg_16():
(0x1E23, 'V'),
]
-def _seg_17():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_17() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x1E24, 'M', 'ḥ'),
(0x1E25, 'V'),
@@ -1898,8 +1880,7 @@ def _seg_17():
(0x1E87, 'V'),
]
-def _seg_18():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_18() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x1E88, 'M', 'ẉ'),
(0x1E89, 'V'),
@@ -2003,8 +1984,7 @@ def _seg_18():
(0x1EF0, 'M', 'ự'),
]
-def _seg_19():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_19() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x1EF1, 'V'),
(0x1EF2, 'M', 'ỳ'),
@@ -2108,8 +2088,7 @@ def _seg_19():
(0x1F87, 'M', 'ἇι'),
]
-def _seg_20():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_20() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x1F88, 'M', 'ἀι'),
(0x1F89, 'M', 'ἁι'),
@@ -2213,8 +2192,7 @@ def _seg_20():
(0x1FF6, 'V'),
]
-def _seg_21():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_21() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x1FF7, 'M', 'ῶι'),
(0x1FF8, 'M', 'ὸ'),
@@ -2318,8 +2296,7 @@ def _seg_21():
(0x2104, 'V'),
]
-def _seg_22():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_22() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x2105, '3', 'c/o'),
(0x2106, '3', 'c/u'),
@@ -2423,8 +2400,7 @@ def _seg_22():
(0x217C, 'M', 'l'),
]
-def _seg_23():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_23() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x217D, 'M', 'c'),
(0x217E, 'M', 'd'),
@@ -2528,8 +2504,7 @@ def _seg_23():
(0x24BC, 'M', 'g'),
]
-def _seg_24():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_24() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x24BD, 'M', 'h'),
(0x24BE, 'M', 'i'),
@@ -2633,8 +2608,7 @@ def _seg_24():
(0x2C28, 'M', 'ⱘ'),
]
-def _seg_25():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_25() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x2C29, 'M', 'ⱙ'),
(0x2C2A, 'M', 'ⱚ'),
@@ -2738,8 +2712,7 @@ def _seg_25():
(0x2CC2, 'M', 'ⳃ'),
]
-def _seg_26():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_26() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x2CC3, 'V'),
(0x2CC4, 'M', 'ⳅ'),
@@ -2843,8 +2816,7 @@ def _seg_26():
(0x2F15, 'M', '匚'),
]
-def _seg_27():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_27() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x2F16, 'M', '匸'),
(0x2F17, 'M', '十'),
@@ -2948,8 +2920,7 @@ def _seg_27():
(0x2F79, 'M', '网'),
]
-def _seg_28():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_28() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x2F7A, 'M', '羊'),
(0x2F7B, 'M', '羽'),
@@ -3053,8 +3024,7 @@ def _seg_28():
(0x3038, 'M', '十'),
]
-def _seg_29():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_29() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x3039, 'M', '卄'),
(0x303A, 'M', '卅'),
@@ -3158,8 +3128,7 @@ def _seg_29():
(0x3184, 'M', 'ᅗ'),
]
-def _seg_30():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_30() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x3185, 'M', 'ᅘ'),
(0x3186, 'M', 'ᅙ'),
@@ -3263,8 +3232,7 @@ def _seg_30():
(0x3246, 'M', '文'),
]
-def _seg_31():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_31() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x3247, 'M', '箏'),
(0x3248, 'V'),
@@ -3368,8 +3336,7 @@ def _seg_31():
(0x32B1, 'M', '36'),
]
-def _seg_32():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_32() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x32B2, 'M', '37'),
(0x32B3, 'M', '38'),
@@ -3473,8 +3440,7 @@ def _seg_32():
(0x3315, 'M', 'キログラム'),
]
-def _seg_33():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_33() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x3316, 'M', 'キロメートル'),
(0x3317, 'M', 'キロワット'),
@@ -3578,8 +3544,7 @@ def _seg_33():
(0x3379, 'M', 'dm3'),
]
-def _seg_34():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_34() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x337A, 'M', 'iu'),
(0x337B, 'M', '平成'),
@@ -3683,8 +3648,7 @@ def _seg_34():
(0x33DD, 'M', 'wb'),
]
-def _seg_35():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_35() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x33DE, 'M', 'vm'),
(0x33DF, 'M', 'am'),
@@ -3788,8 +3752,7 @@ def _seg_35():
(0xA68D, 'V'),
]
-def _seg_36():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_36() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0xA68E, 'M', 'ꚏ'),
(0xA68F, 'V'),
@@ -3893,8 +3856,7 @@ def _seg_36():
(0xA77B, 'M', 'ꝼ'),
]
-def _seg_37():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_37() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0xA77C, 'V'),
(0xA77D, 'M', 'ᵹ'),
@@ -3998,8 +3960,7 @@ def _seg_37():
(0xA8C6, 'X'),
]
-def _seg_38():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_38() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0xA8CE, 'V'),
(0xA8DA, 'X'),
@@ -4103,8 +4064,7 @@ def _seg_38():
(0xABAA, 'M', ''),
]
-def _seg_39():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_39() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0xABAB, 'M', 'Ꮫ'),
(0xABAC, 'M', 'Ꮬ'),
@@ -4208,8 +4168,7 @@ def _seg_39():
(0xF945, 'M', '聾'),
]
-def _seg_40():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_40() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0xF946, 'M', '牢'),
(0xF947, 'M', '磊'),
@@ -4313,8 +4272,7 @@ def _seg_40():
(0xF9A9, 'M', '囹'),
]
-def _seg_41():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_41() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0xF9AA, 'M', '寧'),
(0xF9AB, 'M', '嶺'),
@@ -4418,8 +4376,7 @@ def _seg_41():
(0xFA0D, 'M', '嗀'),
]
-def _seg_42():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_42() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0xFA0E, 'V'),
(0xFA10, 'M', '塚'),
@@ -4523,8 +4480,7 @@ def _seg_42():
(0xFA78, 'M', '喝'),
]
-def _seg_43():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_43() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0xFA79, 'M', '啕'),
(0xFA7A, 'M', '喙'),
@@ -4628,8 +4584,7 @@ def _seg_43():
(0xFB01, 'M', 'fi'),
]
-def _seg_44():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_44() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0xFB02, 'M', 'fl'),
(0xFB03, 'M', 'ffi'),
@@ -4733,8 +4688,7 @@ def _seg_44():
(0xFBDE, 'M', 'ۋ'),
]
-def _seg_45():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_45() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0xFBE0, 'M', 'ۅ'),
(0xFBE2, 'M', 'ۉ'),
@@ -4838,8 +4792,7 @@ def _seg_45():
(0xFC56, 'M', 'يح'),
]
-def _seg_46():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_46() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0xFC57, 'M', 'يخ'),
(0xFC58, 'M', 'يم'),
@@ -4943,8 +4896,7 @@ def _seg_46():
(0xFCBA, 'M', 'عج'),
]
-def _seg_47():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_47() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0xFCBB, 'M', 'عم'),
(0xFCBC, 'M', 'غج'),
@@ -5048,8 +5000,7 @@ def _seg_47():
(0xFD1E, 'M', 'جي'),
]
-def _seg_48():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_48() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0xFD1F, 'M', 'خى'),
(0xFD20, 'M', 'خي'),
@@ -5153,8 +5104,7 @@ def _seg_48():
(0xFDA6, 'M', 'جحى'),
]
-def _seg_49():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_49() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0xFDA7, 'M', 'جمى'),
(0xFDA8, 'M', 'سخى'),
@@ -5258,8 +5208,7 @@ def _seg_49():
(0xFE5D, 'M', ''),
]
-def _seg_50():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_50() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0xFE5E, 'M', ''),
(0xFE5F, '3', '#'),
@@ -5363,8 +5312,7 @@ def _seg_50():
(0xFF1A, '3', ':'),
]
-def _seg_51():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_51() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0xFF1B, '3', ';'),
(0xFF1C, '3', '<'),
@@ -5468,8 +5416,7 @@ def _seg_51():
(0xFF7E, 'M', 'セ'),
]
-def _seg_52():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_52() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0xFF7F, 'M', 'ソ'),
(0xFF80, 'M', 'タ'),
@@ -5573,8 +5520,7 @@ def _seg_52():
(0xFFE9, 'M', '←'),
]
-def _seg_53():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_53() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0xFFEA, 'M', '↑'),
(0xFFEB, 'M', '→'),
@@ -5678,8 +5624,7 @@ def _seg_53():
(0x104B5, 'M', '𐓝'),
]
-def _seg_54():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_54() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x104B6, 'M', '𐓞'),
(0x104B7, 'M', '𐓟'),
@@ -5783,8 +5728,7 @@ def _seg_54():
(0x10788, 'M', 'ꭦ'),
]
-def _seg_55():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_55() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x10789, 'M', 'ʥ'),
(0x1078A, 'M', 'ʤ'),
@@ -5888,8 +5832,7 @@ def _seg_55():
(0x10AC0, 'V'),
]
-def _seg_56():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_56() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x10AE7, 'X'),
(0x10AEB, 'V'),
@@ -5993,8 +5936,7 @@ def _seg_56():
(0x110BE, 'V'),
]
-def _seg_57():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_57() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x110C3, 'X'),
(0x110D0, 'V'),
@@ -6098,8 +6040,7 @@ def _seg_57():
(0x118A6, 'M', '𑣆'),
]
-def _seg_58():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_58() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x118A7, 'M', '𑣇'),
(0x118A8, 'M', '𑣈'),
@@ -6203,8 +6144,7 @@ def _seg_58():
(0x11FC0, 'V'),
]
-def _seg_59():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_59() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x11FF2, 'X'),
(0x11FFF, 'V'),
@@ -6308,8 +6248,7 @@ def _seg_59():
(0x1B164, 'V'),
]
-def _seg_60():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_60() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x1B168, 'X'),
(0x1B170, 'V'),
@@ -6413,8 +6352,7 @@ def _seg_60():
(0x1D430, 'M', 'w'),
]
-def _seg_61():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_61() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x1D431, 'M', 'x'),
(0x1D432, 'M', 'y'),
@@ -6518,8 +6456,7 @@ def _seg_61():
(0x1D494, 'M', 's'),
]
-def _seg_62():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_62() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x1D495, 'M', 't'),
(0x1D496, 'M', 'u'),
@@ -6623,8 +6560,7 @@ def _seg_62():
(0x1D4FB, 'M', 'r'),
]
-def _seg_63():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_63() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x1D4FC, 'M', 's'),
(0x1D4FD, 'M', 't'),
@@ -6728,8 +6664,7 @@ def _seg_63():
(0x1D562, 'M', 'q'),
]
-def _seg_64():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_64() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x1D563, 'M', 'r'),
(0x1D564, 'M', 's'),
@@ -6833,8 +6768,7 @@ def _seg_64():
(0x1D5C6, 'M', 'm'),
]
-def _seg_65():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_65() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x1D5C7, 'M', 'n'),
(0x1D5C8, 'M', 'o'),
@@ -6938,8 +6872,7 @@ def _seg_65():
(0x1D62A, 'M', 'i'),
]
-def _seg_66():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_66() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x1D62B, 'M', 'j'),
(0x1D62C, 'M', 'k'),
@@ -7043,8 +6976,7 @@ def _seg_66():
(0x1D68E, 'M', 'e'),
]
-def _seg_67():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_67() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x1D68F, 'M', 'f'),
(0x1D690, 'M', 'g'),
@@ -7148,8 +7080,7 @@ def _seg_67():
(0x1D6F4, 'M', 'σ'),
]
-def _seg_68():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_68() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x1D6F5, 'M', 'τ'),
(0x1D6F6, 'M', 'υ'),
@@ -7253,8 +7184,7 @@ def _seg_68():
(0x1D75A, 'M', 'ε'),
]
-def _seg_69():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_69() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x1D75B, 'M', 'ζ'),
(0x1D75C, 'M', 'η'),
@@ -7358,8 +7288,7 @@ def _seg_69():
(0x1D7C0, 'M', 'χ'),
]
-def _seg_70():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_70() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x1D7C1, 'M', 'ψ'),
(0x1D7C2, 'M', 'ω'),
@@ -7463,8 +7392,7 @@ def _seg_70():
(0x1E7F0, 'V'),
]
-def _seg_71():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_71() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x1E7FF, 'X'),
(0x1E800, 'V'),
@@ -7568,8 +7496,7 @@ def _seg_71():
(0x1EE33, 'X'),
]
-def _seg_72():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_72() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x1EE34, 'M', 'ش'),
(0x1EE35, 'M', 'ت'),
@@ -7673,8 +7600,7 @@ def _seg_72():
(0x1EEA5, 'M', 'و'),
]
-def _seg_73():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_73() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x1EEA6, 'M', 'ز'),
(0x1EEA7, 'M', 'ح'),
@@ -7778,8 +7704,7 @@ def _seg_73():
(0x1F143, 'M', 't'),
]
-def _seg_74():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_74() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x1F144, 'M', 'u'),
(0x1F145, 'M', 'v'),
@@ -7883,8 +7808,7 @@ def _seg_74():
(0x1F800, 'V'),
]
-def _seg_75():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_75() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x1F80C, 'X'),
(0x1F810, 'V'),
@@ -7988,8 +7912,7 @@ def _seg_75():
(0x2F829, 'M', '包'),
]
-def _seg_76():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_76() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x2F82A, 'M', '匆'),
(0x2F82B, 'M', '北'),
@@ -8093,8 +8016,7 @@ def _seg_76():
(0x2F891, 'M', '𢌱'),
]
-def _seg_77():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_77() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x2F893, 'M', '舁'),
(0x2F894, 'M', '弢'),
@@ -8198,8 +8120,7 @@ def _seg_77():
(0x2F8F7, 'M', '𣪍'),
]
-def _seg_78():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_78() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x2F8F8, 'M', '𡴋'),
(0x2F8F9, 'M', '𣫺'),
@@ -8303,8 +8224,7 @@ def _seg_78():
(0x2F95D, 'M', '𥪧'),
]
-def _seg_79():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_79() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x2F95F, 'X'),
(0x2F960, 'M', '䈂'),
@@ -8408,8 +8328,7 @@ def _seg_79():
(0x2F9C2, 'M', '䗹'),
]
-def _seg_80():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+def _seg_80() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x2F9C3, 'M', '衠'),
(0x2F9C4, 'M', '衣'),