def readDecomposition(decompositionFilePath): decompositionEntries = {} print("reading %r" % decompositionFilePath, file=sys.stderr) fileHandle = codecs.open(decompositionFilePath, 'r', 'utf8') # entries from CSV for entry in util.UnicodeCSVFileIterator(fileHandle): try: char, decomposition, glyphIdx, subIndex, flags = entry glyphIdx = int(glyphIdx) subIndex = int(subIndex) decomposition = GlyphReader.decompositionFromString( decomposition) except ValueError as UnicodeEncodeError: print(entry) raise if char not in decompositionEntries: decompositionEntries[char] = {} if glyphIdx not in decompositionEntries[char]: decompositionEntries[char][glyphIdx] = [] decompositionEntries[char][glyphIdx].append( (decomposition, subIndex, flags)) return decompositionEntries
def readLocaleMapping(localeFilePath): localeEntries = {} print("reading %r" % localeFilePath, file=sys.stderr) fileHandle = codecs.open(localeFilePath, 'r', 'utf8') for entry in util.UnicodeCSVFileIterator(fileHandle): try: char, glyphIdx, localeString = entry glyphIdx = int(glyphIdx) except ValueError: print(entry) raise if char not in localeEntries: localeEntries[char] = {} localeEntries[char][glyphIdx] = list(localeString) return localeEntries
def readStrokeOrder(strokeOrderFilePath): strokeOrderEntries = {} print("reading %r" % strokeOrderFilePath, file=sys.stderr) fileHandle = codecs.open(strokeOrderFilePath, 'r', 'utf8') for entry in util.UnicodeCSVFileIterator(fileHandle): try: char, strokeOrder, glyphIdx, flags = entry glyphIdx = int(glyphIdx) except ValueError: print(entry) raise if char not in strokeOrderEntries: strokeOrderEntries[char] = {} strokeOrderEntries[char][glyphIdx] = (strokeOrder, flags) return strokeOrderEntries