diff --git a/4-fusion.py b/4-fusion.py index eeac275..22f5873 100644 --- a/4-fusion.py +++ b/4-fusion.py @@ -298,6 +298,11 @@ def main(argv: list[str] | None = None) -> int: default=None, help="Single sitename to fuse (default: all prepared sites)", ) + parser.add_argument( + "--skip-blended", + action="store_true", + help="Skip sites whose fusion directory already exists under data/fusion/{year}/", + ) args = parser.parse_args(argv) year = args.evaluation_year @@ -311,17 +316,18 @@ def main(argv: list[str] | None = None) -> int: print(f"[Fusion] Processing {len(sites)} site(s)") for i, sitename in enumerate(sites, 1): + fusion_dir = DATA_DIR / "fusion" / str(year) / sitename + if args.skip_blended and fusion_dir.exists(): + print(f"[Fusion] ({i}/{len(sites)}) {sitename} — skipping (fusion directory exists)") + continue print(f"[Fusion] ({i}/{len(sites)}) {sitename}") - try: - summary = fuse_site(sitename, year) - print( - f"[Fusion] {sitename} done — " - f"{summary['fusion_dates']} dates, " - f"itb={summary['itb_fusion_files']} bti={summary['bti_fusion_files']} " - f"bti_gcc={summary['bti_gcc_files']}" - ) - except Exception as exc: - print(f"[Fusion] {sitename} FAILED: {exc}") + summary = fuse_site(sitename, year) + print( + f"[Fusion] {sitename} done — " + f"{summary['fusion_dates']} dates, " + f"itb={summary['itb_fusion_files']} bti={summary['bti_fusion_files']} " + f"bti_gcc={summary['bti_gcc_files']}" + ) return 0