Source code for aiida_yambo.commands.validators

# -*- coding: utf-8 -*-
from __future__ import absolute_import
import click
import os
from six.moves import range


[docs]def validate_node(callback_kwargs, ctx, param, value): """ """ from aiida.common.exceptions import NotExistent, LoadingPluginFailed, MissingPluginError from aiida.orm import load_node from aiida.orm.implementation.general.calculation.work import WorkCalculation try: worknode = load_node(int(value)) except NotExistent as exception: raise click.BadParameter('failed to load the node<{}>\n{}'.format( value, exception)) if not isinstance(worknode, WorkCalculation): raise click.BadParameter('node<{}> is not of type {}'.format( value, WorkCalculation.__name__)) try: plotdata = worknode.get_outputs_dict()['result'].get_dict() except KeyError as exception: raise click.BadParameter( 'Node {} does node have result key: {}, FullConvergence workflow may not have successfully completed' .format(value, exception)) return plotdata
[docs]def validate_legendpos(callback_kwargs, ctx, param, value): """ 1 = upper right , 2 = upper left , 3 = lower left, 4 = lower right, """ from aiida.common.exceptions import NotExistent, LoadingPluginFailed, MissingPluginError if value not in list(range(0, 11)): raise click.BadParameter( 'Legend position needs to be in range [0-10]'.format(value)) return value
[docs]def validate_label(callback_kwargs, ctx, param, value): """ """ from aiida.common.exceptions import NotExistent, LoadingPluginFailed, MissingPluginError return value
[docs]def validate_output(callback_kwargs, ctx, param, value): """ """ from aiida.common.exceptions import NotExistent, LoadingPluginFailed, MissingPluginError value = os.path.splitext(value)[0] + '.eps' return value