[feaLib] Simplify how ClassDef tables are built
In f0eb7e98ca0642f17ac82433db8c957fffd6a9d3, the various subclasses of otTables.ClassDef were merged into one single class. Therefore, we can now always instantiate otTables.ClassDef() which is simpler.
This commit is contained in:
parent
bf29ec9555
commit
d2f9fa8a39
@ -1248,8 +1248,8 @@ class ClassPairPosSubtableBuilder(object):
|
||||
self.classDef2_.canAdd(gc2))
|
||||
if not mergeable:
|
||||
self.flush_()
|
||||
self.classDef1_ = ClassDefBuilder(otTables.ClassDef1, useClass0=True)
|
||||
self.classDef2_ = ClassDefBuilder(otTables.ClassDef2)
|
||||
self.classDef1_ = ClassDefBuilder(useClass0=True)
|
||||
self.classDef2_ = ClassDefBuilder(useClass0=False)
|
||||
self.coverage_ = set()
|
||||
self.values_ = {}
|
||||
self.classDef1_.add(gc1)
|
||||
@ -1410,10 +1410,9 @@ class SinglePosBuilder(LookupBuilder):
|
||||
|
||||
class ClassDefBuilder(object):
|
||||
"""Helper for building ClassDef tables."""
|
||||
def __init__(self, otClass, useClass0=False):
|
||||
def __init__(self, useClass0):
|
||||
self.classes_ = set()
|
||||
self.glyphs_ = {}
|
||||
self.otClass_ = otClass
|
||||
self.useClass0_ = useClass0
|
||||
|
||||
def canAdd(self, glyphs):
|
||||
@ -1459,6 +1458,6 @@ class ClassDefBuilder(object):
|
||||
continue
|
||||
for glyph in glyphs:
|
||||
glyphClasses[glyph] = classID
|
||||
classDef = self.otClass_()
|
||||
classDef = otTables.ClassDef()
|
||||
classDef.classDefs = glyphClasses
|
||||
return classDef
|
||||
|
@ -332,26 +332,26 @@ for name in BuilderTest.TEST_FEATURE_FILES:
|
||||
|
||||
|
||||
class ClassDefBuilderTest(unittest.TestCase):
|
||||
def test_build_ClassDef1(self):
|
||||
builder = ClassDefBuilder(otTables.ClassDef1, useClass0=True)
|
||||
def test_build_usingClass0(self):
|
||||
builder = ClassDefBuilder(useClass0=True)
|
||||
builder.add({"a", "b"})
|
||||
builder.add({"c"})
|
||||
builder.add({"e", "f", "g", "h"})
|
||||
cdef = builder.build()
|
||||
self.assertIsInstance(cdef, otTables.ClassDef1)
|
||||
self.assertIsInstance(cdef, otTables.ClassDef)
|
||||
self.assertEqual(cdef.classDefs, {
|
||||
"a": 1,
|
||||
"b": 1,
|
||||
"c": 2
|
||||
})
|
||||
|
||||
def test_build_ClassDef2(self):
|
||||
builder = ClassDefBuilder(otTables.ClassDef2)
|
||||
def test_build_notUsingClass0(self):
|
||||
builder = ClassDefBuilder(useClass0=False)
|
||||
builder.add({"a", "b"})
|
||||
builder.add({"c"})
|
||||
builder.add({"e", "f", "g", "h"})
|
||||
cdef = builder.build()
|
||||
self.assertIsInstance(cdef, otTables.ClassDef2)
|
||||
self.assertIsInstance(cdef, otTables.ClassDef)
|
||||
self.assertEqual(cdef.classDefs, {
|
||||
"a": 2,
|
||||
"b": 2,
|
||||
@ -363,7 +363,7 @@ class ClassDefBuilderTest(unittest.TestCase):
|
||||
})
|
||||
|
||||
def test_canAdd(self):
|
||||
b = ClassDefBuilder(otTables.ClassDef1, useClass0=True)
|
||||
b = ClassDefBuilder(useClass0=True)
|
||||
b.add({"a", "b", "c", "d"})
|
||||
b.add({"e", "f"})
|
||||
self.assertTrue(b.canAdd({"a", "b", "c", "d"}))
|
||||
|
Loading…
x
Reference in New Issue
Block a user