• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1from fontTools.misc.textTools import safeEval
2from . import DefaultTable
3import sys
4import array
5
6
7class table__c_v_t(DefaultTable.DefaultTable):
8    def decompile(self, data, ttFont):
9        values = array.array("h")
10        values.frombytes(data)
11        if sys.byteorder != "big":
12            values.byteswap()
13        self.values = values
14
15    def compile(self, ttFont):
16        values = self.values[:]
17        if sys.byteorder != "big":
18            values.byteswap()
19        return values.tobytes()
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