Source code for energia.represent.ations.scenario

"""Scenario"""

from __future__ import annotations

from typing import TYPE_CHECKING

from ..._core._hash import _Hash
from ...utils.dictionary import merge_trees

if TYPE_CHECKING:
    from ...modeling.indices.sample import Sample
    from ...represent.model import Model


[docs] class Scenario(_Hash): """Scenario representation""" def __init__(self, model: Model): self.model = model self.name = rf"Scenario({self.model})" self._ = {}
[docs] def update( self, sample: Sample, rel: str, parameter: float | list[float], ): """Update the scenario representation""" self._ = merge_trees( self._, {sample.aspect: sample.domain.param_tree(parameter, rel)} )
def __getitem__(self, item): return self._[item]