simdb.database.models.simulation module

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: str
data(recurse: bool = False, meta_keys: List[str] | None = None) Dict[str, str | List][source]

Serialise the Simulation.

Parameters:

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

Returns:

The serialised data.

datetime: Column('datetime', DateTime(), table=<simulations>, nullable=False)
file_paths() Set[Path][source]
find_meta(name: str) List[MetaData][source]
classmethod from_data(data: Dict[str, str | Dict | List]) Simulation[source]

Create a Model from serialised data.

Parameters:

data – Serialised model data.

Returns:

The created model.

id
inputs: List[File]
meta: List[MetaData]
meta_dict() Dict[str, Dict | Any][source]
outputs: List[File]
remove_meta(name: str) None[source]
set_meta(name: str, value: str) None[source]
property status: Status | None
uuid
validate_meta() None[source]

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

Duplicates should not be possible but if there is an issue causing them to arise then at least it will be caught early rather than causing an SQL constraint failure later.

watchers: List[Watcher]