googlefonts / googlefonts/fontmake

'str' object has no attribute 'append'

Open
#766 24 comments 0 reactions 1 assignee Claimed by @simoncozens View on GitHub
Dominant language
Python
Stars
888
Forks
97
Avg merge
4d 52m
Merged PRs (30d)
1

Description

I am trying to compile a variable font from DesignSpace + UFO files, and getting the following output.

(env) E:\76\googlefonts\KumbhSans\1.0.0.3\sources>fontmake -o variable -m KumbhSans_Var_35.designspace --verbose DEBUG --validate-ufo

DEBUG:fontmake.font_project:ufoLib UFO validation is enabled
INFO:fontmake.font_project:Building variable font variable_ttf\KumbhSans_Var_35-VF.ttf
INFO:ufo2ft:Pre-processing glyphs
INFO:cu2qu.ufo:New spline lengths: 1: 242, 2: 1036, 3: 725, 4: 167, 5: 1
INFO:ufo2ft.filters.base:Running DecomposeComponentsFilter on KumbhSans-Black
INFO:ufo2ft.filters.base:Running DecomposeComponentsFilter on KumbhSans-BlackDisplay
INFO:ufo2ft.filters.base:Running DecomposeComponentsFilter on KumbhSans-Display
INFO:ufo2ft.filters.base:Running DecomposeComponentsFilter on KumbhSans-Regular
INFO:ufo2ft.filters.base:Running DecomposeComponentsFilter on KumbhSans-Thin
INFO:ufo2ft.filters.base:Running DecomposeComponentsFilter on KumbhSans-ThinDisplay
INFO:ufo2ft:Building OpenType tables for KumbhSans-Black
DEBUG:ufo2ft.featureWriters.kernFeatureWriter.KernFeatureWriter:No dist-enabled scripts defined in languagesystem statements; dist feature will not be generated
DEBUG:ufo2ft.featureWriters.gdefFeatureWriter.GdefFeatureWriter:No features to be generated; skipped
INFO:ufo2ft:Building OpenType tables for KumbhSans-BlackDisplay
DEBUG:ufo2ft.featureWriters.kernFeatureWriter.KernFeatureWriter:No dist-enabled scripts defined in languagesystem statements; dist feature will not be generated
DEBUG:ufo2ft.featureWriters.gdefFeatureWriter.GdefFeatureWriter:No features to be generated; skipped
INFO:ufo2ft:Building OpenType tables for KumbhSans-Display
DEBUG:ufo2ft.featureWriters.kernFeatureWriter.KernFeatureWriter:No dist-enabled scripts defined in languagesystem statements; dist feature will not be generated
DEBUG:ufo2ft.featureWriters.gdefFeatureWriter.GdefFeatureWriter:No features to be generated; skipped
INFO:ufo2ft:Building OpenType tables for KumbhSans-Regular
DEBUG:ufo2ft.featureWriters.kernFeatureWriter.KernFeatureWriter:No dist-enabled scripts defined in languagesystem statements; dist feature will not be generated
DEBUG:ufo2ft.featureWriters.gdefFeatureWriter.GdefFeatureWriter:No features to be generated; skipped
INFO:ufo2ft:Building OpenType tables for KumbhSans-Thin
DEBUG:ufo2ft.featureWriters.kernFeatureWriter.KernFeatureWriter:No dist-enabled scripts defined in languagesystem statements; dist feature will not be generated
DEBUG:ufo2ft.featureWriters.gdefFeatureWriter.GdefFeatureWriter:No features to be generated; skipped
INFO:ufo2ft:Building OpenType tables for KumbhSans-ThinDisplay
DEBUG:ufo2ft.featureWriters.kernFeatureWriter.KernFeatureWriter:No dist-enabled scripts defined in languagesystem statements; dist feature will not be generated
DEBUG:ufo2ft.featureWriters.gdefFeatureWriter.GdefFeatureWriter:No features to be generated; skipped
INFO:ufo2ft:Building variable TTF font
INFO:fontTools.varLib:Axes:
[{'default': 400.0,
'hidden': False,
'labelNames': {'en': 'Weight'},
'map': [(100.0, 100.0), (400.0, 400.0), (900.0, 900.0)],
'maximum': 900.0,
'minimum': 100.0,
'name': 'weight',
'tag': 'wght'},
{'default': 8.0,
'hidden': False,
'labelNames': {'en': 'Optical Size'},
'map': [],
'maximum': 72.0,
'minimum': 8.0,
'name': 'optical size',
'tag': 'opsz'}]
INFO:fontTools.varLib:Internal master locations:
[{'optical size': 8.0, 'weight': 900.0},
{'optical size': 72.0, 'weight': 900.0},
{'optical size': 72.0, 'weight': 400.0},
{'optical size': 8.0, 'weight': 400.0},
{'optical size': 8.0, 'weight': 100.0},
{'optical size': 72.0, 'weight': 100.0}]
INFO:fontTools.varLib:Internal axis supports:
{'optical size': [8.0, 8.0, 72.0], 'weight': [100.0, 400.0, 900.0]}
INFO:fontTools.varLib:Normalized master locations:
[{'optical size': 0.0, 'weight': 1.0},
{'optical size': 1.0, 'weight': 1.0},
{'optical size': 1.0, 'weight': 0.0},
{'optical size': 0.0, 'weight': 0.0},
{'optical size': 0.0, 'weight': -1.0},
{'optical size': 1.0, 'weight': -1.0}]
INFO:fontTools.varLib:Index of base master: 3
INFO:fontTools.varLib:Building variable font
INFO:fontTools.varLib:Loading master fonts
INFO:fontTools.varLib:Generating fvar
INFO:fontTools.varLib:Generating avar
INFO:fontTools.varLib:No need for avar
INFO:fontTools.varLib:Building variations tables
INFO:fontTools.varLib:Generating MVAR
INFO:fontTools.varLib: hdsc: OS/2.sTypoDescender [-520, -520, -533, -533, -540, -540]
INFO:fontTools.varLib: hcld: OS/2.usWinDescent [918, 918, 918, 918, 918, 938]
INFO:fontTools.varLib:Generating HVAR
INFO:fontTools.varLib:Merging OpenType Layout tables
ERROR:root:In 'KumbhSans_Var_35.designspace': Generating fonts from Designspace failed: 'str' object has no attribute 'append'
Traceback (most recent call last):
File "e:\76\googlefonts\env\lib\site-packages\fontTools\varLib\merger.py", line 93, in mergeObjects
mergerFunc(self, value, values)
File "e:\76\googlefonts\env\lib\site-packages\fontTools\varLib\merger.py", line 159, in merge
raise ShouldBeConstant(self, expected=allValues[0], got=lst, stack="."+k)
fontTools.varLib.errors.ShouldBeConstant:

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "e:\76\googlefonts\env\lib\site-packages\fontmake\font_project.py", line 960, in run_from_designspace
self._run_from_designspace_interpolatable(
File "e:\76\googlefonts\env\lib\site-packages\fontmake\font_project.py", line 1040, in _run_from_designspace_interpolatable
self.build_variable_font(
File "e:\76\googlefonts\env\lib\site-packages\fontmake\font_project.py", line 331, in build_variable_font
font = ufo2ft.compileVariableTTF(
File "e:\76\googlefonts\env\lib\site-packages\ufo2ft\__init__.py", line 648, in compileVariableTTF
varfont = varLib.build(
File "e:\76\googlefonts\env\lib\site-packages\fontTools\varLib\__init__.py", line 926, in build
_merge_OTL(vf, model, master_fonts, axisTags)
File "e:\76\googlefonts\env\lib\site-packages\fontTools\varLib\__init__.py", line 619, in _merge_OTL
merger.mergeTables(font, master_fonts, ['GSUB', 'GDEF', 'GPOS'])
File "e:\76\googlefonts\env\lib\site-packages\fontTools\varLib\merger.py", line 130, in mergeTables
self.mergeThings(font[tag], [m[tag] if tag in m else None
File "e:\76\googlefonts\env\lib\site-packages\fontTools\varLib\merger.py", line 1023, in mergeThings
super(VariationMerger, self).mergeThings(out, lst)
File "e:\76\googlefonts\env\lib\site-packages\fontTools\varLib\merger.py", line 118, in mergeThings
self.mergeObjects(out, lst)
File "e:\76\googlefonts\env\lib\site-packages\fontTools\varLib\merger.py", line 93, in mergeObjects
mergerFunc(self, value, values)
File "e:\76\googlefonts\env\lib\site-packages\fontTools\varLib\merger.py", line 1023, in mergeThings
super(VariationMerger, self).mergeThings(out, lst)
File "e:\76\googlefonts\env\lib\site-packages\fontTools\varLib\merger.py", line 118, in mergeThings
self.mergeObjects(out, lst)
File "e:\76\googlefonts\env\lib\site-packages\fontTools\varLib\merger.py", line 95, in mergeObjects
e.stack.append('.'+key)
AttributeError: 'str' object has no attribute 'append'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "e:\76\googlefonts\env\lib\site-packages\fontmake\__main__.py", line 501, in main
project.run_from_designspace(designspace_path, **args)
File "e:\76\googlefonts\env\lib\site-packages\fontmake\font_project.py", line 974, in run_from_designspace
raise FontmakeError(
fontmake.errors.FontmakeError: In 'KumbhSans_Var_35.designspace': Generating fonts from Designspace failed: 'str' object has no attribute 'append'

All glyphs are checked for equal number of nodes and compatibility.
Each glyph works fine in variations when checked in Fontlab.

While exporting the DesignSpace + UFO from Fontlab, I have tried with different settings like enabling/disabling mark/mkmk code. Toggling "remove overlaps, nodes at extreme, countour direction, cleanup, etc.".

Thanks in advance for any help or suggestion.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.