python-fonttools
Port variant v12
Summary Tools to manipulate font files (3.12)
Package version 4.60.1
Homepage https://github.com/fonttools/fonttools
Keywords python
Maintainer Python Automaton
License Not yet specified
Other variants v13
Ravenports Buildsheet | History
Ravensource Port Directory | History
Last modified 07 OCT 2025, 02:19:18 UTC
Port created 04 JAN 2020, 01:03:23 UTC
Subpackage Descriptions
single |CI Build Status| |Coverage Status| |PyPI| |Gitter Chat| What is this? ~~~~~~~~~~~~~ | fontTools is a library for manipulating fonts, written in Python. The project includes the TTX tool, that can convert TrueType and OpenType fonts to and from an XML text format, which is also called TTX. It supports TrueType, OpenType, AFM and to an extent Type 1 and some Mac-specific formats. The project has an `MIT open-source license `__. | Among other things this means you can use it free of charge. [User documentation] and [developer documentation] are available at [Read the Docs]. Installation ~~~~~~~~~~~~ FontTools requires [Python] 3.9 or later. We try to follow the same schedule of minimum Python version support as NumPy (see [NEP 29]). The package is listed in the Python Package Index (PyPI), so you can install it with [pip]: Changelog ~~~~~~~~~ 4.60.1 (released 2025-09-29) ---------------------------- - [ufoLib] Reverted accidental method name change in ``UFOReader.getKerningGroupConversionRenameMaps`` that broke compatibility with downstream projects like defcon (#3948, #3947, robotools/defcon#478). - [ufoLib] Added test coverage for getKerningGroupConversionRenameMaps method (#3950). - [subset] Don't try to subset BASE table; pass it through by default instead (#3949). - [subset] Remove empty BaseRecord entries in MarkBasePos lookups (#3897, #3892). - [subset] Add pruning for MarkLigPos and MarkMarkPos lookups (#3946). - [subset] Remove duplicate features when subsetting (#3945). - [Docs] Added documentation for the visitor module (#3944). 4.60.0 (released 2025-09-17) ---------------------------- - [pointPen] Allow reverseFlipped parameter of DecomposingPointPen to take a ReverseFlipped enum value to control whether/how to reverse contour direction of flipped components, in addition to the existing True/False. This allows to set ``ReverseFlipped.ON_CURVE_FIRST`` to ensure that the decomposed outline starts with an on-curve point before being reversed, for better consistency with other segment-oriented contour transformations. The change is backward compatible, and the default behavior hasn't changed (#3934). - [filterPen] Added ContourFilterPointPen, base pen for buffered contour operations, and OnCurveStartPointPen filter to ensure contours start with an on-curve point (#3934). - [cu2qu] Fixed difference in cython vs pure-python complex division by real number (#3930). - [varLib.avar] Refactored and added some new sub-modules and scripts (#3926). * ``varLib.avar.build`` module to build avar (and a missing fvar) binaries into a possibly empty TTFont, * ``varLib.avar.unbuild`` module to print a .designspace snippet that would generate the same avar binary, * ``varLib.avar.map`` module to take TTFont and do the mapping, in user/normalized space, * ``varLib.avar.plan module moved from varLib.avarPlanner``. The bare ``fonttools varLib.avar`` script is deprecated, in favour of ``fonttools varLib.avar.build`` (or unbuild). - [interpolatable] Clarify linear_sum_assignment backend options and minimal dependency usage (#3927). - [post] Speed up build_psNameMapping (#3923). - [ufoLib] Added typing annotations to fontTools.ufoLib (#3875). 4.59.2 (released 2025-08-27) ---------------------------- - [varLib] Clear USE_MY_METRICS component flags when inconsistent across masters (#3912). - [varLib.instancer] Avoid negative advance width/height values when instatiating HVAR/VVAR, (unlikely in well-behaved fonts) (#3918). - [subset] Fix shaping behaviour when pruning empty mark sets (#3915, harfbuzz/harfbuzz#5499). - [cu2qu] Fixed ``dot()`` product of perpendicular vectors not always returning exactly 0.0 in all Python implementations (#3911) - [varLib.instancer] Implemented fully-instantiating avar2 fonts (#3909). - [feaLib] Allow float values in VariableScalar's axis locations (#3906,
Configuration Switches (platform-specific settings discarded)
PY312 ON Build using Python 3.12 PY313 OFF Build using Python 3.13
Package Dependencies by Type
Build (only) python312:dev:std
python-pip:single:v12
autoselect-python:single:std
Build and Runtime python312:primary:std
Download groups
main mirror://PYPIWHL/c7/93/0dd45cd283c32dea1545151d8c3637b4b8c53cdb3a625aeb2885b184d74d
Distribution File Information
906306ac7afe2156fcf0042173d6ebbb05416af70f6b370967b47f8f00103bbb 1143175 python-src/fonttools-4.60.1-py3-none-any.whl
Ports that require python-fonttools:v12
python-booleanOperations:v12 Boolean operations on paths (3.12)
python-cffsubr:v12 CFF subroutinizer based on AFDKO tx tool (3.12)
python-cu2qu:v12 Cubic-to-quadratic bezier curve conversion (3.12)
python-fontMath:v12 Perform math operations on font data (3.12)
python-statmake:v12 Applies STAT Stylespace to a variable font (3.12)
python-ufo2ft:v12 Bridge between UFOs and FontTools (3.12)
python-ufoLib2:v12 UfoLib2 is a UFO font processing library (3.12)