Skip to content


Repository files navigation

CI Build Status Coverage Status Python Versions PyPI Version


Defcon is a set of UFO based objects optimized for use in font editing applications. The objects are built to be lightweight, fast and flexible. The objects are very bare-bones and they are not meant to be end-all, be-all objects. Rather, they are meant to provide base functionality so that you can focus on your application’s behavior, not object observing or maintaining cached data. Defcon implements UFO3 as described by the UFO font format. If needed, the ufo2-deprecated branch has the older, UFO2, version of Defcon.


To download and install the latest stable release of defcon from the Python Package Index, use the pip command line tool:

pip install --upgrade defcon

To install with the fontPens package —used for Glyph.correctDirection() and Contour.contourInside()— do:

pip install --upgrade defcon[pens]

To optionally install defcon with support for lxml, a faster XML reader and writer library, you can do:

pip install --upgrade defcon[lxml]

You can separate multiple extras using a comma: defcon[pens,lxml].


Documentation for Defcon lives at


This package is distributed under the MIT license. See the license. Defcon is built in Python. Parts of RoboFab use fontTools, an OpenSource font toolkit started by Just van Rossum. Parts of Defcon implement the Property List file format in XML, copyright Apple Computer. Parts of Defcon implement tables and names from PostScript and the OpenType FDK, copyright Adobe.