Skip to main content

Travis PyPI

ufoProcessor

Python package based on the designSpaceDocument from fontTools.designspaceLib) specifically to process and generate instances for UFO files, glyphs and other data.

  • Collect source materials
  • Provide mutators for specific glyphs, font info, kerning so that other tools can generate partial instances. Either from MutatorMath or fonttools varlib.model.
  • Support designspace format 4 with layers.
  • Apply avar-like designspace bending
  • Apply rules
  • Generate actual UFO instances in formats 2 and 3.
  • Round geometry as requested
  • Try to stay up to date with fontTools
  • Baseclass for tools that need access to designspace data.

Usage

The easiest way to use ufoProcessor is to call build(designspacePath)

  • documentPath: path to the designspace file.

  • outputUFOFormatVersion: integer, 2, 3. Format for generated UFOs. Note: can be different from source UFO format.

  • roundGeometry: bool, if the geometry needs to be rounded to whole integers. This affects glyphs, metrics, kerning, select font info.

  • processRules: bool, when generating UFOs, execute designspace rules as swaps.

  • logger: optional logger object.

  • documentPath: filepath to the .designspace document

  • outputUFOFormatVersion: ufo format for output, default is the current, so 3.

  • useVarlib: True if you want the geometry to be generated with varLib.model instead of mutatorMath.

Convert Superpolator to designspace

The ufoProcessor.sp3 module has some tools for interpreting Superpolator .sp3 documents. Not all data is migrated. But the important geometry is there. Given that Superpolator can read designspace files, there is hopefully no real need for a writer. Note that this conversion is lossy.

  • Axis
    • dimensions
    • name
    • tag
  • Source
    • ufo path
    • familyname, stylename
    • mute state (stored in lib)
    • location
  • Instance
    • ufo path
    • familyname, stylename
    • stylemap names
    • location
  • Rules
    • Simple Rules are wrapped in a conditionset.
    • most of the really old Superpolator rules can't be converted. Only rules with < or > operators are used.
  • Some Superpolator user prefs
    • Preview text
    • Which axes used vertically and horizontally

Usage

# convert sp3 file to designspace
# first make a new designspace doc object
doc = DesignSpaceDocument()
# feed it to the reader
reader = SuperpolatorReader(sp3path, doc)
reader.read()
# now you can work with it, even save it
doc.write(designspacePath)

Indeed that last example comes from this convenience function:
sp3_to_designspace(sp3path, designspacePath=None) If designspacePath = None, sp3_to_designspace will use the same path for the output, but replace the .sp3 with .designspace extension. If the file exists it will overwrite.

Notes

  • Glyph-specific masters in instances are ignored.
  • Instance notes are ignored.
  • Designspace geometry requires the default master to be on the default value of each axis. Superpolator handled that differently, it would find the default dynamically. So it is possible that converted designspaces need some work in terms of the basic structure. That can't be handled automatically.

Metadata

Release files for ufoProcessor 1.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ufoProcessor 1.0.5
File Size Uploaded
ufoProcessor-1.0.5.zip 41.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ufoProcessor 1.0.5
File Interpreter ABI Platform
ufoProcessor-1.0.5-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 63.2 kB

Release files / ufoProcessor-1.0.5.zip

Download URL ufoProcessor-1.0.5.zip
Size 41.5 kB
Tags Source
SHA-256 checksum
How to use checksums
cd2854a8d21250f52161a6c09f5c55ca0dff3eac602173438816ce60dd563576
BLAKE2b-256 checksum
How to use checksums
4a022942a85a693d0bbfac78d6af671cdb26d6cdd9d0eb54c948db9c2bf6928e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.3

Release files / ufoProcessor-1.0.5-py2.py3-none-any.whl

Download URL ufoProcessor-1.0.5-py2.py3-none-any.whl
Size 21.6 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
6b95b054af8b51ca8205175d8bbe3b205b2dd0bafaed99b6846a5efdc29e7854
BLAKE2b-256 checksum
How to use checksums
3dee1340e16b8898ab69a7e2750b19781c3c5f00fe70daad0c59f53ede5daf42
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.3

Release history Release notifications | RSS feed

1.14.1

2 release files

1.14.0

2 release files

1.13.2

2 release files

1.13.0

2 release files

1.9.0

2 release files

1.8

2 release files

1.7

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.6

2 release files

This release

1.0.5 This release

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page