11ae29591efbb29492ce05378909ccf4028d7c1eeBehdad Esfahbodfrom __future__ import print_function, division, absolute_import 230e691edd056ba22fa8970280e986747817bec3dBehdad Esfahbodfrom fontTools.misc.py23 import * 330e691edd056ba22fa8970280e986747817bec3dBehdad Esfahbodfrom fontTools.misc.textTools import safeEval 42b06aaa2a6bcd363c25fb0c43f6bb906906594bdBehdad Esfahbodfrom . import DefaultTable 530e691edd056ba22fa8970280e986747817bec3dBehdad Esfahbodimport sys 67842e56b97ce677b83bdab09cda48bc2d89ac75aJustimport array 77842e56b97ce677b83bdab09cda48bc2d89ac75aJust 87842e56b97ce677b83bdab09cda48bc2d89ac75aJustclass table__c_v_t(DefaultTable.DefaultTable): 97842e56b97ce677b83bdab09cda48bc2d89ac75aJust 107842e56b97ce677b83bdab09cda48bc2d89ac75aJust def decompile(self, data, ttFont): 117842e56b97ce677b83bdab09cda48bc2d89ac75aJust values = array.array("h") 127842e56b97ce677b83bdab09cda48bc2d89ac75aJust values.fromstring(data) 13180ace6a5ff1399ec53bc696e8bef7cce6eef39aBehdad Esfahbod if sys.byteorder != "big": 147842e56b97ce677b83bdab09cda48bc2d89ac75aJust values.byteswap() 157842e56b97ce677b83bdab09cda48bc2d89ac75aJust self.values = values 167842e56b97ce677b83bdab09cda48bc2d89ac75aJust 177842e56b97ce677b83bdab09cda48bc2d89ac75aJust def compile(self, ttFont): 187842e56b97ce677b83bdab09cda48bc2d89ac75aJust values = self.values[:] 19180ace6a5ff1399ec53bc696e8bef7cce6eef39aBehdad Esfahbod if sys.byteorder != "big": 207842e56b97ce677b83bdab09cda48bc2d89ac75aJust values.byteswap() 217842e56b97ce677b83bdab09cda48bc2d89ac75aJust return values.tostring() 227842e56b97ce677b83bdab09cda48bc2d89ac75aJust 237842e56b97ce677b83bdab09cda48bc2d89ac75aJust def toXML(self, writer, ttFont): 247842e56b97ce677b83bdab09cda48bc2d89ac75aJust for i in range(len(self.values)): 257842e56b97ce677b83bdab09cda48bc2d89ac75aJust value = self.values[i] 267842e56b97ce677b83bdab09cda48bc2d89ac75aJust writer.simpletag("cv", value=value, index=i) 277842e56b97ce677b83bdab09cda48bc2d89ac75aJust writer.newline() 287842e56b97ce677b83bdab09cda48bc2d89ac75aJust 293a9fd301808f5a8991ca9ac44028d1ecb22d307fBehdad Esfahbod def fromXML(self, name, attrs, content, ttFont): 307842e56b97ce677b83bdab09cda48bc2d89ac75aJust if not hasattr(self, "values"): 317842e56b97ce677b83bdab09cda48bc2d89ac75aJust self.values = array.array("h") 327842e56b97ce677b83bdab09cda48bc2d89ac75aJust if name == "cv": 337842e56b97ce677b83bdab09cda48bc2d89ac75aJust index = safeEval(attrs["index"]) 347842e56b97ce677b83bdab09cda48bc2d89ac75aJust value = safeEval(attrs["value"]) 357842e56b97ce677b83bdab09cda48bc2d89ac75aJust for i in range(1 + index - len(self.values)): 367842e56b97ce677b83bdab09cda48bc2d89ac75aJust self.values.append(0) 377842e56b97ce677b83bdab09cda48bc2d89ac75aJust self.values[index] = value 387842e56b97ce677b83bdab09cda48bc2d89ac75aJust 397842e56b97ce677b83bdab09cda48bc2d89ac75aJust def __len__(self): 407842e56b97ce677b83bdab09cda48bc2d89ac75aJust return len(self.values) 417842e56b97ce677b83bdab09cda48bc2d89ac75aJust 427842e56b97ce677b83bdab09cda48bc2d89ac75aJust def __getitem__(self, index): 437842e56b97ce677b83bdab09cda48bc2d89ac75aJust return self.values[index] 447842e56b97ce677b83bdab09cda48bc2d89ac75aJust 457842e56b97ce677b83bdab09cda48bc2d89ac75aJust def __setitem__(self, index, value): 467842e56b97ce677b83bdab09cda48bc2d89ac75aJust self.values[index] = value 477842e56b97ce677b83bdab09cda48bc2d89ac75aJust 487842e56b97ce677b83bdab09cda48bc2d89ac75aJust def __delitem__(self, index): 497842e56b97ce677b83bdab09cda48bc2d89ac75aJust del self.values[index] 507842e56b97ce677b83bdab09cda48bc2d89ac75aJust 51