Launching of simulation application
This commit is contained in:
@@ -1,11 +1,59 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from collections.abc import Mapping
|
||||
from dataclasses import dataclass, field
|
||||
from enum import Enum
|
||||
from dataclasses import dataclass
|
||||
from typing import Any
|
||||
|
||||
from bedit_core.models import ComponentID
|
||||
from bedit_gui.models import Simulation
|
||||
|
||||
|
||||
@dataclass
|
||||
class CompiledModel:
|
||||
model_name: str
|
||||
executable: str
|
||||
working_directory: str
|
||||
|
||||
@classmethod
|
||||
def from_data(cls, data: Mapping[str, Any]) -> CompiledModel:
|
||||
return cls(model_name=str(data["model_name"]), executable=str(data["executable"]), working_directory=str(data["working_directory"]))
|
||||
|
||||
def to_data(self) -> dict[str, Any]:
|
||||
return {"model_name": self.model_name, "executable": self.executable, "working_directory": self.working_directory}
|
||||
|
||||
|
||||
@dataclass
|
||||
class SimulationRoot:
|
||||
format_version: int = 1
|
||||
model_file_path: str | None # The file path of the BEdit file if there is one
|
||||
format_version: int
|
||||
source_document: str | None
|
||||
source_document_id: str | None
|
||||
component: ComponentID
|
||||
component_path: str
|
||||
settings_name: str | None
|
||||
settings: Simulation
|
||||
|
||||
@classmethod
|
||||
def from_data(cls, data: Mapping[str, Any]) -> SimulationRoot:
|
||||
if data.get("root_type") != "simulation_root":
|
||||
raise ValueError("file does not contain a simulation root")
|
||||
return cls(
|
||||
format_version=int(data.get("format_version", 1)),
|
||||
source_document=str(data["source_document"]) if data.get("source_document") is not None else None,
|
||||
source_document_id=str(data["source_document_id"]) if data.get("source_document_id") is not None else None,
|
||||
component=ComponentID(str(data["component"])),
|
||||
component_path=str(data.get("component_path", "")),
|
||||
settings_name=str(data["settings_name"]) if data.get("settings_name") is not None else None,
|
||||
settings=Simulation.from_data(data["settings"]),
|
||||
)
|
||||
|
||||
def to_data(self) -> dict[str, Any]:
|
||||
return {
|
||||
"root_type": "simulation_root",
|
||||
"format_version": self.format_version,
|
||||
"source_document": self.source_document,
|
||||
"source_document_id": self.source_document_id,
|
||||
"component": str(self.component),
|
||||
"component_path": self.component_path,
|
||||
"settings_name": self.settings_name,
|
||||
"settings": self.settings.to_data(),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user