Source code for aiida.restapi.translator.nodes.process.process

###########################################################################
# Copyright (c), The AiiDA team. All rights reserved.                     #
# This file is part of the AiiDA code.                                    #
#                                                                         #
# The code is hosted on GitHub at https://github.com/aiidateam/aiida-core #
# For further information on the license, see the LICENSE.txt file        #
# For further information please visit http://www.aiida.net               #
###########################################################################
"""Translator for process node"""

from aiida.restapi.translator.nodes.node import NodeTranslator


[docs] class ProcessTranslator(NodeTranslator): """Translator relative to resource 'data' and aiida class `~aiida.orm.nodes.data.data.Data`""" # A label associated to the present class (coincides with the resource name) __label__ = 'process' # The AiiDA class one-to-one associated to the present class from aiida.orm import ProcessNode _aiida_class = ProcessNode # The string name of the AiiDA class _aiida_type = 'process.ProcessNode' _result_type = __label__
[docs] @staticmethod def get_report(process): """Show the log report for one or multiple processes.""" from aiida.orm import Log def get_dict(log): """Returns the dict representation of log object""" return { 'time': log.time, 'loggername': log.loggername, 'levelname': log.levelname, 'dbnode_id': log.dbnode_id, 'message': log.message, } report = {} report['logs'] = [get_dict(log) for log in Log.collection.get_logs_for(process)] return report
[docs] def get_projectable_properties(self): """Get projectable properties specific for Process nodes :return: dict of projectable properties and column_order list """ projectable_properties = { 'attributes.process_label': { 'display_name': 'Name', 'help_text': 'Process label attribute', 'is_foreign_key': False, 'type': 'str', 'is_display': True, }, 'attributes.process_state': { 'display_name': 'Process state', 'help_text': 'Process state attribute', 'is_foreign_key': False, 'type': 'str', 'is_display': True, }, 'creator': { 'display_name': 'Creator', 'help_text': 'User that created the node', 'is_foreign_key': False, 'type': 'str', 'is_display': True, }, 'ctime': { 'display_name': 'Creation time', 'help_text': 'Creation time of the node', 'is_foreign_key': False, 'type': 'datetime.datetime', 'is_display': True, }, 'mtime': { 'display_name': 'Last Modification time', 'help_text': 'Last modification time', 'is_foreign_key': False, 'type': 'datetime.datetime', 'is_display': True, }, 'process_type': { 'display_name': 'Process type', 'help_text': 'Process type', 'is_foreign_key': False, 'type': 'str', 'is_display': False, }, 'user_id': { 'display_name': 'Id of creator', 'help_text': 'Id of the user that created the node', 'is_foreign_key': True, 'related_column': 'id', 'related_resource': '_dbusers', 'type': 'int', 'is_display': False, }, 'uuid': { 'display_name': 'Unique ID', 'help_text': 'Universally Unique Identifier', 'is_foreign_key': False, 'type': 'unicode', 'is_display': True, }, } # Note: final schema will contain details for only the fields present in column order column_order = ['uuid', 'attributes.process_label', 'ctime', 'mtime', 'creator', 'attributes.process_state'] return projectable_properties, column_order