Skip to main content

An API for interacting with the parts of fonts during the font development process.

Project description

CI Build Status Coverage PyPI Python Versions

FontParts

An API for interacting with the parts of fonts during the font development process. FontParts is the replacement for RoboFab. The project has a MIT open-source licence.

The documentation is at fontparts.robotools.dev.

This is a work in progress. We are still working out the API, abstract implementation, example implementation, test suite and documentation.

Want to contribute?

Thank you! Please see the CONTRIBUTING.rst file for a guide on how to help.

Also, feedback is very much welcome, please open an issue when you run into something that you wish fontParts did/didn’t do.

We ask that you work against the dev branch, the main branch is for releases only as of July 2026.

Installation

FontParts requires Python 3.10 or later.

The package is listed in the Python Package Index (PyPI), so you can install it with pip:

pip install fontParts

If you would like to contribute to its development, you can clone the repository from Github, install the package in ‘editable’ mode and modify the source code in place. We recommend creating a virtual environment, using the venv module.

# download the source code to 'fontParts' folder
git clone https://github.com/robotools/fontParts.git
cd fontParts

# create new virtual environment called e.g. 'fontParts-venv', or anything you like
python -m venv fontParts-venv

# source the `activate` shell script to enter the environment (Un\*x); to exit, just type `deactivate`
. fontParts-venv/bin/activate

# to activate the virtual environment in Windows `cmd.exe`, do
fontParts-venv\Scripts\activate.bat

# install in 'editable' mode
pip install -e .

Roadmap

We are still working on further tests, but are a stable 1.0 release.

  • 0.8 Initial releases. Python 2 & 3. 2018-09-21

  • 0.9 Python 3 only. 2019-08-30

  • 1.0 Documentation and testing mostly complete. Added typing. 2026-05-28

  • 1.5 Removal of Deprecated. Released 1 year after 1.0.

Testing

Testing is setup so that each environment that includes fontParts can provides the objects needed to run a common set of tests. This makes testing very easy for environments that use fontParts (for example, see the fontshell test.py script), but it means testing is different than other python packages.

Automated testing of the package is done in the fontshell environment. fontshell is fontParts for the commandline, implemented with defcon and is included as part of the fontParts package.

Before you can run the test suite you’ll need to install the test dependencies:

pip install -r requirements-dev.txt

To run the test suite you can do:

python Lib/fontParts/fontshell/test.py

To test in other environments, run the test script provided by that environment.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fontparts-1.1.0.tar.gz (514.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fontparts-1.1.0-py3-none-any.whl (216.6 kB view details)

Uploaded Python 3

File details

Details for the file fontparts-1.1.0.tar.gz.

File metadata

  • Download URL: fontparts-1.1.0.tar.gz
  • Upload date:
  • Size: 514.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for fontparts-1.1.0.tar.gz
Algorithm Hash digest
SHA256 1bd1ff76cb6fe56b4538d7358b968ab006bd4d0d4313a9230bb72812d5c36115
MD5 d65b49113c1fc3cf9ae87d2ec7adb966
BLAKE2b-256 b18fded37e0b1fb142c712aa5d3528f1ea23dcbd66df9d18fa61a746ce3e360f

See more details on using hashes here.

Provenance

The following attestation bundles were made for fontparts-1.1.0.tar.gz:

Publisher: publish-package.yml on robotools/fontParts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fontparts-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: fontparts-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 216.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for fontparts-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 657eba939aeb8850b3b4ea6fbcbda2f2c8120756be7316912f2a028b7f8cb13d
MD5 78b280f53d382b7cd65cecc6e297610e
BLAKE2b-256 499f4dce373f09298ceb7868c457db084887396505c3b90f7f32b2f86efaa1b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for fontparts-1.1.0-py3-none-any.whl:

Publisher: publish-package.yml on robotools/fontParts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page