simdb.database.models package

class simdb.database.models.Base(**kwargs)

Bases: BaseModel

Base model for ORM classes.

metadata = MetaData()
registry = <sqlalchemy.orm.decl_api.registry object>
class simdb.database.models.File(type, uri, ids_list=None, perform_integrity_check=True, config=None)[source]

Bases: Base

Class to represent files in the database ORM.

checksum
data(recurse: bool = False) dict[str, str][source]

Serialise the File.

Parameters:
recurse: bool = False

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

Returns:

The serialised data.

datetime
classmethod from_data(data: dict) File[source]

Create a Model from serialised data.

Parameters:
data: dict

Serialised model data.

Returns:

The created model.

classmethod from_data_model(data: FileData) File[source]
generate_checksum(config, ids_list: list)[source]
get_creation_date() datetime[source]
id
to_model() FileData[source]
to_model_with_path() FileGetDataResponse[source]
type
uri : URI
uuid
class simdb.database.models.MetaData(key, value)[source]

Bases: Base

Class to represent metadata in the database ORM.

data(recurse: bool = False) dict[str, str][source]

Serialise the MetaData.

Parameters:
recurse: bool = False

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

Returns:

The serialised data.

element
classmethod from_data(data: dict) MetaData[source]

Create a Model from serialised data.

Parameters:
data: dict

Serialised model data.

Returns:

The created model.

classmethod from_data_model(data: MetadataData) MetaData[source]
id
sim_id
to_model() MetadataData[source]
value
class simdb.database.models.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]
class simdb.database.models.Watcher(username, email, notification)[source]

Bases: Base

Class to represent people watching simulations for updates.

NOTIFICATION_CHOICES : Final[Dict[Any, str]] = {Notification.ALL: 'A', Notification.OBSOLESCENCE: 'O', Notification.REVISION: 'R', Notification.VALIDATION: 'V'}
data(recurse: bool = False) dict[str, str][source]

Serialise the Watcher.

Parameters:
recurse: bool = False

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

Returns:

The serialised data.

email
classmethod from_data(data: dict) Watcher[source]

Create a Model from serialised data.

Parameters:
data: dict

Serialised model data.

Returns:

The created model.

id
notification
to_model() WatcherData[source]
username
validate_email(key, address)[source]

Submodules