aiida.restapi.translator package

Submodules

Base translator class

class aiida.restapi.translator.base.BaseTranslator(Class=None, **kwargs)[source]

Bases: object

Generic class for translator. It contains the methods required to build a related QueryBuilder object

__dict__ = mappingproxy({'__module__': 'aiida.restapi.translator.base', '__doc__': '\n Generic class for translator. It contains the methods\n required to build a related QueryBuilder object\n ', '__label__': None, '_aiida_class': None, '_aiida_type': None, '_has_uuid': None, '_result_type': None, '_default': ['**'], '_default_projections': ['**'], '_default_user_projections': None, '_schema_projections': {'column_order': [], 'additional_info': {}}, '_is_qb_initialized': False, '_is_id_query': None, '_total_count': None, '__init__': <function BaseTranslator.__init__>, '__repr__': <function BaseTranslator.__repr__>, 'get_schema': <function BaseTranslator.get_schema>, 'init_qb': <function BaseTranslator.init_qb>, 'count': <function BaseTranslator.count>, 'get_total_count': <function BaseTranslator.get_total_count>, 'set_filters': <function BaseTranslator.set_filters>, 'get_default_projections': <function BaseTranslator.get_default_projections>, 'set_default_projections': <function BaseTranslator.set_default_projections>, 'set_projections': <function BaseTranslator.set_projections>, 'set_order': <function BaseTranslator.set_order>, 'set_query': <function BaseTranslator.set_query>, 'get_query_help': <function BaseTranslator.get_query_help>, 'set_limit_offset': <function BaseTranslator.set_limit_offset>, 'get_formatted_result': <function BaseTranslator.get_formatted_result>, 'get_results': <function BaseTranslator.get_results>, '_check_id_validity': <function BaseTranslator._check_id_validity>, '__dict__': <attribute '__dict__' of 'BaseTranslator' objects>, '__weakref__': <attribute '__weakref__' of 'BaseTranslator' objects>})
__init__(Class=None, **kwargs)[source]

Initialise the parameters. Create the basic query_help

keyword Class (default None but becomes this class): is the class from which one takes the initial values of the attributes. By default is this class so that class atributes are translated into object attributes. In case of inheritance one cane use the same constructore but pass the inheriting class to pass its attributes.

__label__ = None
__module__ = 'aiida.restapi.translator.base'
__repr__()[source]

This function is required for the caching system to be able to compare two NodeTranslator objects. Comparison is done on the value returned by __repr__

Returns

representation of NodeTranslator objects. Returns nothing because the inputs of self.get_nodes are sufficient to determine the identity of two queries.

__weakref__

list of weak references to the object (if defined)

_aiida_class = None
_aiida_type = None
_check_id_validity(node_id)[source]

Checks whether id corresponds to an object of the expected type, whenever type is a valid column of the database (ex. for nodes, but not for users)

Parameters

node_id – id (or id starting pattern)

Returns

True if node_id valid, False if invalid. If True, sets the id filter attribute correctly

Raises

RestValidationError – if no node is found or id pattern does not identify a unique node

_default = ['**']
_default_projections = ['**']
_default_user_projections = None
_has_uuid = None
_is_id_query = None
_is_qb_initialized = False
_result_type = None
_schema_projections = {'additional_info': {}, 'column_order': []}
_total_count = None
count()[source]

Count the number of rows returned by the query and set total_count

get_default_projections()[source]

method to get default projections of the node :return: self._default_projections

get_formatted_result(label)[source]

Runs the query and retrieves results tagged as “label”.

Parameters

label (str) – the tag of the results to be extracted out of the query rows.

Returns

a list of the query results

get_query_help()[source]
Returns

return QB json dictionary

get_results()[source]

Returns either list of nodes or details of single node from database.

Returns

either list of nodes or details of single node from database

get_schema()[source]

Get node schema :return: node schema

get_total_count()[source]

Returns the number of rows of the query.

Returns

total_count

init_qb()[source]

Initialize query builder object by means of _query_help

set_default_projections()[source]

It calls the set_projections() methods internally to add the default projections in query_help

Returns

None

set_filters(filters=None)[source]

Add filters in query_help.

Parameters

filters

it is a dictionary where keys are the tag names given in the path in query_help and their values are the dictionary of filters want to add for that tag name. Format for the Filters dictionary:

