@@ -62,33 +62,44 @@ def _generate_simulation_tasks(self, n_sims_per_file, master_seed, cleanup_worke
6262 job_id_counter = 0
6363 tasks_to_run , tasks_to_skip = [], 0
6464
65- for file_path in self .file_list :
66- stem = Path (file_path ).stem
67- for variation_index in range (1 , n_sims_per_file + 1 ):
68- final_output_path = self .data_dir / f"{ stem } -{ variation_index } .npy"
69- if final_output_path .exists ():
70- tasks_to_skip += 1
65+ total_planned = len (self .file_list ) * int (n_sims_per_file )
66+ disable_bar = not sys .stderr .isatty ()
67+ with tqdm (
68+ total = total_planned ,
69+ desc = "Preparing tasks" ,
70+ unit = "task" ,
71+ mininterval = 1.0 ,
72+ disable = disable_bar ,
73+ ) as pbar :
74+ for file_path in self .file_list :
75+ stem = Path (file_path ).stem
76+ for variation_index in range (1 , n_sims_per_file + 1 ):
77+ final_output_path = self .data_dir / f"{ stem } -{ variation_index } .npy"
78+ if final_output_path .exists ():
79+ tasks_to_skip += 1
80+ job_id_counter += 1
81+ pbar .update (1 )
82+ continue
83+
84+ worker_dir = self .worker_base_dir / f'job_{ job_id_counter :09d} '
85+ params = {
86+ 'job_id' : job_id_counter , 'worker_dir' : str (worker_dir ), 'input_file' : str (file_path ),
87+ 'output_data_dir' : str (self .data_dir ), 'error_dir' : str (self .error_dir ),
88+ 'instprm_file' : str (self .instprm_file ), 'noise_seed' : rng .integers (1e9 ),
89+ 'strain' : rng .uniform (* param_ranges ['strain_range' ]), 'size' : rng .uniform (* param_ranges ['size_range' ]),
90+ 'U' : rng .uniform (* param_ranges ['U_range' ]), 'V' : rng .uniform (* param_ranges ['V_range' ]),
91+ 'W' : rng .uniform (* param_ranges ['W_range' ]), 'st' : rng .uniform (* param_ranges ['st_range' ]),
92+ 'en' : rng .uniform (* param_ranges ['en_range' ]), 'Npoints' : int (rng .uniform (* param_ranges ['Npoints_range' ])),
93+ 'scaler' : rng .uniform (* param_ranges ['scaler_range' ]), 'wl' : rng .uniform (* param_ranges ['wl_range' ]),
94+ 'proportional_noise_range' : param_ranges ['proportional_noise_range' ],
95+ 'constant_noise_range' : param_ranges ['constant_noise_range' ],
96+ 'cleanup_worker_dir' : cleanup_worker_dirs ,
97+ 'output_filename' : f"{ stem } -{ variation_index } .npy" ,
98+ 'parse_from_comment' : bool (kwargs .get ('parse_from_comment' , False )),
99+ }
100+ tasks_to_run .append (params )
71101 job_id_counter += 1
72- continue
73-
74- worker_dir = self .worker_base_dir / f'job_{ job_id_counter :09d} '
75- params = {
76- 'job_id' : job_id_counter , 'worker_dir' : str (worker_dir ), 'input_file' : str (file_path ),
77- 'output_data_dir' : str (self .data_dir ), 'error_dir' : str (self .error_dir ),
78- 'instprm_file' : str (self .instprm_file ), 'noise_seed' : rng .integers (1e9 ),
79- 'strain' : rng .uniform (* param_ranges ['strain_range' ]), 'size' : rng .uniform (* param_ranges ['size_range' ]),
80- 'U' : rng .uniform (* param_ranges ['U_range' ]), 'V' : rng .uniform (* param_ranges ['V_range' ]),
81- 'W' : rng .uniform (* param_ranges ['W_range' ]), 'st' : rng .uniform (* param_ranges ['st_range' ]),
82- 'en' : rng .uniform (* param_ranges ['en_range' ]), 'Npoints' : int (rng .uniform (* param_ranges ['Npoints_range' ])),
83- 'scaler' : rng .uniform (* param_ranges ['scaler_range' ]), 'wl' : rng .uniform (* param_ranges ['wl_range' ]),
84- 'proportional_noise_range' : param_ranges ['proportional_noise_range' ],
85- 'constant_noise_range' : param_ranges ['constant_noise_range' ],
86- 'cleanup_worker_dir' : cleanup_worker_dirs ,
87- 'output_filename' : f"{ stem } -{ variation_index } .npy" ,
88- 'parse_from_comment' : bool (kwargs .get ('parse_from_comment' , False )),
89- }
90- tasks_to_run .append (params )
91- job_id_counter += 1
102+ pbar .update (1 )
92103
93104 if tasks_to_skip > 0 : print (f"--> Found and skipped { tasks_to_skip } previously completed jobs." )
94105 for task in tasks_to_run : yield task
0 commit comments