| import string |
| import sys |
| |
| class DefaultTable: |
| |
| dependencies = [] |
| |
| def __init__(self, tag): |
| self.tableTag = tag |
| |
| def decompile(self, data, ttFont): |
| self.data = data |
| |
| def compile(self, ttFont): |
| return self.data |
| |
| def toXML(self, writer, ttFont): |
| if hasattr(self, "ERROR"): |
| writer.comment("An error occurred during the decompilation of this table") |
| writer.newline() |
| writer.comment(self.ERROR) |
| writer.newline() |
| writer.begintag("hexdata") |
| writer.newline() |
| writer.dumphex(self.compile(ttFont)) |
| writer.endtag("hexdata") |
| writer.newline() |
| |
| def fromXML(self, (name, attrs, content), ttFont): |
| from fontTools.misc.textTools import readHex |
| from fontTools import ttLib |
| if name <> "hexdata": |
| raise ttLib.TTLibError, "can't handle '%s' element" % name |
| self.decompile(readHex(content), ttFont) |
| |
| def __repr__(self): |
| return "<'%s' table at %x>" % (self.tableTag, id(self)) |
| |
| def __cmp__(self, other): |
| if type(self) != type(other): return cmp(type(self), type(other)) |
| if self.__class__ != other.__class__: return cmp(self.__class__, other.__class__) |
| |
| return cmp(self.__dict__, other.__dict__) |
| |