diff --git a/CHANGELOG.md b/CHANGELOG.md index 7bf3f1989..89b3acce8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 dataframe in experimental representation instead of two separate dataframes in computational representation +### Deprecated +- `add_fake_results` and `add_parameter_noise` have been moved to the simulation package ## [0.9.1] - 2024-06-04 ### Changed diff --git a/baybe/utils/dataframe.py b/baybe/utils/dataframe.py index 38014fe7f..f783f2448 100644 --- a/baybe/utils/dataframe.py +++ b/baybe/utils/dataframe.py @@ -3,6 +3,7 @@ from __future__ import annotations import logging +import warnings from collections.abc import Iterator, Sequence from typing import TYPE_CHECKING, overload @@ -19,6 +20,32 @@ _logger = logging.getLogger(__name__) +def add_fake_results(*args, **kwargs): + """Deprecated. Use ``baybe.simulation.lookup.add_fake_results`` instead.""" # noqa: D401 + from baybe.simulation.lookup import add_fake_results as moved_fn + + warnings.warn( + "The function 'add_fake_results' has been moved. " + "Please import it from 'baybe.simulation.lookup' instead.", + DeprecationWarning, + ) + + moved_fn(*args, **kwargs) + + +def add_parameter_noise(*args, **kwargs): + """Deprecated. Use ``baybe.simulation.utils.add_parameter_noise`` instead.""" # noqa: D401 + from baybe.simulation.utils import add_parameter_noise as moved_fn + + warnings.warn( + "The function 'add_parameter_noise' has been moved. " + "Please import it from 'baybe.simulation.utils' instead.", + DeprecationWarning, + ) + + moved_fn(*args, **kwargs) + + @overload def to_tensor(df: pd.DataFrame) -> Tensor: ... diff --git a/tests/test_deprecations.py b/tests/test_deprecations.py index 04cf5ff98..3ae023066 100644 --- a/tests/test_deprecations.py +++ b/tests/test_deprecations.py @@ -3,6 +3,7 @@ import json from unittest.mock import Mock +import pandas as pd import pytest from baybe import Campaign @@ -11,6 +12,7 @@ from baybe.objective import Objective as OldObjective from baybe.objectives.base import Objective as NewObjective from baybe.objectives.desirability import DesirabilityObjective +from baybe.parameters.numerical import NumericalDiscreteParameter from baybe.recommenders.meta.sequential import TwoPhaseMetaRecommender from baybe.recommenders.pure.bayesian import SequentialGreedyRecommender from baybe.recommenders.pure.nonpredictive.sampling import ( @@ -188,3 +190,21 @@ def test_deprecated_acqf_keyword(acqf): """Using the deprecated keyword raises an error.""" with pytest.raises(DeprecationError): SequentialGreedyRecommender(acquisition_function_cls="qEI") + + +def test_moved_add_fake_results(): + """Using the function imported from the old location raises a warning.""" + with pytest.warns(DeprecationWarning): + from baybe.utils.dataframe import add_fake_results + + add_fake_results(pd.DataFrame(), [NumericalTarget("target", "MAX")]) + + +def test_moved_add_parameter_noise(): + """Using the function imported from the old location raises a warning.""" + with pytest.warns(DeprecationWarning): + from baybe.utils.dataframe import add_parameter_noise + + add_parameter_noise( + pd.DataFrame({"p": [0]}), [NumericalDiscreteParameter("p", [0, 1])] + )