• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2021 Behdad Esfahbod. All Rights Reserved.
2
3def is_Default_Ignorable(u):
4	# http://www.unicode.org/reports/tr44/#Default_Ignorable_Code_Point
5	#
6	# TODO Move me to unicodedata module and autogenerate.
7	#
8	# Unicode 14.0:
9	# $ grep '; Default_Ignorable_Code_Point ' DerivedCoreProperties.txt | sed 's/;.*#/#/'
10	# 00AD          # Cf       SOFT HYPHEN
11	# 034F          # Mn       COMBINING GRAPHEME JOINER
12	# 061C          # Cf       ARABIC LETTER MARK
13	# 115F..1160    # Lo   [2] HANGUL CHOSEONG FILLER..HANGUL JUNGSEONG FILLER
14	# 17B4..17B5    # Mn   [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
15	# 180B..180D    # Mn   [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
16	# 180E          # Cf       MONGOLIAN VOWEL SEPARATOR
17	# 180F          # Mn       MONGOLIAN FREE VARIATION SELECTOR FOUR
18	# 200B..200F    # Cf   [5] ZERO WIDTH SPACE..RIGHT-TO-LEFT MARK
19	# 202A..202E    # Cf   [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
20	# 2060..2064    # Cf   [5] WORD JOINER..INVISIBLE PLUS
21	# 2065          # Cn       <reserved-2065>
22	# 2066..206F    # Cf  [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES
23	# 3164          # Lo       HANGUL FILLER
24	# FE00..FE0F    # Mn  [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
25	# FEFF          # Cf       ZERO WIDTH NO-BREAK SPACE
26	# FFA0          # Lo       HALFWIDTH HANGUL FILLER
27	# FFF0..FFF8    # Cn   [9] <reserved-FFF0>..<reserved-FFF8>
28	# 1BCA0..1BCA3  # Cf   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
29	# 1D173..1D17A  # Cf   [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
30	# E0000         # Cn       <reserved-E0000>
31	# E0001         # Cf       LANGUAGE TAG
32	# E0002..E001F  # Cn  [30] <reserved-E0002>..<reserved-E001F>
33	# E0020..E007F  # Cf  [96] TAG SPACE..CANCEL TAG
34	# E0080..E00FF  # Cn [128] <reserved-E0080>..<reserved-E00FF>
35	# E0100..E01EF  # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
36	# E01F0..E0FFF  # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
37	return (
38		u == 0x00AD or				# Cf       SOFT HYPHEN
39		u == 0x034F or				# Mn       COMBINING GRAPHEME JOINER
40		u == 0x061C or				# Cf       ARABIC LETTER MARK
41		0x115F <= u <= 0x1160 or	# Lo   [2] HANGUL CHOSEONG FILLER..HANGUL JUNGSEONG FILLER
42		0x17B4 <= u <= 0x17B5 or	# Mn   [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
43		0x180B <= u <= 0x180D or	# Mn   [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
44		u == 0x180E or				# Cf       MONGOLIAN VOWEL SEPARATOR
45		u == 0x180F or				# Mn       MONGOLIAN FREE VARIATION SELECTOR FOUR
46		0x200B <= u <= 0x200F or	# Cf   [5] ZERO WIDTH SPACE..RIGHT-TO-LEFT MARK
47		0x202A <= u <= 0x202E or	# Cf   [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
48		0x2060 <= u <= 0x2064 or	# Cf   [5] WORD JOINER..INVISIBLE PLUS
49		u == 0x2065 or				# Cn       <reserved-2065>
50		0x2066 <= u <= 0x206F or	# Cf  [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES
51		u == 0x3164 or				# Lo       HANGUL FILLER
52		0xFE00 <= u <= 0xFE0F or	# Mn  [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
53		u == 0xFEFF or				# Cf       ZERO WIDTH NO-BREAK SPACE
54		u == 0xFFA0 or				# Lo       HALFWIDTH HANGUL FILLER
55		0xFFF0 <= u <= 0xFFF8 or	# Cn   [9] <reserved-FFF0>..<reserved-FFF8>
56		0x1BCA0 <= u <= 0x1BCA3 or	# Cf   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
57		0x1D173 <= u <= 0x1D17A or	# Cf   [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
58		u == 0xE0000 or				# Cn       <reserved-E0000>
59		u == 0xE0001 or				# Cf       LANGUAGE TAG
60		0xE0002 <= u <= 0xE001F or	# Cn  [30] <reserved-E0002>..<reserved-E001F>
61		0xE0020 <= u <= 0xE007F or	# Cf  [96] TAG SPACE..CANCEL TAG
62		0xE0080 <= u <= 0xE00FF or	# Cn [128] <reserved-E0080>..<reserved-E00FF>
63		0xE0100 <= u <= 0xE01EF or	# Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
64		0xE01F0 <= u <= 0xE0FFF or	# Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
65		False)
66