We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
[ttLib] font.importXML() always sets sfntVersion from imported TTX
When using `ttx -m` or `font.importXML()`, the font's `sfntVersion` is unconditionally taken from the imported TTX. That is correct if we're doing a full import (starting with an empty TTFont) but is dubious when importing some tables into an existing font. Importing (say) a name table from an .otf into an existing .ttf will set `sfntValue` to "OTTO", which is incorrect for TTF.

Perhaps we should not set `sfntVersion` if `importXML()` is called on a non-empty font.

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `Lib/fontTools/misc/xmlReader.py`
Content:
```
1 from fontTools import ttLib
2 from fontTools.misc.textTools import safeEval
3 from fontTools.ttLib.tables.DefaultTable import DefaultTable
4 import sys
5 import os
6 import logging
7 
8 
9 log = logging.getLogger(__name__)
10 
11 class TTXParseError(Exception): pass
12 
13 BUFSIZE = 0x4000
14 
15 
16 class XMLReader(object):
17 
18 	def __init__(self, fileOrPath, ttFont, progress=None, quiet=None, contentOnly=False):
19 		if fileOrPath == '-':
20 			fileOrPath = sys.stdin
21 		if not hasattr(fileOrPath, "read"):
22 			self.file = open(fileOrPath, "rb")
23 			self._closeStream = True
24 		else:
25 			# assume readable file object
26 			self.file = fileOrPath
27 			self._closeStream = False
28 		self.ttFont = ttFont
29 		self.progress = progress
30 		if quiet is not None:
31 			from fontTools.misc.loggingTools import deprecateArgument
32 			deprecateArgument("quiet", "configure logging instead")
33 			self.quiet = quiet
34 		self.root = None
35 		self.contentStack = []
36 		self.contentOnly = contentOnly
37 		self.stackSize = 0
38 
39 	def read(self, rootless=False):
40 		if rootless:
41 			self.stackSize += 1
42 		if self.progress:
43 			self.file.seek(0, 2)
44 			fileSize = self.file.tell()
45 			self.progress.set(0, fileSize // 100 or 1)
46 			self.file.seek(0)
47 		self._parseFile(self.file)
48 		if self._closeStream:
49 			self.close()
50 		if rootless:
51 			self.stackSize -= 1
52 
53 	def close(self):
54 		self.file.close()
55 
56 	def _parseFile(self, file):
57 		from xml.parsers.expat import ParserCreate
58 		parser = ParserCreate()
59 		parser.StartElementHandler = self._startElementHandler
60 		parser.EndElementHandler = self._endElementHandler
61 		parser.CharacterDataHandler = self._characterDataHandler
62 
63 		pos = 0
64 		while True:
65 			chunk = file.read(BUFSIZE)
66 			if not chunk:
67 				parser.Parse(chunk, 1)
68 				break
69 			pos = pos + len(chunk)
70 			if self.progress:
71 				self.progress.set(pos // 100)
72 			parser.Parse(chunk, 0)
73 
74 	def _startElementHandler(self, name, attrs):
75 		if self.stackSize == 1 and self.contentOnly:
76 			# We already know the table we're parsing, skip
77 			# parsing the table tag and continue to
78 			# stack '2' which begins parsing content
79 			self.contentStack.append([])
80 			self.stackSize = 2
81 			return
82 		stackSize = self.stackSize
83 		self.stackSize = stackSize + 1
84 		subFile = attrs.get("src")
85 		if subFile is not None:
86 			if hasattr(self.file, 'name'):
87 				# if file has a name, get its parent directory
88 				dirname = os.path.dirname(self.file.name)
89 			else:
90 				# else fall back to using the current working directory
91 				dirname = os.getcwd()
92 			subFile = os.path.join(dirname, subFile)
93 		if not stackSize:
94 			if name != "ttFont":
95 				raise TTXParseError("illegal root tag: %s" % name)
96 			sfntVersion = attrs.get("sfntVersion")
97 			if sfntVersion is not None:
98 				if len(sfntVersion) != 4:
99 					sfntVersion = safeEval('"' + sfntVersion + '"')
100 				self.ttFont.sfntVersion = sfntVersion
101 			self.contentStack.append([])
102 		elif stackSize == 1:
103 			if subFile is not None:
104 				subReader = XMLReader(subFile, self.ttFont, self.progress)
105 				subReader.read()
106 				self.contentStack.append([])
107 				return
108 			tag = ttLib.xmlToTag(name)
109 			msg = "Parsing '%s' table..." % tag
110 			if self.progress:
111 				self.progress.setLabel(msg)
112 			log.info(msg)
113 			if tag == "GlyphOrder":
114 				tableClass = ttLib.GlyphOrder
115 			elif "ERROR" in attrs or ('raw' in attrs and safeEval(attrs['raw'])):
116 				tableClass = DefaultTable
117 			else:
118 				tableClass = ttLib.getTableClass(tag)
119 				if tableClass is None:
120 					tableClass = DefaultTable
121 			if tag == 'loca' and tag in self.ttFont:
122 				# Special-case the 'loca' table as we need the
123 				#    original if the 'glyf' table isn't recompiled.
124 				self.currentTable = self.ttFont[tag]
125 			else:
126 				self.currentTable = tableClass(tag)
127 				self.ttFont[tag] = self.currentTable
128 			self.contentStack.append([])
129 		elif stackSize == 2 and subFile is not None:
130 			subReader = XMLReader(subFile, self.ttFont, self.progress, contentOnly=True)
131 			subReader.read()
132 			self.contentStack.append([])
133 			self.root = subReader.root
134 		elif stackSize == 2:
135 			self.contentStack.append([])
136 			self.root = (name, attrs, self.contentStack[-1])
137 		else:
138 			l = []
139 			self.contentStack[-1].append((name, attrs, l))
140 			self.contentStack.append(l)
141 
142 	def _characterDataHandler(self, data):
143 		if self.stackSize > 1:
144 			self.contentStack[-1].append(data)
145 
146 	def _endElementHandler(self, name):
147 		self.stackSize = self.stackSize - 1
148 		del self.contentStack[-1]
149 		if not self.contentOnly:
150 			if self.stackSize == 1:
151 				self.root = None
152 			elif self.stackSize == 2:
153 				name, attrs, content = self.root
154 				self.currentTable.fromXML(name, attrs, content, self.ttFont)
155 				self.root = None
156 
157 
158 class ProgressPrinter(object):
159 
160 	def __init__(self, title, maxval=100):
161 		print(title)
162 
163 	def set(self, val, maxval=None):
164 		pass
165 
166 	def increment(self, val=1):
167 		pass
168 
169 	def setLabel(self, text):
170 		print(text)
171
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/Lib/fontTools/misc/xmlReader.py b/Lib/fontTools/misc/xmlReader.py
--- a/Lib/fontTools/misc/xmlReader.py
+++ b/Lib/fontTools/misc/xmlReader.py
@@ -93,11 +93,12 @@
 		if not stackSize:
 			if name != "ttFont":
 				raise TTXParseError("illegal root tag: %s" % name)
-			sfntVersion = attrs.get("sfntVersion")
-			if sfntVersion is not None:
-				if len(sfntVersion) != 4:
-					sfntVersion = safeEval('"' + sfntVersion + '"')
-				self.ttFont.sfntVersion = sfntVersion
+			if self.ttFont.reader is None and not self.ttFont.tables:
+				sfntVersion = attrs.get("sfntVersion")
+				if sfntVersion is not None:
+					if len(sfntVersion) != 4:
+						sfntVersion = safeEval('"' + sfntVersion + '"')
+					self.ttFont.sfntVersion = sfntVersion
 			self.contentStack.append([])
 		elif stackSize == 1:
 			if subFile is not None:

{"golden_diff": "diff --git a/Lib/fontTools/misc/xmlReader.py b/Lib/fontTools/misc/xmlReader.py\n--- a/Lib/fontTools/misc/xmlReader.py\n+++ b/Lib/fontTools/misc/xmlReader.py\n@@ -93,11 +93,12 @@\n \t\tif not stackSize:\n \t\t\tif name != \"ttFont\":\n \t\t\t\traise TTXParseError(\"illegal root tag: %s\" % name)\n-\t\t\tsfntVersion = attrs.get(\"sfntVersion\")\n-\t\t\tif sfntVersion is not None:\n-\t\t\t\tif len(sfntVersion) != 4:\n-\t\t\t\t\tsfntVersion = safeEval('\"' + sfntVersion + '\"')\n-\t\t\t\tself.ttFont.sfntVersion = sfntVersion\n+\t\t\tif self.ttFont.reader is None and not self.ttFont.tables:\n+\t\t\t\tsfntVersion = attrs.get(\"sfntVersion\")\n+\t\t\t\tif sfntVersion is not None:\n+\t\t\t\t\tif len(sfntVersion) != 4:\n+\t\t\t\t\t\tsfntVersion = safeEval('\"' + sfntVersion + '\"')\n+\t\t\t\t\tself.ttFont.sfntVersion = sfntVersion\n \t\t\tself.contentStack.append([])\n \t\telif stackSize == 1:\n \t\t\tif subFile is not None:\n", "issue": "[ttLib] font.importXML() always sets sfntVersion from imported TTX\nWhen using `ttx -m` or `font.importXML()`, the font's `sfntVersion` is unconditionally taken from the imported TTX. That is correct if we're doing a full import (starting with an empty TTFont) but is dubious when importing some tables into an existing font. Importing (say) a name table from an .otf into an existing .ttf will set `sfntValue` to \"OTTO\", which is incorrect for TTF.\r\n\r\nPerhaps we should not set `sfntVersion` if `importXML()` is called on a non-empty font.\n", "before_files": [{"content": "from fontTools import ttLib\nfrom fontTools.misc.textTools import safeEval\nfrom fontTools.ttLib.tables.DefaultTable import DefaultTable\nimport sys\nimport os\nimport logging\n\n\nlog = logging.getLogger(__name__)\n\nclass TTXParseError(Exception): pass\n\nBUFSIZE = 0x4000\n\n\nclass XMLReader(object):\n\n\tdef __init__(self, fileOrPath, ttFont, progress=None, quiet=None, contentOnly=False):\n\t\tif fileOrPath == '-':\n\t\t\tfileOrPath = sys.stdin\n\t\tif not hasattr(fileOrPath, \"read\"):\n\t\t\tself.file = open(fileOrPath, \"rb\")\n\t\t\tself._closeStream = True\n\t\telse:\n\t\t\t# assume readable file object\n\t\t\tself.file = fileOrPath\n\t\t\tself._closeStream = False\n\t\tself.ttFont = ttFont\n\t\tself.progress = progress\n\t\tif quiet is not None:\n\t\t\tfrom fontTools.misc.loggingTools import deprecateArgument\n\t\t\tdeprecateArgument(\"quiet\", \"configure logging instead\")\n\t\t\tself.quiet = quiet\n\t\tself.root = None\n\t\tself.contentStack = []\n\t\tself.contentOnly = contentOnly\n\t\tself.stackSize = 0\n\n\tdef read(self, rootless=False):\n\t\tif rootless:\n\t\t\tself.stackSize += 1\n\t\tif self.progress:\n\t\t\tself.file.seek(0, 2)\n\t\t\tfileSize = self.file.tell()\n\t\t\tself.progress.set(0, fileSize // 100 or 1)\n\t\t\tself.file.seek(0)\n\t\tself._parseFile(self.file)\n\t\tif self._closeStream:\n\t\t\tself.close()\n\t\tif rootless:\n\t\t\tself.stackSize -= 1\n\n\tdef close(self):\n\t\tself.file.close()\n\n\tdef _parseFile(self, file):\n\t\tfrom xml.parsers.expat import ParserCreate\n\t\tparser = ParserCreate()\n\t\tparser.StartElementHandler = self._startElementHandler\n\t\tparser.EndElementHandler = self._endElementHandler\n\t\tparser.CharacterDataHandler = self._characterDataHandler\n\n\t\tpos = 0\n\t\twhile True:\n\t\t\tchunk = file.read(BUFSIZE)\n\t\t\tif not chunk:\n\t\t\t\tparser.Parse(chunk, 1)\n\t\t\t\tbreak\n\t\t\tpos = pos + len(chunk)\n\t\t\tif self.progress:\n\t\t\t\tself.progress.set(pos // 100)\n\t\t\tparser.Parse(chunk, 0)\n\n\tdef _startElementHandler(self, name, attrs):\n\t\tif self.stackSize == 1 and self.contentOnly:\n\t\t\t# We already know the table we're parsing, skip\n\t\t\t# parsing the table tag and continue to\n\t\t\t# stack '2' which begins parsing content\n\t\t\tself.contentStack.append([])\n\t\t\tself.stackSize = 2\n\t\t\treturn\n\t\tstackSize = self.stackSize\n\t\tself.stackSize = stackSize + 1\n\t\tsubFile = attrs.get(\"src\")\n\t\tif subFile is not None:\n\t\t\tif hasattr(self.file, 'name'):\n\t\t\t\t# if file has a name, get its parent directory\n\t\t\t\tdirname = os.path.dirname(self.file.name)\n\t\t\telse:\n\t\t\t\t# else fall back to using the current working directory\n\t\t\t\tdirname = os.getcwd()\n\t\t\tsubFile = os.path.join(dirname, subFile)\n\t\tif not stackSize:\n\t\t\tif name != \"ttFont\":\n\t\t\t\traise TTXParseError(\"illegal root tag: %s\" % name)\n\t\t\tsfntVersion = attrs.get(\"sfntVersion\")\n\t\t\tif sfntVersion is not None:\n\t\t\t\tif len(sfntVersion) != 4:\n\t\t\t\t\tsfntVersion = safeEval('\"' + sfntVersion + '\"')\n\t\t\t\tself.ttFont.sfntVersion = sfntVersion\n\t\t\tself.contentStack.append([])\n\t\telif stackSize == 1:\n\t\t\tif subFile is not None:\n\t\t\t\tsubReader = XMLReader(subFile, self.ttFont, self.progress)\n\t\t\t\tsubReader.read()\n\t\t\t\tself.contentStack.append([])\n\t\t\t\treturn\n\t\t\ttag = ttLib.xmlToTag(name)\n\t\t\tmsg = \"Parsing '%s' table...\" % tag\n\t\t\tif self.progress:\n\t\t\t\tself.progress.setLabel(msg)\n\t\t\tlog.info(msg)\n\t\t\tif tag == \"GlyphOrder\":\n\t\t\t\ttableClass = ttLib.GlyphOrder\n\t\t\telif \"ERROR\" in attrs or ('raw' in attrs and safeEval(attrs['raw'])):\n\t\t\t\ttableClass = DefaultTable\n\t\t\telse:\n\t\t\t\ttableClass = ttLib.getTableClass(tag)\n\t\t\t\tif tableClass is None:\n\t\t\t\t\ttableClass = DefaultTable\n\t\t\tif tag == 'loca' and tag in self.ttFont:\n\t\t\t\t# Special-case the 'loca' table as we need the\n\t\t\t\t#    original if the 'glyf' table isn't recompiled.\n\t\t\t\tself.currentTable = self.ttFont[tag]\n\t\t\telse:\n\t\t\t\tself.currentTable = tableClass(tag)\n\t\t\t\tself.ttFont[tag] = self.currentTable\n\t\t\tself.contentStack.append([])\n\t\telif stackSize == 2 and subFile is not None:\n\t\t\tsubReader = XMLReader(subFile, self.ttFont, self.progress, contentOnly=True)\n\t\t\tsubReader.read()\n\t\t\tself.contentStack.append([])\n\t\t\tself.root = subReader.root\n\t\telif stackSize == 2:\n\t\t\tself.contentStack.append([])\n\t\t\tself.root = (name, attrs, self.contentStack[-1])\n\t\telse:\n\t\t\tl = []\n\t\t\tself.contentStack[-1].append((name, attrs, l))\n\t\t\tself.contentStack.append(l)\n\n\tdef _characterDataHandler(self, data):\n\t\tif self.stackSize > 1:\n\t\t\tself.contentStack[-1].append(data)\n\n\tdef _endElementHandler(self, name):\n\t\tself.stackSize = self.stackSize - 1\n\t\tdel self.contentStack[-1]\n\t\tif not self.contentOnly:\n\t\t\tif self.stackSize == 1:\n\t\t\t\tself.root = None\n\t\t\telif self.stackSize == 2:\n\t\t\t\tname, attrs, content = self.root\n\t\t\t\tself.currentTable.fromXML(name, attrs, content, self.ttFont)\n\t\t\t\tself.root = None\n\n\nclass ProgressPrinter(object):\n\n\tdef __init__(self, title, maxval=100):\n\t\tprint(title)\n\n\tdef set(self, val, maxval=None):\n\t\tpass\n\n\tdef increment(self, val=1):\n\t\tpass\n\n\tdef setLabel(self, text):\n\t\tprint(text)\n", "path": "Lib/fontTools/misc/xmlReader.py"}], "after_files": [{"content": "from fontTools import ttLib\nfrom fontTools.misc.textTools import safeEval\nfrom fontTools.ttLib.tables.DefaultTable import DefaultTable\nimport sys\nimport os\nimport logging\n\n\nlog = logging.getLogger(__name__)\n\nclass TTXParseError(Exception): pass\n\nBUFSIZE = 0x4000\n\n\nclass XMLReader(object):\n\n\tdef __init__(self, fileOrPath, ttFont, progress=None, quiet=None, contentOnly=False):\n\t\tif fileOrPath == '-':\n\t\t\tfileOrPath = sys.stdin\n\t\tif not hasattr(fileOrPath, \"read\"):\n\t\t\tself.file = open(fileOrPath, \"rb\")\n\t\t\tself._closeStream = True\n\t\telse:\n\t\t\t# assume readable file object\n\t\t\tself.file = fileOrPath\n\t\t\tself._closeStream = False\n\t\tself.ttFont = ttFont\n\t\tself.progress = progress\n\t\tif quiet is not None:\n\t\t\tfrom fontTools.misc.loggingTools import deprecateArgument\n\t\t\tdeprecateArgument(\"quiet\", \"configure logging instead\")\n\t\t\tself.quiet = quiet\n\t\tself.root = None\n\t\tself.contentStack = []\n\t\tself.contentOnly = contentOnly\n\t\tself.stackSize = 0\n\n\tdef read(self, rootless=False):\n\t\tif rootless:\n\t\t\tself.stackSize += 1\n\t\tif self.progress:\n\t\t\tself.file.seek(0, 2)\n\t\t\tfileSize = self.file.tell()\n\t\t\tself.progress.set(0, fileSize // 100 or 1)\n\t\t\tself.file.seek(0)\n\t\tself._parseFile(self.file)\n\t\tif self._closeStream:\n\t\t\tself.close()\n\t\tif rootless:\n\t\t\tself.stackSize -= 1\n\n\tdef close(self):\n\t\tself.file.close()\n\n\tdef _parseFile(self, file):\n\t\tfrom xml.parsers.expat import ParserCreate\n\t\tparser = ParserCreate()\n\t\tparser.StartElementHandler = self._startElementHandler\n\t\tparser.EndElementHandler = self._endElementHandler\n\t\tparser.CharacterDataHandler = self._characterDataHandler\n\n\t\tpos = 0\n\t\twhile True:\n\t\t\tchunk = file.read(BUFSIZE)\n\t\t\tif not chunk:\n\t\t\t\tparser.Parse(chunk, 1)\n\t\t\t\tbreak\n\t\t\tpos = pos + len(chunk)\n\t\t\tif self.progress:\n\t\t\t\tself.progress.set(pos // 100)\n\t\t\tparser.Parse(chunk, 0)\n\n\tdef _startElementHandler(self, name, attrs):\n\t\tif self.stackSize == 1 and self.contentOnly:\n\t\t\t# We already know the table we're parsing, skip\n\t\t\t# parsing the table tag and continue to\n\t\t\t# stack '2' which begins parsing content\n\t\t\tself.contentStack.append([])\n\t\t\tself.stackSize = 2\n\t\t\treturn\n\t\tstackSize = self.stackSize\n\t\tself.stackSize = stackSize + 1\n\t\tsubFile = attrs.get(\"src\")\n\t\tif subFile is not None:\n\t\t\tif hasattr(self.file, 'name'):\n\t\t\t\t# if file has a name, get its parent directory\n\t\t\t\tdirname = os.path.dirname(self.file.name)\n\t\t\telse:\n\t\t\t\t# else fall back to using the current working directory\n\t\t\t\tdirname = os.getcwd()\n\t\t\tsubFile = os.path.join(dirname, subFile)\n\t\tif not stackSize:\n\t\t\tif name != \"ttFont\":\n\t\t\t\traise TTXParseError(\"illegal root tag: %s\" % name)\n\t\t\tif self.ttFont.reader is None and not self.ttFont.tables:\n\t\t\t\tsfntVersion = attrs.get(\"sfntVersion\")\n\t\t\t\tif sfntVersion is not None:\n\t\t\t\t\tif len(sfntVersion) != 4:\n\t\t\t\t\t\tsfntVersion = safeEval('\"' + sfntVersion + '\"')\n\t\t\t\t\tself.ttFont.sfntVersion = sfntVersion\n\t\t\tself.contentStack.append([])\n\t\telif stackSize == 1:\n\t\t\tif subFile is not None:\n\t\t\t\tsubReader = XMLReader(subFile, self.ttFont, self.progress)\n\t\t\t\tsubReader.read()\n\t\t\t\tself.contentStack.append([])\n\t\t\t\treturn\n\t\t\ttag = ttLib.xmlToTag(name)\n\t\t\tmsg = \"Parsing '%s' table...\" % tag\n\t\t\tif self.progress:\n\t\t\t\tself.progress.setLabel(msg)\n\t\t\tlog.info(msg)\n\t\t\tif tag == \"GlyphOrder\":\n\t\t\t\ttableClass = ttLib.GlyphOrder\n\t\t\telif \"ERROR\" in attrs or ('raw' in attrs and safeEval(attrs['raw'])):\n\t\t\t\ttableClass = DefaultTable\n\t\t\telse:\n\t\t\t\ttableClass = ttLib.getTableClass(tag)\n\t\t\t\tif tableClass is None:\n\t\t\t\t\ttableClass = DefaultTable\n\t\t\tif tag == 'loca' and tag in self.ttFont:\n\t\t\t\t# Special-case the 'loca' table as we need the\n\t\t\t\t#    original if the 'glyf' table isn't recompiled.\n\t\t\t\tself.currentTable = self.ttFont[tag]\n\t\t\telse:\n\t\t\t\tself.currentTable = tableClass(tag)\n\t\t\t\tself.ttFont[tag] = self.currentTable\n\t\t\tself.contentStack.append([])\n\t\telif stackSize == 2 and subFile is not None:\n\t\t\tsubReader = XMLReader(subFile, self.ttFont, self.progress, contentOnly=True)\n\t\t\tsubReader.read()\n\t\t\tself.contentStack.append([])\n\t\t\tself.root = subReader.root\n\t\telif stackSize == 2:\n\t\t\tself.contentStack.append([])\n\t\t\tself.root = (name, attrs, self.contentStack[-1])\n\t\telse:\n\t\t\tl = []\n\t\t\tself.contentStack[-1].append((name, attrs, l))\n\t\t\tself.contentStack.append(l)\n\n\tdef _characterDataHandler(self, data):\n\t\tif self.stackSize > 1:\n\t\t\tself.contentStack[-1].append(data)\n\n\tdef _endElementHandler(self, name):\n\t\tself.stackSize = self.stackSize - 1\n\t\tdel self.contentStack[-1]\n\t\tif not self.contentOnly:\n\t\t\tif self.stackSize == 1:\n\t\t\t\tself.root = None\n\t\t\telif self.stackSize == 2:\n\t\t\t\tname, attrs, content = self.root\n\t\t\t\tself.currentTable.fromXML(name, attrs, content, self.ttFont)\n\t\t\t\tself.root = None\n\n\nclass ProgressPrinter(object):\n\n\tdef __init__(self, title, maxval=100):\n\t\tprint(title)\n\n\tdef set(self, val, maxval=None):\n\t\tpass\n\n\tdef increment(self, val=1):\n\t\tpass\n\n\tdef setLabel(self, text):\n\t\tprint(text)\n", "path": "Lib/fontTools/misc/xmlReader.py"}]}