Skip to content

beacon.environment

The Environment configuration object that centralises run-level settings (data source paths/frames, date format, calendar, and simulation defaults).

environment

Environment

Environment()

Centralized configuration for a Beacon session.

Settings are grouped into category dataclasses and can be set via set_environment(**kwargs) using flat parameter names.

Source code in build/cache/py-beacon-2c9c3936c65abdb6b8403c50a023f58355be30ee/src/beacon/environment/config.py
def __init__(self) -> None:
    self.data_source = DataSourceConfig()
    self.data = DataConfig()
    self.calendar = CalendarConfig()
    self.simulation = SimulationConfig()

set_environment

set_environment(**kwargs: Any) -> None

Set one or more validated parameters.

Raises ValueError on unknown parameter names.

Source code in build/cache/py-beacon-2c9c3936c65abdb6b8403c50a023f58355be30ee/src/beacon/environment/config.py
def set_environment(self,
                    **kwargs: Any) -> None:
    """Set one or more validated parameters.

    Raises ValueError on unknown parameter names.
    """
    lookup = self._build_lookup()

    unknown = [k for k in kwargs if k not in lookup]
    if unknown:
        raise ValueError(
            f"Unknown parameter(s): {', '.join(unknown)}. "
            f"Valid parameters: {', '.join(sorted(lookup))}"
        )

    for name, value in kwargs.items():
        instance, field_name = lookup[name]
        setattr(instance, field_name, value)

summary

summary() -> dict[str, dict[str, Any]]

Return all current settings as a nested dict.

Source code in build/cache/py-beacon-2c9c3936c65abdb6b8403c50a023f58355be30ee/src/beacon/environment/config.py
def summary(self) -> dict[str, dict[str, Any]]:
    """Return all current settings as a nested dict."""
    result: dict[str, dict[str, Any]] = {}
    for attr in _CATEGORIES:
        instance = getattr(self, attr)
        result[attr] = {
            f.name: getattr(instance, f.name)
            for f in fields(type(instance))
            if not isinstance(getattr(instance, f.name), pd.DataFrame)
        }
    return result