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