Kill progress argument
Fixes https://github.com/fonttools/fonttools/issues/1008 Doesn't touch xmlReader / xmlWriter modules.
This commit is contained in:
parent
370368d8c2
commit
f82128f25d
@ -144,7 +144,7 @@ class CFFFontSet(object):
|
||||
|
||||
writer.toFile(file)
|
||||
|
||||
def toXML(self, xmlWriter, progress=None):
|
||||
def toXML(self, xmlWriter):
|
||||
xmlWriter.simpletag("major", value=self.major)
|
||||
xmlWriter.newline()
|
||||
xmlWriter.simpletag("minor", value=self.minor)
|
||||
@ -153,13 +153,13 @@ class CFFFontSet(object):
|
||||
xmlWriter.begintag("CFFFont", name=tostr(fontName))
|
||||
xmlWriter.newline()
|
||||
font = self[fontName]
|
||||
font.toXML(xmlWriter, progress)
|
||||
font.toXML(xmlWriter)
|
||||
xmlWriter.endtag("CFFFont")
|
||||
xmlWriter.newline()
|
||||
xmlWriter.newline()
|
||||
xmlWriter.begintag("GlobalSubrs")
|
||||
xmlWriter.newline()
|
||||
self.GlobalSubrs.toXML(xmlWriter, progress)
|
||||
self.GlobalSubrs.toXML(xmlWriter)
|
||||
xmlWriter.endtag("GlobalSubrs")
|
||||
xmlWriter.newline()
|
||||
|
||||
@ -633,7 +633,7 @@ class GlobalSubrsIndex(Index):
|
||||
private = None
|
||||
return self.subrClass(data, private=private, globalSubrs=self.globalSubrs)
|
||||
|
||||
def toXML(self, xmlWriter, progress):
|
||||
def toXML(self, xmlWriter):
|
||||
xmlWriter.comment(
|
||||
"The 'index' attribute is only for humans; "
|
||||
"it is ignored when parsed.")
|
||||
@ -698,11 +698,11 @@ class TopDictIndex(Index):
|
||||
top.decompile(data)
|
||||
return top
|
||||
|
||||
def toXML(self, xmlWriter, progress):
|
||||
def toXML(self, xmlWriter):
|
||||
for i in range(len(self)):
|
||||
xmlWriter.begintag("FontDict", index=i)
|
||||
xmlWriter.newline()
|
||||
self[i].toXML(xmlWriter, progress)
|
||||
self[i].toXML(xmlWriter)
|
||||
xmlWriter.endtag("FontDict")
|
||||
xmlWriter.newline()
|
||||
|
||||
@ -711,11 +711,11 @@ class FDArrayIndex(Index):
|
||||
|
||||
compilerClass = FDArrayIndexCompiler
|
||||
|
||||
def toXML(self, xmlWriter, progress):
|
||||
def toXML(self, xmlWriter):
|
||||
for i in range(len(self)):
|
||||
xmlWriter.begintag("FontDict", index=i)
|
||||
xmlWriter.newline()
|
||||
self[i].toXML(xmlWriter, progress)
|
||||
self[i].toXML(xmlWriter)
|
||||
xmlWriter.endtag("FontDict")
|
||||
xmlWriter.newline()
|
||||
|
||||
@ -906,11 +906,8 @@ class CharStrings(object):
|
||||
sel = None
|
||||
return self.charStrings[name], sel
|
||||
|
||||
def toXML(self, xmlWriter, progress):
|
||||
def toXML(self, xmlWriter):
|
||||
names = sorted(self.keys())
|
||||
i = 0
|
||||
step = 10
|
||||
numGlyphs = len(names)
|
||||
for name in names:
|
||||
charStr, fdSelectIndex = self.getItemAndSelector(name)
|
||||
if charStr.needsDecompilation():
|
||||
@ -927,10 +924,6 @@ class CharStrings(object):
|
||||
charStr.toXML(xmlWriter)
|
||||
xmlWriter.endtag("CharString")
|
||||
xmlWriter.newline()
|
||||
if not i % step and progress is not None:
|
||||
progress.setLabel("Dumping 'CFF ' table... (%s)" % name)
|
||||
progress.increment(step / numGlyphs)
|
||||
i = i + 1
|
||||
|
||||
def fromXML(self, name, attrs, content):
|
||||
for element in content:
|
||||
@ -1042,7 +1035,7 @@ class SimpleConverter(object):
|
||||
def write(self, parent, value):
|
||||
return value
|
||||
|
||||
def xmlWrite(self, xmlWriter, name, value, progress):
|
||||
def xmlWrite(self, xmlWriter, name, value):
|
||||
xmlWriter.simpletag(name, value=value)
|
||||
xmlWriter.newline()
|
||||
|
||||
@ -1058,7 +1051,7 @@ class ASCIIConverter(SimpleConverter):
|
||||
def write(self, parent, value):
|
||||
return tobytes(value, encoding='ascii')
|
||||
|
||||
def xmlWrite(self, xmlWriter, name, value, progress):
|
||||
def xmlWrite(self, xmlWriter, name, value):
|
||||
xmlWriter.simpletag(name, value=tounicode(value, encoding="ascii"))
|
||||
xmlWriter.newline()
|
||||
|
||||
@ -1074,7 +1067,7 @@ class Latin1Converter(SimpleConverter):
|
||||
def write(self, parent, value):
|
||||
return tobytes(value, encoding='latin1')
|
||||
|
||||
def xmlWrite(self, xmlWriter, name, value, progress):
|
||||
def xmlWrite(self, xmlWriter, name, value):
|
||||
value = tounicode(value, encoding="latin1")
|
||||
if name in ['Notice', 'Copyright']:
|
||||
value = re.sub(r"[\r\n]\s+", " ", value)
|
||||
@ -1108,7 +1101,7 @@ def parseBlendList(s):
|
||||
|
||||
|
||||
class NumberConverter(SimpleConverter):
|
||||
def xmlWrite(self, xmlWriter, name, value, progress):
|
||||
def xmlWrite(self, xmlWriter, name, value):
|
||||
if isinstance(value, list):
|
||||
xmlWriter.begintag(name)
|
||||
xmlWriter.newline()
|
||||
@ -1133,7 +1126,7 @@ class NumberConverter(SimpleConverter):
|
||||
|
||||
|
||||
class ArrayConverter(SimpleConverter):
|
||||
def xmlWrite(self, xmlWriter, name, value, progress):
|
||||
def xmlWrite(self, xmlWriter, name, value):
|
||||
if value and isinstance(value[0], list):
|
||||
xmlWriter.begintag(name)
|
||||
xmlWriter.newline()
|
||||
@ -1162,10 +1155,10 @@ class ArrayConverter(SimpleConverter):
|
||||
|
||||
class TableConverter(SimpleConverter):
|
||||
|
||||
def xmlWrite(self, xmlWriter, name, value, progress):
|
||||
def xmlWrite(self, xmlWriter, name, value):
|
||||
xmlWriter.begintag(name)
|
||||
xmlWriter.newline()
|
||||
value.toXML(xmlWriter, progress)
|
||||
value.toXML(xmlWriter)
|
||||
xmlWriter.endtag(name)
|
||||
xmlWriter.newline()
|
||||
|
||||
@ -1301,7 +1294,7 @@ class CharsetConverter(object):
|
||||
def write(self, parent, value):
|
||||
return 0 # dummy value
|
||||
|
||||
def xmlWrite(self, xmlWriter, name, value, progress):
|
||||
def xmlWrite(self, xmlWriter, name, value):
|
||||
# XXX only write charset when not in OT/TTX context, where we
|
||||
# dump charset as a separate "GlyphOrder" table.
|
||||
# # xmlWriter.simpletag("charset")
|
||||
@ -1501,7 +1494,7 @@ class EncodingConverter(SimpleConverter):
|
||||
return 1
|
||||
return 0 # dummy value
|
||||
|
||||
def xmlWrite(self, xmlWriter, name, value, progress):
|
||||
def xmlWrite(self, xmlWriter, name, value):
|
||||
if value in ("StandardEncoding", "ExpertEncoding"):
|
||||
xmlWriter.simpletag(name, name=value)
|
||||
xmlWriter.newline()
|
||||
@ -1653,7 +1646,7 @@ class FDSelectConverter(object):
|
||||
|
||||
# The FDSelect glyph data is written out to XML in the charstring keys,
|
||||
# so we write out only the format selector
|
||||
def xmlWrite(self, xmlWriter, name, value, progress):
|
||||
def xmlWrite(self, xmlWriter, name, value):
|
||||
xmlWriter.simpletag(name, [('format', value.format)])
|
||||
xmlWriter.newline()
|
||||
|
||||
@ -1677,7 +1670,7 @@ class VarStoreConverter(SimpleConverter):
|
||||
def write(self, parent, value):
|
||||
return 0 # dummy value
|
||||
|
||||
def xmlWrite(self, xmlWriter, name, value, progress):
|
||||
def xmlWrite(self, xmlWriter, name, value):
|
||||
value.writeXML(xmlWriter, name)
|
||||
|
||||
def xmlRead(self, name, attrs, content, parent):
|
||||
@ -1771,7 +1764,7 @@ class VarStoreCompiler(object):
|
||||
|
||||
class ROSConverter(SimpleConverter):
|
||||
|
||||
def xmlWrite(self, xmlWriter, name, value, progress):
|
||||
def xmlWrite(self, xmlWriter, name, value):
|
||||
registry, order, supplement = value
|
||||
xmlWriter.simpletag(
|
||||
name,
|
||||
@ -2245,7 +2238,7 @@ class BaseDict(object):
|
||||
setattr(self, name, value)
|
||||
return value
|
||||
|
||||
def toXML(self, xmlWriter, progress):
|
||||
def toXML(self, xmlWriter):
|
||||
for name in self.order:
|
||||
if name in self.skipNames:
|
||||
continue
|
||||
@ -2262,7 +2255,7 @@ class BaseDict(object):
|
||||
if value is None and name != "charset":
|
||||
continue
|
||||
conv = self.converters[name]
|
||||
conv.xmlWrite(xmlWriter, name, value, progress)
|
||||
conv.xmlWrite(xmlWriter, name, value)
|
||||
ignoredNames = set(self.rawDict) - set(self.order)
|
||||
if ignoredNames:
|
||||
xmlWriter.comment(
|
||||
@ -2310,9 +2303,9 @@ class TopDict(BaseDict):
|
||||
else:
|
||||
self.numGlyphs = readCard16(self.file)
|
||||
|
||||
def toXML(self, xmlWriter, progress):
|
||||
def toXML(self, xmlWriter):
|
||||
if hasattr(self, "CharStrings"):
|
||||
self.decompileAllCharStrings(progress)
|
||||
self.decompileAllCharStrings()
|
||||
if hasattr(self, "ROS"):
|
||||
self.skipNames = ['Encoding']
|
||||
if not hasattr(self, "ROS") or not hasattr(self, "CharStrings"):
|
||||
@ -2320,20 +2313,16 @@ class TopDict(BaseDict):
|
||||
# in CID fonts.
|
||||
self.skipNames = [
|
||||
'CIDFontVersion', 'CIDFontRevision', 'CIDFontType', 'CIDCount']
|
||||
BaseDict.toXML(self, xmlWriter, progress)
|
||||
BaseDict.toXML(self, xmlWriter)
|
||||
|
||||
def decompileAllCharStrings(self, progress):
|
||||
def decompileAllCharStrings(self):
|
||||
# Make sure that all the Private Dicts have been instantiated.
|
||||
i = 0
|
||||
for charString in self.CharStrings.values():
|
||||
try:
|
||||
charString.decompile()
|
||||
except:
|
||||
log.error("Error in charstring %s", i)
|
||||
raise
|
||||
if not i % 30 and progress:
|
||||
progress.increment(0) # update
|
||||
i = i + 1
|
||||
|
||||
def recalcFontBBox(self):
|
||||
fontBBox = None
|
||||
|
@ -38,8 +38,8 @@ class table_C_F_F_(DefaultTable.DefaultTable):
|
||||
# XXX
|
||||
#self.cff[self.cff.fontNames[0]].setGlyphOrder(glyphOrder)
|
||||
|
||||
def toXML(self, writer, otFont, progress=None):
|
||||
self.cff.toXML(writer, progress)
|
||||
def toXML(self, writer, otFont):
|
||||
self.cff.toXML(writer)
|
||||
|
||||
def fromXML(self, name, attrs, content, otFont):
|
||||
if not hasattr(self, "cff"):
|
||||
|
@ -17,7 +17,7 @@ class DefaultTable(object):
|
||||
def compile(self, ttFont):
|
||||
return self.data
|
||||
|
||||
def toXML(self, writer, ttFont, progress=None):
|
||||
def toXML(self, writer, ttFont):
|
||||
if hasattr(self, "ERROR"):
|
||||
writer.comment("An error occurred during the decompilation of this table")
|
||||
writer.newline()
|
||||
|
@ -70,7 +70,7 @@ class table__a_v_a_r(DefaultTable.DefaultTable):
|
||||
segments[fixedToFloat(fromValue, 14)] = fixedToFloat(toValue, 14)
|
||||
pos = pos + 4
|
||||
|
||||
def toXML(self, writer, ttFont, progress=None):
|
||||
def toXML(self, writer, ttFont):
|
||||
axisTags = [axis.axisTag for axis in ttFont["fvar"].axes]
|
||||
for axis in axisTags:
|
||||
writer.begintag("segment", axis=axis)
|
||||
|
@ -75,7 +75,7 @@ class table__c_v_a_r(DefaultTable.DefaultTable):
|
||||
tupleName, tupleAttrs, tupleContent = tupleElement
|
||||
var.fromXML(tupleName, tupleAttrs, tupleContent)
|
||||
|
||||
def toXML(self, writer, ttFont, progress=None):
|
||||
def toXML(self, writer, ttFont):
|
||||
axisTags = [axis.axisTag for axis in ttFont["fvar"].axes]
|
||||
writer.simpletag("version",
|
||||
major=self.majorVersion, minor=self.minorVersion)
|
||||
|
@ -89,7 +89,7 @@ class table__f_v_a_r(DefaultTable.DefaultTable):
|
||||
self.instances.append(instance)
|
||||
pos += instanceSize
|
||||
|
||||
def toXML(self, writer, ttFont, progress=None):
|
||||
def toXML(self, writer, ttFont):
|
||||
for axis in self.axes:
|
||||
axis.toXML(writer, ttFont)
|
||||
for instance in self.instances:
|
||||
|
@ -110,20 +110,14 @@ class table__g_l_y_f(DefaultTable.DefaultTable):
|
||||
ttFont['maxp'].numGlyphs = len(self.glyphs)
|
||||
return data
|
||||
|
||||
def toXML(self, writer, ttFont, progress=None):
|
||||
def toXML(self, writer, ttFont):
|
||||
writer.newline()
|
||||
glyphNames = ttFont.getGlyphNames()
|
||||
writer.comment("The xMin, yMin, xMax and yMax values\nwill be recalculated by the compiler.")
|
||||
writer.newline()
|
||||
writer.newline()
|
||||
counter = 0
|
||||
progressStep = 10
|
||||
numGlyphs = len(glyphNames)
|
||||
for glyphName in glyphNames:
|
||||
if not counter % progressStep and progress is not None:
|
||||
progress.setLabel("Dumping 'glyf' table... (%s)" % glyphName)
|
||||
progress.increment(progressStep / numGlyphs)
|
||||
counter = counter + 1
|
||||
glyph = self[glyphName]
|
||||
if glyph.numberOfContours:
|
||||
writer.begintag('TTGlyph', [
|
||||
|
@ -156,7 +156,7 @@ class table__g_v_a_r(DefaultTable.DefaultTable):
|
||||
packed.byteswap()
|
||||
return (packed.tostring(), tableFormat)
|
||||
|
||||
def toXML(self, writer, ttFont, progress=None):
|
||||
def toXML(self, writer, ttFont):
|
||||
writer.simpletag("version", value=self.version)
|
||||
writer.newline()
|
||||
writer.simpletag("reserved", value=self.reserved)
|
||||
|
@ -74,7 +74,7 @@ class table__m_e_t_a(DefaultTable.DefaultTable):
|
||||
dataOffset += len(data)
|
||||
return bytesjoin([header] + dataMaps + dataBlocks)
|
||||
|
||||
def toXML(self, writer, ttFont, progress=None):
|
||||
def toXML(self, writer, ttFont):
|
||||
for tag in sorted(self.data.keys()):
|
||||
if tag in ["dlng", "slng"]:
|
||||
writer.begintag("text", tag=tag)
|
||||
|
@ -92,7 +92,7 @@ class table__t_r_a_k(DefaultTable.DefaultTable):
|
||||
trackData.decompile(data, offset)
|
||||
setattr(self, direction + 'Data', trackData)
|
||||
|
||||
def toXML(self, writer, ttFont, progress=None):
|
||||
def toXML(self, writer, ttFont):
|
||||
writer.simpletag('version', value=self.version)
|
||||
writer.newline()
|
||||
writer.simpletag('format', value=self.format)
|
||||
@ -194,7 +194,7 @@ class TrackData(MutableMapping):
|
||||
self[entry.track] = entry
|
||||
offset += TRACK_TABLE_ENTRY_FORMAT_SIZE
|
||||
|
||||
def toXML(self, writer, ttFont, progress=None):
|
||||
def toXML(self, writer, ttFont):
|
||||
nTracks = len(self)
|
||||
nSizes = len(self.sizes())
|
||||
writer.comment("nTracks=%d, nSizes=%d" % (nTracks, nSizes))
|
||||
@ -254,7 +254,7 @@ class TrackTableEntry(MutableMapping):
|
||||
self.nameIndex = nameIndex
|
||||
self._map = dict(values)
|
||||
|
||||
def toXML(self, writer, ttFont, progress=None):
|
||||
def toXML(self, writer, ttFont):
|
||||
name = ttFont["name"].getDebugName(self.nameIndex)
|
||||
writer.begintag(
|
||||
"trackEntry",
|
||||
|
@ -207,7 +207,7 @@ class TTFont(object):
|
||||
|
||||
return writer.reordersTables()
|
||||
|
||||
def saveXML(self, fileOrPath, progress=None, quiet=None,
|
||||
def saveXML(self, fileOrPath, quiet=None,
|
||||
tables=None, skipTables=None, splitTables=False, disassembleInstructions=True,
|
||||
bitmapGlyphDataFormat='raw', newlinestr=None):
|
||||
"""Export the font as TTX (an XML-based text file), or as a series of text
|
||||
@ -238,13 +238,8 @@ class TTFont(object):
|
||||
if tag in tables:
|
||||
tables.remove(tag)
|
||||
numTables = len(tables)
|
||||
if progress:
|
||||
progress.set(0, numTables)
|
||||
idlefunc = getattr(progress, "idle", None)
|
||||
else:
|
||||
idlefunc = None
|
||||
|
||||
writer = xmlWriter.XMLWriter(fileOrPath, idlefunc=idlefunc,
|
||||
writer = xmlWriter.XMLWriter(fileOrPath,
|
||||
newlinestr=newlinestr)
|
||||
writer.begintag("ttFont", sfntVersion=repr(tostr(self.sfntVersion))[1:-1],
|
||||
ttLibVersion=version)
|
||||
@ -258,12 +253,10 @@ class TTFont(object):
|
||||
fileNameTemplate = path + ".%s" + ext
|
||||
|
||||
for i in range(numTables):
|
||||
if progress:
|
||||
progress.set(i)
|
||||
tag = tables[i]
|
||||
if splitTables:
|
||||
tablePath = fileNameTemplate % tagToIdentifier(tag)
|
||||
tableWriter = xmlWriter.XMLWriter(tablePath, idlefunc=idlefunc,
|
||||
tableWriter = xmlWriter.XMLWriter(tablePath,
|
||||
newlinestr=newlinestr)
|
||||
tableWriter.begintag("ttFont", ttLibVersion=version)
|
||||
tableWriter.newline()
|
||||
@ -272,13 +265,11 @@ class TTFont(object):
|
||||
writer.newline()
|
||||
else:
|
||||
tableWriter = writer
|
||||
self._tableToXML(tableWriter, tag, progress)
|
||||
self._tableToXML(tableWriter, tag)
|
||||
if splitTables:
|
||||
tableWriter.endtag("ttFont")
|
||||
tableWriter.newline()
|
||||
tableWriter.close()
|
||||
if progress:
|
||||
progress.set((i + 1))
|
||||
writer.endtag("ttFont")
|
||||
writer.newline()
|
||||
# close if 'fileOrPath' is a path; leave it open if it's a file.
|
||||
@ -286,7 +277,7 @@ class TTFont(object):
|
||||
if not hasattr(fileOrPath, "write") and fileOrPath != "-":
|
||||
writer.close()
|
||||
|
||||
def _tableToXML(self, writer, tag, progress, quiet=None):
|
||||
def _tableToXML(self, writer, tag, quiet=None):
|
||||
if quiet is not None:
|
||||
deprecateArgument("quiet", "configure logging instead")
|
||||
if tag in self:
|
||||
@ -294,8 +285,6 @@ class TTFont(object):
|
||||
report = "Dumping '%s' table..." % tag
|
||||
else:
|
||||
report = "No '%s' table found." % tag
|
||||
if progress:
|
||||
progress.setLabel(report)
|
||||
log.info(report)
|
||||
if tag not in self:
|
||||
return
|
||||
@ -309,14 +298,14 @@ class TTFont(object):
|
||||
writer.begintag(xmlTag, **attrs)
|
||||
writer.newline()
|
||||
if tag in ("glyf", "CFF "):
|
||||
table.toXML(writer, self, progress)
|
||||
table.toXML(writer, self)
|
||||
else:
|
||||
table.toXML(writer, self)
|
||||
writer.endtag(xmlTag)
|
||||
writer.newline()
|
||||
writer.newline()
|
||||
|
||||
def importXML(self, fileOrPath, progress=None, quiet=None):
|
||||
def importXML(self, fileOrPath, quiet=None):
|
||||
"""Import a TTX file (an XML-based text format), so as to recreate
|
||||
a font object.
|
||||
"""
|
||||
@ -332,7 +321,7 @@ class TTFont(object):
|
||||
|
||||
from fontTools.misc import xmlReader
|
||||
|
||||
reader = xmlReader.XMLReader(fileOrPath, self, progress)
|
||||
reader = xmlReader.XMLReader(fileOrPath, self)
|
||||
reader.read()
|
||||
|
||||
def isLoaded(self, tag):
|
||||
|
Loading…
x
Reference in New Issue
Block a user