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." )