Fonttools

Latest version: v4.57.0

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

Scan your dependencies

Page 26 of 38

3.37.0

----------------------------

- [svgLib] Added support for converting elliptical arcs to cubic bezier curves
(1464).
- [py23] Added backport for ``math.isfinite``.
- [varLib] Apply HIDDEN flag to fvar axis if designspace axis has attribute
``hidden=1``.
- Fixed "DeprecationWarning: invalid escape sequence" in Python 3.7.
- [voltLib] Fixed parsing glyph groups. Distinguish different PROCESS_MARKS.
Accept COMPONENT glyph type.
- [feaLib] Distinguish missing value and explicit ``<NULL>`` for PairPos2
format A (1459). Round-trip ``useExtension`` keyword. Implemented
``ValueRecord.asFea`` method.
- [subset] Insert empty widths into hdmx when retaining gids (1458).

3.36.0

----------------------------

- [ttx] Added ``--no-recalc-timestamp`` option to keep the original font's
``head.modified`` timestamp (1455, 46).
- [ttx/psCharStrings] Fixed issues while dumping and round-tripping CFF2 table
with ttx (1451, 1452, 1456).
- [voltLib] Fixed check for duplicate anchors (1450). Don't try to read past
the ``END`` operator in .vtp file (1453).
- [varLib] Use sentinel value -0x8000 (-32768) to ignore post.underlineThickness
and post.underlinePosition when generating MVAR deltas (1449,
googlei18n/ufo2ft308).
- [subset] Added ``--retain-gids`` option to subset font without modifying the
current glyph indices (1443, 1447).
- [ufoLib] Replace deprecated calls to ``getbytes`` and ``setbytes`` with new
equivalent ``readbytes`` and ``writebytes`` calls. ``fs`` >= 2.2 no required.
- [varLib] Allow loading masters from TTX files as well (1441).

3.35.2

----------------------------

- [hmtx/vmtx]: Allow to compile/decompile ``hmtx`` and ``vmtx`` tables even
without the corresponding (required) metrics header tables, ``hhea`` and
``vhea`` (1439).
- [varLib] Added support for localized axes' ``labelname`` and named instances'
``stylename`` (1438).

3.35.1

----------------------------

- [_m_a_x_p] Include ``maxComponentElements`` in ``maxp`` table's recalculation.

3.35.0

----------------------------

- [psCharStrings] In ``encodeFloat`` function, use float's "general format" with
8 digits of precision (i.e. ``%8g``) instead of ``str()``. This works around
a macOS rendering issue when real numbers in CFF table are too long, and
also makes sure that floats are encoded with the same precision in python 2.7
and 3.x (1430, googlei18n/ufo2ft306).
- [_n_a_m_e/fontBuilder] Make ``_n_a_m_e_table.addMultilingualName`` also add
Macintosh (platformID=1) names by default. Added options to ``FontBuilder``
``setupNameTable`` method to optionally disable Macintosh or Windows names.
(1359, 1431).
- [varLib] Make ``build`` optionally accept a ``DesignSpaceDocument`` object,
instead of a designspace file path. The caller can now set the ``font``
attribute of designspace's sources to a TTFont object, thus allowing to
skip filenames manipulation altogether (1416, 1425).
- [sfnt] Allow SFNTReader objects to be deep-copied.
- Require typing>=3.6.4 on py27 to fix issue with singledispatch (1423).
- [designspaceLib/t1Lib/macRes] Fixed some cases where pathlib.Path objects were
not accepted (1421).
- [varLib] Fixed merging of multiple PairPosFormat2 subtables (1411).
- [varLib] The default STAT table version is now set to 1.1, to improve
compatibility with legacy applications (1413).

3.34.2

----------------------------

- [merge] Fixed AssertionError when none of the script tables in GPOS/GSUB have
a DefaultLangSys record (1408, 135a4a1).

Page 26 of 38

Links

Releases

Has known vulnerabilities

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.