[varLib] raise VarLibError if 'sources' missing or empty; treat 'axes' and 'instances' as optional

This commit is contained in:
Cosimo Lupo 2017-02-27 16:34:41 +00:00
parent ba44e64108
commit 558e5e172d
No known key found for this signature in database
GPG Key ID: B61AAAD0B53A6419

View File

@ -37,6 +37,10 @@ from pprint import pformat
log = logging.getLogger("fontTools.varLib") log = logging.getLogger("fontTools.varLib")
class VarLibError(Exception):
pass
# #
# Creation routines # Creation routines
# #
@ -265,9 +269,10 @@ def build(designspace_filename, master_finder=lambda s:s, axisMap=None):
""" """
ds = designspace.load(designspace_filename) ds = designspace.load(designspace_filename)
axes = ds['axes'] axes = ds['axes'] if 'axes' in ds else []
masters = ds['masters'] if 'sources' not in ds or not ds['sources']:
instances = ds['instances'] raise VarLibError("no 'sources' defined in .designspace")
instances = ds['instances'] if 'instances' in ds else []
base_idx = None base_idx = None
for i,m in enumerate(masters): for i,m in enumerate(masters):