def __init__(self, p_range, r_front_range, r_back_range, fig_fourier, ax_fourier): self.p_range = p_range self.r_front_range = r_front_range self.r_back_range = r_back_range self.fig_fourier = fig_fourier self.ax_fourier = ax_fourier self.p_index = 0 self.r_front_index = 0 self.r_back_index = 0 self.si = ShelfInterface(db_path) key = [self.r_front_index, self.r_back_index] self.q = self.si.get(key) q0 = self.q[self.p_index][:, 0] self.plot_fourier(q0)
from shelf_interface import ShelfInterface INTERFACE = ShelfInterface() INTERFACE.run()
return q def grouper(n, iterable, fillvalue=None): "grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx" args = [iter(iterable)] * n return izip_longest(fillvalue=fillvalue, *args) def find_r_indices(r_front_range, r_back_range, n_cores): r= [(r_front,r_back) for r_front in r_front_range for r_back in r_back_range] r_indices = [[i,j] for i in range(len(r_front_range)) for j in range(len(r_back_range))] r_indices = list(grouper(n_cores, r_indices)) r_indices[-1] = [i for i in r_indices[-1] if i is not None] return r_indices si = ShelfInterface(db_path) si.insert('params', params) si.insert('p_range', p_range) si.insert('r_front_range', r_front_range) si.insert('r_back_range', r_front_range) n_cores = 4 #r_indices = find_r_indices(r_front_range, r_back_range, n_cores) try: for idx in r_indices: q = Parallel(n_jobs=n_cores)(delayed(vary_pressure) (p_range, r_front_range[i[0]], r_back_range[i[1]]) for i in idx) map(si.insert, idx, q) finally: np.save('idx', idx) si.close()