diff --git a/src/msspec/looper.py b/src/msspec/looper.py index 192acb3..ce846d4 100644 --- a/src/msspec/looper.py +++ b/src/msspec/looper.py @@ -134,7 +134,7 @@ class SweepRange: row[key] = value else: idx = int(i/(self.ntot/self.cn[isweep])) % len(sweep) - + # If this sweep has links, add also all values from its # children children = self.links.get(sweep, []) @@ -168,7 +168,7 @@ class SweepRange: class Looper: def __init__(self): - pass + self.data = None @property def pipeline(self): @@ -184,7 +184,7 @@ class Looper: def _wrapper(self, x): logger.debug("Pipeline called with {}".format(x)) return self.pipeline(**x) - + def run(self, *sweeps, ncpu=1, passindex=False): logger.info("Loop starts...") # prepare the list of inputs @@ -213,7 +213,7 @@ class Looper: logger.info(("Parallel processing over {:d} cpu (chunksize={:d})..." "").format(ncpu, chunksize)) t0 = time.time() - + pool = mp.Pool(processes=ncpu) data = pool.map(self._wrapper, items, chunksize=chunksize) pool.close() @@ -235,6 +235,7 @@ class Looper: df = pd.DataFrame(dfdata, columns=columns) + self.data = df return df @@ -284,4 +285,4 @@ if __name__ == "__main__": data = looper.run(emitter, emitter_plane, uij, theta, levels, ncpu=1, passindex=True) - print(data) + print(data[data.emitter_plane.eq(0)].theta.unique())