2to3 --fix=has_key

This commit is contained in:
Behdad Esfahbod 2013-11-27 02:33:03 -05:00
parent 553c3bbe4e
commit bc5e1cb195
23 changed files with 74 additions and 72 deletions

View File

@ -208,7 +208,7 @@ class AFM:
# a preferred order # a preferred order
attrs = self._attrs attrs = self._attrs
for attr in preferredAttributeOrder: for attr in preferredAttributeOrder:
if attrs.has_key(attr): if attr in attrs:
value = attrs[attr] value = attrs[attr]
if attr == "FontBBox": if attr == "FontBBox":
value = "%s %s %s %s" % value value = "%s %s %s %s" % value
@ -269,13 +269,13 @@ class AFM:
writelines(path, lines, sep) writelines(path, lines, sep)
def has_kernpair(self, pair): def has_kernpair(self, pair):
return self._kerning.has_key(pair) return pair in self._kerning
def kernpairs(self): def kernpairs(self):
return self._kerning.keys() return self._kerning.keys()
def has_char(self, char): def has_char(self, char):
return self._chars.has_key(char) return char in self._chars
def chars(self): def chars(self):
return self._chars.keys() return self._chars.keys()
@ -290,7 +290,7 @@ class AFM:
self._composites[glyphName] = components self._composites[glyphName] = components
def __getattr__(self, attr): def __getattr__(self, attr):
if self._attrs.has_key(attr): if attr in self._attrs:
return self._attrs[attr] return self._attrs[attr]
else: else:
raise AttributeError, attr raise AttributeError, attr

View File

@ -724,7 +724,7 @@ def _builddicts():
assert len(unicode) == 4 assert len(unicode) == 4
unicode = int(unicode, 16) unicode = int(unicode, 16)
glyphName = m.group(2) glyphName = m.group(2)
if AGL2UV.has_key(glyphName): if glyphName in AGL2UV:
# the above table contains identical duplicates # the above table contains identical duplicates
assert AGL2UV[glyphName] == unicode assert AGL2UV[glyphName] == unicode
else: else:

View File

@ -526,7 +526,7 @@ class CharStrings:
return self.charStrings.values() return self.charStrings.values()
def has_key(self, name): def has_key(self, name):
return self.charStrings.has_key(name) return name in self.charStrings
def __len__(self): def __len__(self):
return len(self.charStrings) return len(self.charStrings)
@ -788,7 +788,7 @@ class CharsetConverter:
if DEBUG: if DEBUG:
print " charset end at %s" % file.tell() print " charset end at %s" % file.tell()
else: # offset == 0 -> no charset data. else: # offset == 0 -> no charset data.
if isCID or not parent.rawDict.has_key("CharStrings"): if isCID or "CharStrings" not in parent.rawDict:
assert value == 0 # We get here only when processing fontDicts from the FDArray of CFF-CID fonts. Only the real topDict references the chrset. assert value == 0 # We get here only when processing fontDicts from the FDArray of CFF-CID fonts. Only the real topDict references the chrset.
charset = None charset = None
elif value == 0: elif value == 0:
@ -992,7 +992,7 @@ class EncodingConverter(SimpleConverter):
xmlWriter.newline() xmlWriter.newline()
def xmlRead(self, (name, attrs, content), parent): def xmlRead(self, (name, attrs, content), parent):
if attrs.has_key("name"): if "name" in attrs:
return attrs["name"] return attrs["name"]
encoding = [".notdef"] * 256 encoding = [".notdef"] * 256
for element in content: for element in content:
@ -1613,9 +1613,9 @@ class IndexedStrings:
def getSID(self, s): def getSID(self, s):
if not hasattr(self, "stringMapping"): if not hasattr(self, "stringMapping"):
self.buildStringMapping() self.buildStringMapping()
if cffStandardStringMapping.has_key(s): if s in cffStandardStringMapping:
SID = cffStandardStringMapping[s] SID = cffStandardStringMapping[s]
elif self.stringMapping.has_key(s): elif s in self.stringMapping:
SID = self.stringMapping[s] SID = self.stringMapping[s]
else: else:
SID = len(self.strings) + cffStandardStringCount SID = len(self.strings) + cffStandardStringCount

