From 885d7c1ecb8416641082b974a121ea4ab7288e9f Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Mon, 21 Oct 2024 15:56:26 -0600 Subject: [PATCH] [varLib.interpolatable] Warn if only one master was found Motivated by https://github.com/fonttools/fonttools/issues/3666 --- Lib/fontTools/varLib/interpolatable.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/Lib/fontTools/varLib/interpolatable.py b/Lib/fontTools/varLib/interpolatable.py index 60dbfeb7f..9b6034e03 100644 --- a/Lib/fontTools/varLib/interpolatable.py +++ b/Lib/fontTools/varLib/interpolatable.py @@ -693,7 +693,7 @@ def main(args=None): from fontTools import configLogger - configLogger(level=("INFO" if args.verbose else "ERROR")) + configLogger(level=("INFO" if args.verbose else "WARNING")) if args.debug: configLogger(level="DEBUG") @@ -750,13 +750,13 @@ def main(args=None): for k, vv in axis_triples.items() } - elif args.inputs[0].endswith(".ttf"): + elif args.inputs[0].endswith(".ttf") or args.inputs[0].endswith(".otf"): from fontTools.ttLib import TTFont + # Is variable font? font = TTFont(args.inputs[0]) upem = font["head"].unitsPerEm if "gvar" in font: - # Is variable font fvar = font["fvar"] axisMapping = {} @@ -830,8 +830,9 @@ def main(args=None): names.append(name) fonts.append(glyphsets[locTuple]) locations.append(dict(locTuple)) - args.ignore_missing = True - args.inputs = [] + + args.ignore_missing = True + args.inputs = [] if not locations: locations = [{} for _ in fonts] @@ -854,6 +855,10 @@ def main(args=None): names.append(basename(filename).rsplit(".", 1)[0]) + if len(fonts) < 2: + log.warning("Font file does not seem to be variable. Nothing to check.") + return + glyphsets = [] for font in fonts: if hasattr(font, "getGlyphSet"):