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)
| 83 | |
| 84 | |
| 85 | def 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 | |
| 108 | def _getUnicodeRangeBits_ReferenceImplementation(unicodes): |
nothing calls this directly
no test coverage detected