Merge pull request #2077 from fonttools/feature-variations-none
[instancer] FeatureVariations table is optional in GSUB 1.1 and can be None
This commit is contained in:
commit
558b9cba7c
@ -683,8 +683,8 @@ def instantiateOTL(varfont, axisLimits):
|
|||||||
|
|
||||||
def instantiateFeatureVariations(varfont, axisLimits):
|
def instantiateFeatureVariations(varfont, axisLimits):
|
||||||
for tableTag in ("GPOS", "GSUB"):
|
for tableTag in ("GPOS", "GSUB"):
|
||||||
if tableTag not in varfont or not hasattr(
|
if tableTag not in varfont or not getattr(
|
||||||
varfont[tableTag].table, "FeatureVariations"
|
varfont[tableTag].table, "FeatureVariations", None
|
||||||
):
|
):
|
||||||
continue
|
continue
|
||||||
log.info("Instantiating FeatureVariations of %s table", tableTag)
|
log.info("Instantiating FeatureVariations of %s table", tableTag)
|
||||||
|
@ -257,7 +257,7 @@ def instantiateVariableFont(varfont, location, inplace=False, overlap=True):
|
|||||||
if not tableTag in varfont:
|
if not tableTag in varfont:
|
||||||
continue
|
continue
|
||||||
table = varfont[tableTag].table
|
table = varfont[tableTag].table
|
||||||
if not hasattr(table, 'FeatureVariations'):
|
if not getattr(table, 'FeatureVariations', None):
|
||||||
continue
|
continue
|
||||||
variations = table.FeatureVariations
|
variations = table.FeatureVariations
|
||||||
for record in variations.FeatureVariationRecord:
|
for record in variations.FeatureVariationRecord:
|
||||||
|
@ -1666,6 +1666,19 @@ class InstantiateFeatureVariationsTest(object):
|
|||||||
assert len(rec1.ConditionSet.ConditionTable) == 2
|
assert len(rec1.ConditionSet.ConditionTable) == 2
|
||||||
assert rec1.ConditionSet.ConditionTable[0].Format == 2
|
assert rec1.ConditionSet.ConditionTable[0].Format == 2
|
||||||
|
|
||||||
|
def test_GSUB_FeatureVariations_is_None(self, varfont2):
|
||||||
|
varfont2["GSUB"].table.Version = 0x00010001
|
||||||
|
varfont2["GSUB"].table.FeatureVariations = None
|
||||||
|
tmp = BytesIO()
|
||||||
|
varfont2.save(tmp)
|
||||||
|
varfont = ttLib.TTFont(tmp)
|
||||||
|
|
||||||
|
# DO NOT raise an exception when the optional 'FeatureVariations' attribute is
|
||||||
|
# present but is set to None (e.g. with GSUB 1.1); skip and do nothing.
|
||||||
|
assert varfont["GSUB"].table.FeatureVariations is None
|
||||||
|
instancer.instantiateFeatureVariations(varfont, {"wght": 400, "wdth": 100})
|
||||||
|
assert varfont["GSUB"].table.FeatureVariations is None
|
||||||
|
|
||||||
|
|
||||||
class LimitTupleVariationAxisRangesTest:
|
class LimitTupleVariationAxisRangesTest:
|
||||||
def check_limit_single_var_axis_range(self, var, axisTag, axisRange, expected):
|
def check_limit_single_var_axis_range(self, var, axisTag, axisRange, expected):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user