Skip to content

Scenario

DataContext dataclass

DataContext(
    type: Literal["mysql", "sqlite"] = "mysql",
    name: str = "",
    host: str = "",
    port: str = "",
    user: str = "",
    password: str = "",
)

host class-attribute instance-attribute

host: str = ''

name class-attribute instance-attribute

name: str = ''

password class-attribute instance-attribute

password: str = ''

port class-attribute instance-attribute

port: str = ''

type class-attribute instance-attribute

type: Literal['mysql', 'sqlite'] = 'mysql'

user class-attribute instance-attribute

user: str = ''

Scenario

Scenario(data_context: DataContext)
Source code in src/api/src/nexus_e_interface/scenario.py
def __init__(self, data_context: DataContext):
    """Initialize the Scenario repository with an injected data context."""
    self.__data_context = data_context

busconfiguration property

busconfiguration: ScalarResult

busdata property

busdata: ScalarResult

centflexpotential property

centflexpotential: ScalarResult

dbinfo property

dbinfo: ScalarResult

distabgencosts property

distabgencosts: ScalarResult

distflexpotential property

distflexpotential: ScalarResult

distgenconfiginfo property

distgenconfiginfo: ScalarResult

distgenconfiguration property

distgenconfiguration: ScalarResult

distgendata property

distgendata: ScalarResult

distprofiles property

distprofiles: ScalarResult

distregionbygentypedata property

distregionbygentypedata: ScalarResult

distregionbyirradleveldata property

distregionbyirradleveldata: ScalarResult

distregiondata property

distregiondata: ScalarResult

flex_params_hp property

flex_params_hp: ScalarResult

flex_profiles_ev property

flex_profiles_ev: ScalarResult

flex_profiles_hp property

flex_profiles_hp: ScalarResult

fuelprices property

fuelprices: ScalarResult

genconfiginfo property

genconfiginfo: ScalarResult

genconfiguration property

genconfiguration: ScalarResult

genconfiguration_extra property

genconfiguration_extra: ScalarResult

gendata property

gendata: ScalarResult

gentypedata property

gentypedata: ScalarResult

lineconfiguration property

lineconfiguration: ScalarResult

linedata property

linedata: ScalarResult

load_profiles property

load_profiles: ScalarResult

loadconfiginfo property

loadconfiginfo: ScalarResult

loadconfiguration property

loadconfiguration: ScalarResult

loaddata property

loaddata: ScalarResult

marketsconfiguration property

marketsconfiguration: ScalarResult

networkconfiginfo property

networkconfiginfo: ScalarResult

profiledata property

profiledata: ScalarResult

projections property

projections: ScalarResult

scenarioconfiguration property

scenarioconfiguration: ScalarResult

securityref property

securityref: ScalarResult

swiss_annual_targets_configinfo property

swiss_annual_targets_configinfo: ScalarResult

swiss_annual_targets_configuration property

swiss_annual_targets_configuration: ScalarResult

transformerconfiguration property

transformerconfiguration: ScalarResult

transformerdata property

transformerdata: ScalarResult

workforce property

workforce: ScalarResult

create_new_database

create_new_database() -> None
Source code in src/api/src/nexus_e_interface/scenario.py
def create_new_database(self) -> None:
    if database_exists(self.__create_engine().url):
        logging.warning(
            f"Database {self.__data_context.name} already exists."
        )
        return
    create_database(self.__create_engine().url)
    Base.metadata.create_all(self.__create_engine())

execute

execute(statement) -> ScalarResult

Execute a SQLAlchemy statement on the SQL database given by DataContext at class creation.

Source code in src/api/src/nexus_e_interface/scenario.py
def execute(self, statement) -> ScalarResult:
    """
    Execute a SQLAlchemy statement on the SQL database given by DataContext
    at class creation.
    """
    with self.__new_session as session, session.begin():
        # Probably vulnerable to SQL injection
        return session.execute(statement).scalars()

get_data_context

get_data_context() -> DataContext
Source code in src/api/src/nexus_e_interface/scenario.py
def get_data_context(self) -> DataContext:
    logging.warning((
        "The direct use of data context is discouraged and will be "
        "deprecated. Please consider using Scenario.execute() with "
        "SQLAlchemy statements instead."
    ))
    return replace(self.__data_context)