Py-fontfeatures

Jul 20, 2023

Python library for manipulating OpenType font features

OpenType fonts are “programmed” using features, which are normally authored in Adobe’s feature file format. This like source code to a computer program it’s a user-friendly, but computer-unfriendly, way to represent the features.

Inside a font, the features are compiled in an efficient internal format. This is like the binary of a computer program computers can use it, but they can’t do else anything with it, and people can’t read it.

The purpose of this library is to provide a middle ground for representing features in a machine-manipulable format, kind of like the abstract syntax tree of a computer programmer. This is so that

  • features can be represented in a structured human-readable and machine-readable way, analogous to the XML files of the Unified Font Object format.
  • features can be more directly authored by programs such as font editors, rather than them having to output AFDKO feature file format.
  • features can be easily manipulated by programs - for example, features from two files merged together, or lookups moved between languages.


Checkout these related ports: