import csv import os import re class Vector(complex): @property def x(self): return self.real @x.setter def x(self, value): self.real = value @property def y(self): return self.imag @y.setter def y(self, value): self.imag = value def _load_from(root): def _vectors(iterable): for x, y in iterable: yield Vector(float(x), float(y)) def _load(filename): with open(filename, encoding='utf-8') as fp: reader = csv.reader(fp) return list(_vectors(reader)) def _files(directory): for filename in os.listdir(directory): match = re.match(r"SWI_(-?\d+)\.csv", filename) if match: yield int(match.group(1)), os.path.join(directory, filename) def _first(pair): return pair[0] return [(index, _load(path)) for index, path in sorted(_files(root), key=_first)] INDICES = _load_from(os.path.dirname(os.path.abspath(__file__)))