diff --git a/src/enfobench/__version__.py b/src/enfobench/__version__.py index 9b36b86..b2f0155 100644 --- a/src/enfobench/__version__.py +++ b/src/enfobench/__version__.py @@ -1 +1 @@ -__version__ = "0.0.10" +__version__ = "0.0.11" diff --git a/src/enfobench/evaluation/_cross_validate.py b/src/enfobench/evaluation/_cross_validate.py index 3ba2edf..3119eef 100644 --- a/src/enfobench/evaluation/_cross_validate.py +++ b/src/enfobench/evaluation/_cross_validate.py @@ -1,6 +1,4 @@ -from __future__ import annotations - -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Union, List, Optional import pandas as pd from tqdm import tqdm @@ -44,13 +42,13 @@ def generate_cutoff_dates( def cross_validate( - model: Model | ForecastClient, + model: Union[Model, ForecastClient], start: pd.Timestamp, horizon: pd.Timedelta, step: pd.Timedelta, y: pd.Series, - level: list[int] | None = None, - freq: str | None = None, + level: Optional[List[int]] = None, + freq: Optional[str] = None, ) -> pd.DataFrame: """Cross-validate a model. diff --git a/src/enfobench/evaluation/_evaluate.py b/src/enfobench/evaluation/_evaluate.py index 8bf0c4e..3892f66 100644 --- a/src/enfobench/evaluation/_evaluate.py +++ b/src/enfobench/evaluation/_evaluate.py @@ -1,4 +1,4 @@ -from typing import Callable +from typing import Callable, Dict import pandas as pd @@ -24,8 +24,8 @@ def evaluate_metric_on_forecast(forecast: pd.DataFrame, metric: Callable) -> flo def evaluate_metrics_on_forecast( - forecast: pd.DataFrame, metrics: dict[str, Callable] -) -> dict[str, float]: + forecast: pd.DataFrame, metrics: Dict[str, Callable] +) -> Dict[str, float]: """Evaluate multiple metrics on a single forecast. Parameters: @@ -71,7 +71,7 @@ def evaluate_metric_on_forecasts(forecasts: pd.DataFrame, metric: Callable) -> p def evaluate_metrics_on_forecasts( - forecasts: pd.DataFrame, metrics: dict[str, Callable] + forecasts: pd.DataFrame, metrics: Dict[str, Callable] ) -> pd.DataFrame: """Evaluate multiple metrics on a set of forecasts made at different cutoff points. diff --git a/src/enfobench/evaluation/client.py b/src/enfobench/evaluation/client.py index 8bedacb..e543efa 100644 --- a/src/enfobench/evaluation/client.py +++ b/src/enfobench/evaluation/client.py @@ -1,6 +1,5 @@ -from __future__ import annotations - import io +from typing import Dict, Union, Optional, List import pandas as pd import requests @@ -39,9 +38,9 @@ def predict( horizon: int, y: pd.Series, # X: pd.DataFrame, - level: list[int] | None = None, + level: Optional[List[int]] = None, ) -> pd.DataFrame: - params: dict[str, int | list[int]] = { + params: Dict[str, Union[int, List[int]]] = { "horizon": horizon, } if level is not None: diff --git a/src/enfobench/evaluation/protocols.py b/src/enfobench/evaluation/protocols.py index 73a9754..4b394ab 100644 --- a/src/enfobench/evaluation/protocols.py +++ b/src/enfobench/evaluation/protocols.py @@ -1,7 +1,5 @@ -from __future__ import annotations - from enum import Enum -from typing import Any, Protocol +from typing import Any, Protocol, Optional, List import pandas as pd from pydantic import BaseModel @@ -32,8 +30,8 @@ def predict( self, h: int, y: pd.Series, - X: pd.DataFrame | None = None, - level: list[int] | None = None, + X: Optional[pd.DataFrame] = None, + level: Optional[List[int]] = None, **kwargs, ) -> pd.DataFrame: ... diff --git a/src/enfobench/evaluation/server.py b/src/enfobench/evaluation/server.py index 60e0482..846fb6e 100644 --- a/src/enfobench/evaluation/server.py +++ b/src/enfobench/evaluation/server.py @@ -1,7 +1,5 @@ -from __future__ import annotations - import io -from typing import Annotated, List +from typing import Annotated, List, Optional import pandas as pd import pkg_resources @@ -33,7 +31,7 @@ async def predict( horizon: int, y: Annotated[bytes, File()], # X: Annotated[bytes, File()], - level: List[int] | None = Query(None), + level: Optional[List[int]] = Query(None), ): y_df = pd.read_parquet(io.BytesIO(y)) # X_df = pd.read_parquet(io.BytesIO(X))