better error when pointed at a non-variable font

This commit is contained in:
Rod Sheeter 2019-03-06 21:58:58 -08:00
parent ced09ff3fd
commit aa59dc92cf

View File

@ -126,13 +126,25 @@ def normalizeAxisLimits(varfont, axis_limits):
axis_limits[axis_tag] = tuple(normalize(v, triple, avar_mapping)
for v in axis_limits[axis_tag])
def sanityCheckVariableTables(varfont):
if "fvar" not in varfont:
raise ValueError("Missing required table fvar")
if "gvar" in varfont:
if "glyf" not in varfont:
raise ValueError("Can't have gvar without glyf")
def instantiateVariableFont(varfont, axis_limits, inplace=False):
sanityCheckVariableTables(varfont)
if not inplace:
varfont = deepcopy(varfont)
normalizeAxisLimits(varfont, axis_limits)
log.info("Normalized limits: %s", axis_limits)
if "gvar" in varfont:
# TODO: support range, stop dropping max value
axis_limits = {tag: minv for tag, (minv, maxv) in axis_limits.items()}