Skip to main content
Help us improve Python packaging – donate today!

Cubic-to-quadratic bezier curve conversion

Project Description

Build Status PyPI Version Coverage


This library provides functions which take in UFO objects (Defcon Fonts or Robofab RFonts) and converts any cubic curves to quadratic. The most useful function is probably fonts_to_quadratic:

from defcon import Font
from cu2qu.ufo import fonts_to_quadratic
thin_font = Font('MyFont-Thin.ufo')
bold_font = Font('MyFont-Bold.ufo')
fonts_to_quadratic([thin_font, bold_font])

Interpolation compatibility is guaranteed during conversion. If it’s not needed, converting one font at a time may yield more optimized results:

for font in [thin_font, bold_font]:

Some fonts may need a different error threshold than the default (0.001 em). This can also be provided by the caller:

fonts_to_quadratic([thin_font, bold_font], max_err_em=0.005)
for font in [thin_font, bold_font]:
    fonts_to_quadratic([font], max_err_em=0.001)

fonts_to_quadratic can print a string reporting the number of curves of each length. For example fonts_to_quadratic([font], dump_stats=True) may print something like:

3: 1000
4: 2000
5: 100

meaning that the font now contains 1000 curves with three points, 2000 with four points, and 100 with five. Given multiple fonts, the function will report the total counts across all fonts. You can also accumulate statistics between calls by providing your own report dictionary:

stats = {}
for font in [thin_font, bold_font]:
    fonts_to_quadratic([font], stats=stats)
# "stats" will report combined statistics for both fonts

Release history Release notifications

This version
History Node


History Node


History Node


History Node


History Node


History Node


Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
cu2qu-1.5.0-py2.py3-none-any.whl (18.1 kB) Copy SHA256 hash SHA256 Wheel py2.py3 Apr 10, 2018 (123.0 kB) Copy SHA256 hash SHA256 Source None Apr 10, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page