DefaultTable.py revision 81acddadbd0384e105becc1eac292e50e21084a5
16683745b5156220ed1a44aab3315afb6c0ff73bbJens Axboefrom __future__ import print_function, division 2bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriacfrom fontTools.misc.py23 import * 3bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac 4bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriacclass DefaultTable(object): 567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 6bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac dependencies = [] 7bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac 8bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac def __init__(self, tag): 9bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac self.tableTag = Tag(tag) 10bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac 11bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac def decompile(self, data, ttFont): 12bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac self.data = data 13bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac 14bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac def compile(self, ttFont): 15bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac return self.data 16bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac 17bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac def toXML(self, writer, ttFont, progress=None): 18bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac if hasattr(self, "ERROR"): 19bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac writer.comment("An error occurred during the decompilation of this table") 20bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac writer.newline() 21bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac writer.comment(self.ERROR) 22bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac writer.newline() 23bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac writer.begintag("hexdata") 24bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac writer.newline() 2567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe writer.dumphex(self.compile(ttFont)) 2667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe writer.endtag("hexdata") 27 writer.newline() 28 29 def fromXML(self, name, attrs, content, ttFont): 30 from fontTools.misc.textTools import readHex 31 from fontTools import ttLib 32 if name != "hexdata": 33 raise ttLib.TTLibError("can't handle '%s' element" % name) 34 self.decompile(readHex(content), ttFont) 35 36 def __repr__(self): 37 return "<'%s' table at %x>" % (self.tableTag, id(self)) 38 39 def __eq__(self, other): 40 if type(self) != type(other): 41 raise TypeError("unordered types %s() < %s()", type(self), type(other)) 42 return self.__dict__ == other.__dict__ 43