def workflow_list(short, all_states, depth, past_days, workflows): """List legacy workflows""" from aiida.backends.utils import get_workflow_list from aiida.orm.workflow import get_workflow_info from aiida.orm.backend import construct_backend # pylint: disable=no-name-in-module tab_size = 2 backend = construct_backend() current_user = backend.users.get_automatic_user() wf_list = get_workflow_list([workflow.pk for workflow in workflows], user=current_user, all_states=all_states, n_days_ago=past_days) for workflow in wf_list: if not workflow.is_subworkflow() or workflow in workflows: echo.echo('\n'.join( get_workflow_info(workflow, tab_size=tab_size, short=short, depth=depth))) if not workflows: if all_states: echo.echo_info('# No workflows found') else: echo.echo_info('# No running workflows found')
def workflow_list(self, *args): """ Return a list of workflows on screen """ from aiida.backends.utils import load_dbenv, is_dbenv_loaded if not is_dbenv_loaded(): load_dbenv() from aiida.backends.utils import get_workflow_list, get_automatic_user from aiida.orm.workflow import get_workflow_info from aiida.orm import User import argparse parser = argparse.ArgumentParser(prog=self.get_full_command_name(), description='List AiiDA workflows.') parser.add_argument('-s', '--short', action='store_true', help="show shorter output " "(only subworkflows and steps, no calculations)") parser.add_argument( '-a', '--all-states', action='store_true', help="show all existing " "AiiDA workflows, not only running ones", ) parser.add_argument( '-d', '--depth', metavar='M', action='store', type=int, default=16, help="add a filter " "to show only steps down to a depth of M levels in " "subworkflows (0 means only the parent " "workflows are shown)") parser.add_argument( '-p', '--past-days', metavar='N', action='store', type=int, help="add a " "filter to show only workflows created in the past N days") parser.add_argument( 'pks', type=int, nargs='*', help="a list of workflows to show. If empty, " "all running workflows are shown. If non-empty, " "automatically sets --all and ignores the -p option.") tab_size = 2 # how many spaces to use for indentation of subworkflows args = list(args) parsed_args = parser.parse_args(args) workflows = get_workflow_list(parsed_args.pks, user=User(dbuser=get_automatic_user()), all_states=parsed_args.all_states, n_days_ago=parsed_args.past_days) for w in workflows: if not w.is_subworkflow() or w.pk in parsed_args.pks: print "\n".join( get_workflow_info(w, tab_size=tab_size, short=parsed_args.short, depth=parsed_args.depth)) if not workflows: if parsed_args.all_states: print "# No workflows found" else: print "# No running workflows found"