googlefonts / glyphsLib

A bridge from Glyphs source files (.glyphs) to UFOs
Apache License 2.0
181 stars 51 forks source link

Duplicate layer name #914

Open clauseggers opened 1 year ago

clauseggers commented 1 year ago

What do I do about this? I tried moving all the intermediate layers up as children of the first layer, but that does not fix it.

fontmake Playfair-2_1-Italic.glyphs -o variable --output-path 'variable_ttf/PlayfairItalicVF.ttf' --verbose WARNING
WARNING:glyphsLib.builder.builders.UFOBuilder:Playfair Needlepoint SemiCondensed: Glyph yusbig-cy.smcp, layer 16 Jun 23 at 15:39: Duplicate glyph layer name
Traceback (most recent call last):
  File "/Users/claus/.local/virtualenv/fontmake/venv/lib/python3.11/site-packages/glyphsLib/builder/tokens.py", line 290, in _get_value_for_layer
    return str(getattr(layer, value))
               ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'GSLayer' object has no attribute '.5'

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

Traceback (most recent call last):
  File "/Users/claus/.local/virtualenv/fontmake/venv/lib/python3.11/site-packages/glyphsLib/builder/tokens.py", line 93, in parse_number_token
    expression += self._get_value_for_layer(layer, m[1])
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/claus/.local/virtualenv/fontmake/venv/lib/python3.11/site-packages/glyphsLib/builder/tokens.py", line 292, in _get_value_for_layer
    raise ValueError(
ValueError: Unknown glyph property '.5' at position 158

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/claus/.local/virtualenv/fontmake/venv/lib/python3.11/site-packages/glyphsLib/builder/tokens.py", line 60, in parse_bare_number_value
    index = [metric.name for metric in self.font.numbers].index(number)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: '.5' is not in list

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

Traceback (most recent call last):
  File "/Users/claus/.local/bin/fontmake", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/Users/claus/.local/virtualenv/fontmake/venv/lib/python3.11/site-packages/fontmake/__main__.py", line 668, in main
    project.run_from_glyphs(inputs.glyphs_path, **args)
  File "/Users/claus/.local/virtualenv/fontmake/venv/lib/python3.11/site-packages/fontmake/font_project.py", line 840, in run_from_glyphs
    designspace_path = self.build_master_ufos(
                       ^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/claus/.local/virtualenv/fontmake/venv/lib/python3.11/site-packages/fontTools/misc/loggingTools.py", line 375, in wrapper
    return func(*args, **kwds)
           ^^^^^^^^^^^^^^^^^^^
  File "/Users/claus/.local/virtualenv/fontmake/venv/lib/python3.11/site-packages/fontmake/font_project.py", line 223, in build_master_ufos
    designspace = glyphsLib.to_designspace(
                  ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/claus/.local/virtualenv/fontmake/venv/lib/python3.11/site-packages/glyphsLib/builder/__init__.py", line 130, in to_designspace
    return builder.designspace
           ^^^^^^^^^^^^^^^^^^^
  File "/Users/claus/.local/virtualenv/fontmake/venv/lib/python3.11/site-packages/glyphsLib/builder/builders.py", line 334, in designspace
    list(self.masters)  # Make sure that the UFOs are built
    ^^^^^^^^^^^^^^^^^^
  File "/Users/claus/.local/virtualenv/fontmake/venv/lib/python3.11/site-packages/glyphsLib/builder/builders.py", line 230, in masters
    self.to_ufo_master_features(ufo, master)  # .features
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/claus/.local/virtualenv/fontmake/venv/lib/python3.11/site-packages/glyphsLib/builder/features.py", line 55, in to_ufo_master_features
    ufo.features.text = _to_ufo_features(
                        ^^^^^^^^^^^^^^^^^
  File "/Users/claus/.local/virtualenv/fontmake/venv/lib/python3.11/site-packages/glyphsLib/builder/features.py", line 103, in _to_ufo_features
    strings.append(expander.expand(prefix.code))
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/claus/.local/virtualenv/fontmake/venv/lib/python3.11/site-packages/glyphsLib/builder/tokens.py", line 28, in expand
    self.parse_token()
  File "/Users/claus/.local/virtualenv/fontmake/venv/lib/python3.11/site-packages/glyphsLib/builder/tokens.py", line 48, in parse_token
    self.output += parser(m[1])
                   ^^^^^^^^^^^^
  File "/Users/claus/.local/virtualenv/fontmake/venv/lib/python3.11/site-packages/glyphsLib/builder/tokens.py", line 107, in parse_glyph_property
    return self.parse_number_token(token, layer)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/claus/.local/virtualenv/fontmake/venv/lib/python3.11/site-packages/glyphsLib/builder/tokens.py", line 95, in parse_number_token
    expression += self.parse_bare_number_value(m[1])
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/claus/.local/virtualenv/fontmake/venv/lib/python3.11/site-packages/glyphsLib/builder/tokens.py", line 62, in parse_bare_number_value
    raise ValueError(
ValueError: Unknown number token '$.5' at position 158