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 – 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 – Serialised model data.

Returns:

The created model.

generate_checksum(config, ids_list: list)[source]
get_creation_date() -> Column('datetime', DateTime(), table=<files>, nullable=False)[source]
id
type: 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 – 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 – Serialised model data.

Returns:

The created model.

id
sim_id
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: 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]
class simdb.database.models.Watcher(username, email, notification)[source]

Bases: Base

Class to represent people watching simulations for updates.

NOTIFICATION_CHOICES = {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 – 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 – Serialised model data.

Returns:

The created model.

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

Submodules