def __iter__(self): if self.is_value: return self.data[self.select.name].__iter__() if not self.edges: return list.__iter__([]) if len(self.edges) == 1 and wrap(self.edges[0]).domain.type == "index": # ITERATE AS LIST OF RECORDS keys = list(self.data.keys()) output = (dot.zip(keys, r) for r in zip(*self.data.values())) return output Log.error("This is a multicube")
def index(data, keys=None): # return dict that uses keys to index data o = Index(keys) if isinstance(data, Cube): if data.edges[0].name==keys[0]: #QUICK PATH names = list(data.data.keys()) for d in (set_default(mo_dots.zip(names, r), {keys[0]: p}) for r, p in zip(zip(*data.data.values()), data.edges[0].domain.partitions.value)): o.add(d) return o else: Log.error("Can not handle indexing cubes at this time") for d in data: o.add(d) return o