Skip to content

Latest commit

 

History

History
199 lines (136 loc) · 4.8 KB

python.rst

File metadata and controls

199 lines (136 loc) · 4.8 KB

1 DesignSpaceDocument Python API

An object to read, write and edit interpolation systems for typefaces. Define sources, axes, rules, variable fonts and instances.

Get an overview of the available classes in the Class Diagram below:

UML class diagram of designspaceLib. Click to enlarge.

UML class diagram of designspaceLib. Click to enlarge.

Table of contents

DesignSpaceDocument

fontTools.designspaceLib::DesignSpaceDocument

AxisDescriptor

fontTools.designspaceLib::AxisDescriptor

DiscreteAxisDescriptor

fontTools.designspaceLib::DiscreteAxisDescriptor

AxisLabelDescriptor

fontTools.designspaceLib::AxisLabelDescriptor

LocationLabelDescriptor

fontTools.designspaceLib::LocationLabelDescriptor

RuleDescriptor

fontTools.designspaceLib::RuleDescriptor

Evaluating rules

fontTools.designspaceLib::evaluateRule

fontTools.designspaceLib::evaluateConditions

fontTools.designspaceLib::processRules

SourceDescriptor

fontTools.designspaceLib::SourceDescriptor

VariableFontDescriptor

fontTools.designspaceLib::VariableFontDescriptor

RangeAxisSubsetDescriptor

fontTools.designspaceLib::RangeAxisSubsetDescriptor

ValueAxisSubsetDescriptor

fontTools.designspaceLib::ValueAxisSubsetDescriptor

InstanceDescriptor

fontTools.designspaceLib::InstanceDescriptor

Subclassing descriptors

The DesignSpaceDocument can take subclassed Reader and Writer objects. This allows you to work with your own descriptors. You could subclass the descriptors. But as long as they have the basic attributes the descriptor does not need to be a subclass.

class MyDocReader(BaseDocReader):
    axisDescriptorClass = MyAxisDescriptor
    discreteAxisDescriptorClass = MyDiscreteAxisDescriptor
    axisLabelDescriptorClass = MyAxisLabelDescriptor
    locationLabelDescriptorClass = MyLocationLabelDescriptor
    ruleDescriptorClass = MyRuleDescriptor
    sourceDescriptorClass = MySourceDescriptor
    variableFontsDescriptorClass = MyVariableFontDescriptor
    valueAxisSubsetDescriptorClass = MyValueAxisSubsetDescriptor
    rangeAxisSubsetDescriptorClass = MyRangeAxisSubsetDescriptor
    instanceDescriptorClass = MyInstanceDescriptor

class MyDocWriter(BaseDocWriter):
    axisDescriptorClass = MyAxisDescriptor
    discreteAxisDescriptorClass = MyDiscreteAxisDescriptor
    axisLabelDescriptorClass = MyAxisLabelDescriptor
    locationLabelDescriptorClass = MyLocationLabelDescriptor
    ruleDescriptorClass = MyRuleDescriptor
    sourceDescriptorClass = MySourceDescriptor
    variableFontsDescriptorClass = MyVariableFontDescriptor
    valueAxisSubsetDescriptorClass = MyValueAxisSubsetDescriptor
    rangeAxisSubsetDescriptorClass = MyRangeAxisSubsetDescriptor
    instanceDescriptorClass = MyInstanceDescriptor

myDoc = DesignSpaceDocument(MyDocReader, MyDocWriter)

Helper modules

fontTools.designspaceLib.split

See Scripting > Working with DesignSpace version 5 <working_with_v5> for more information.

fontTools.designspaceLib.split

fontTools.varLib.stat

fontTools.varLib.stat

fontTools.designspaceLib.statNames

fontTools.designspaceLib.statNames