aboutsummaryrefslogtreecommitdiff
path: root/Lib/fontTools/unicode.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/fontTools/unicode.py')
-rw-r--r--Lib/fontTools/unicode.py71
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)