[varLib.interpolatable] Open .glyphs files as well

This commit is contained in:
Behdad Esfahbod 2022-07-28 16:30:23 -06:00
parent 10aecc029a
commit 3e6b9c8c08

View File

@ -361,25 +361,38 @@ def main(args=None):
from os.path import basename
if len(args.inputs) == 1 and args.inputs[0].endswith('.designspace'):
fonts = []
names = []
if len(args.inputs) == 1:
if args.inputs[0].endswith('.designspace'):
from fontTools.designspaceLib import DesignSpaceDocument
designspace = DesignSpaceDocument.fromfile(args.inputs[0])
args.inputs = [master.path for master in designspace.sources]
names = [basename(filename).rsplit(".", 1)[0] for filename in args.inputs]
elif args.inputs[0].endswith('.glyphs'):
from glyphsLib import GSFont, to_ufos
gsfont = GSFont(args.inputs[0])
fonts.extend(to_ufos(gsfont))
names = ['%s-%s' % (f.info.familyName, f.info.styleName) for f in fonts]
args.inputs = []
fonts = []
for filename in args.inputs:
if filename.endswith(".ufo"):
from fontTools.ufoLib import UFOReader
fonts.append(UFOReader(filename))
else:
from fontTools.ttLib import TTFont
fonts.append(TTFont(filename))
names.append(basename(filename).rsplit(".", 1)[0])
if hasattr(fonts[0], 'getGlyphSet'):
glyphsets = [font.getGlyphSet() for font in fonts]
else:
glyphsets = fonts
problems = test(glyphsets, glyphs=glyphs, names=names)
if args.json:
import json