View File

@ -67,7 +67,7 @@ def pack(format, object):
object = object.__dict__ object = object.__dict__
for name in names: for name in names:
value = object[name] value = object[name]
if fixes.has_key(name): if name in fixes:
# fixed point conversion # fixed point conversion
value = int(round(value*fixes[name])) value = int(round(value*fixes[name]))
elements.append(value) elements.append(value)
@ -86,7 +86,7 @@ def unpack(format, data, object=None):
for i in range(len(names)): for i in range(len(names)):
name = names[i] name = names[i]
value = elements[i] value = elements[i]
if fixes.has_key(name): if name in fixes:
# fixed point conversion # fixed point conversion
value = value / fixes[name] value = value / fixes[name]
dict[name] = value dict[name] = value

View File

@ -78,13 +78,13 @@ class XMLReader:
print msg print msg
if tag == "GlyphOrder": if tag == "GlyphOrder":
tableClass = ttLib.GlyphOrder tableClass = ttLib.GlyphOrder
elif attrs.has_key("ERROR"): elif "ERROR" in attrs:
tableClass = DefaultTable tableClass = DefaultTable
else: else:
tableClass = ttLib.getTableClass(tag) tableClass = ttLib.getTableClass(tag)
if tableClass is None: if tableClass is None:
tableClass = DefaultTable tableClass = DefaultTable
if tag == 'loca' and self.ttFont.has_key(tag): if tag == 'loca' and tag in self.ttFont:
# Special-case the 'loca' table as we need the # Special-case the 'loca' table as we need the
# original if the 'glyf' table isn't recompiled. # original if the 'glyf' table isn't recompiled.
self.currentTable = self.ttFont[tag] self.currentTable = self.ttFont[tag]

View File

