Source code for coco_pipe.report.config
"""
Configuration Schemas for Report
================================
Pydantic models for validating report configuration and metadata.
Classes
-------
ProvenanceConfig
Capture environment and execution metadata.
ReportConfig
Main configuration for the report generation.
Author: Hamza Abdelhedi (hamza.abdelhedi@umontreal.ca)
"""
from typing import Any, Dict, Optional
from pydantic import BaseModel, ConfigDict, Field
[docs]
class ProvenanceConfig(BaseModel):
"""Configuration for execution provenance."""
model_config = ConfigDict(extra="allow")
source: str = Field(
"Unknown", description="Source of the data (BIDS, Tabular, etc.)"
)
git_hash: str = Field("Unknown", description="Git commit hash of the code.")
timestamp_utc: str = Field(..., description="Execution timestamp.")
command: Optional[str] = Field(None, description="Command line arguments used.")
python_version: Optional[str] = Field(None, description="Python version.")
os_platform: Optional[str] = Field(None, description="Operating System.")
versions: Dict[str, str] = Field(
default_factory=dict, description="Package versions."
)
[docs]
class ReportConfig(BaseModel):
"""
Configuration for the Report object.
"""
model_config = ConfigDict(extra="allow")
title: str = Field("CoCo Analysis Report", description="Title of the report.")
author: Optional[str] = Field(None, description="Author of the report.")
description: Optional[str] = Field(None, description="Brief description.")
# Nested provenance info
provenance: Optional[ProvenanceConfig] = Field(
None, description="Execution metadata."
)
# Generic config storage for run parameters
run_params: Dict[str, Any] = Field(
default_factory=dict, description="Parameters used in the analysis run."
)