Skip to content

Compatibility break with bayesian-optimization > 1.5.1 #1289

@spjuhel

Description

@spjuhel

Description

Integration tests are failing due to an ImportError in climada/util/calibrate/bayesian_optimizer.py. The bayesian-optimization package removed UtilityFunction from its top-level namespace in versions following 1.5.1.

Further down the road, Events class (also imported in integration tests) is removed after 2.0.4

Error Traceback

Traceback:
climada/test/test_util_calibrate.py:31: in <module>
    from climada.util.calibrate import (
climada/util/calibrate/__init__.py:22: in <module>
    from .bayesian_optimizer import (
climada/util/calibrate/bayesian_optimizer.py:36: in <module>
    from bayes_opt import BayesianOptimization, Events, ScreenLogger, UtilityFunction
E   ImportError: cannot import name 'UtilityFunction' from 'bayes_opt'

Root Cause

Versions of bayesian-optimization > 1.5.1 introduced breaking API changes:

Futur problem

Versions of bayesian-optimization > 2.0.4 introduced other breaking API changes:

Proposed Fix

  • Immediate: Pin the dependency in the environment/requirements:
bayesian-optimization <= 1.5.1

  • Long-term: Refactor bayesian_optimizer.py to support the updated API.

Quick Fix for Devs

To resolve this locally and run tests:

mamba install "bayesian-optimization<=1.5.1"

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions