diff --git a/doc/source/examples/01_pysimai_ex/04-non_parametric_optimization.py b/doc/source/examples/01_pysimai_ex/04-non_parametric_optimization.py index 15bfa5ff..f0eed913 100644 --- a/doc/source/examples/01_pysimai_ex/04-non_parametric_optimization.py +++ b/doc/source/examples/01_pysimai_ex/04-non_parametric_optimization.py @@ -117,7 +117,6 @@ import os import ansys.simai.core as asc -from ansys.simai.core.data.optimizations import Optimization from ansys.simai.core.data.predictions import Prediction ORGANIZATION_NAME = "" @@ -213,9 +212,7 @@ # Get the optimization ID for either a server-side or legacy optimization, # and print the generated geometries and objective values: -optimization_id = ( - optimization.id if isinstance(optimization, Optimization) else optimization.optimization.id -) +optimization_id = optimization.optimization.id print(f"Optimization ID: {optimization_id}") print(f"Generated geometries: {[geo.name for geo in optimization.list_geometries()]}") diff --git a/src/ansys/simai/core/data/optimizations.py b/src/ansys/simai/core/data/optimizations.py index 4eb8c67d..7b5f24c1 100644 --- a/src/ansys/simai/core/data/optimizations.py +++ b/src/ansys/simai/core/data/optimizations.py @@ -26,6 +26,7 @@ from typing import Any, Dict, List, Literal, Optional, Union from tqdm import tqdm +from typing_extensions import Self from wakepy import keep from ansys.simai.core.data.base import ComputableDataModel, Directory @@ -73,6 +74,11 @@ def __init__(self, *args, **kwargs): self._geometries = None self._objectives = None + @property + def optimization(self) -> Self: + """Returns self. Present for backwards compatibility with LegacyOptimizationResult.""" + return self + @property def iteration_results(self) -> Optional[List[Dict]]: """List of iteration results generated by the optimization.""" diff --git a/tests/test_optimizations.py b/tests/test_optimizations.py index a1ebe256..a4f743fb 100644 --- a/tests/test_optimizations.py +++ b/tests/test_optimizations.py @@ -410,6 +410,7 @@ def test_run_non_parametric_optimization(simai_client, geometry_factory, model_f assert isinstance(result, Optimization) assert not result.is_ready + assert result.optimization.id == "theid" iteration_results = [ {