DOEScenario is not serializable
Summary
DOEScenario
is not serializable.
Gemseo version
develop
Platform info
Windows
Environment info
pipx / venv / py39
Steps to reproduce
from gemseo.api import configure_logger
from gemseo.api import create_discipline
from gemseo.api import create_scenario
from gemseo.core.doe_scenario import DOEScenario
from gemseo.problems.sobieski.core.problem import SobieskiProblem
configure_logger()
disciplines = create_discipline(
[
"SobieskiPropulsion",
"SobieskiAerodynamics",
"SobieskiMission",
"SobieskiStructure",
]
)
design_space = SobieskiProblem().design_space
scenario = create_scenario(
disciplines,
"MDF",
objective_name="y_4",
design_space=design_space,
maximize_objective=True,
scenario_type="DOE",
)
for c_name in ["g_1", "g_2", "g_3"]:
scenario.add_constraint(c_name, "ineq")
scenario.serialize("scenario.h5")
scn_inputs = {"n_samples": 10, "algo": "fullfact"}
scenario.execute(scn_inputs)
saved_scenario = DOEScenario.deserialize("scenario.h5")
saved_scenario.execute(scn_inputs)
What is the current bug behavior?
An attribute error is raised because saved_scenario
does not have an attribute disciplines
.
What is the expected correct behavior?
No errors.
Relevant logs and/or screenshots
File "C:\Users\matthias.delozzo\workspace\GEMSEO\gemseo\src\gemseo\core\scenario.py", line 468, in __repr__
msg.add("Disciplines: {}", pretty_repr(self.disciplines, delimiter=" "))
AttributeError: 'DOEScenario' object has no attribute 'disciplines'
Possible fixes
Move MDOScenario._ATTR_TO_SERIALIZE
to Scenario._ATTR_TO_SERIALIZE
and add "seed"
in DOEScenario._ATTR_TO_SERIALIZE