[docs]@dataclassclassFlexibleVector(object):""" This class is very similar to Numpy.ndarray but there are differences: - It can have 3 elements at max - Its elements can be anything - The elements do not have to be same type, e.g. this is valid: Array([<scalar>, <List>, <Tuple of Tuples>]) WARNING: The class will be deprecated once we refactor the kWaveGrid class to use the Vector class instead! """data:listdef__post_init__(self):assert1<=len(self)<=3def__len__(self):returnlen(self.data)def__getitem__(self,item):returnself.data[item]def__setitem__(self,key,value):self.data[key]=value@propertydefx(self):returnself[0]@x.setterdefx(self,val):self[0]=val@propertydefy(self):returnself[1]iflen(self)>=2elsenp.nan@y.setterdefy(self,val):assertlen(self)>=2self[1]=val@propertydefz(self):""" :return: 3rd dimension element. 0 if not defined """returnself[2]iflen(self)==3elsenp.nan@z.setterdefz(self,val):assertlen(self)==3self[2]=val