# Local parallel Enron scans The `pipewhy.execution` API prepares immutable shard plans, runs bounded local worker processes, preserves accepted results across restart, and publishes through the same local snapshot store used by ordinary scans. Install the `cpu,enron` extras and prepare the pinned cache described in the [Enron guide](enron.md) before using offline mode. Save this example as a Python script; spawned workers require an importable main module and its execution guard. ```python from pathlib import Path from pipewhy.adapters.enron import EnronConfiguration from pipewhy.execution import execute_run, prepare_enron_execution, publish_execution from pipewhy.snapshots import LocalSnapshotStore def main(): cache = Path(".artifacts/enron/source") prepared = prepare_enron_execution( EnronConfiguration( cache, "cfc06c758093d90993abce1a43668fb7357258a6", offline=True, ), ".artifacts/execution/plans", backend="cpu", workers=3, ) outcome = execute_run(prepared.directory, cache, ".artifacts/execution/runs") if not outcome.report.complete: raise RuntimeError(f"Incomplete run: {outcome.directory}") snapshot = publish_execution( outcome.directory, prepared.directory, LocalSnapshotStore(".artifacts/enron/snapshots"), ) print(snapshot.metadata.snapshot_id) if __name__ == "__main__": main() ``` `resume_execution(run_directory, prepared.directory, cache)` resumes an existing run with its original plan and finite attempt budget. Accepted partitions stay counted once. Publication requires every planned partition, including empty ones; repeating publication verifies the existing snapshot and preserves its contents. Parallel capture retains dataset fingerprints and source metadata. Saved snapshots can be queried/exported with the core installation. The command-line `scan` continues to use the ordinary scan path; parallel execution uses the Python API.