File: find_non_idempotent.py

package info (click to toggle)
python-precis-i18n 1.1.1-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,836 kB
  • sloc: python: 1,825; sh: 28; makefile: 3
file content (26 lines) | stat: -rw-r--r-- 673 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import unicodedata

from precis_i18n import get_profile

profile = get_profile("nicknamecasemapped:ToLower")


def _escape(s):
    return s.encode("unicode-escape").decode("ascii")


for cp in range(0x0110000):
    original = chr(cp)
    try:
        actual = profile.enforce(original)
        if actual != original:
            idempotent = profile.enforce(actual)
            if idempotent.strip() != actual.strip():
                print(
                    _escape(original),
                    unicodedata.name(original),
                    ";",
                    unicodedata.decomposition(original),
                )
    except UnicodeEncodeError:
        pass