Coverage for graphica/core/provenance.py: 100.0%
4 statements
« prev ^ index » next coverage.py v7.16.2, created at 2026-10-12 16:38 +0000
« prev ^ index » next coverage.py v7.16.2, created at 2026-10-12 16:38 +0000
1"""派生データセットの由来(Dataset.provenance)。core/methods_text.py がここから「方法」文を作る。"""
2from datetime import datetime, timezone
3from typing import Any
6def build_provenance(operation: str, params: dict[str, Any], source_datasets: list[Any]) -> dict[str, Any]:
7 """
8 Args:
9 operation (str): 操作の名前(methods_text の説明の引き当てに使う)。
10 params (dict): 操作の設定。pickle と JSON の両方で往復できるよう素の Python 型だけにする。
11 source_datasets (list[Dataset]): 元になったデータセット(複数なら合成)。
12 """
13 return {
14 'operation': operation,
15 'params': params,
16 'source_dataset_ids': [ds.dataset_id for ds in source_datasets],
17 'source_dataset_names': [ds.name for ds in source_datasets],
18 'timestamp': datetime.now(timezone.utc).isoformat(),
19 }