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

1"""派生データセットの由来(Dataset.provenance)。core/methods_text.py がここから「方法」文を作る。""" 

2from datetime import datetime, timezone 

3from typing import Any 

4 

5 

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 }