DefaultTable.py revision cd5aad92f23737ff93a110d5c73d624658a28da8
1import string
2import sys
3
4class DefaultTable:
5
6	dependencies = []
7
8	def __init__(self, tag):
9		self.tableTag = tag
10
11	def decompile(self, data, ttFont):
12		self.data = data
13
14	def compile(self, ttFont):
15		return self.data
16
17	def toXML(self, writer, ttFont):
18		if hasattr(self, "ERROR"):
19			writer.comment("An error occurred during the decompilation of this table")
20			writer.newline()
21			writer.comment(self.ERROR)
22			writer.newline()
23		writer.begintag("hexdata")
24		writer.newline()
25		writer.dumphex(self.compile(ttFont))
26		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 __cmp__(self, other):
40		if type(self) != type(other): return cmp(type(self), type(other))
41		if self.__class__ != other.__class__: return cmp(self.__class__, other.__class__)
42
43		return cmp(self.__dict__, other.__dict__)
44
45