[varLib.avar] Don't require a full .designspace with sources
This commit is contained in:
parent
297f73aeaf
commit
0127a235af
@ -869,7 +869,7 @@ def _add_COLR(font, model, master_fonts, axisTags, colr_layer_reuse=True):
|
|||||||
colr.VarIndexMap = builder.buildDeltaSetIndexMap(varIdxes)
|
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,
|
# TODO: remove this and always assume 'designspace' is a DesignSpaceDocument,
|
||||||
# never a file path, as that's already handled by caller
|
# never a file path, as that's already handled by caller
|
||||||
if hasattr(designspace, "sources"): # Assume a DesignspaceDocument
|
if hasattr(designspace, "sources"): # Assume a DesignspaceDocument
|
||||||
@ -878,7 +878,7 @@ def load_designspace(designspace, log_enabled=True):
|
|||||||
ds = DesignSpaceDocument.fromfile(designspace)
|
ds = DesignSpaceDocument.fromfile(designspace)
|
||||||
|
|
||||||
masters = ds.sources
|
masters = ds.sources
|
||||||
if not masters:
|
if require_sources and not masters:
|
||||||
raise VarLibValidationError("Designspace must have at least one source.")
|
raise VarLibValidationError("Designspace must have at least one source.")
|
||||||
instances = ds.instances
|
instances = ds.instances
|
||||||
|
|
||||||
@ -978,7 +978,7 @@ def load_designspace(designspace, log_enabled=True):
|
|||||||
"More than one base master found in Designspace."
|
"More than one base master found in Designspace."
|
||||||
)
|
)
|
||||||
base_idx = i
|
base_idx = i
|
||||||
if base_idx is None:
|
if require_sources and base_idx is None:
|
||||||
raise VarLibValidationError(
|
raise VarLibValidationError(
|
||||||
"Base master not found; no master at default location?"
|
"Base master not found; no master at default location?"
|
||||||
)
|
)
|
||||||
|
@ -150,7 +150,7 @@ def main(args=None):
|
|||||||
|
|
||||||
axisTags = [a.axisTag for a in font["fvar"].axes]
|
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:
|
if "avar" in font:
|
||||||
log.warning("avar table already present, overwriting.")
|
log.warning("avar table already present, overwriting.")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user