py23 Introduce Tag to autoconvert tag types
diff --git a/Lib/fontTools/ttLib/sfnt.py b/Lib/fontTools/ttLib/sfnt.py
index a194d77..7115572 100644
--- a/Lib/fontTools/ttLib/sfnt.py
+++ b/Lib/fontTools/ttLib/sfnt.py
@@ -28,7 +28,7 @@
self.DirectoryEntry = SFNTDirectoryEntry
self.sfntVersion = self.file.read(4)
self.file.seek(0)
- if self.sfntVersion == "ttcf":
+ if self.sfntVersion == b"ttcf":
sstruct.unpack(ttcHeaderFormat, self.file.read(ttcHeaderSize), self)
assert self.Version == 0x00010000 or self.Version == 0x00020000, "unrecognized TTC version 0x%08x" % self.Version
if not 0 <= fontNumber < self.numFonts:
@@ -39,14 +39,15 @@
pass # ignoring version 2.0 signatures
self.file.seek(offsetTable[fontNumber])
sstruct.unpack(sfntDirectoryFormat, self.file.read(sfntDirectorySize), self)
- elif self.sfntVersion == "wOFF":
+ elif self.sfntVersion == b"wOFF":
self.flavor = "woff"
self.DirectoryEntry = WOFFDirectoryEntry
sstruct.unpack(woffDirectoryFormat, self.file.read(woffDirectorySize), self)
else:
sstruct.unpack(sfntDirectoryFormat, self.file.read(sfntDirectorySize), self)
+ self.sfntVersion = Tag(self.sfntVersion)
- if self.sfntVersion not in ("\000\001\000\000", "OTTO", "true"):
+ if self.sfntVersion not in ("\x00\x01\x00\x00", "OTTO", "true"):
from fontTools import ttLib
raise ttLib.TTLibError("Not a TrueType or OpenType font (bad sfntVersion)")
self.tables = {}
@@ -76,7 +77,7 @@
def __getitem__(self, tag):
"""Fetch the raw table data."""
- entry = self.tables[tag]
+ entry = self.tables[Tag(tag)]
data = entry.loadData (self.file)
if self.checkChecksums:
if tag == 'head':
@@ -93,7 +94,7 @@
return data
def __delitem__(self, tag):
- del self.tables[tag]
+ del self.tables[Tag(tag)]
def close(self):
self.file.close()
@@ -105,7 +106,7 @@
flavor=None, flavorData=None):
self.file = file
self.numTables = numTables
- self.sfntVersion = sfntVersion
+ self.sfntVersion = Tag(sfntVersion)
self.flavor = flavor
self.flavorData = flavorData
@@ -178,7 +179,7 @@
raise ttLib.TTLibError("wrong number of tables; expected %d, found %d" % (self.numTables, len(tables)))
if self.flavor == "woff":
- self.signature = "wOFF"
+ self.signature = b"wOFF"
self.reserved = 0
self.totalSfntSize = 12