11ae29591efbb29492ce05378909ccf4028d7c1eeBehdad Esfahbodfrom __future__ import print_function, division, absolute_import 27ed91eca1eaa96b79eae780778e89bb9ec44c1eeBehdad Esfahbodfrom fontTools.misc.py23 import * 3d0a31f5a43c4743671c4941fe45dda059aada0beBehdad Esfahbodfrom fontTools.ttLib import getClassTag 47842e56b97ce677b83bdab09cda48bc2d89ac75aJust 5e388db566b9ba42669c7e353db4293cf27bc2a5bBehdad Esfahbodclass DefaultTable(object): 67842e56b97ce677b83bdab09cda48bc2d89ac75aJust 77842e56b97ce677b83bdab09cda48bc2d89ac75aJust dependencies = [] 87842e56b97ce677b83bdab09cda48bc2d89ac75aJust 9d0a31f5a43c4743671c4941fe45dda059aada0beBehdad Esfahbod def __init__(self, tag=None): 10d0a31f5a43c4743671c4941fe45dda059aada0beBehdad Esfahbod if tag is None: 11d0a31f5a43c4743671c4941fe45dda059aada0beBehdad Esfahbod tag = getClassTag(self.__class__) 12960280bbd6277b56be45595a050a720a49fd5917Behdad Esfahbod self.tableTag = Tag(tag) 137842e56b97ce677b83bdab09cda48bc2d89ac75aJust 147842e56b97ce677b83bdab09cda48bc2d89ac75aJust def decompile(self, data, ttFont): 157842e56b97ce677b83bdab09cda48bc2d89ac75aJust self.data = data 167842e56b97ce677b83bdab09cda48bc2d89ac75aJust 177842e56b97ce677b83bdab09cda48bc2d89ac75aJust def compile(self, ttFont): 187842e56b97ce677b83bdab09cda48bc2d89ac75aJust return self.data 197842e56b97ce677b83bdab09cda48bc2d89ac75aJust 2081acddadbd0384e105becc1eac292e50e21084a5Behdad Esfahbod def toXML(self, writer, ttFont, progress=None): 21f8fd4777d273836a1222b72f6761cb6fdf9ec87aJust if hasattr(self, "ERROR"): 22f8fd4777d273836a1222b72f6761cb6fdf9ec87aJust writer.comment("An error occurred during the decompilation of this table") 23f8fd4777d273836a1222b72f6761cb6fdf9ec87aJust writer.newline() 24f8fd4777d273836a1222b72f6761cb6fdf9ec87aJust writer.comment(self.ERROR) 25f8fd4777d273836a1222b72f6761cb6fdf9ec87aJust writer.newline() 267842e56b97ce677b83bdab09cda48bc2d89ac75aJust writer.begintag("hexdata") 277842e56b97ce677b83bdab09cda48bc2d89ac75aJust writer.newline() 287842e56b97ce677b83bdab09cda48bc2d89ac75aJust writer.dumphex(self.compile(ttFont)) 297842e56b97ce677b83bdab09cda48bc2d89ac75aJust writer.endtag("hexdata") 307842e56b97ce677b83bdab09cda48bc2d89ac75aJust writer.newline() 317842e56b97ce677b83bdab09cda48bc2d89ac75aJust 323a9fd301808f5a8991ca9ac44028d1ecb22d307fBehdad Esfahbod def fromXML(self, name, attrs, content, ttFont): 337842e56b97ce677b83bdab09cda48bc2d89ac75aJust from fontTools.misc.textTools import readHex 347842e56b97ce677b83bdab09cda48bc2d89ac75aJust from fontTools import ttLib 35180ace6a5ff1399ec53bc696e8bef7cce6eef39aBehdad Esfahbod if name != "hexdata": 36cd5aad92f23737ff93a110d5c73d624658a28da8Behdad Esfahbod raise ttLib.TTLibError("can't handle '%s' element" % name) 377842e56b97ce677b83bdab09cda48bc2d89ac75aJust self.decompile(readHex(content), ttFont) 387842e56b97ce677b83bdab09cda48bc2d89ac75aJust 397842e56b97ce677b83bdab09cda48bc2d89ac75aJust def __repr__(self): 407842e56b97ce677b83bdab09cda48bc2d89ac75aJust return "<'%s' table at %x>" % (self.tableTag, id(self)) 417842e56b97ce677b83bdab09cda48bc2d89ac75aJust 428ea6439d3b66c5acc246261d761d4375bcb7cfabBehdad Esfahbod def __ne__(self, other): 438ea6439d3b66c5acc246261d761d4375bcb7cfabBehdad Esfahbod return not self.__eq__(other) 44b7fd2e19138b177403689bdd6989cfd2402aa2b3Behdad Esfahbod def __eq__(self, other): 45b7fd2e19138b177403689bdd6989cfd2402aa2b3Behdad Esfahbod if type(self) != type(other): 46273a90074ac209d67b5e2cb8ea510cd6c2b10272Behdad Esfahbod return NotImplemented 47b7fd2e19138b177403689bdd6989cfd2402aa2b3Behdad Esfahbod return self.__dict__ == other.__dict__ 48