DefaultTable.py revision b7fd2e19138b177403689bdd6989cfd2402aa2b3
132c10eecffb4923e0721c395e4b80fb732543f18Behdad Esfahbodfrom __future__ import print_function, division 27ed91eca1eaa96b79eae780778e89bb9ec44c1eeBehdad Esfahbodfrom fontTools.misc.py23 import * 37842e56b97ce677b83bdab09cda48bc2d89ac75aJust 47842e56b97ce677b83bdab09cda48bc2d89ac75aJustclass DefaultTable: 57842e56b97ce677b83bdab09cda48bc2d89ac75aJust 67842e56b97ce677b83bdab09cda48bc2d89ac75aJust dependencies = [] 77842e56b97ce677b83bdab09cda48bc2d89ac75aJust 87842e56b97ce677b83bdab09cda48bc2d89ac75aJust def __init__(self, tag): 9960280bbd6277b56be45595a050a720a49fd5917Behdad Esfahbod self.tableTag = Tag(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 39b7fd2e19138b177403689bdd6989cfd2402aa2b3Behdad Esfahbod def __eq__(self, other): 40b7fd2e19138b177403689bdd6989cfd2402aa2b3Behdad Esfahbod if type(self) != type(other): 41b7fd2e19138b177403689bdd6989cfd2402aa2b3Behdad Esfahbod raise TypeError("unordered types %s() < %s()", type(self), type(other)) 42b7fd2e19138b177403689bdd6989cfd2402aa2b3Behdad Esfahbod return self.__dict__ == other.__dict__ 43