Skip to content

Commit f5ad159

Browse files
committed
Replace OptimizeResult with dummy object for attribute check
1 parent 729e1ab commit f5ad159

1 file changed

Lines changed: 13 additions & 2 deletions

File tree

src/tranquilo/visualize.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,12 @@
88
from plotly import graph_objects as go
99
from plotly.subplots import make_subplots
1010

11-
from optimagic.optimization.optimize_result import OptimizeResult
1211
from tranquilo.clustering import cluster
1312
from tranquilo.geometry import log_d_quality_calculator
1413
from tranquilo.volume import get_radius_after_volume_scaling
1514

15+
from typing import Any, Protocol, runtime_checkable
16+
1617

1718
def visualize_tranquilo(results, iterations):
1819
"""Plot diagnostic information of optimization result in given iteration(s).
@@ -56,7 +57,7 @@ def visualize_tranquilo(results, iterations):
5657
if isinstance(iterations, int):
5758
iterations = {case: iterations for case in results}
5859
results = {case: _process_results(results[case]) for case in results}
59-
elif isinstance(results, OptimizeResult):
60+
elif isinstance(results, OptimizeResultLike):
6061
results = _process_results(results)
6162
results = {f"iteration {i}": results for i in iterations}
6263
iterations = {f"iteration {iteration}": iteration for iteration in iterations}
@@ -588,3 +589,13 @@ def _get_model_indices(xs, state):
588589
for point in state.model_points:
589590
model_indices = np.concatenate([model_indices, _find_index(xs, point)])
590591
return model_indices.astype(int)
592+
593+
594+
@runtime_checkable
595+
class OptimizeResultLike(Protocol):
596+
"""Runtime-checkable stand-in for optimagic's OptimizeResult object."""
597+
598+
algorithm: str
599+
history: Any
600+
params: Any
601+
algorithm_output: dict

0 commit comments

Comments
 (0)