3. Sync results back

Pulls the outputs from the cluster to your machine.

Safe by design: pull() fetches only output/ and done/. It never touches notebooks/ or scripts/, so if you edited a notebook locally while jobs were running on the HPC, syncing results will not overwrite your change. (Requires rsync on your machine.)

import nb2slurm

wf, cfg = nb2slurm.load_config("control_config.json")

Pull the results

wf.pull(ssh=cfg, dry_run=True)  # preview the rsync commands
wf.pull(ssh=cfg)  # for real

Changed a notebook? Re-push before re-submitting

If you edited something in notebooks/, re-run 1_build.ipynb (its wf.push step) to upload the new version, then submit again from 2_submit.ipynb. Finished jobs are recorded in done/done.csv, so re-submitting only runs what’s new or unfinished.