The documentation is at fontparts.readthedocs.io.
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.
FontParts requires Python 2.7, 3.4 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 virtualenv or Python 3 venv module.
# download the source code to 'fontParts' folder git clone https://github.com/robofab-developers/fontParts.git cd fontParts # create new virtual environment called e.g. 'fontParts-venv', or anything you like python -m virtualenv 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 .
We are currently working towards the 1.0 release.
- 1.0 Documentation and testing complete.
- 1.5 Removal of
Deprecated. Released 1 year after 1.0.
- 2.0 Python 3 only. Released 1 year after 1.0.
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.
To run the test suite, you can do:
To test in other environments, run the test script provided by that environment.
You can also use tox to automatically run tests on different Python versions in isolated virtual environments.
pip install tox tox
Note that when you run
tox without arguments, the tests are executed
for all the environments listed in tox.ini's
envlist. In our case,
this includes Python 2.7 and 3.6, so for this to work the
python3.6 executables must be available in your
You can specify an alternative environment list via the
TOXENV environment variable:
tox -e py27-nocov TOXENV="py36-cov,htmlcov" tox