from dataclasses import dataclass, field
from typing import Optional
import hydra
from hydra.core.config_store import ConfigStore
from omegaconf import MISSING, OmegaConf
from ..consts import OptunaType
from .args import ArgsConfig
[docs]
@dataclass
class BaseExpConfig:
"""
Base configuration for experiments.
This dataclass defines the structure of an experiment configuration,
integrating various sub-components like arguments, node details,
and library-specific settings.
Parameters
----------
study_prefix : str
The prefix for the study name.
optuna_type : OptunaType
The type of Optuna optimization (e.g., INT, FLOAT).
Defaults to OptunaType.INT.
args : ArgsConfig
Runtime arguments for the experiment.
Defaults to a factory-created ArgsConfig.
node : dict
Configuration details for the compute node.
db : dict, optional
Database configuration settings.
ds : dict
Dataset configuration settings.
pl : dict, optional
PyTorch Lightning specific configuration.
optuna : dict, optional
Optuna study configuration details.
default : dict, optional
Default values or overrides.
"""
study_prefix:str=MISSING
optuna_type:OptunaType = OptunaType.INT
args:ArgsConfig=field(
default_factory=ArgsConfig
)
node:dict=MISSING
db:Optional[dict]=None
ds:dict=MISSING
pl:Optional[dict]=None
optuna:Optional[dict]=None
# exp=MISSING
# run=MISSING
default:Optional[dict]=None