[varLib.varStore] Add operator __bool__ and use it

Part of https://github.com/fonttools/fonttools/issues/2211#issuecomment-790125437
This commit is contained in:
Behdad Esfahbod 2022-06-21 14:03:20 -06:00
parent 0d7d7d4e11
commit e917c43ca9
3 changed files with 8 additions and 3 deletions

View File

@ -764,7 +764,7 @@ class Builder(object):
gdef.Version = 0x00010002 if gdef.MarkGlyphSetsDef else 0x00010000
if self.varstorebuilder:
store = self.varstorebuilder.finish()
if store.VarData:
if store:
gdef.Version = 0x00010003
gdef.VarStore = store
varidx_map = store.optimize()

View File

@ -606,7 +606,7 @@ def _add_BASE(font, masterModel, master_ttfs, axisTags):
merger.mergeTables(font, master_ttfs, ['BASE'])
store = merger.store_builder.finish()
if not store.VarData:
if not store:
return
base = font['BASE'].table
assert base.Version == 0x00010000
@ -621,7 +621,7 @@ def _merge_OTL(font, model, master_fonts, axisTags):
merger.mergeTables(font, master_fonts, ['GSUB', 'GDEF', 'GPOS'])
store = merger.store_builder.finish()
if not store.VarData:
if not store:
return
try:
GDEF = font['GDEF'].table

View File

@ -135,6 +135,11 @@ def VarRegion_get_support(self, fvar_axes):
ot.VarRegion.get_support = VarRegion_get_support
def VarStore___bool__(self):
return bool(self.VarData)
ot.VarStore.__bool__ = VarStore___bool__
class VarStoreInstancer(object):
def __init__(self, varstore, fvar_axes, location={}):