filters = {
    "tag1" : {k1:v1, k2:v2},
    "tag2" : {k1:v1, k2:v2},
}

Returns

query_help dict including filters if any.

set_limit_offset(limit=None, offset=None)[source]

sets limits and offset directly to the query_builder object

Parameters
  • limit

  • offset

Returns

set_order(orders)[source]

Add order_by clause in query_help :param orders: dictionary of orders you want to apply on final results :return: None or exception if any.

set_projections(projections)[source]

add the projections in query_help

Parameters

projections – it is a dictionary where keys are the tag names given in the path in query_help and values are the list of the names you want to project in the final output

Returns

updated query_help with projections

set_query(filters=None, orders=None, projections=None, query_type=None, node_id=None, alist=None, nalist=None, elist=None, nelist=None, downloadformat=None, visformat=None, filename=None, rtype=None)[source]

Adds filters, default projections, order specs to the query_help, and initializes the qb object

Parameters
  • filters – dictionary with the filters

  • orders – dictionary with the order for each tag

  • projections – dictionary with the projection. It is discarded if query_type==’attributes’/’extras’

  • query_type – (string) specify the result or the content (“attr”)

  • id – (integer) id of a specific node

  • alist – list of attributes queried for node

  • nalist – list of attributes, returns all attributes except this for node

  • elist – list of extras queries for node

  • nelist – list of extras, returns all extras except this for node

  • downloadformat – file format to download e.g. cif, xyz

  • visformat – data format to visualise the node. Mainly used for structure, cif, kpoints. E.g. jsmol, chemdoodle

  • filename – name of the file to return its content

  • rtype – return type of the file

Translator for computer

class aiida.restapi.translator.computer.ComputerTranslator(**kwargs)[source]

Bases: aiida.restapi.translator.base.BaseTranslator

Translator relative to resource ‘computers’ and aiida class Computer

__init__(**kwargs)[source]

Initialise the parameters. Create the basic query_help

__label__ = 'computers'
__module__ = 'aiida.restapi.translator.computer'
_aiida_class

alias of aiida.orm.computers.Computer

_aiida_type = 'Computer'
_has_uuid = True
_result_type = 'computers'
_schema_projections = {'additional_info': {'description': {'is_display': False}, 'hostname': {'is_display': True}, 'id': {'is_display': True}, 'name': {'is_display': True}, 'scheduler_type': {'is_display': True}, 'transport_type': {'is_display': False}, 'uuid': {'is_display': False}}, 'column_order': ['id', 'name', 'hostname', 'description', 'scheduler_type', 'transport_type', 'uuid']}

Translator for group

class aiida.restapi.translator.group.GroupTranslator(**kwargs)[source]

Bases: aiida.restapi.translator.base.BaseTranslator

Translator relative to resource ‘groups’ and aiida class Group

__init__(**kwargs)[source]

Initialise the parameters. Create the basic query_help

__label__ = 'groups'
__module__ = 'aiida.restapi.translator.group'
_aiida_class

alias of aiida.orm.groups.Group

_aiida_type = 'groups.Group'
_has_uuid = True
_result_type = 'groups'
_schema_projections = {'additional_info': {'description': {'is_display': False}, 'id': {'is_display': True}, 'label': {'is_display': True}, 'type_string': {'is_display': True}, 'user_email': {'is_display': True}, 'user_id': {'is_display': False}, 'uuid': {'is_display': False}}, 'column_order': ['id', 'label', 'type_string', 'description', 'user_id', 'user_email', 'uuid']}

Translator for user

class aiida.restapi.translator.user.UserTranslator(**kwargs)[source]

Bases: aiida.restapi.translator.base.BaseTranslator

Translator relative to resource ‘users’ and aiida class User

__init__(**kwargs)[source]

Initialise the parameters. Create the basic query_help

__label__ = 'users'
__module__ = 'aiida.restapi.translator.user'
_aiida_class

alias of aiida.orm.users.User

_aiida_type = 'User'
_default_projections = ['id', 'first_name', 'last_name', 'institution']
_has_uuid = False
_result_type = 'users'
_schema_projections = {'additional_info': {'email': {'is_display': True}, 'first_name': {'is_display': True}, 'id': {'is_display': True}, 'institution': {'is_display': True}, 'last_name': {'is_display': True}}, 'column_order': ['id', 'first_name', 'last_name', 'email', 'institution']}