@ -290,7 +290,7 @@ class TTFont:
debugmsg("Done dumping TTX") debugmsg("Done dumping TTX")
def _tableToXML(self, writer, tag, progress, quiet): def _tableToXML(self, writer, tag, progress, quiet):
if self.has_key(tag): if tag in self:
table = self[tag] table = self[tag]
report = "Dumping '%s' table..." % tag report = "Dumping '%s' table..." % tag
else: else:
@ -302,7 +302,7 @@ class TTFont:
else: else:
if not quiet: if not quiet:
print report print report
if not self.has_key(tag): if tag not in self:
return return
xmlTag = tagToXML(tag) xmlTag = tagToXML(tag)
if hasattr(table, "ERROR"): if hasattr(table, "ERROR"):
@ -322,7 +322,7 @@ class TTFont:
"""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.
""" """
if self.has_key("maxp") and self.has_key("post"): if "maxp" in self and "post" in self:
# Make sure the glyph order is loaded, as it otherwise gets # Make sure the glyph order is loaded, as it otherwise gets
# lost if the XML doesn't contain the glyph order, yet does # lost if the XML doesn't contain the glyph order, yet does
# contain the table which was originally used to extract the # contain the table which was originally used to extract the
@ -337,12 +337,12 @@ class TTFont:
def isLoaded(self, tag): def isLoaded(self, tag):
"""Return true if the table identified by 'tag' has been """Return true if the table identified by 'tag' has been
decompiled and loaded into memory.""" decompiled and loaded into memory."""
return self.tables.has_key(tag) return tag in self.tables
def has_key(self, tag): def has_key(self, tag):
if self.isLoaded(tag): if self.isLoaded(tag):
return 1 return 1
elif self.reader and self.reader.has_key(tag): elif self.reader and tag in self.reader:
return 1 return 1
elif tag == "GlyphOrder": elif tag == "GlyphOrder":
return 1 return 1
@ -407,11 +407,11 @@ class TTFont:
self.tables[tag] = table self.tables[tag] = table
def __delitem__(self, tag): def __delitem__(self, tag):
if not self.has_key(tag): if tag not in self:
raise KeyError, "'%s' table not found" % tag raise KeyError, "'%s' table not found" % tag
if self.tables.has_key(tag): if tag in self.tables:
del self.tables[tag] del self.tables[tag]
if self.reader and self.reader.has_key(tag): if self.reader and tag in self.reader:
del self.reader[tag] del self.reader[tag]
def setGlyphOrder(self, glyphOrder): def setGlyphOrder(self, glyphOrder):
@ -422,10 +422,10 @@ class TTFont:
return self.glyphOrder return self.glyphOrder
except AttributeError: except AttributeError:
pass pass
if self.has_key('CFF '): if 'CFF ' in self:
cff = self['CFF '] cff = self['CFF ']
self.glyphOrder = cff.getGlyphOrder() self.glyphOrder = cff.getGlyphOrder()
elif self.has_key('post'): elif 'post' in self:
# TrueType font # TrueType font
glyphOrder = self['post'].getGlyphOrder() glyphOrder = self['post'].getGlyphOrder()
if glyphOrder is None: if glyphOrder is None:
@ -490,9 +490,9 @@ class TTFont:
allNames = {} allNames = {}
for i in range(numGlyphs): for i in range(numGlyphs):
tempName = glyphOrder[i] tempName = glyphOrder[i]
if reversecmap.has_key(tempName): if tempName in reversecmap:
unicode = reversecmap[tempName] unicode = reversecmap[tempName]
if agl.UV2AGL.has_key(unicode): if unicode in agl.UV2AGL:
# get name from the Adobe Glyph List # get name from the Adobe Glyph List
glyphName = agl.UV2AGL[unicode] glyphName = agl.UV2AGL[unicode]
else: else:
@ -501,7 +501,7 @@ class TTFont:
hex(unicode)[2:], 4)) hex(unicode)[2:], 4))
tempName = glyphName tempName = glyphName
n = 1 n = 1
while allNames.has_key(tempName): while tempName in allNames:
tempName = glyphName + "#" + `n` tempName = glyphName + "#" + `n`
n = n + 1 n = n + 1
glyphOrder[i] = tempName glyphOrder[i] = tempName
@ -554,7 +554,7 @@ class TTFont:
self._buildReverseGlyphOrderDict() self._buildReverseGlyphOrderDict()
glyphOrder = self.getGlyphOrder() glyphOrder = self.getGlyphOrder()
d = self._reverseGlyphOrderDict d = self._reverseGlyphOrderDict
if not d.has_key(glyphName): if glyphName not in d:
if glyphName in glyphOrder: if glyphName in glyphOrder:
self._buildReverseGlyphOrderDict() self._buildReverseGlyphOrderDict()
return self.getGlyphID(glyphName) return self.getGlyphID(glyphName)
@ -605,7 +605,7 @@ class TTFont:
tableClass = getTableClass(tag) tableClass = getTableClass(tag)
for masterTable in tableClass.dependencies: for masterTable in tableClass.dependencies:
if masterTable not in done: if masterTable not in done:
if self.has_key(masterTable): if masterTable in self:
self._writeTable(masterTable, writer, done) self._writeTable(masterTable, writer, done)
else: else:
done.append(masterTable) done.append(masterTable)
@ -622,7 +622,7 @@ class TTFont:
if self.verbose: if self.verbose:
debugmsg("compiling '%s' table" % tag) debugmsg("compiling '%s' table" % tag)
return self.tables[tag].compile(self) return self.tables[tag].compile(self)
elif self.reader and self.reader.has_key(tag): elif self.reader and tag in self.reader:
if self.verbose: if self.verbose:
debugmsg("Reading '%s' table from disk" % tag) debugmsg("Reading '%s' table from disk" % tag)
return self.reader[tag] return self.reader[tag]
@ -641,11 +641,11 @@ class TTFont:
If the font contains both a 'CFF ' and a 'glyf' table, you can use If the font contains both a 'CFF ' and a 'glyf' table, you can use
the 'preferCFF' argument to specify which one should be taken. the 'preferCFF' argument to specify which one should be taken.
""" """
if preferCFF and self.has_key("CFF "): if preferCFF and "CFF " in self:
return self["CFF "].cff.values()[0].CharStrings return self["CFF "].cff.values()[0].CharStrings
if self.has_key("glyf"): if "glyf" in self:
return _TTGlyphSet(self) return _TTGlyphSet(self)
if self.has_key("CFF "): if "CFF " in self:
return self["CFF "].cff.values()[0].CharStrings return self["CFF "].cff.values()[0].CharStrings
raise TTLibError, "Font contains no outlines" raise TTLibError, "Font contains no outlines"
@ -667,7 +667,7 @@ class _TTGlyphSet:
return self._ttFont["glyf"].keys() return self._ttFont["glyf"].keys()
def has_key(self, glyphName): def has_key(self, glyphName):
return self._ttFont["glyf"].has_key(glyphName) return glyphName in self._ttFont["glyf"]
__contains__ = has_key __contains__ = has_key

View File

@ -172,20 +172,20 @@ class SFNTResourceWriter:
names = {} names = {}
for code, name in cmap.cmap.items(): for code, name in cmap.cmap.items():
names[name] = code names[name] = code
if self.ttFont.has_key('kern'): if 'kern' in self.ttFont:
kern = self.ttFont['kern'].getkern(0) kern = self.ttFont['kern'].getkern(0)
if kern: if kern:
fondkerning = [] fondkerning = []
for (left, right), value in kern.kernTable.items(): for (left, right), value in kern.kernTable.items():
if names.has_key(left) and names.has_key(right): if left in names and right in names:
fondkerning.append((names[left], names[right], scale * value)) fondkerning.append((names[left], names[right], scale * value))
fondkerning.sort() fondkerning.sort()
fond.kernTables = {0: fondkerning} fond.kernTables = {0: fondkerning}
if self.ttFont.has_key('hmtx'): if 'hmtx' in self.ttFont:
hmtx = self.ttFont['hmtx'] hmtx = self.ttFont['hmtx']
fondwidths = [2048] * 256 + [0, 0] # default width, + plus two zeros. fondwidths = [2048] * 256 + [0, 0] # default width, + plus two zeros.
for name, (width, lsb) in hmtx.metrics.items(): for name, (width, lsb) in hmtx.metrics.items():
if names.has_key(name): if name in names:
fondwidths[names[name]] = scale * width fondwidths[names[name]] = scale * width
fond.widthTables = {0: fondwidths} fond.widthTables = {0: fondwidths}
fond.save() fond.save()

View File

@ -68,7 +68,9 @@ class SFNTReader:
self.flavorData = WOFFFlavorData(self) self.flavorData = WOFFFlavorData(self)
def has_key(self, tag): def has_key(self, tag):
return self.tables.has_key(tag) return tag in self.tables
__contains__ = has_key
def keys(self): def keys(self):
return self.tables.keys() return self.tables.keys()
@ -132,7 +134,7 @@ class SFNTWriter:
def __setitem__(self, tag, data): def __setitem__(self, tag, data):
"""Write raw table data to disk.""" """Write raw table data to disk."""
reuse = False reuse = False
if self.tables.has_key(tag): if tag in self.tables:
# We've written this table to file before. If the length # We've written this table to file before. If the length
# of the data is still the same, we allow overwriting it. # of the data is still the same, we allow overwriting it.
entry = self.tables[tag] entry = self.tables[tag]

View File

@ -114,7 +114,7 @@ class table_C_O_L_R_(DefaultTable.DefaultTable):
layer.fromXML(element, ttFont) layer.fromXML(element, ttFont)
layers.append (layer) layers.append (layer)
operator.setitem(self, glyphName, layers) operator.setitem(self, glyphName, layers)
elif attrs.has_key("value"): elif "value" in attrs:
value = safeEval(attrs["value"]) value = safeEval(attrs["value"])
setattr(self, name, value) setattr(self, name, value)
@ -124,7 +124,7 @@ class table_C_O_L_R_(DefaultTable.DefaultTable):
# its a gid, convert to glyph name # its a gid, convert to glyph name
glyphSelector = self.getGlyphName(glyphSelector) glyphSelector = self.getGlyphName(glyphSelector)
if not self.ColorLayers.has_key(glyphSelector): if glyphSelector not in self.ColorLayers:
return None return None
return self.ColorLayers[glyphSelector] return self.ColorLayers[glyphSelector]
@ -136,7 +136,7 @@ class table_C_O_L_R_(DefaultTable.DefaultTable):
if value: if value:
self.ColorLayers[glyphSelector] = value self.ColorLayers[glyphSelector] = value
elif self.ColorLayers.has_key(glyphSelector): elif glyphSelector in self.ColorLayers:
del self.ColorLayers[glyphSelector] del self.ColorLayers[glyphSelector]
class LayerRecord: class LayerRecord:

View File

@ -69,7 +69,7 @@ class table_C_P_A_L_(DefaultTable.DefaultTable):
color.fromXML(element, ttFont) color.fromXML(element, ttFont)
palette.append (color) palette.append (color)
self.palettes.append(palette) self.palettes.append(palette)
elif attrs.has_key("value"): elif "value" in attrs:
value = safeEval(attrs["value"]) value = safeEval(attrs["value"])
setattr(self, name, value) setattr(self, name, value)

View File

@ -48,7 +48,7 @@ class table_T_S_I__1(DefaultTable.DefaultTable):
if len(data) % 2: if len(data) % 2:
data = data + "\015" # align on 2-byte boundaries, fill with return chars. Yum. data = data + "\015" # align on 2-byte boundaries, fill with return chars. Yum.
name = glyphNames[i] name = glyphNames[i]
if self.glyphPrograms.has_key(name): if name in self.glyphPrograms:
text = self.glyphPrograms[name] text = self.glyphPrograms[name]
else: else:
text = "" text = ""
@ -65,7 +65,7 @@ class table_T_S_I__1(DefaultTable.DefaultTable):
if len(data) % 2: if len(data) % 2:
data = data + "\015" # align on 2-byte boundaries, fill with return chars. data = data + "\015" # align on 2-byte boundaries, fill with return chars.
code, name = codes[i] code, name = codes[i]
if self.extraPrograms.has_key(name): if name in self.extraPrograms:
text = self.extraPrograms[name] text = self.extraPrograms[name]
else: else:
text = "" text = ""

View File

@ -93,7 +93,7 @@ class table_V_O_R_G_(DefaultTable.DefaultTable):
continue continue
vOriginRec.fromXML(element, ttFont) vOriginRec.fromXML(element, ttFont)
self.VOriginRecords[vOriginRec.glyphName] = vOriginRec.vOrigin self.VOriginRecords[vOriginRec.glyphName] = vOriginRec.vOrigin
elif attrs.has_key("value"): elif "value" in attrs:
value = safeEval(attrs["value"]) value = safeEval(attrs["value"])
setattr(self, name, value) setattr(self, name, value)
@ -103,7 +103,7 @@ class table_V_O_R_G_(DefaultTable.DefaultTable):
# its a gid, convert to glyph name # its a gid, convert to glyph name
glyphSelector = self.getGlyphName(glyphSelector) glyphSelector = self.getGlyphName(glyphSelector)
if not self.VOriginRecords.has_key(glyphSelector): if glyphSelector not in self.VOriginRecords:
return self.defaultVertOriginY return self.defaultVertOriginY
return self.VOriginRecords[glyphSelector] return self.VOriginRecords[glyphSelector]
@ -115,7 +115,7 @@ class table_V_O_R_G_(DefaultTable.DefaultTable):
if value != self.defaultVertOriginY: if value != self.defaultVertOriginY:
self.VOriginRecords[glyphSelector] = value self.VOriginRecords[glyphSelector] = value
elif self.VOriginRecords.has_key(glyphSelector): elif glyphSelector in self.VOriginRecords:
del self.VOriginRecords[glyphSelector] del self.VOriginRecords[glyphSelector]
class VOriginRecord: class VOriginRecord:

View File

@ -35,7 +35,7 @@ class table__c_m_a_p(DefaultTable.DefaultTable):
if not length: if not length:
print "Error: cmap subtable is reported as having zero length: platformID %s, platEncID %s, format %s offset %s. Skipping table." % (platformID, platEncID,format, offset) print "Error: cmap subtable is reported as having zero length: platformID %s, platEncID %s, format %s offset %s. Skipping table." % (platformID, platEncID,format, offset)
continue continue
if not cmap_classes.has_key(format): if format not in cmap_classes:
table = cmap_format_unknown(format) table = cmap_format_unknown(format)
else: else:
table = cmap_classes[format](format) table = cmap_classes[format](format)
@ -45,7 +45,7 @@ class table__c_m_a_p(DefaultTable.DefaultTable):
# any other data gets decompiled only when an attribute of the # any other data gets decompiled only when an attribute of the
# subtable is referenced. # subtable is referenced.
table.decompileHeader(data[offset:offset+int(length)], ttFont) table.decompileHeader(data[offset:offset+int(length)], ttFont)
if seenOffsets.has_key(offset): if offset in seenOffsets:
table.cmap = tables[seenOffsets[offset]].cmap table.cmap = tables[seenOffsets[offset]].cmap
else: else:
seenOffsets[offset] = i seenOffsets[offset] = i
@ -64,7 +64,7 @@ class table__c_m_a_p(DefaultTable.DefaultTable):
offset = seen[id(table.cmap)] offset = seen[id(table.cmap)]
except KeyError: except KeyError:
chunk = table.compile(ttFont) chunk = table.compile(ttFont)
if done.has_key(chunk): if chunk in done:
offset = done[chunk] offset = done[chunk]
else: else:
offset = seen[id(table.cmap)] = done[chunk] = totalOffset + len(tableData) offset = seen[id(table.cmap)] = done[chunk] = totalOffset + len(tableData)
@ -87,7 +87,7 @@ class table__c_m_a_p(DefaultTable.DefaultTable):
if not hasattr(self, "tables"): if not hasattr(self, "tables"):
self.tables = [] self.tables = []
format = safeEval(name[12:]) format = safeEval(name[12:])
if not cmap_classes.has_key(format): if format not in cmap_classes:
table = cmap_format_unknown(format) table = cmap_format_unknown(format)
else: else:
table = cmap_classes[format](format) table = cmap_classes[format](format)

View File

@ -144,7 +144,7 @@ class table__g_l_y_f(DefaultTable.DefaultTable):
return self.glyphs.keys() return self.glyphs.keys()
def has_key(self, glyphName): def has_key(self, glyphName):
return self.glyphs.has_key(glyphName) return glyphName in self.glyphs
__contains__ = has_key __contains__ = has_key
@ -864,23 +864,23 @@ class GlyphComponent:
def fromXML(self, (name, attrs, content), ttFont): def fromXML(self, (name, attrs, content), ttFont):
self.glyphName = attrs["glyphName"] self.glyphName = attrs["glyphName"]
if attrs.has_key("firstPt"): if "firstPt" in attrs:
self.firstPt = safeEval(attrs["firstPt"]) self.firstPt = safeEval(attrs["firstPt"])
self.secondPt = safeEval(attrs["secondPt"]) self.secondPt = safeEval(attrs["secondPt"])
else: else:
self.x = safeEval(attrs["x"]) self.x = safeEval(attrs["x"])
self.y = safeEval(attrs["y"]) self.y = safeEval(attrs["y"])
if attrs.has_key("scale01"): if "scale01" in attrs:
scalex = safeEval(attrs["scalex"]) scalex = safeEval(attrs["scalex"])
scale01 = safeEval(attrs["scale01"]) scale01 = safeEval(attrs["scale01"])
scale10 = safeEval(attrs["scale10"]) scale10 = safeEval(attrs["scale10"])
scaley = safeEval(attrs["scaley"]) scaley = safeEval(attrs["scaley"])
self.transform = [[scalex, scale01], [scale10, scaley]] self.transform = [[scalex, scale01], [scale10, scaley]]
elif attrs.has_key("scalex"): elif "scalex" in attrs:
scalex = safeEval(attrs["scalex"]) scalex = safeEval(attrs["scalex"])
scaley = safeEval(attrs["scaley"]) scaley = safeEval(attrs["scaley"])
self.transform = [[scalex, 0], [0, scaley]] self.transform = [[scalex, 0], [0, scaley]]
elif attrs.has_key("scale"): elif "scale" in attrs:
scale = safeEval(attrs["scale"]) scale = safeEval(attrs["scale"])
self.transform = [[scale, 0], [0, scale]] self.transform = [[scale, 0], [0, scale]]
self.flags = safeEval(attrs["flags"]) self.flags = safeEval(attrs["flags"])

View File

@ -39,7 +39,7 @@ class table__h_h_e_a(DefaultTable.DefaultTable):
def recalc(self, ttFont): def recalc(self, ttFont):
hmtxTable = ttFont['hmtx'] hmtxTable = ttFont['hmtx']
if ttFont.has_key('glyf'): if 'glyf' in ttFont:
glyfTable = ttFont['glyf'] glyfTable = ttFont['glyf']
INFINITY = 100000 INFINITY = 100000
advanceWidthMax = 0 advanceWidthMax = 0

View File

@ -36,7 +36,7 @@ class table__k_e_r_n(DefaultTable.DefaultTable):
else: else:
version, length = struct.unpack(">HH", data[:4]) version, length = struct.unpack(">HH", data[:4])
length = int(length) length = int(length)
if not kern_classes.has_key(version): if version not in kern_classes:
subtable = KernTable_format_unkown(version) subtable = KernTable_format_unkown(version)
else: else:
subtable = kern_classes[version]() subtable = kern_classes[version]()
@ -75,7 +75,7 @@ class table__k_e_r_n(DefaultTable.DefaultTable):
if not hasattr(self, "kernTables"): if not hasattr(self, "kernTables"):
self.kernTables = [] self.kernTables = []
format = safeEval(attrs["format"]) format = safeEval(attrs["format"])
if not kern_classes.has_key(format): if format not in kern_classes:
subtable = KernTable_format_unkown(format) subtable = KernTable_format_unkown(format)
else: else:
subtable = kern_classes[format]() subtable = kern_classes[format]()

View File

@ -38,7 +38,7 @@ class table__m_a_x_p(DefaultTable.DefaultTable):
assert len(data) == 0 assert len(data) == 0
def compile(self, ttFont): def compile(self, ttFont):
if ttFont.has_key('glyf'): if 'glyf' in ttFont:
if ttFont.isLoaded('glyf') and ttFont.recalcBBoxes: if ttFont.isLoaded('glyf') and ttFont.recalcBBoxes:
self.recalc(ttFont) self.recalc(ttFont)
else: else:

View File

@ -58,7 +58,7 @@ class table__n_a_m_e(DefaultTable.DefaultTable):
lastoffset = 0 lastoffset = 0
done = {} # remember the data so we can reuse the "pointers" done = {} # remember the data so we can reuse the "pointers"
for name in self.names: for name in self.names:
if done.has_key(name.string): if name.string in done:
name.offset, name.length = done[name.string] name.offset, name.length = done[name.string]
else: else:
name.offset, name.length = done[name.string] = len(stringData), len(name.string) name.offset, name.length = done[name.string] = len(stringData), len(name.string)

View File

@ -105,7 +105,7 @@ class table__p_o_s_t(DefaultTable.DefaultTable):
allNames = {} allNames = {}
for i in range(ttFont['maxp'].numGlyphs): for i in range(ttFont['maxp'].numGlyphs):
glyphName = psName = self.glyphOrder[i] glyphName = psName = self.glyphOrder[i]
if allNames.has_key(glyphName): if glyphName in allNames:
# make up a new glyphName that's unique # make up a new glyphName that's unique
n = allNames[glyphName] n = allNames[glyphName]
allNames[glyphName] = n + 1 allNames[glyphName] = n + 1
@ -132,11 +132,11 @@ class table__p_o_s_t(DefaultTable.DefaultTable):
extraDict[extraNames[i]] = i extraDict[extraNames[i]] = i
for glyphID in range(numGlyphs): for glyphID in range(numGlyphs):
glyphName = glyphOrder[glyphID] glyphName = glyphOrder[glyphID]
if self.mapping.has_key(glyphName): if glyphName in self.mapping:
psName = self.mapping[glyphName] psName = self.mapping[glyphName]
else: else:
psName = glyphName psName = glyphName
if extraDict.has_key(psName): if psName in extraDict:
index = 258 + extraDict[psName] index = 258 + extraDict[psName]
elif psName in standardGlyphOrder: elif psName in standardGlyphOrder:
index = standardGlyphOrder.index(psName) index = standardGlyphOrder.index(psName)

View File

@ -36,7 +36,7 @@ class table__v_h_e_a(DefaultTable.DefaultTable):
def recalc(self, ttFont): def recalc(self, ttFont):
vtmxTable = ttFont['vmtx'] vtmxTable = ttFont['vmtx']
if ttFont.has_key('glyf'): if 'glyf' in ttFont:
if not ttFont.isLoaded('glyf'): if not ttFont.isLoaded('glyf'):
return return
glyfTable = ttFont['glyf'] glyfTable = ttFont['glyf']

View File

@ -320,7 +320,7 @@ class OTTableWriter(object):
item._doneWriting() item._doneWriting()
else: else:
item._doneWriting(internedTables) item._doneWriting(internedTables)
if internedTables.has_key(item): if item in internedTables:
items[i] = item = internedTables[item] items[i] = item = internedTables[item]
else: else:
internedTables[item] = item internedTables[item] = item
@ -359,7 +359,7 @@ class OTTableWriter(object):
if hasattr(item, "name") and (item.name == "Coverage"): if hasattr(item, "name") and (item.name == "Coverage"):
sortCoverageLast = 1 sortCoverageLast = 1
break break
if not done.has_key(item): if item not in done:
item._gatherTables(tables, extTables, done) item._gatherTables(tables, extTables, done)
else: else:
index = max(item.parent.keys()) index = max(item.parent.keys())
@ -380,7 +380,7 @@ class OTTableWriter(object):
newDone = {} newDone = {}
item._gatherTables(extTables, None, newDone) item._gatherTables(extTables, None, newDone)
elif not done.has_key(item): elif item not in done:
item._gatherTables(tables, extTables, done) item._gatherTables(tables, extTables, done)
else: else:
index = max(item.parent.keys()) index = max(item.parent.keys())

View File

@ -38,7 +38,7 @@ def buildConverters(tableSpec, tableNamespace):
for cls in conv.featureParamTypes.values(): for cls in conv.featureParamTypes.values():
convertersByName[cls.__name__] = Table(name, repeat, aux, cls) convertersByName[cls.__name__] = Table(name, repeat, aux, cls)
converters.append(conv) converters.append(conv)
assert not convertersByName.has_key(name) assert name not in convertersByName
convertersByName[name] = conv convertersByName[name] = conv
return converters, convertersByName return converters, convertersByName

View File

@ -662,7 +662,7 @@ def _buildClasses():
# XxxFormatN subtable, we only add the "base" table # XxxFormatN subtable, we only add the "base" table
name = m.group(1) name = m.group(1)
baseClass = FormatSwitchingBaseTable baseClass = FormatSwitchingBaseTable
if not namespace.has_key(name): if name not in namespace:
# the class doesn't exist yet, so the base implementation is used. # the class doesn't exist yet, so the base implementation is used.
cls = new.classobj(name, (baseClass,), {}) cls = new.classobj(name, (baseClass,), {})
namespace[name] = cls namespace[name] = cls