Configuration Manager#

class ConfigurationManager(experiment_groups: List[ExperimentGroup], categorical_features: Dict[str, List[str]], plot_settings: PlotSettings)[source]#

Manage experiment configurations and DataManager instances.

This class processes ExperimentGroup configurations and creates the minimum necessary DataManager instances, reusing them when configurations match.

Parameters:
experiment_groupsList[ExperimentGroup]

List of experiment group configurations to process

categorical_featuresDict[str, List[str]]

Dictionary mapping dataset identifiers to lists of categorical feature names

plot_settingsPlotSettings

Plot configuration settings for the experiments

Attributes:
experiment_groupsList[ExperimentGroup]

List of experiment group configurations

data_managersDict[str, DataManager]

Mapping of group names to DataManager instances

categorical_featuresDict[str, List[str]]

Mapping of dataset identifiers to categorical feature lists

project_rootPath

Root directory of the project

algorithm_configAlgorithmCollection

Collection of algorithm configurations loaded from algorithms.py

base_data_managerDataManager

Base configuration for data management loaded from data.py

experiment_queuecollections.deque

Queue of experiments ready to run

output_structureDict[str, Dict[str, Tuple[str, str]]]

Directory structure for experiment outputs

description_mapDict[str, str]

Mapping of group names to descriptions

workflow_mapDict[str, Type]

Mapping of workflow names to workflow classes

logfilestr

Markdown documentation of the configuration

Notes

The ConfigurationManager optimizes memory usage by reusing DataManager instances when experiment groups have identical data configurations. This is particularly important when running many experiments with similar data processing requirements.

Examples

Create a configuration manager:
>>> from brisk.configuration import ConfigurationManager
>>> manager = ConfigurationManager(
...     experiment_groups=groups,
...     categorical_features=categorical_features,
...     plot_settings=plot_settings
... )