DefaultTable.py revision f8fd4777d273836a1222b72f6761cb6fdf9ec87a
17842e56b97ce677b83bdab09cda48bc2d89ac75aJustimport string 27842e56b97ce677b83bdab09cda48bc2d89ac75aJustimport sys 37842e56b97ce677b83bdab09cda48bc2d89ac75aJust 47842e56b97ce677b83bdab09cda48bc2d89ac75aJustclass DefaultTable: 57842e56b97ce677b83bdab09cda48bc2d89ac75aJust 67842e56b97ce677b83bdab09cda48bc2d89ac75aJust dependencies = [] 77842e56b97ce677b83bdab09cda48bc2d89ac75aJust 87842e56b97ce677b83bdab09cda48bc2d89ac75aJust def __init__(self, tag): 97842e56b97ce677b83bdab09cda48bc2d89ac75aJust self.tableTag = tag 107842e56b97ce677b83bdab09cda48bc2d89ac75aJust 117842e56b97ce677b83bdab09cda48bc2d89ac75aJust def decompile(self, data, ttFont): 127842e56b97ce677b83bdab09cda48bc2d89ac75aJust self.data = data 137842e56b97ce677b83bdab09cda48bc2d89ac75aJust 147842e56b97ce677b83bdab09cda48bc2d89ac75aJust def compile(self, ttFont): 157842e56b97ce677b83bdab09cda48bc2d89ac75aJust return self.data 167842e56b97ce677b83bdab09cda48bc2d89ac75aJust 177842e56b97ce677b83bdab09cda48bc2d89ac75aJust def toXML(self, writer, ttFont): 18f8fd4777d273836a1222b72f6761cb6fdf9ec87aJust if hasattr(self, "ERROR"): 19f8fd4777d273836a1222b72f6761cb6fdf9ec87aJust writer.comment("An error occurred during the decompilation of this table") 20f8fd4777d273836a1222b72f6761cb6fdf9ec87aJust writer.newline() 21f8fd4777d273836a1222b72f6761cb6fdf9ec87aJust writer.comment(self.ERROR) 22f8fd4777d273836a1222b72f6761cb6fdf9ec87aJust writer.newline() 237842e56b97ce677b83bdab09cda48bc2d89ac75aJust writer.begintag("hexdata") 247842e56b97ce677b83bdab09cda48bc2d89ac75aJust writer.newline() 257842e56b97ce677b83bdab09cda48bc2d89ac75aJust writer.dumphex(self.compile(ttFont)) 267842e56b97ce677b83bdab09cda48bc2d89ac75aJust writer.endtag("hexdata") 277842e56b97ce677b83bdab09cda48bc2d89ac75aJust writer.newline() 287842e56b97ce677b83bdab09cda48bc2d89ac75aJust 297842e56b97ce677b83bdab09cda48bc2d89ac75aJust def fromXML(self, (name, attrs, content), ttFont): 307842e56b97ce677b83bdab09cda48bc2d89ac75aJust from fontTools.misc.textTools import readHex 317842e56b97ce677b83bdab09cda48bc2d89ac75aJust from fontTools import ttLib 327842e56b97ce677b83bdab09cda48bc2d89ac75aJust if name <> "hexdata": 337842e56b97ce677b83bdab09cda48bc2d89ac75aJust raise ttLib.TTLibError, "can't handle '%s' element" % name 347842e56b97ce677b83bdab09cda48bc2d89ac75aJust self.decompile(readHex(content), ttFont) 357842e56b97ce677b83bdab09cda48bc2d89ac75aJust 367842e56b97ce677b83bdab09cda48bc2d89ac75aJust def __repr__(self): 377842e56b97ce677b83bdab09cda48bc2d89ac75aJust return "<'%s' table at %x>" % (self.tableTag, id(self)) 387842e56b97ce677b83bdab09cda48bc2d89ac75aJust 397842e56b97ce677b83bdab09cda48bc2d89ac75aJust def __cmp__(self, other): 407842e56b97ce677b83bdab09cda48bc2d89ac75aJust return cmp(self.__dict__, other.__dict__) 417842e56b97ce677b83bdab09cda48bc2d89ac75aJust 42