Source code for lories.components.tariff.static

# -*- coding: utf-8 -*-
"""
lories.components.tariff.static
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


"""

from __future__ import annotations

from typing import Optional

import pandas as pd
from lories.components import ComponentError
from lories.components.tariff import Tariff, register_tariff_type
from lories.typing import Configurations, Timestamp


# noinspection SpellCheckingInspection
[docs] @register_tariff_type("static") class StaticTariff(Tariff): _price_import: float _price_export: float def configure(self, configs: Configurations) -> None: super().configure(configs) self._price_import = configs.get_float("import") self._price_export = configs.get_float("export", default=0) def get( self, start: Optional[Timestamp] = None, end: Optional[Timestamp] = None, freq: str = "15min", **kwargs, ) -> pd.DataFrame: if any(t is None for t in [start, end]): raise ComponentError(self, "Unable to generate static tariff for incomplete or missing time range") return pd.DataFrame( index=pd.date_range(start=start, end=end, freq=freq), data={ Tariff.PRICE_IMPORT: self._price_import, Tariff.PRICE_EXPORT: self._price_export, }, )