[varLib.avar] Don't require a full .designspace with sources

This commit is contained in:
Behdad Esfahbod 2024-08-02 14:39:41 -06:00
parent 297f73aeaf
commit 0127a235af
2 changed files with 4 additions and 4 deletions

View File

@ -869,7 +869,7 @@ def _add_COLR(font, model, master_fonts, axisTags, colr_layer_reuse=True):
colr.VarIndexMap = builder.buildDeltaSetIndexMap(varIdxes)
def load_designspace(designspace, log_enabled=True):
def load_designspace(designspace, log_enabled=True, *, require_sources=True):
# TODO: remove this and always assume 'designspace' is a DesignSpaceDocument,
# never a file path, as that's already handled by caller
if hasattr(designspace, "sources"): # Assume a DesignspaceDocument
@ -878,7 +878,7 @@ def load_designspace(designspace, log_enabled=True):
ds = DesignSpaceDocument.fromfile(designspace)
masters = ds.sources
if not masters:
if require_sources and not masters:
raise VarLibValidationError("Designspace must have at least one source.")
instances = ds.instances
@ -978,7 +978,7 @@ def load_designspace(designspace, log_enabled=True):
"More than one base master found in Designspace."
)
base_idx = i
if base_idx is None:
if require_sources and base_idx is None:
raise VarLibValidationError(
"Base master not found; no master at default location?"
)

View File

@ -150,7 +150,7 @@ def main(args=None):
axisTags = [a.axisTag for a in font["fvar"].axes]
ds = load_designspace(options.designspace)
ds = load_designspace(options.designspace, require_sources=False)
if "avar" in font:
log.warning("avar table already present, overwriting.")