Warning

This page was created from a pull request (#24).

aiida_restapi package

Submodules

aiida_restapi.aiida_db_mappings module

The ‘source of truth’ for mapping AiiDA’s database table models to pydantic models.

Note in the future we may want to do this programmatically, however, there are two issues: - AiiDA uses both SQLAlchemy and Django backends, so one would need to be chosen - Neither model includes descriptions of fields

class aiida_restapi.aiida_db_mappings.AuthInfo(*, id, aiidauser_id, dbcomputer_id, metadata=None, auth_params=None, enabled=True)[source]

Bases: pydantic.main.BaseModel

AiiDA AuthInfo SQL table fields.

__abstractmethods__ = frozenset({})
__annotations__ = {'aiidauser_id': <class 'int'>, 'auth_params': <class 'pydantic.types.Json'>, 'dbcomputer_id': <class 'int'>, 'enabled': <class 'bool'>, 'id': <class 'int'>, 'metadata': <class 'pydantic.types.Json'>}
__class_vars__ = {}
__config__

alias of aiida_restapi.aiida_db_mappings.Config

__custom_root_type__ = False
__fields__ = {'aiidauser_id': ModelField(name='aiidauser_id', type=int, required=True), 'auth_params': ModelField(name='auth_params', type=Optional[Any], required=False, default=None), 'dbcomputer_id': ModelField(name='dbcomputer_id', type=int, required=True), 'enabled': ModelField(name='enabled', type=bool, required=False, default=True), 'id': ModelField(name='id', type=int, required=True), 'metadata': ModelField(name='metadata', type=Optional[Any], required=False, default=None)}
__hash__ = None
static __json_encoder__(obj)
__module__ = 'aiida_restapi.aiida_db_mappings'
__post_root_validators__ = []
__pre_root_validators__ = []
__private_attributes__ = {}
__schema_cache__ = {}
__signature__ = <Signature (*, id: int, aiidauser_id: int, dbcomputer_id: int, metadata: pydantic.types.Json = None, auth_params: pydantic.types.Json = None, enabled: bool = True) -> None>
__slots__ = {}
__validators__ = {}
_abc_impl = <_abc_data object>
aiidauser_id: int
auth_params: pydantic.types.Json
dbcomputer_id: int
enabled: bool
id: int
metadata: pydantic.types.Json
class aiida_restapi.aiida_db_mappings.Comment(*, id, uuid, ctime, mtime, content=None, user_id, dbnode_id)[source]

Bases: pydantic.main.BaseModel

AiiDA Comment SQL table fields.

__abstractmethods__ = frozenset({})
__annotations__ = {'content': typing.Union[str, NoneType], 'ctime': <class 'datetime.datetime'>, 'dbnode_id': <class 'int'>, 'id': <class 'int'>, 'mtime': <class 'datetime.datetime'>, 'user_id': <class 'int'>, 'uuid': <class 'uuid.UUID'>}
__class_vars__ = {}
__config__

alias of aiida_restapi.aiida_db_mappings.Config

__custom_root_type__ = False
__fields__ = {'content': ModelField(name='content', type=Optional[str], required=False, default=None), 'ctime': ModelField(name='ctime', type=datetime, required=True), 'dbnode_id': ModelField(name='dbnode_id', type=int, required=True), 'id': ModelField(name='id', type=int, required=True), 'mtime': ModelField(name='mtime', type=datetime, required=True), 'user_id': ModelField(name='user_id', type=int, required=True), 'uuid': ModelField(name='uuid', type=UUID, required=True)}
__hash__ = None
static __json_encoder__(obj)
__module__ = 'aiida_restapi.aiida_db_mappings'
__post_root_validators__ = []
__pre_root_validators__ = []
__private_attributes__ = {}
__schema_cache__ = {}
__signature__ = <Signature (*, id: int, uuid: uuid.UUID, ctime: datetime.datetime, mtime: datetime.datetime, content: str = None, user_id: int, dbnode_id: int) -> None>
__slots__ = {}
__validators__ = {}
_abc_impl = <_abc_data object>
content: Optional[str]
ctime: datetime.datetime
dbnode_id: int
id: int
mtime: datetime.datetime
user_id: int
uuid: uuid.UUID
class aiida_restapi.aiida_db_mappings.Computer(*, id, uuid, name, hostname, description=None, scheduler_type, transport_type, metadata=None)[source]

Bases: pydantic.main.BaseModel

AiiDA Computer SQL table fields.

__abstractmethods__ = frozenset({})
__annotations__ = {'description': typing.Union[str, NoneType], 'hostname': <class 'str'>, 'id': <class 'int'>, 'metadata': <class 'pydantic.types.Json'>, 'name': <class 'str'>, 'scheduler_type': <class 'str'>, 'transport_type': <class 'str'>, 'uuid': <class 'uuid.UUID'>}
__class_vars__ = {}
__config__

alias of aiida_restapi.aiida_db_mappings.Config

__custom_root_type__ = False
__fields__ = {'description': ModelField(name='description', type=Optional[str], required=False, default=None), 'hostname': ModelField(name='hostname', type=str, required=True), 'id': ModelField(name='id', type=int, required=True), 'metadata': ModelField(name='metadata', type=Optional[Any], required=False, default=None), 'name': ModelField(name='name', type=str, required=True), 'scheduler_type': ModelField(name='scheduler_type', type=str, required=True), 'transport_type': ModelField(name='transport_type', type=str, required=True), 'uuid': ModelField(name='uuid', type=UUID, required=True)}
__hash__ = None
static __json_encoder__(obj)
__module__ = 'aiida_restapi.aiida_db_mappings'
__post_root_validators__ = []
__pre_root_validators__ = []
__private_attributes__ = {}
__schema_cache__ = {}
__signature__ = <Signature (*, id: int, uuid: uuid.UUID, name: str, hostname: str, description: str = None, scheduler_type: str, transport_type: str, metadata: pydantic.types.Json = None) -> None>
__slots__ = {}
__validators__ = {}
_abc_impl = <_abc_data object>
description: Optional[str]
hostname: str
id: int
metadata: pydantic.types.Json
name: str
scheduler_type: str
transport_type: str
uuid: uuid.UUID
class aiida_restapi.aiida_db_mappings.Group(*, id, uuid, label, type_string, time, description=None, extras=None, user_id)[source]

Bases: pydantic.main.BaseModel

AiiDA Group SQL table fields.

__abstractmethods__ = frozenset({})
__annotations__ = {'description': typing.Union[str, NoneType], 'extras': <class 'pydantic.types.Json'>, 'id': <class 'int'>, 'label': <class 'str'>, 'time': <class 'datetime.datetime'>, 'type_string': <class 'str'>, 'user_id': <class 'int'>, 'uuid': <class 'uuid.UUID'>}
__class_vars__ = {}
__config__

alias of aiida_restapi.aiida_db_mappings.Config

__custom_root_type__ = False
__fields__ = {'description': ModelField(name='description', type=Optional[str], required=False, default=None), 'extras': ModelField(name='extras', type=Optional[Any], required=False, default=None), 'id': ModelField(name='id', type=int, required=True), 'label': ModelField(name='label', type=str, required=True), 'time': ModelField(name='time', type=datetime, required=True), 'type_string': ModelField(name='type_string', type=str, required=True), 'user_id': ModelField(name='user_id', type=int, required=True), 'uuid': ModelField(name='uuid', type=UUID, required=True)}
__hash__ = None
static __json_encoder__(obj)
__module__ = 'aiida_restapi.aiida_db_mappings'
__post_root_validators__ = []
__pre_root_validators__ = []
__private_attributes__ = {}
__schema_cache__ = {}
__signature__ = <Signature (*, id: int, uuid: uuid.UUID, label: str, type_string: str, time: datetime.datetime, description: str = None, extras: pydantic.types.Json = None, user_id: int) -> None>
__slots__ = {}
__validators__ = {}
_abc_impl = <_abc_data object>
description: Optional[str]
extras: pydantic.types.Json
id: int
label: str
time: datetime.datetime
type_string: str
user_id: int
uuid: uuid.UUID

Bases: pydantic.main.BaseModel

AiiDA Link SQL table fields.

__abstractmethods__ = frozenset({})
__annotations__ = {'id': <class 'int'>, 'input_id': <class 'int'>, 'label': typing.Union[str, NoneType], 'output_id': <class 'int'>, 'type': <class 'str'>}
__class_vars__ = {}
__config__

alias of aiida_restapi.aiida_db_mappings.Config

__custom_root_type__ = False
__fields__ = {'id': ModelField(name='id', type=int, required=True), 'input_id': ModelField(name='input_id', type=int, required=True), 'label': ModelField(name='label', type=Optional[str], required=False, default=None), 'output_id': ModelField(name='output_id', type=int, required=True), 'type': ModelField(name='type', type=str, required=True)}
__hash__ = None
static __json_encoder__(obj)
__module__ = 'aiida_restapi.aiida_db_mappings'
__post_root_validators__ = []
__pre_root_validators__ = []
__private_attributes__ = {}
__schema_cache__ = {}
__signature__ = <Signature (*, id: int, input_id: int, output_id: int, label: str = None, type: str) -> None>
__slots__ = {}
__validators__ = {}
_abc_impl = <_abc_data object>
id: int
input_id: int
label: Optional[str]
output_id: int
type: str
class aiida_restapi.aiida_db_mappings.Log(*, id, uuid, time, loggername, levelname, message=None, metadata=None, dbnode_id)[source]

Bases: pydantic.main.BaseModel

AiiDA Log SQL table fields.

__abstractmethods__ = frozenset({})
__annotations__ = {'dbnode_id': <class 'int'>, 'id': <class 'int'>, 'levelname': <class 'str'>, 'loggername': <class 'str'>, 'message': typing.Union[str, NoneType], 'metadata': <class 'pydantic.types.Json'>, 'time': <class 'datetime.datetime'>, 'uuid': <class 'uuid.UUID'>}
__class_vars__ = {}
__config__

alias of aiida_restapi.aiida_db_mappings.Config

__custom_root_type__ = False
__fields__ = {'dbnode_id': ModelField(name='dbnode_id', type=int, required=True), 'id': ModelField(name='id', type=int, required=True), 'levelname': ModelField(name='levelname', type=str, required=True), 'loggername': ModelField(name='loggername', type=str, required=True), 'message': ModelField(name='message', type=Optional[str], required=False, default=None), 'metadata': ModelField(name='metadata', type=Optional[Any], required=False, default=None), 'time': ModelField(name='time', type=datetime, required=True), 'uuid': ModelField(name='uuid', type=UUID, required=True)}
__hash__ = None
static __json_encoder__(obj)
__module__ = 'aiida_restapi.aiida_db_mappings'
__post_root_validators__ = []
__pre_root_validators__ = []
__private_attributes__ = {}
__schema_cache__ = {}
__signature__ = <Signature (*, id: int, uuid: uuid.UUID, time: datetime.datetime, loggername: str, levelname: str, message: str = None, metadata: pydantic.types.Json = None, dbnode_id: int) -> None>
__slots__ = {}
__validators__ = {}
_abc_impl = <_abc_data object>
dbnode_id: int
id: int
levelname: str
loggername: str
message: Optional[str]
metadata: pydantic.types.Json
time: datetime.datetime
uuid: uuid.UUID
class aiida_restapi.aiida_db_mappings.Node(*, id, uuid, node_type, process_type, label, description, ctime, mtime, user_id, dbcomputer_id=None, attributes=None, extras=None)[source]

Bases: pydantic.main.BaseModel

AiiDA Node SQL table fields.

__abstractmethods__ = frozenset({})
__annotations__ = {'attributes': <class 'pydantic.types.Json'>, 'ctime': <class 'datetime.datetime'>, 'dbcomputer_id': typing.Union[int, NoneType], 'description': <class 'str'>, 'extras': <class 'pydantic.types.Json'>, 'id': <class 'int'>, 'label': <class 'str'>, 'mtime': <class 'datetime.datetime'>, 'node_type': <class 'str'>, 'process_type': <class 'str'>, 'user_id': <class 'int'>, 'uuid': <class 'uuid.UUID'>}
__class_vars__ = {}
__config__

alias of aiida_restapi.aiida_db_mappings.Config

__custom_root_type__ = False
__fields__ = {'attributes': ModelField(name='attributes', type=Optional[Any], required=False, default=None), 'ctime': ModelField(name='ctime', type=datetime, required=True), 'dbcomputer_id': ModelField(name='dbcomputer_id', type=Optional[int], required=False, default=None), 'description': ModelField(name='description', type=str, required=True), 'extras': ModelField(name='extras', type=Optional[Any], required=False, default=None), 'id': ModelField(name='id', type=int, required=True), 'label': ModelField(name='label', type=str, required=True), 'mtime': ModelField(name='mtime', type=datetime, required=True), 'node_type': ModelField(name='node_type', type=str, required=True), 'process_type': ModelField(name='process_type', type=str, required=True), 'user_id': ModelField(name='user_id', type=int, required=True), 'uuid': ModelField(name='uuid', type=UUID, required=True)}
__hash__ = None
static __json_encoder__(obj)
__module__ = 'aiida_restapi.aiida_db_mappings'
__post_root_validators__ = []
__pre_root_validators__ = []
__private_attributes__ = {}
__schema_cache__ = {}
__signature__ = <Signature (*, id: int, uuid: uuid.UUID, node_type: str, process_type: str, label: str, description: str, ctime: datetime.datetime, mtime: datetime.datetime, user_id: int, dbcomputer_id: int = None, attributes: pydantic.types.Json = None, extras: pydantic.types.Json = None) -> None>
__slots__ = {}
__validators__ = {}
_abc_impl = <_abc_data object>
attributes: pydantic.types.Json
ctime: datetime.datetime
dbcomputer_id: Optional[int]
description: str
extras: pydantic.types.Json
id: int
label: str
mtime: datetime.datetime
node_type: str
process_type: str
user_id: int
uuid: uuid.UUID
class aiida_restapi.aiida_db_mappings.User(*, id, email, first_name=None, last_name=None, institution=None)[source]

Bases: pydantic.main.BaseModel

AiiDA User SQL table fields.

__abstractmethods__ = frozenset({})
__annotations__ = {'email': <class 'str'>, 'first_name': typing.Union[str, NoneType], 'id': <class 'int'>, 'institution': typing.Union[str, NoneType], 'last_name': typing.Union[str, NoneType]}
__class_vars__ = {}
__config__

alias of aiida_restapi.aiida_db_mappings.Config

__custom_root_type__ = False
__fields__ = {'email': ModelField(name='email', type=str, required=True), 'first_name': ModelField(name='first_name', type=Optional[str], required=False, default=None), 'id': ModelField(name='id', type=int, required=True), 'institution': ModelField(name='institution', type=Optional[str], required=False, default=None), 'last_name': ModelField(name='last_name', type=Optional[str], required=False, default=None)}
__hash__ = None
static __json_encoder__(obj)
__module__ = 'aiida_restapi.aiida_db_mappings'
__post_root_validators__ = []
__pre_root_validators__ = []
__private_attributes__ = {}
__schema_cache__ = {}
__signature__ = <Signature (*, id: int, email: str, first_name: str = None, last_name: str = None, institution: str = None) -> None>
__slots__ = {}
__validators__ = {}
_abc_impl = <_abc_data object>
email: str
first_name: Optional[str]
id: int
institution: Optional[str]
last_name: Optional[str]
aiida_restapi.aiida_db_mappings.get_model_from_orm(orm_cls, allow_subclasses=True)[source]

Return the pydantic model related to the orm class.

Parameters

allow_subclasses – Return the base class mapping for subclasses

aiida_restapi.config module

Configuration of API

aiida_restapi.filter_syntax module

The AiiDA QueryBuilder filter grammar resolver.

Converts the string into a dict that can be passed to QueryBuilder().append(..., filters=filters).

This grammar was originally adapted from: https://github.com/Materials-Consortia/OPTIMADE/blob/master/optimade.rst#the-filter-language-ebnf-grammar

aiida_restapi.filter_syntax._parse_value(value)[source]

Parse a value token

aiida_restapi.filter_syntax._parse_valuelist(valuelist)[source]

Parse a valuelist tree.

aiida_restapi.filter_syntax.parse_filter_str(string)[source]

Parse a filter string to a list of QueryBuilder compliant operators.

aiida_restapi.main module

Declaration of FastAPI application.

aiida_restapi.models module

Schemas for AiiDA REST API.

Models in this module mirror those in aiida.backends.djsite.db.models and aiida.backends.sqlalchemy.models

class aiida_restapi.models.AiidaModel[source]

Bases: pydantic.main.BaseModel

A mapping of an AiiDA entity to a pydantic model.

class Config[source]

Bases: object

The models configuration.

__dict__ = mappingproxy({'__module__': 'aiida_restapi.models', '__doc__': 'The models configuration.', 'orm_mode': True, '__dict__': <attribute '__dict__' of 'Config' objects>, '__weakref__': <attribute '__weakref__' of 'Config' objects>, '__annotations__': {}})
__module__ = 'aiida_restapi.models'
__weakref__

list of weak references to the object (if defined)

orm_mode = True
__abstractmethods__ = frozenset({})
__annotations__ = {'_orm_entity': typing.ClassVar[typing.Type[aiida.orm.entities.Entity]]}
__class_vars__ = {'_orm_entity'}
__config__

alias of aiida_restapi.models.Config

__custom_root_type__ = False
__fields__ = {}
__hash__ = None
static __json_encoder__(obj)
__module__ = 'aiida_restapi.models'
__post_root_validators__ = []
__pre_root_validators__ = []
__private_attributes__ = {}
__schema_cache__ = {}
__signature__ = <Signature () -> None>
__slots__ = {}
__validators__ = {}
_abc_impl = <_abc_data object>
_orm_entity

alias of aiida.orm.entities.Entity

classmethod get_entities(*, page_size=None, page=0, project=None, order_by=None)[source]

Return a list of entities (with pagination).

Parameters
  • project – properties to project (default: all available)

  • page_size – the page size (default: infinite)

  • page – the page to return, if page_size set

classmethod get_projectable_properties()[source]

Return projectable properties.

class aiida_restapi.models.Comment(*, id=None, uuid, ctime=None, mtime=None, content=None, dbnode_id=None, user_id=None)[source]

Bases: aiida_restapi.models.AiidaModel

AiiDA Comment model.

__abstractmethods__ = frozenset({})
__annotations__ = {'_orm_entity': 'ClassVar[Type[orm.entities.Entity]]', 'content': typing.Union[str, NoneType], 'ctime': typing.Union[datetime.datetime, NoneType], 'dbnode_id': typing.Union[int, NoneType], 'id': typing.Union[int, NoneType], 'mtime': typing.Union[datetime.datetime, NoneType], 'user_id': typing.Union[int, NoneType], 'uuid': <class 'str'>}
__class_vars__ = {'_orm_entity'}
__config__

alias of aiida_restapi.models.Config

__custom_root_type__ = False
__fields__ = {'content': ModelField(name='content', type=Optional[str], required=False, default=None), 'ctime': ModelField(name='ctime', type=Optional[datetime], required=False, default=None), 'dbnode_id': ModelField(name='dbnode_id', type=Optional[int], required=False, default=None), 'id': ModelField(name='id', type=Optional[int], required=False, default=None), 'mtime': ModelField(name='mtime', type=Optional[datetime], required=False, default=None), 'user_id': ModelField(name='user_id', type=Optional[int], required=False, default=None), 'uuid': ModelField(name='uuid', type=str, required=True)}
__hash__ = None
static __json_encoder__(obj)
__module__ = 'aiida_restapi.models'
__post_root_validators__ = []
__pre_root_validators__ = []
__private_attributes__ = {}
__schema_cache__ = {}
__signature__ = <Signature (*, id: int = None, uuid: str, ctime: datetime.datetime = None, mtime: datetime.datetime = None, content: str = None, dbnode_id: int = None, user_id: int = None) -> None>
__slots__ = {}
__validators__ = {}
_abc_impl = <_abc_data object>
_orm_entity

alias of aiida.orm.comments.Comment

content: Optional[str]
ctime: Optional[datetime.datetime]
dbnode_id: Optional[int]
id: Optional[int]
mtime: Optional[datetime.datetime]
user_id: Optional[int]
uuid: str
class aiida_restapi.models.Computer(*, id=None, uuid=None, name, hostname=None, scheduler_type=None, transport_type=None, metadata=None)[source]

Bases: aiida_restapi.models.AiidaModel

AiiDA Computer Model.

__abstractmethods__ = frozenset({})
__annotations__ = {'_orm_entity': 'ClassVar[Type[orm.entities.Entity]]', 'hostname': typing.Union[str, NoneType], 'id': typing.Union[int, NoneType], 'metadata': typing.Union[dict, NoneType], 'name': <class 'str'>, 'scheduler_type': typing.Union[str, NoneType], 'transport_type': typing.Union[str, NoneType], 'uuid': typing.Union[str, NoneType]}
__class_vars__ = {'_orm_entity'}
__config__

alias of aiida_restapi.models.Config

__custom_root_type__ = False
__fields__ = {'hostname': ModelField(name='hostname', type=Optional[str], required=False, default=None), 'id': ModelField(name='id', type=Optional[int], required=False, default=None), 'metadata': ModelField(name='metadata', type=Optional[dict], required=False, default=None), 'name': ModelField(name='name', type=str, required=True), 'scheduler_type': ModelField(name='scheduler_type', type=Optional[str], required=False, default=None), 'transport_type': ModelField(name='transport_type', type=Optional[str], required=False, default=None), 'uuid': ModelField(name='uuid', type=Optional[str], required=False, default=None)}
__hash__ = None
static __json_encoder__(obj)
__module__ = 'aiida_restapi.models'
__post_root_validators__ = []
__pre_root_validators__ = []
__private_attributes__ = {}
__schema_cache__ = {}
__signature__ = <Signature (*, id: int = None, uuid: str = None, name: str, hostname: str = None, scheduler_type: str = None, transport_type: str = None, metadata: dict = None) -> None>
__slots__ = {}
__validators__ = {}
_abc_impl = <_abc_data object>
_orm_entity

alias of aiida.orm.computers.Computer

hostname: Optional[str]
id: Optional[int]
metadata: Optional[dict]
name: str
scheduler_type: Optional[str]
transport_type: Optional[str]
uuid: Optional[str]
class aiida_restapi.models.Group(*, id=None, label, type_string=None, user_id=None, description=None)[source]

Bases: aiida_restapi.models.AiidaModel

AiiDA Group model.

__abstractmethods__ = frozenset({})
__annotations__ = {'_orm_entity': 'ClassVar[Type[orm.entities.Entity]]', 'description': typing.Union[str, NoneType], 'id': typing.Union[int, NoneType], 'label': <class 'str'>, 'type_string': typing.Union[str, NoneType], 'user_id': typing.Union[str, NoneType]}
__class_vars__ = {'_orm_entity'}
__config__

alias of aiida_restapi.models.Config

__custom_root_type__ = False
__fields__ = {'description': ModelField(name='description', type=Optional[str], required=False, default=None), 'id': ModelField(name='id', type=Optional[int], required=False, default=None), 'label': ModelField(name='label', type=str, required=True), 'type_string': ModelField(name='type_string', type=Optional[str], required=False, default=None), 'user_id': ModelField(name='user_id', type=Optional[str], required=False, default=None)}
__hash__ = None
static __json_encoder__(obj)
__module__ = 'aiida_restapi.models'
__post_root_validators__ = []
__pre_root_validators__ = []
__private_attributes__ = {}
__schema_cache__ = {}
__signature__ = <Signature (*, id: int = None, label: str, type_string: str = None, user_id: str = None, description: str = None) -> None>
__slots__ = {}
__validators__ = {}
_abc_impl = <_abc_data object>
_orm_entity

alias of aiida.orm.groups.Group

description: Optional[str]
id: Optional[int]
label: str
type_string: Optional[str]
user_id: Optional[str]
class aiida_restapi.models.User(*, id=None, email, first_name=None, last_name=None, institution=None)[source]

Bases: aiida_restapi.models.AiidaModel

AiiDA User model.

__abstractmethods__ = frozenset({})
__annotations__ = {'_orm_entity': 'ClassVar[Type[orm.entities.Entity]]', 'email': <class 'str'>, 'first_name': typing.Union[str, NoneType], 'id': typing.Union[int, NoneType], 'institution': typing.Union[str, NoneType], 'last_name': typing.Union[str, NoneType]}
__class_vars__ = {'_orm_entity'}
__config__

alias of aiida_restapi.models.Config

__custom_root_type__ = False
__fields__ = {'email': ModelField(name='email', type=str, required=True), 'first_name': ModelField(name='first_name', type=Optional[str], required=False, default=None), 'id': ModelField(name='id', type=Optional[int], required=False, default=None), 'institution': ModelField(name='institution', type=Optional[str], required=False, default=None), 'last_name': ModelField(name='last_name', type=Optional[str], required=False, default=None)}
__hash__ = None
static __json_encoder__(obj)
__module__ = 'aiida_restapi.models'
__post_root_validators__ = []
__pre_root_validators__ = []
__private_attributes__ = {}
__schema_cache__ = {}
__signature__ = <Signature (*, id: int = None, email: str, first_name: str = None, last_name: str = None, institution: str = None) -> None>
__slots__ = {}
__validators__ = {}
_abc_impl = <_abc_data object>
_orm_entity

alias of aiida.orm.users.User

email: str
first_name: Optional[str]
id: Optional[int]
institution: Optional[str]
last_name: Optional[str]

aiida_restapi.utils module

General utility functions.

aiida_restapi.utils.parse_date(string)[source]

Parse any date/time stamp string.

Module contents

aiida_restapi

AiiDA REST API for data queries and workflow managment.