simdb.database.models.simulation module

class simdb.database.models.simulation.MetaDataWrapper(element: str, value: Any)[source]

Bases: object

Temporary wrapper to provide backwards compatibility with MetaData interface.

data(recurse: bool = False) dict[str, Any][source]
to_model() MetadataData[source]
class simdb.database.models.simulation.Simulation(manifest, config=None)[source]

Bases: Base

Class to represent simulations in the database ORM.

class Status(value)[source]

Bases: Enum

ACCEPTED = 'accepted'
DELETED = 'deleted'
DEPRECATED = 'deprecated'
FAILED = 'failed'
NOT_VALIDATED = 'not validated'
PASSED = 'passed'
alias
data(recurse: bool = False, meta_keys: list[str] | None = None) dict[str, Any][source]

Serialise the Simulation.

Parameters:
recurse: bool = False

If True also serialise any contained models, otherwise only serialise simple fields.

Returns:

The serialised data.

datetime
file_paths() set[Path][source]
find_meta(name: str) list[Any][source]
classmethod from_data(data: dict[str, str | dict | list]) Simulation[source]

Create a Model from serialised data.

Parameters:
data: dict[str, str | dict | list]

Serialised model data.

Returns:

The created model.

classmethod from_data_model(data: SimulationData) Simulation[source]
id
inputs : List[File]
property meta : list[MetaDataWrapper]

Property to provide backwards compatibility. Returns a list of MetaDataWrapper objects from the JSON metadata.

meta_dict() dict[str, dict | Any][source]
outputs : List[File]
remove_meta(name: str) None[source]
set_meta(name: str, value: Any) None[source]
property status : Status | None
to_model(recurse: bool = False, meta_keys: list[str] | None = None) SimulationData[source]
to_model_trace(recurse: bool = False, meta_keys: list[str] | None = None) SimulationTraceData[source]
to_model_with_refs(recurse: bool = False, meta_keys: list[str] | None = None) SimulationDataResponse[source]
uuid
validate_meta() None[source]

Check the metadata elements for duplicates, throwing an exception if found.

With JSON storage, duplicates are not possible by design (dict keys are unique), but we keep this method for backwards compatibility.

watchers : List[Watcher]