phenotypic.sdk_.migrate_legacy_machine_state#
- phenotypic.sdk_.migrate_legacy_machine_state(output_dir: Path) bool[source]#
Move a pre-migration run’s machine-state into
.phenotypic/.If legacy machine-state (
progress/,processing_state.json,processing_events.log) is present at the output root, move each artifact into the.phenotypic/cache so the run proceeds coherently against a single location. A no-op when no legacy state is present or everything is already migrated.Robust to interruption and concurrency (the SLURM array case): each artifact is moved only when its source still exists and its destination does not, so a migration interrupted mid-move completes on the next call rather than leaving split state; and a lost move race (a concurrent worker moved the artifact first) is ignored rather than crashing. Keying per-artifact instead of on
cache.exists()is what makes both safe.