Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions engibench/problems/airfoil/fake_pyoptsparse/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
"""Drop-in module for pyoptsparse to unpickle ahistory when pyoptsparse is not installed."""

from types import ModuleType


class FakePyOptSparseObject:
"""Drop-in for objects needed to unpickle a pyoptsparse history when pyoptsparse is not installed."""

def __init__(self, *args, **kwargs) -> None:
self.args = args
self.kwargs = kwargs

def _mapContoOpt_Dict(self, d): # noqa: N802
return d

def _mapXtoOpt_Dict(self, d): # noqa: N802
return d

def _mapObjtoOpt_Dict(self, d): # noqa: N802
return d


class Optimization(FakePyOptSparseObject):
"""Drop-in."""


class Variable(FakePyOptSparseObject):
"""Drop-in."""


class Constraint(FakePyOptSparseObject):
"""Drop-in."""


class Objective(FakePyOptSparseObject):
"""Drop-in."""
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# noqa: N999
"""Drop-in."""

from engibench.problems.airfoil.fake_pyoptsparse import FakePyOptSparseObject as Constraint

__all__ = ["Constraint"]
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# noqa: N999
"""Drop-in."""

from engibench.problems.airfoil.fake_pyoptsparse import FakePyOptSparseObject as Objective

__all__ = ["Objective"]
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# noqa: N999
"""Drop-in."""

from engibench.problems.airfoil.fake_pyoptsparse import FakePyOptSparseObject as Optimization

__all__ = ["Optimization"]
6 changes: 6 additions & 0 deletions engibench/problems/airfoil/fake_pyoptsparse/pyOpt_variable.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# noqa: N999
"""Drop-in."""

from engibench.problems.airfoil.fake_pyoptsparse import FakePyOptSparseObject as Variable

__all__ = ["Variable"]
8 changes: 8 additions & 0 deletions engibench/problems/airfoil/v0.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,10 @@
import dataclasses
from dataclasses import dataclass
from dataclasses import field
import importlib
import os
import shutil
import sys
from typing import Annotated, Any

from gymnasium import spaces
Expand All @@ -44,6 +46,12 @@
from engibench.utils.files import clone_dir
from engibench.utils.files import replace_template_values

# Allow loading pyoptsparse histories even if pyoptsparse is not installed:
if importlib.util.find_spec("pyoptsparse") is None:
from engibench.problems.airfoil import fake_pyoptsparse

sys.modules["pyoptsparse"] = fake_pyoptsparse

DesignType = dict[str, Any]


Expand Down
Loading