Source code for opstool.utils._load_ops_examples

from ._util_funcs import get_random_color_rich
from .consts import CONFIGS

CONSOLE = CONFIGS.get_console()
PKG_PREFIX = CONFIGS.get_pkg_prefix()


[docs] def run_model(filepath: str): """ Run your OpenSees model python file. Parameters ---------- filepath: str OpenSees model python file path. Example -------- >>> file_path = 'model.py' # in the current directory >>> # file_path = "path/to/your/model.py" >>> run_model(file_path) Returns -------- None """ if not filepath.endswith(".py"): filepath += ".py" with open(filepath, "r") as f: exec(f.read())
[docs] def load_ops_examples(name: str): # noqa: C901 """Run the pre-built OpenSeesPy model examples in this package. Parameters: ----------- name: str, Optional, "ArchBridge", "ArchBridge-2", "CableStayedBridge", "SuspensionBridge", "TrussBridge", "Frame3D", "Frame3D-2", "GridFrame", "Shell3D", "Dam-Brick", "Igloo-Brick", "Pier-Brick", "DamBreak", "FiberSection". Example -------- >>> load_ops_examples("SuspensionBridge") Returns: -------- None """ if name.lower() == "archbridge": from .ops_models.ArchBridge import ArchBridge ArchBridge() # exec("from opstool.ops_models.ArchBridge import *") elif name.lower() in ["archbridge2", "archbridge-2"]: from .ops_models.ArchBridge2 import ArchBridge2 ArchBridge2() # exec("from opstool.ops_models.ArchBridge2 import *") elif name.lower() == "trussbridge": from .ops_models.TrussBridge import TrussBridge TrussBridge() # exec("from opstool.ops_models.TrussBridge import *") elif name.lower() == "cablestayedbridge": from .ops_models.CableStayedBridge import CableStayedBridge CableStayedBridge() # exec("from opstool.ops_models.CableStayedBridge import *") elif name.lower() == "dam-brick": from .ops_models.Dam import Dam Dam() # exec("from opstool.ops_models.Dam import *") elif name.lower() == "frame3d": from .ops_models.Frame3D import Frame3D Frame3D() # exec("from opstool.ops_models.Frame3D import *") elif name.lower() in ["frame3d-2", "frame3d2"]: from .ops_models.Frame3D2 import Frame3D2 Frame3D2() elif name.lower() == "igloo-brick": from .ops_models.Igloo import Igloo Igloo() # exec("from opstool.ops_models.Igloo import *") elif name.lower() == "pier-brick": from .ops_models.Pier import Pier Pier() # exec("from opstool.ops_models.Pier import *") elif name.lower() == "suspensionbridge": from .ops_models.SuspensionBridge import SuspensionBridge SuspensionBridge() # exec("from opstool.ops_models.SuspensionBridge import *") elif name.lower() == "fibersection": from .ops_models.FiberSec import FiberSection FiberSection() # exec("from opstool.ops_models.SDOF import *") elif name.lower() == "dambreak": from .ops_models.DamBreak import DamBreak DamBreak() # exec("from opstool.ops_models.DamBreak import *") elif name.lower() == "gridframe": from .ops_models.GridFrame import GridFrame GridFrame() elif name.lower() == "shell3d": from .ops_models.shell3D import Shell3D Shell3D() else: txt = get_random_color_rich(name, style="bold") CONSOLE.print(f"{PKG_PREFIX}Not supported example {txt}!") CONFIGS.CONSOLE.print(f"{PKG_PREFIX}Now try treating {txt} as your own model file and run it!") run_model(name)