diff --git a/src/scgenerator/io.py b/src/scgenerator/io.py index 731227f..5371349 100644 --- a/src/scgenerator/io.py +++ b/src/scgenerator/io.py @@ -254,7 +254,7 @@ def num_left_to_propagate(sub_folder: Path, init_z_num: int) -> int: def find_last_spectrum_num(data_dir: Path): for num in itertools.count(1): p_to_test = data_dir / SPEC1_FN.format(num) - if not p_to_test.is_file() or len(p_to_test.read_bytes()) == 0: + if not p_to_test.is_file() or os.path.getsize(p_to_test) == 0: return num - 1 diff --git a/src/scgenerator/scripts/slurm_submit.py b/src/scgenerator/scripts/slurm_submit.py index 92ce916..ae85608 100644 --- a/src/scgenerator/scripts/slurm_submit.py +++ b/src/scgenerator/scripts/slurm_submit.py @@ -107,7 +107,7 @@ def copy_starting_files(): def main(): - command_map = dict(run="Propagate", resume="Resuming") + command_map = dict(run="Propagate", resume="Resuming", merge="Merging") parser = create_parser() template = Paths.gets("submit_job_template") @@ -121,10 +121,16 @@ def main(): "time format must be an integer number of minute or must match the pattern hh:mm:ss" ) - config_paths = args.configs - final_config, sim_num = validate_config_sequence(*config_paths) + if args.command == "merge": + final_config = args.configs[0] + sim_num = 0 + args.nodes = 1 + args.cpus_per_node = 1 + else: + config_paths = args.configs + final_config, sim_num = validate_config_sequence(*config_paths) - args.nodes, args.cpus_per_node = distribute(sim_num, args.nodes, args.cpus_per_node) + args.nodes, args.cpus_per_node = distribute(sim_num, args.nodes, args.cpus_per_node) submit_path = Path( "submit " + final_config.name + "-" + format(datetime.now(), "%Y%m%d%H%M") + ".sh"