Source code for alts.core.blueprint
#Version 1.1.1 conform as of 15.12.2024
"""
| *alts.core.blueprint*
"""
from __future__ import annotations
from typing import TYPE_CHECKING
from dataclasses import dataclass
from alts.core.configuration import ROOT
import sys
import os
import time
if TYPE_CHECKING:
from typing import Iterable, Optional
from alts.core.data.data_pools import DataPools
from alts.core.evaluator import Evaluator
from alts.core.experiment_modules import ExperimentModules
from alts.core.stopping_criteria import StoppingCriteria
from alts.core.data_process.process import Process
from alts.core.data_process.time_source import TimeSource
from alts.core.oracle.oracles import Oracles
[docs]
@dataclass
class Blueprint():
"""
Blueprint()
| **Description**
| A blueprint configures all modules and parameters for an experiment.
"""
def __post_init__(self):
"""
__post_init__(self) -> None
| **Description**
| Sets output path for and name of the experiment if None.
"""
name = os.path.basename(sys.argv[0])[:-3]
if self.exp_path is None:
self.exp_path = f"./eval/{name}"
if self.exp_name is None:
self.exp_name = f"{name}_{time.time()}"
repeat: int
time_source: TimeSource
oracles: Oracles
data_pools: DataPools
process: Process
stopping_criteria: StoppingCriteria
experiment_modules: ExperimentModules
evaluators: Iterable[Evaluator]
exp_name: Optional[str]= None
exp_path: Optional[str]= None