googlefonts / ufo2ft

A bridge from UFOs to FontTools objects (and therefore, OTFs and TTFs).
MIT License
151 stars 43 forks source link

Filters as string until loaded #733

Closed moyogo closed 1 year ago

moyogo commented 1 year ago

Filters may be strings still.

anthrotype commented 1 year ago

Filters may be strings still.

hm are you sure? I don't think so.

moyogo commented 1 year ago

@anthrotype

>>> from ufo2ft.preProcessor import TTFPreProcessor
>>> from ufoLib2 import Font
>>> font = Font()
>>> TTFPreProcessor(font)
<ufo2ft.preProcessor.TTFPreProcessor object at 0x10846d450>
>>> TTFPreProcessor(font, filters=["RemoveOverlapsFilter"])
<class 'str'> '__call__' method has incorrect signature
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.11/site-packages/ufo2ft/preProcessor.py", line 90, in __init__
    filters = _load_custom_filters(ufo, filters)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/ufo2ft/preProcessor.py", line 38, in _load_custom
_filters
    raise TypeError(f"Invalid filter: {f!r}")
TypeError: Invalid filter: 'RemoveOverlapsFilter'
>>> from ufo2ft.filters import loadFilterFromString
>>> TTFPreProcessor(font, filters=[loadFilterFromString("RemoveOverlapsFilter")])
<ufo2ft.preProcessor.TTFPreProcessor object at 0x10bc20e90>
moyogo commented 1 year ago

I guess I’ll used loadFilterFromString() in gftools builder then.

anthrotype commented 1 year ago

Yes that's the idea.