aiida.backends.sqlalchemy.models package

Module to define the database models for the SqlAlchemy backend.

Submodules

class aiida.backends.sqlalchemy.models.authinfo.DbAuthInfo(*args, **kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Model

__init__(*args, **kwargs)
__mapper__ = <Mapper at 0x7f5b4555b6a0; DbAuthInfo>
__module__ = 'aiida.backends.sqlalchemy.models.authinfo'
__str__()[source]

Return str(self).

__table__ = Table('db_dbauthinfo', MetaData(bind=None), Column('id', Integer(), table=<db_dbauthinfo>, primary_key=True, nullable=False), Column('aiidauser_id', Integer(), ForeignKey('db_dbuser.id'), table=<db_dbauthinfo>), Column('dbcomputer_id', Integer(), ForeignKey('db_dbcomputer.id'), table=<db_dbauthinfo>), Column('metadata', JSONB(astext_type=Text()), table=<db_dbauthinfo>), Column('auth_params', JSONB(astext_type=Text()), table=<db_dbauthinfo>), Column('enabled', Boolean(), table=<db_dbauthinfo>, default=ColumnDefault(True)), schema=None)
__table_args__ = (UniqueConstraint(Column('aiidauser_id', Integer(), ForeignKey('db_dbuser.id'), table=<db_dbauthinfo>), Column('dbcomputer_id', Integer(), ForeignKey('db_dbcomputer.id'), table=<db_dbauthinfo>)),)
__tablename__ = 'db_dbauthinfo'
_metadata
_sa_class_manager = {'_metadata': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'aiidauser': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'aiidauser_id': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'auth_params': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'dbcomputer': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'dbcomputer_id': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'enabled': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'id': <sqlalchemy.orm.attributes.InstrumentedAttribute object>}
aiidauser
aiidauser_id
auth_params
dbcomputer
dbcomputer_id
enabled
id
class aiida.backends.sqlalchemy.models.base.Model[source]

Bases: object

__dict__ = mappingproxy({'__module__': 'aiida.backends.sqlalchemy.models.base', 'query': <aiida.backends.sqlalchemy.models.base._QueryProperty object>, 'session': <aiida.backends.sqlalchemy.models.base._SessionProperty object>, 'save': <function Model.save>, 'delete': <function Model.delete>, '__dict__': <attribute '__dict__' of 'Model' objects>, '__weakref__': <attribute '__weakref__' of 'Model' objects>, '__doc__': None})
__module__ = 'aiida.backends.sqlalchemy.models.base'
__weakref__

list of weak references to the object (if defined)

delete(commit=True)[source]

Emulate the behavior of Django’s delete() method

Parameters

commit – whether to do a commit or just remover from the session

query = None
save(commit=True)[source]

Emulate the behavior of Django’s save() method

Parameters

commit – whether to do a commit or just add to the session

Returns

the SQLAlchemy instance

session = <sqlalchemy.orm.session.Session object>
class aiida.backends.sqlalchemy.models.base._AiidaQuery(*args, **kwargs)[source]

Bases: sqlalchemy.orm.query.Query

__init__(*args, **kwargs)[source]

Constructor

__iter__()[source]
__module__ = 'aiida.backends.sqlalchemy.models.base'
class aiida.backends.sqlalchemy.models.base._QueryProperty(query_class=<class 'sqlalchemy.orm.query.Query'>)[source]

Bases: object

__dict__ = mappingproxy({'__module__': 'aiida.backends.sqlalchemy.models.base', '__init__': <function _QueryProperty.__init__>, '__get__': <function _QueryProperty.__get__>, '__dict__': <attribute '__dict__' of '_QueryProperty' objects>, '__weakref__': <attribute '__weakref__' of '_QueryProperty' objects>, '__doc__': None})
__get__(obj, _type)[source]
__init__(query_class=<class 'sqlalchemy.orm.query.Query'>)[source]

Initialize self. See help(type(self)) for accurate signature.

__module__ = 'aiida.backends.sqlalchemy.models.base'
__weakref__

list of weak references to the object (if defined)

class aiida.backends.sqlalchemy.models.base._SessionProperty[source]

Bases: object

__dict__ = mappingproxy({'__module__': 'aiida.backends.sqlalchemy.models.base', '__get__': <function _SessionProperty.__get__>, '__dict__': <attribute '__dict__' of '_SessionProperty' objects>, '__weakref__': <attribute '__weakref__' of '_SessionProperty' objects>, '__doc__': None})
__get__(obj, _type)[source]
__module__ = 'aiida.backends.sqlalchemy.models.base'
__weakref__

list of weak references to the object (if defined)

class aiida.backends.sqlalchemy.models.comment.DbComment(*args, **kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Model

__init__(*args, **kwargs)
__mapper__ = <Mapper at 0x7f5b454f5048; DbComment>
__module__ = 'aiida.backends.sqlalchemy.models.comment'
__str__()[source]

Return str(self).

__table__ = Table('db_dbcomment', MetaData(bind=None), Column('id', Integer(), table=<db_dbcomment>, primary_key=True, nullable=False), Column('uuid', UUID(as_uuid=True), table=<db_dbcomment>, default=ColumnDefault(<function get_new_uuid>)), Column('dbnode_id', Integer(), ForeignKey('db_dbnode.id'), table=<db_dbcomment>), Column('ctime', DateTime(timezone=True), table=<db_dbcomment>, default=ColumnDefault(<function now>)), Column('mtime', DateTime(timezone=True), table=<db_dbcomment>, onupdate=ColumnDefault(<function now>), default=ColumnDefault(<function now>)), Column('user_id', Integer(), ForeignKey('db_dbuser.id'), table=<db_dbcomment>), Column('content', Text(), table=<db_dbcomment>), schema=None)
__tablename__ = 'db_dbcomment'
_sa_class_manager = {'content': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'ctime': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'dbnode': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'dbnode_id': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'id': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'mtime': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'user': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'user_id': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'uuid': <sqlalchemy.orm.attributes.InstrumentedAttribute object>}
content
ctime
dbnode
dbnode_id
id
mtime
user
user_id
uuid
class aiida.backends.sqlalchemy.models.computer.DbComputer(*args, **kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Model

__init__(*args, **kwargs)
__mapper__ = <Mapper at 0x7f5b454f5860; DbComputer>
__module__ = 'aiida.backends.sqlalchemy.models.computer'
__str__()[source]

Return str(self).

__table__ = Table('db_dbcomputer', MetaData(bind=None), Column('id', Integer(), table=<db_dbcomputer>, primary_key=True, nullable=False), Column('uuid', UUID(as_uuid=True), table=<db_dbcomputer>, default=ColumnDefault(<function get_new_uuid>)), Column('name', String(length=255), table=<db_dbcomputer>, nullable=False), Column('hostname', String(length=255), table=<db_dbcomputer>), Column('description', Text(), table=<db_dbcomputer>), Column('scheduler_type', String(length=255), table=<db_dbcomputer>), Column('transport_type', String(length=255), table=<db_dbcomputer>), Column('metadata', JSONB(astext_type=Text()), table=<db_dbcomputer>), schema=None)
__tablename__ = 'db_dbcomputer'
_metadata
_sa_class_manager = {'_metadata': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'authinfos': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'dbnodes': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'description': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'hostname': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'id': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'name': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'scheduler_type': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'transport_type': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'uuid': <sqlalchemy.orm.attributes.InstrumentedAttribute object>}
authinfos
dbnodes
description
hostname
id
name
property pk
scheduler_type
transport_type
uuid
class aiida.backends.sqlalchemy.models.group.DbGroup(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Model

__init__(**kwargs)

A simple constructor that allows initialization from kwargs.

Sets attributes on the constructed instance using the names and values in kwargs.

Only keys that are present as attributes of the instance’s class are allowed. These could be, for example, any mapped columns or relationships.

__mapper__ = <Mapper at 0x7f5b455085f8; DbGroup>
__module__ = 'aiida.backends.sqlalchemy.models.group'
__str__()[source]

Return str(self).

__table__ = Table('db_dbgroup', MetaData(bind=None), Column('id', Integer(), table=<db_dbgroup>, primary_key=True, nullable=False), Column('uuid', UUID(as_uuid=True), table=<db_dbgroup>, default=ColumnDefault(<function get_new_uuid>)), Column('label', String(length=255), table=<db_dbgroup>), Column('type_string', String(length=255), table=<db_dbgroup>, default=ColumnDefault('')), Column('time', DateTime(timezone=True), table=<db_dbgroup>, default=ColumnDefault(<function now>)), Column('description', Text(), table=<db_dbgroup>), Column('user_id', Integer(), ForeignKey('db_dbuser.id'), table=<db_dbgroup>), schema=None)
__table_args__ = (UniqueConstraint(Column('label', String(length=255), table=<db_dbgroup>), Column('type_string', String(length=255), table=<db_dbgroup>, default=ColumnDefault(''))),)
__tablename__ = 'db_dbgroup'
_sa_class_manager = {'dbnodes': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'description': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'id': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'label': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'time': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'type_string': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'user': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'user_id': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'uuid': <sqlalchemy.orm.attributes.InstrumentedAttribute object>}
dbnodes
description
id
label
property pk
time
type_string
user
user_id
uuid
class aiida.backends.sqlalchemy.models.log.DbLog(time, loggername, levelname, dbnode_id, uuid=None, message=None, metadata=None)[source]

Bases: sqlalchemy.ext.declarative.api.Model

__init__(time, loggername, levelname, dbnode_id, uuid=None, message=None, metadata=None)
__mapper__ = <Mapper at 0x7f5b4553df28; DbLog>
__module__ = 'aiida.backends.sqlalchemy.models.log'
__str__()[source]

Return str(self).

__table__ = Table('db_dblog', MetaData(bind=None), Column('id', Integer(), table=<db_dblog>, primary_key=True, nullable=False), Column('uuid', UUID(as_uuid=True), table=<db_dblog>, default=ColumnDefault(<function get_new_uuid>)), Column('time', DateTime(timezone=True), table=<db_dblog>, default=ColumnDefault(<function now>)), Column('loggername', String(length=255), table=<db_dblog>), Column('levelname', String(length=255), table=<db_dblog>), Column('dbnode_id', Integer(), ForeignKey('db_dbnode.id'), table=<db_dblog>, nullable=False), Column('message', Text(), table=<db_dblog>), Column('metadata', JSONB(astext_type=Text()), table=<db_dblog>), schema=None)
__tablename__ = 'db_dblog'
_metadata
_sa_class_manager = {'_metadata': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'dbnode': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'dbnode_id': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'id': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'levelname': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'loggername': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'message': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'time': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'uuid': <sqlalchemy.orm.attributes.InstrumentedAttribute object>}
dbnode
dbnode_id
id
levelname
loggername
message
time
uuid

Bases: sqlalchemy.ext.declarative.api.Model

__init__(**kwargs)

A simple constructor that allows initialization from kwargs.

Sets attributes on the constructed instance using the names and values in kwargs.

Only keys that are present as attributes of the instance’s class are allowed. These could be, for example, any mapped columns or relationships.

__mapper__ = <Mapper at 0x7f5b4552b860; DbLink>
__module__ = 'aiida.backends.sqlalchemy.models.node'
__str__()[source]

Return str(self).

__table__ = Table('db_dblink', MetaData(bind=None), Column('id', Integer(), table=<db_dblink>, primary_key=True, nullable=False), Column('input_id', Integer(), ForeignKey('db_dbnode.id'), table=<db_dblink>), Column('output_id', Integer(), ForeignKey('db_dbnode.id'), table=<db_dblink>), Column('label', String(length=255), table=<db_dblink>, nullable=False), Column('type', String(length=255), table=<db_dblink>), schema=None)
__table_args__ = ()
__tablename__ = 'db_dblink'
_sa_class_manager = {'id': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'input': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'input_id': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'label': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'output': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'output_id': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'type': <sqlalchemy.orm.attributes.InstrumentedAttribute object>}
id
input
input_id
label
output
output_id
type
class aiida.backends.sqlalchemy.models.node.DbNode(*args, **kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Model

__init__(*args, **kwargs)
__mapper__ = <Mapper at 0x7f5b4552e438; DbNode>
__module__ = 'aiida.backends.sqlalchemy.models.node'
__str__()[source]

Return str(self).

__table__ = Table('db_dbnode', MetaData(bind=None), Column('id', Integer(), table=<db_dbnode>, primary_key=True, nullable=False), Column('uuid', UUID(as_uuid=True), table=<db_dbnode>, default=ColumnDefault(<function get_new_uuid>)), Column('node_type', String(length=255), table=<db_dbnode>), Column('process_type', String(length=255), table=<db_dbnode>), Column('label', String(length=255), table=<db_dbnode>, default=ColumnDefault('')), Column('description', Text(), table=<db_dbnode>, default=ColumnDefault('')), Column('ctime', DateTime(timezone=True), table=<db_dbnode>, default=ColumnDefault(<function now>)), Column('mtime', DateTime(timezone=True), table=<db_dbnode>, onupdate=ColumnDefault(<function now>), default=ColumnDefault(<function now>)), Column('attributes', JSONB(astext_type=Text()), table=<db_dbnode>), Column('extras', JSONB(astext_type=Text()), table=<db_dbnode>), Column('dbcomputer_id', Integer(), ForeignKey('db_dbcomputer.id'), table=<db_dbnode>), Column('user_id', Integer(), ForeignKey('db_dbuser.id'), table=<db_dbnode>, nullable=False), schema=None)
__tablename__ = 'db_dbnode'
_sa_class_manager = {'attributes': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'ctime': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'dbcomments': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'dbcomputer': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'dbcomputer_id': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'dbgroups': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'dblogs': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'description': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'extras': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'id': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'inputs_q': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'label': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'mtime': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'node_type': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'outputs_q': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'process_type': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'user': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'user_id': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'uuid': <sqlalchemy.orm.attributes.InstrumentedAttribute object>}
attributes
ctime
dbcomments
dbcomputer
dbcomputer_id
dbgroups
dblogs
description
extras
get_simple_name(invalid_result=None)[source]

Return a string with the last part of the type name.

If the type is empty, use ‘Node’. If the type is invalid, return the content of the input variable invalid_result.

Parameters

invalid_result – The value to be returned if the node type is not recognized.

id
property inputs
inputs_q
label
mtime
node_type
property outputs
outputs_q
property pk
process_type
user
user_id
uuid
class aiida.backends.sqlalchemy.models.settings.DbSetting(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Model

__init__(**kwargs)

A simple constructor that allows initialization from kwargs.

Sets attributes on the constructed instance using the names and values in kwargs.

Only keys that are present as attributes of the instance’s class are allowed. These could be, for example, any mapped columns or relationships.

__mapper__ = <Mapper at 0x7f5b454cf518; DbSetting>
__module__ = 'aiida.backends.sqlalchemy.models.settings'
__str__()[source]

Return str(self).

__table__ = Table('db_dbsetting', MetaData(bind=None), Column('id', Integer(), table=<db_dbsetting>, primary_key=True, nullable=False), Column('key', String(length=255), table=<db_dbsetting>, nullable=False), Column('val', JSONB(astext_type=Text()), table=<db_dbsetting>, default=ColumnDefault({})), Column('description', String(length=255), table=<db_dbsetting>, nullable=False, default=ColumnDefault('')), Column('time', DateTime(timezone=True), table=<db_dbsetting>, onupdate=ColumnDefault(<function now>), default=ColumnDefault(<UTC>)), schema=None)
__table_args__ = (UniqueConstraint(Column('key', String(length=255), table=<db_dbsetting>, nullable=False)),)
__tablename__ = 'db_dbsetting'
_sa_class_manager = {'description': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'id': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'key': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'time': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'val': <sqlalchemy.orm.attributes.InstrumentedAttribute object>}
classmethod del_value(key, only_children=False, subspecifier_value=None)[source]
description
get_description()[source]

This can be called on a given row and will get the corresponding description.

getvalue()[source]

This can be called on a given row and will get the corresponding value.

id
key
classmethod set_value(key, value, with_transaction=True, subspecifier_value=None, other_attribs={}, stop_if_existing=False)[source]
time
val
class aiida.backends.sqlalchemy.models.user.DbUser(email, first_name='', last_name='', institution='', **kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Model

__init__(email, first_name='', last_name='', institution='', **kwargs)
__mapper__ = <Mapper at 0x7f5b45472080; DbUser>
__module__ = 'aiida.backends.sqlalchemy.models.user'
__str__()[source]

Return str(self).

__table__ = Table('db_dbuser', MetaData(bind=None), Column('id', Integer(), table=<db_dbuser>, primary_key=True, nullable=False), Column('email', String(length=254), table=<db_dbuser>), Column('first_name', String(length=254), table=<db_dbuser>), Column('last_name', String(length=254), table=<db_dbuser>), Column('institution', String(length=254), table=<db_dbuser>), schema=None)
__tablename__ = 'db_dbuser'
_sa_class_manager = {'authinfos': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'dbgroups': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'dbnodes': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'email': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'first_name': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'id': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'institution': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'last_name': <sqlalchemy.orm.attributes.InstrumentedAttribute object>}
authinfos
dbgroups
dbnodes
email
first_name
id
institution
last_name