import csv import os import re class Vector(complex): def __getitem__(self, index): if index == 0: return self.real if index == 1: return self.imag raise IndexError 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__)))