MCPcopy Create free account
hub / github.com/PageBot/PageBot / getUnicodeRangeBits

Function getUnicodeRangeBits

Lib/pagebot/fonttoolbox/unicodes/unicoderanges.py:85–105  ·  view source on GitHub ↗

Return a set of range bits. Each bit number represents the presence of at least one character in that range. >>> sorted(getUnicodeRangeBits(range(32, 500))) [0, 1, 2, 3] >>> sorted(getUnicodeRangeBits([50, 500, 5000, 50000])) [0, 3, 56, 75] >>> sorted(get

(unicodes)

Source from the content-addressed store, hash-verified

83
84
85def getUnicodeRangeBits(unicodes):
86 """Return a set of range bits. Each bit number represents the presence of
87 at least one character in that range.
88
89 >>> sorted(getUnicodeRangeBits(range(32, 500)))
90 [0, 1, 2, 3]
91 >>> sorted(getUnicodeRangeBits([50, 500, 5000, 50000]))
92 [0, 3, 56, 75]
93 >>> sorted(getUnicodeRangeBits([6399])) # not in any range
94 []
95 """
96 rangeBits = set()
97 if max(unicodes) > 0xffff:
98 # We have at least one code point beyond the Basic Multilingual Plane, set bit 57
99 rangeBits.add(57)
100
101 ranges = distributeUnicodes(unicodes)
102 for rangeName in ranges:
103 if rangeName is not None:
104 rangeBits.add(_byName[rangeName][0])
105 return rangeBits
106
107
108def _getUnicodeRangeBits_ReferenceImplementation(unicodes):

Callers

nothing calls this directly

Calls 2

distributeUnicodesFunction · 0.85
addMethod · 0.80

Tested by

no test coverage detected