From ca3306da57fbe62443beb3c73a8b9696b41254d1 Mon Sep 17 00:00:00 2001 From: Cosimo Lupo Date: Fri, 20 Mar 2020 15:58:21 +0000 Subject: [PATCH] designspaceLib: add add{Axis,Source,Instance,Rule}Descriptor methods as suggested by Just here: https://github.com/fonttools/fonttools/pull/1860#issuecomment-601762751 --- Lib/fontTools/designspaceLib/__init__.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/Lib/fontTools/designspaceLib/__init__.py b/Lib/fontTools/designspaceLib/__init__.py index 0a83a9da3..f69c93030 100644 --- a/Lib/fontTools/designspaceLib/__init__.py +++ b/Lib/fontTools/designspaceLib/__init__.py @@ -1188,15 +1188,35 @@ class DesignSpaceDocument(LogMixin, AsDictMixin): def addSource(self, sourceDescriptor): self.sources.append(sourceDescriptor) + def addSourceDescriptor(self, **kwargs): + source = self.writerClass.sourceDescriptorClass(**kwargs) + self.addSource(source) + return source + def addInstance(self, instanceDescriptor): self.instances.append(instanceDescriptor) + def addInstanceDescriptor(self, **kwargs): + instance = self.writerClass.instanceDescriptorClass(**kwargs) + self.addInstance(instance) + return instance + def addAxis(self, axisDescriptor): self.axes.append(axisDescriptor) + def addAxisDescriptor(self, **kwargs): + axis = self.writerClass.axisDescriptorClass(**kwargs) + self.addAxis(axis) + return axis + def addRule(self, ruleDescriptor): self.rules.append(ruleDescriptor) + def addRuleDescriptor(self, **kwargs): + rule = self.writerClass.ruleDescriptorClass(**kwargs) + self.addRule(rule) + return rule + def newDefaultLocation(self): """Return default location in design space.""" # Without OrderedDict, output XML would be non-deterministic.