[feaLib] Make invocation of otlLib less verbose

This commit is contained in:
Sascha Brawer 2016-01-14 17:15:52 +01:00
parent 9612ef1a22
commit 3968aaa71b

View File

@ -2,7 +2,7 @@ from __future__ import print_function, division, absolute_import
from __future__ import unicode_literals
from fontTools.feaLib.error import FeatureLibError
from fontTools.feaLib.parser import Parser
from fontTools.otlLib import builder as otlBuilder
from fontTools.otlLib import builder as otl
from fontTools.ttLib import getTableClass
from fontTools.ttLib.tables import otBase, otTables
import itertools
@ -716,11 +716,11 @@ def makeOpenTypeAnchor(anchor):
return None
deviceX, deviceY = None, None
if anchor.xDeviceTable is not None:
deviceX = otlBuilder.buildDevice(anchor.xDeviceTable)
deviceX = otl.buildDevice(anchor.xDeviceTable)
if anchor.yDeviceTable is not None:
deviceY = otlBuilder.buildDevice(anchor.yDeviceTable)
return otlBuilder.buildAnchor(anchor.x, anchor.y, anchor.contourpoint,
deviceX, deviceY)
deviceY = otl.buildDevice(anchor.yDeviceTable)
return otl.buildAnchor(anchor.x, anchor.y, anchor.contourpoint,
deviceX, deviceY)
def getValueRecordFormat(vr):
@ -748,10 +748,10 @@ def makeOpenTypeValueRecord(v):
for astName, (otName, isDevice) in _VALUEREC_ATTRS.items():
val = getattr(v, astName, None)
if val:
vr[otName] = otlBuilder.buildDevice(val) if isDevice else val
vr[otName] = otl.buildDevice(val) if isDevice else val
if vr:
valRec = otlBuilder.buildValue(vr)
valRec = otl.buildValue(vr)
return valRec, getValueRecordFormat(valRec)
else:
return None, 0
@ -810,21 +810,21 @@ class LookupBuilder(object):
subtable.BacktrackGlyphCount = len(prefix)
subtable.BacktrackCoverage = []
for p in reversed(prefix):
coverage = otlBuilder.buildCoverage(p, self.glyphMap)
coverage = otl.buildCoverage(p, self.glyphMap)
subtable.BacktrackCoverage.append(coverage)
def setLookAheadCoverage_(self, suffix, subtable):
subtable.LookAheadGlyphCount = len(suffix)
subtable.LookAheadCoverage = []
for s in suffix:
coverage = otlBuilder.buildCoverage(s, self.glyphMap)
coverage = otl.buildCoverage(s, self.glyphMap)
subtable.LookAheadCoverage.append(coverage)
def setInputCoverage_(self, glyphs, subtable):
subtable.InputGlyphCount = len(glyphs)
subtable.InputCoverage = []
for g in glyphs:
coverage = otlBuilder.buildCoverage(g, self.glyphMap)
coverage = otl.buildCoverage(g, self.glyphMap)
subtable.InputCoverage.append(coverage)
def setMarkArray_(self, marks, markClassIDs, subtable):
@ -862,7 +862,7 @@ class AlternateSubstBuilder(LookupBuilder):
self.alternates == other.alternates)
def build(self):
subtable = otlBuilder.buildAlternateSubst(self.alternates)
subtable = otl.buildAlternateSubst(self.alternates)
return self.buildLookup_([subtable])
def getAlternateGlyphs(self):
@ -948,7 +948,7 @@ class LigatureSubstBuilder(LookupBuilder):
self.ligatures == other.ligatures)
def build(self):
subtable = otlBuilder.buildLigatureSubst(self.ligatures)
subtable = otl.buildLigatureSubst(self.ligatures)
return self.buildLookup_([subtable])
@ -962,7 +962,7 @@ class MultipleSubstBuilder(LookupBuilder):
self.mapping == other.mapping)
def build(self):
subtable = otlBuilder.buildMultipleSubst(self.mapping)
subtable = otl.buildMultipleSubst(self.mapping)
return self.buildLookup_([subtable])
@ -1003,7 +1003,7 @@ class SpecificPairPosBuilder(LookupBuilder):
subtables.append(st)
st.Format = 1
st.ValueFormat1, st.ValueFormat2 = vf1, vf2
st.Coverage = otlBuilder.buildCoverage(p, self.glyphMap)
st.Coverage = otl.buildCoverage(p, self.glyphMap)
st.PairSet = []
for glyph in st.Coverage.glyphs:
ps = otTables.PairSet()
@ -1036,8 +1036,7 @@ class CursivePosBuilder(LookupBuilder):
def build(self):
st = otTables.CursivePos()
st.Format = 1
st.Coverage = otlBuilder.buildCoverage(
self.attachments.keys(), self.glyphMap)
st.Coverage = otl.buildCoverage(self.attachments.keys(), self.glyphMap)
st.EntryExitCount = len(self.attachments)
st.EntryExitRecord = []
for glyph in st.Coverage.glyphs:
@ -1078,12 +1077,12 @@ class MarkBasePosBuilder(LookupBuilder):
st = otTables.MarkBasePos()
st.Format = 1
st.MarkCoverage = otlBuilder.buildCoverage(self.marks, self.glyphMap)
st.MarkCoverage = otl.buildCoverage(self.marks, self.glyphMap)
markClasses = self.buildMarkClasses_(self.marks)
st.ClassCount = len(markClasses)
self.setMarkArray_(self.marks, markClasses, st)
st.BaseCoverage = otlBuilder.buildCoverage(self.bases, self.glyphMap)
st.BaseCoverage = otl.buildCoverage(self.bases, self.glyphMap)
st.BaseArray = otTables.BaseArray()
st.BaseArray.BaseCount = len(st.BaseCoverage.glyphs)
st.BaseArray.BaseRecord = []
@ -1116,13 +1115,12 @@ class MarkLigPosBuilder(LookupBuilder):
def build(self):
st = otTables.MarkLigPos()
st.Format = 1
st.MarkCoverage = otlBuilder.buildCoverage(self.marks, self.glyphMap)
st.MarkCoverage = otl.buildCoverage(self.marks, self.glyphMap)
markClasses = self.buildMarkClasses_(self.marks)
st.ClassCount = len(markClasses)
self.setMarkArray_(self.marks, markClasses, st)
st.LigatureCoverage = otlBuilder.buildCoverage(self.ligatures,
self.glyphMap)
st.LigatureCoverage = otl.buildCoverage(self.ligatures, self.glyphMap)
st.LigatureArray = otTables.LigatureArray()
st.LigatureArray.LigatureCount = len(self.ligatures)
st.LigatureArray.LigatureAttach = []
@ -1162,13 +1160,12 @@ class MarkMarkPosBuilder(LookupBuilder):
def build(self):
st = otTables.MarkMarkPos()
st.Format = 1
st.Mark1Coverage = otlBuilder.buildCoverage(self.marks, self.glyphMap)
st.Mark1Coverage = otl.buildCoverage(self.marks, self.glyphMap)
markClasses = self.buildMarkClasses_(self.marks)
st.ClassCount = len(markClasses)
self.setMark1Array_(self.marks, markClasses, st)
st.Mark2Coverage = otlBuilder.buildCoverage(self.baseMarks,
self.glyphMap)
st.Mark2Coverage = otl.buildCoverage(self.baseMarks, self.glyphMap)
st.Mark2Array = otTables.Mark2Array()
st.Mark2Array.Mark2Count = len(st.Mark2Coverage.glyphs)
st.Mark2Array.Mark2Record = []
@ -1198,8 +1195,7 @@ class ReverseChainSingleSubstBuilder(LookupBuilder):
st.Format = 1
self.setBacktrackCoverage_(prefix, st)
self.setLookAheadCoverage_(suffix, st)
st.Coverage = otlBuilder.buildCoverage(mapping.keys(),
self.glyphMap)
st.Coverage = otl.buildCoverage(mapping.keys(), self.glyphMap)
st.GlyphCount = len(mapping)
st.Substitute = [mapping[g] for g in st.Coverage.glyphs]
subtables.append(st)
@ -1216,7 +1212,7 @@ class SingleSubstBuilder(LookupBuilder):
self.mapping == other.mapping)
def build(self):
subtable = otlBuilder.buildSingleSubst(self.mapping)
subtable = otl.buildSingleSubst(self.mapping)
return self.buildLookup_([subtable])
def getAlternateGlyphs(self):
@ -1262,8 +1258,7 @@ class ClassPairPosSubtableBuilder(object):
return
st = otTables.PairPos()
st.Format = 2
st.Coverage = otlBuilder.buildCoverage(self.coverage_,
self.builder_.glyphMap)
st.Coverage = otl.buildCoverage(self.coverage_, self.builder_.glyphMap)
st.ValueFormat1 = self.valueFormat1_
st.ValueFormat2 = self.valueFormat2_
st.ClassDef1 = self.classDef1_.build()
@ -1396,7 +1391,7 @@ class SinglePosBuilder(LookupBuilder):
st = otTables.SinglePos()
subtables.append(st)
st.Format = 1
st.Coverage = otlBuilder.buildCoverage(glyphs, self.glyphMap)
st.Coverage = otl.buildCoverage(glyphs, self.glyphMap)
st.Value, st.ValueFormat = value, valueFormat
return self.buildLookup_(subtables)