Ufo2ft

Latest version: v3.4.2

Safety actively analyzes 723066 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 14 of 17

2.3.1

[postProcessor] Ignore glyph names not in source when building production names. This allows to build production names even when the UFO is missing glyphs like '.notdef' which are synthesized by ufo2ft compiler (278).

2.3.0.post1

The MarkFeatureWriter was modified in 276 as follows:

* If a `table GDEF { GlyphClassDef ... ; } GDEF;` is present in the features.fea, then the MarkFeatureWriter will use those groups to define what is a base glyph, ligature or mark glyph. When no GDEF GlyphClassDef definition is present, the current behavior doesn't change (fixes 261).

* When a mark glyph contains multiple `_`-prefixed anchors, we only assign that glyph to one markClass; we no longer associate it with multiple markClasses one for each `_`-prefixed anchor that it may contain. Instead, we sort the glyph's anchor list by putting `_bottom` and `_top` anchors before all the rest, and then we only take the first anchor's name to define the glyph's markClass. This is the same heuristic used by Glyphs.app to resolve these ambiguous cases when generating the mark feature. It fixes a compilation error when the same mark glyph belongs to multiple mark classes that are used within the same mark lookup (googlei18n/noto-source122)


The version string in setup.py is now computed from git metadata using setuptools-scm.

2.2.2

- Fixed handling of duplicate glyph names when a TTF does not contain a '.notdef' glyph (321a1d0).

2.2.1

- Handle duplicates in glyph postscript names by appending a '.N' suffix to ensure they are unique (or else FontTools fails to decompile font).
Strip invalid characters not allowed by the AGL specification. The only valid characters are:
`[A-Za-z0-9_.]`.
Print a warning if a glyph name exceeds maximum recommended length of 63 characters (274).

2.2.0.post1

None

2.2.0

- Added `overlapsBackend` option to select "pathops" as alternative libary for removing overlaps: https://github.com/fonttools/skia-pathops
- setup.py: added "pathops" to `extras_require`. You can install ufo2ft with support for skia-pathops with e.g. `pip install ufo2ft[pathops]`.
- Added `enum34` to installation requirements, only for python < 3.4. This is a backport of python3's `enum` module.

Page 14 of 17

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.