示例#1
0
def _ClassDef_merge_classify(lst, allGlyphses=None):
    self = ot.ClassDef()
    self.classDefs = classDefs = {}
    allGlyphsesWasNone = allGlyphses is None
    if allGlyphsesWasNone:
        allGlyphses = [None] * len(lst)

    classifier = classifyTools.Classifier()
    for classDef, allGlyphs in zip(lst, allGlyphses):
        sets = _ClassDef_invert(classDef, allGlyphs)
        if allGlyphs is None:
            sets = sets[1:]
        classifier.update(sets)
    classes = classifier.getClasses()

    if allGlyphsesWasNone:
        classes.insert(0, set())

    for i, classSet in enumerate(classes):
        if i == 0:
            continue
        for g in classSet:
            classDefs[g] = i

    return self, classes
示例#2
0
def _ClassDef_merge_classify(lst, allGlyphs=None):
    self = ot.ClassDef()
    self.classDefs = classDefs = {}

    classifier = classifyTools.Classifier()
    for l in lst:
        sets = _ClassDef_invert(l)
        if allGlyphs is None:
            sets = sets[1:]
        else:
            sets[0] = set(allGlyphs)
            for s in sets[1:]:
                sets[0].difference_update(s)
        classifier.update(sets)
    classes = classifier.getClasses()

    if allGlyphs is None:
        classes.insert(0, set())

    for i, classSet in enumerate(classes):
        if i == 0:
            continue
        for g in classSet:
            classDefs[g] = i

    return self, classes