• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1################################
21 DesignSpaceDocument Python API
3################################
4
5An object to read, write and edit interpolation systems for typefaces.
6Define sources, axes, rules, variable fonts and instances.
7
8Get an overview of the available classes in the Class Diagram below:
9
10.. figure:: v5_class_diagram.png
11   :width: 650px
12   :alt: UML class diagram of designspaceLib
13
14   UML class diagram of designspaceLib. Click to enlarge.
15
16.. contents:: Table of contents
17   :local:
18
19.. _designspacedocument-object:
20
21===================
22DesignSpaceDocument
23===================
24
25.. autoclass:: fontTools.designspaceLib::DesignSpaceDocument
26   :members:
27   :undoc-members:
28   :member-order: bysource
29
30
31.. _axis-descriptor-object:
32
33AxisDescriptor
34==============
35
36.. autoclass:: fontTools.designspaceLib::AxisDescriptor
37   :members:
38   :undoc-members:
39   :inherited-members: SimpleDescriptor
40   :member-order: bysource
41
42
43DiscreteAxisDescriptor
44======================
45
46.. autoclass:: fontTools.designspaceLib::DiscreteAxisDescriptor
47   :members:
48   :undoc-members:
49   :inherited-members: SimpleDescriptor
50   :member-order: bysource
51
52
53AxisLabelDescriptor
54-------------------
55
56.. autoclass:: fontTools.designspaceLib::AxisLabelDescriptor
57   :members:
58   :undoc-members:
59   :member-order: bysource
60
61
62LocationLabelDescriptor
63=======================
64
65.. autoclass:: fontTools.designspaceLib::LocationLabelDescriptor
66   :members:
67   :undoc-members:
68   :member-order: bysource
69
70
71RuleDescriptor
72==============
73
74.. autoclass:: fontTools.designspaceLib::RuleDescriptor
75   :members:
76   :undoc-members:
77   :member-order: bysource
78
79
80Evaluating rules
81----------------
82
83.. autofunction:: fontTools.designspaceLib::evaluateRule
84.. autofunction:: fontTools.designspaceLib::evaluateConditions
85.. autofunction:: fontTools.designspaceLib::processRules
86
87
88.. _source-descriptor-object:
89
90SourceDescriptor
91================
92
93.. autoclass:: fontTools.designspaceLib::SourceDescriptor
94   :members:
95   :undoc-members:
96   :member-order: bysource
97
98
99VariableFontDescriptor
100======================
101
102.. autoclass:: fontTools.designspaceLib::VariableFontDescriptor
103   :members:
104   :undoc-members:
105   :member-order: bysource
106
107
108RangeAxisSubsetDescriptor
109-------------------------
110
111.. autoclass:: fontTools.designspaceLib::RangeAxisSubsetDescriptor
112   :members:
113   :undoc-members:
114   :member-order: bysource
115
116
117ValueAxisSubsetDescriptor
118-------------------------
119
120.. autoclass:: fontTools.designspaceLib::ValueAxisSubsetDescriptor
121   :members:
122   :undoc-members:
123   :member-order: bysource
124
125
126.. _instance-descriptor-object:
127
128InstanceDescriptor
129==================
130
131.. autoclass:: fontTools.designspaceLib::InstanceDescriptor
132   :members:
133   :undoc-members:
134   :member-order: bysource
135
136
137.. _subclassing-descriptors:
138
139=======================
140Subclassing descriptors
141=======================
142
143The DesignSpaceDocument can take subclassed Reader and Writer objects.
144This allows you to work with your own descriptors. You could subclass
145the descriptors. But as long as they have the basic attributes the
146descriptor does not need to be a subclass.
147
148.. code:: python
149
150    class MyDocReader(BaseDocReader):
151        axisDescriptorClass = MyAxisDescriptor
152        discreteAxisDescriptorClass = MyDiscreteAxisDescriptor
153        axisLabelDescriptorClass = MyAxisLabelDescriptor
154        locationLabelDescriptorClass = MyLocationLabelDescriptor
155        ruleDescriptorClass = MyRuleDescriptor
156        sourceDescriptorClass = MySourceDescriptor
157        variableFontsDescriptorClass = MyVariableFontDescriptor
158        valueAxisSubsetDescriptorClass = MyValueAxisSubsetDescriptor
159        rangeAxisSubsetDescriptorClass = MyRangeAxisSubsetDescriptor
160        instanceDescriptorClass = MyInstanceDescriptor
161
162    class MyDocWriter(BaseDocWriter):
163        axisDescriptorClass = MyAxisDescriptor
164        discreteAxisDescriptorClass = MyDiscreteAxisDescriptor
165        axisLabelDescriptorClass = MyAxisLabelDescriptor
166        locationLabelDescriptorClass = MyLocationLabelDescriptor
167        ruleDescriptorClass = MyRuleDescriptor
168        sourceDescriptorClass = MySourceDescriptor
169        variableFontsDescriptorClass = MyVariableFontDescriptor
170        valueAxisSubsetDescriptorClass = MyValueAxisSubsetDescriptor
171        rangeAxisSubsetDescriptorClass = MyRangeAxisSubsetDescriptor
172        instanceDescriptorClass = MyInstanceDescriptor
173
174    myDoc = DesignSpaceDocument(MyDocReader, MyDocWriter)
175
176
177==============
178Helper modules
179==============
180
181fontTools.designspaceLib.split
182==============================
183
184See :ref:`Scripting > Working with DesignSpace version 5 <working_with_v5>`
185for more information.
186
187.. automodule:: fontTools.designspaceLib.split
188
189
190fontTools.designspaceLib.stat
191=============================
192
193.. automodule:: fontTools.designspaceLib.stat
194
195
196fontTools.designspaceLib.statNames
197==================================
198
199.. automodule:: fontTools.designspaceLib.statNames
200