python-fonttools
Port variant v12
Summary Tools to manipulate font files (3.12)
Package version 4.58.0
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 11 MAY 2025, 00:44:48 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.58.0 (released 2025-05-10) ---------------------------- - Drop Python 3.8, require 3.9+ (#3819) - [HVAR, VVAR] Prune unused regions when using a direct mapping (#3797) - [Docs] Improvements to ufoLib documentation (#3721) - [Docs] Improvements to varLib documentation (#3727) - [Docs] Improvements to Pens and pen-module documentation (#3724) - [Docs] Miscellany updates to docs (misc modules and smaller modules) (#3730) - [subset] Close codepoints over BiDi mirror variants. (#3801) - [feaLib] Fix serializing ChainContextPosStatement and ChainContextSubstStatement in some rare cases (#3788) - [designspaceLib] Clarify user expectations for getStatNames (#2892) - [GVAR] Add support for new `GVAR` table (#3728) - [TSI0, TSI5] Derive number of entries to decompile from data length (#2477) - [ttLib] Fix `AttributeError` when reporting table overflow (#3808) - [ttLib] Apply rounding more often in getCoordinates (#3798) - [ttLib] Ignore component bounds if empty (#3799) - [ttLib] Change the separator for duplicate glyph names from "#" to "." (#3809) - [feaLib] Support subtable breaks in CursivePos, MarkBasePos, MarkToLigPos and MarkToMarkPos lookups (#3800, #3807) - [feaLib] If the same lookup has single substitutions and ligature substitutions, upgrade single substitutions to ligature substitutions with one input glyph (#3805) - [feaLib] Correctly handle in single pos lookups (#3803) - [feaLib] Remove duplicates from class pair pos classes instead of raising an error (#3804) - [feaLib] Support creating extension lookups using useExtenion lookup flag instead of silently ignoring it (#3811) - [STAT] Add typing for the simpler STAT arguments (#3812) - [otlLib.builder] Add future import for annotations (#3814) - [cffLib] Fix reading supplement encoding (#3813) - [voltLib] Add some missing functionality and fixes to voltLib and VoltToFea, making the conversion to feature files more robust. Add also `fonttools voltLib` command line tool to compile VOLT sources directly (doing an intermediate fea conversion internally) (#3818) - [pens] Add some PointPen annotations (#3820) 4.57.0 (released 2025-04-03) ---------------------------- - [ttLib.__main__] Add `--no-recalc-timestamp` flag (#3771) - [ttLib.__main__] Add `-b` (recalcBBoxes=False) flag (#3772) - [cmap] Speed up glyphOrder loading from cmap (#3774) - [ttLib.__main__] Improvements around the `-t` flag (#3776) - [Debg] Fix parsing from XML; add roundtrip tests (#3781) - [fealib] Support \*Base.MinMax tables (#3783, #3786) - [config] Add OPTIMIZE_FONT_SPEED (#3784) - [varLib.hvar] New module to add HVAR table to the font (#3780) - [otlLib.optimize] Fix crash when the provided TTF does not contain a `GPOS` (#3794) 4.56.0 (released 2025-02-07) ---------------------------- - [varStore] Sort the input todo list with the same sorting key used for the opimizer's output (#3767). - [otData] Fix DeviceTable's DeltaValue repeat value which caused a crash after importing from XML and then compiling a GPOS containing Device tables (#3758). - [feaLib] Make FeatureLibError pickleable, so client can e.g. use feaLib to can compile features in parallel with multiprocessing (#3762).
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/9b/1f/4417c26e26a1feab85a27e927f7a73d8aabc84544be8ba108ce4aa90eb1e
Distribution File Information
c96c36880be2268be409df7b08c5b5dacac1827083461a6bc2cb07b8cbcec1d7 1111440 python-src/fonttools-4.58.0-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)