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