_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