diff options
Diffstat (limited to 'Lib/fontTools/unicode.py')
-rw-r--r-- | Lib/fontTools/unicode.py | 71 |
1 files changed, 37 insertions, 34 deletions
diff --git a/Lib/fontTools/unicode.py b/Lib/fontTools/unicode.py index e0867aa1..a9ffeefa 100644 --- a/Lib/fontTools/unicode.py +++ b/Lib/fontTools/unicode.py @@ -1,47 +1,50 @@ def _makeunicodes(f): - lines = iter(f.readlines()) - unicodes = {} - for line in lines: - if not line: continue - num, name = line.split(';')[:2] - if name[0] == '<': continue # "<control>", etc. - num = int(num, 16) - unicodes[num] = name - return unicodes + lines = iter(f.readlines()) + unicodes = {} + for line in lines: + if not line: + continue + num, name = line.split(";")[:2] + if name[0] == "<": + continue # "<control>", etc. + num = int(num, 16) + unicodes[num] = name + return unicodes class _UnicodeCustom(object): + def __init__(self, f): + if isinstance(f, str): + with open(f) as fd: + codes = _makeunicodes(fd) + else: + codes = _makeunicodes(f) + self.codes = codes - def __init__(self, f): - if isinstance(f, str): - with open(f) as fd: - codes = _makeunicodes(fd) - else: - codes = _makeunicodes(f) - self.codes = codes + def __getitem__(self, charCode): + try: + return self.codes[charCode] + except KeyError: + return "????" - def __getitem__(self, charCode): - try: - return self.codes[charCode] - except KeyError: - return "????" class _UnicodeBuiltin(object): + def __getitem__(self, charCode): + try: + # use unicodedata backport to python2, if available: + # https://github.com/mikekap/unicodedata2 + import unicodedata2 as unicodedata + except ImportError: + import unicodedata + try: + return unicodedata.name(chr(charCode)) + except ValueError: + return "????" - def __getitem__(self, charCode): - try: - # use unicodedata backport to python2, if available: - # https://github.com/mikekap/unicodedata2 - import unicodedata2 as unicodedata - except ImportError: - import unicodedata - try: - return unicodedata.name(chr(charCode)) - except ValueError: - return "????" Unicode = _UnicodeBuiltin() + def setUnicodeData(f): - global Unicode - Unicode = _UnicodeCustom(f) + global Unicode + Unicode = _UnicodeCustom(f) |