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 0x7f04e959db00; 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
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 0x7f04e95a5860; 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 0x7f04e955d160; 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
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 0x7f04e956a438; 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
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 0x7f04e956aeb8; 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 0x7f04e950ebe0; 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 0x7f04e950e1d0; 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
inputs
inputs_q
label
mtime
node_type
outputs
outputs_q
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 0x7f04e951f748; 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 0x7f04e951fcf8; 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