From c76640a6db1858265e2419a67e4f3e1d645ad149 Mon Sep 17 00:00:00 2001 From: Cail Daley Date: Wed, 22 Apr 2026 09:00:59 +0200 Subject: [PATCH 1/2] fix: align canfar_monitor docstring indentation 7-space indent on the Params Default docstring opener caused IndentationError at the 8-space body, breaking canfar_monitor, canfar_submit_job, canfar_monitor_log, and canfar_run imports. Closes #709 --- src/shapepipe/canfar/canfar_monitor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shapepipe/canfar/canfar_monitor.py b/src/shapepipe/canfar/canfar_monitor.py index 374bbf15..8061aba5 100644 --- a/src/shapepipe/canfar/canfar_monitor.py +++ b/src/shapepipe/canfar/canfar_monitor.py @@ -52,7 +52,7 @@ def set_params_from_command_line(self, args): logging.log_command(args) def params_default(self): - """Params Default. + """Params Default. Set default parameters. From fa58f79a2413740b1b825d57d5d53fd10445ccc3 Mon Sep 17 00:00:00 2001 From: Cail Daley Date: Wed, 22 Apr 2026 09:01:05 +0200 Subject: [PATCH 2/2] fix: add argparse to summary_run so -h shows help summary_run previously consumed sys.argv[1] as the 'patch' positional without parsing, so 'summary_run -h' tried to create a directory named '-h'. Switch to argparse: help/usage work, required patch is enforced, optional job_exclusive and --verbose preserved. Closes #711 --- src/shapepipe/summary_run.py | 48 +++++++++++++++++++++++++----------- 1 file changed, 33 insertions(+), 15 deletions(-) diff --git a/src/shapepipe/summary_run.py b/src/shapepipe/summary_run.py index 2a0a3e2c..39d60ce0 100755 --- a/src/shapepipe/summary_run.py +++ b/src/shapepipe/summary_run.py @@ -1,5 +1,6 @@ #!/usr/bin/env python +import argparse import sys import os @@ -8,16 +9,7 @@ from shapepipe.utilities import summary_params_pre_v2 as summary_params -def run(*args): - - patch = args[0] - - if len(args) >= 2: - job_exclusive = args[1] - else: - job_exclusive = None - - verbose = len(args) == 3 +def run(patch, job_exclusive=None, verbose=False): jobs, list_tile_IDs_dot = summary_params.set_jobs_v2_pre_v2(patch, verbose) @@ -73,11 +65,37 @@ def run(*args): return 0 -def main(args=None): - - if args is None: - args = sys.argv[1:] # skip script name - run(*args) +def parse_args(argv=None): + parser = argparse.ArgumentParser( + description=( + 'Print summary of ShapePipe job status for a given UNIONS patch.' + ), + ) + parser.add_argument( + 'patch', + help='Patch identifier (e.g. P3, P9).', + ) + parser.add_argument( + 'job_exclusive', + nargs='?', + default=None, + help=( + 'Bitmask selecting which jobs to run; ' + + 'if omitted, all jobs run.' + ), + ) + parser.add_argument( + '-v', + '--verbose', + action='store_true', + help='Verbose output.', + ) + return parser.parse_args(argv) + + +def main(argv=None): + args = parse_args(argv) + run(args.patch, args.job_exclusive, args.verbose) if __name__ == "__main__":