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