DefaultTable.py revision 3a9fd301808f5a8991ca9ac44028d1ecb22d307f
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 293a9fd301808f5a8991ca9ac44028d1ecb22d307fBehdad Esfahbod def fromXML(self, name, attrs, content, ttFont): 307842e56b97ce677b83bdab09cda48bc2d89ac75aJust from fontTools.misc.textTools import readHex 317842e56b97ce677b83bdab09cda48bc2d89ac75aJust from fontTools import ttLib 32180ace6a5ff1399ec53bc696e8bef7cce6eef39aBehdad Esfahbod if name != "hexdata": 33cd5aad92f23737ff93a110d5c73d624658a28da8Behdad Esfahbod 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): 400ba7aa7ab5153e6a490425dd0f859cc5947360f4Behdad Esfahbod if type(self) != type(other): return cmp(type(self), type(other)) 410ba7aa7ab5153e6a490425dd0f859cc5947360f4Behdad Esfahbod if self.__class__ != other.__class__: return cmp(self.__class__, other.__class__) 4296b321c8aea4dc64110d15a541c6f85152ae19cfBehdad Esfahbod 437842e56b97ce677b83bdab09cda48bc2d89ac75aJust return cmp(self.__dict__, other.__dict__) 447842e56b97ce677b83bdab09cda48bc2d89ac75aJust 45