Ufo2ft

Latest version: v3.4.2

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

Scan your dependencies

Page 5 of 17

2.33.2

- Allow to reverseDirection=True even when convertCubics=False (770).

2.33.1

- Added ``convertCubics=True`` to compileInterpolatableTTFs/compileVariableTTF methods, to allow disabling cu2qu altogether (similar to the existing option that was already there for compileTTF for statics).
- OutlineTTFCompiler: ensure that only quadratic curves are present in TrueType glyphs if glyphDataFormat=0 was not explicitly set to 1 (769).

2.33.0

- Support ``public.openTypePostUnderlinePosition`` lib key meant to clarify ambiguous meaning of underline position in post vs CFF table (unified-font-object/ufo-spec217, 760).
- [instructionCompiler] Make logging less noisy (767).
- Added ``allQuadratic=True`` compile option; when False, tells cu2qu to keep mix of cubic and quadratic curves (whichever has fewer points) as per glyf v1 draft spec proposal (768, https://github.com/harfbuzz/boring-expansion-spec/blob/main/glyf1.md).

2.32.0

- Raise error when multiple glyphs claim the same Unicode codepoint. When expanding color layers to glyphs, ensure any codepoint is stripped to prevent unintentional clashes (739).
- Use ``fontTools.cu2qu`` instead of standalone ``cu2qu`` module, no changes, just one less dependency (756).
- Added compile option for static/variable TTF outputs to ``dropImpliedOnCurves`` to omit on-curve points that are halfway between two consecutive off-curve points, slightly reducing glyf table size with no visible differences (753).
- [constants] Updated Indic / USE script lists (755).
- Require fonttools >= 4.40.0

2.31.1

- [featureWriter.ast] Have iterClassDefinitions search not just top-level but inside feature and lookup blocks as well (732).
- Added ``autoUseMyMetrics=True`` compile option (for TrueType output only) to allow disabling the automatic setting of ``USE_MY_METRICS`` glyf component flags, which is not needed for fonts without hinted metrics (741).
- [kernFeatureWriter] Only use exported glyphs when generating mark filtering sets (740).

2.31.0

- Dropped support for Python 3.7 which reached EOL. We now require Python >= 3.8.
- Take into account extra substitutions found in DesignSpace rules when classifying glyphs by various unicode properties in feature writers (731).
- Added support for compiling TrueType instructions and flags stored in the UFO's ``public.truetype.*`` lib keys (654).
- Automatically compute COLRv1 ClipBoxes if none are explicitly provided. This is enabled by default for static builds only. You can set colrAutoClipBoxes=True for interpolatable/variable builds if safe to do so (728).
- Improved "no default source" error (677).
- Warn about mis-cased `` Automatic Code`` insertion marker comments; also warn if there are no insertion markers but kerning.plist is non empty and there are manual kern/dist features in the FEA code (719).
- Respect openTypeNameRecords overrides for the predefined name IDs (727).
- Reorder class definitions in feature writers such that they appear before the lookups that use them (725).
- Renamed dottedCircleFilter module to dottedCirlce, was wrongly named; old kept for backward compat (716).
- [kernFeatureWriter] Avoid overwriting classDefs (705).
Register kern lookups for all defined languages (711).
Correctly split mark and base kerning pairs (713).
Don't skip over spacing marks when kerning (720).
- Fixed FEA include dir detection when in current dir (689)
- Automatically decompose components when 2x2 transforms differ (698)
- [kernFeatureWriter] Split kerning by script, not horizontal direction, which should be faster to compile and produce smaller GPOS. The old kernFeatureWriter is still kept in a separate module (679, 636, 697).

Page 5 of 17

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.