nirs4all.api.studio_lineage module

Exact Studio job and dataset identities on library-owned workspace runs.

nirs4all.api.studio_lineage.reconcile_studio_job_lineage(workspace_path: str | Path, job_id: str, **recovery: Any) → dict[str, Any][source]

Persist only the exact identities returned by the bounded recovery reader.

nirs4all.api.studio_lineage.record_studio_run_provenance(workspace_path: str | Path, run_ids: list[str], provenance: dict[str, Any]) → dict[str, str][source]

Attach exact declared identities to completed native runs, with no name inference.

nirs4all.api.studio_lineage.recover_studio_job_lineage(workspace_path: str | Path, *, pipeline: list[Any], datasets: list[dict[str, Any]], run_name: str, started_at: str, completed_at: str) → dict[str, Any][source]

Read old job lineage only when recipe, cohort, exact name and time agree.

This never fits, mutates a workspace or repairs ambiguous evidence. Dataset descriptors contain an authorized dataset_id and canonical config. A caller may persist returned identities using its existing job authority.

nirs4all.api.studio_lineage.validate_studio_provenance(value: Any, job_id: str) → dict[str, Any][source]

Validate the bounded host-provided identity map before scientific work.