_c_v_t.py revision 7842e56b97ce677b83bdab09cda48bc2d89ac75a
1import DefaultTable
2import array
3from fontTools import ttLib
4from fontTools.misc.textTools import safeEval
5
6class table__c_v_t(DefaultTable.DefaultTable):
7
8	def decompile(self, data, ttFont):
9		values = array.array("h")
10		values.fromstring(data)
11		if ttLib.endian <> "big":
12			values.byteswap()
13		self.values = values
14
15	def compile(self, ttFont):
16		values = self.values[:]
17		if ttLib.endian <> "big":
18			values.byteswap()
19		return values.tostring()
20
21	def toXML(self, writer, ttFont):
22		for i in range(len(self.values)):
23			value = self.values[i]
24			writer.simpletag("cv", value=value, index=i)
25			writer.newline()
26
27	def fromXML(self, (name, attrs, content), ttFont):
28		if not hasattr(self, "values"):
29			self.values = array.array("h")
30		if name == "cv":
31			index = safeEval(attrs["index"])
32			value = safeEval(attrs["value"])
33			for i in range(1 + index - len(self.values)):
34				self.values.append(0)
35			self.values[index] = value
36
37	def __len__(self):
38		return len(self.values)
39
40	def __getitem__(self, index):
41		return self.values[index]
42
43	def __setitem__(self, index, value):
44		self.values[index] = value
45
46	def __delitem__(self, index):
47		del self.values[index]
48
49