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