diff --git a/schaincli/cli.py b/schaincli/cli.py index 5b03de2..46e2cbb 100644 --- a/schaincli/cli.py +++ b/schaincli/cli.py @@ -31,18 +31,17 @@ PREFIX = 'experiment' @click.command() @click.option('--version', '-v', is_flag=True, callback=print_version, help='SChain version', type=str) -@click.option('--xml', '-x', default=None, help='run an XML file', type=click.Path(exists=True, resolve_path=True)) @click.argument('command', default='run', required=True) @click.argument('nextcommand', default=None, required=False, type=str) -def main(command, nextcommand, version, xml): +def main(command, nextcommand, version): """COMMAND LINE INTERFACE FOR SIGNAL CHAIN - JICAMARCA RADIO OBSERVATORY \n Available commands.\n --xml: runs a schain XML generated file\n run: runs any python script starting 'experiment_'\n generate: generates a template schain script\n search: return avilable operations, procs or arguments of the give operation/proc\n""" - if xml is not None: - runFromXML(xml) + if command == 'xml': + runFromXML(nextcommand) elif command == 'generate': generate() elif command == 'test': @@ -54,6 +53,7 @@ def main(command, nextcommand, version, xml): else: log.error('Command {} is not defined'.format(command)) + def check_module(possible, instance): def check(x): try: @@ -77,19 +77,23 @@ def search(nextcommand): log.error('There is no Operation/ProcessingUnit to search') elif nextcommand == 'procs': procs = paramsFinder.getProcs() - log.success('Current ProcessingUnits are:\n\033[1m{}\033[0m'.format('\n'.join(procs))) + log.success( + 'Current ProcessingUnits are:\n\033[1m{}\033[0m'.format('\n'.join(procs))) elif nextcommand == 'operations': operations = paramsFinder.getOperations() - log.success('Current Operations are:\n\033[1m{}\033[0m'.format('\n'.join(operations))) + log.success('Current Operations are:\n\033[1m{}\033[0m'.format( + '\n'.join(operations))) else: try: args = paramsFinder.getArgs(nextcommand) - log.warning('Use this feature with caution. It may not return all the allowed arguments') + log.warning( + 'Use this feature with caution. It may not return all the allowed arguments') if len(args) == 0: log.success('{} has no arguments'.format(nextcommand)) else: - log.success('Showing arguments of {} are:\n\033[1m{}\033[0m'.format(nextcommand, '\n'.join(args))) + log.success('Showing {} arguments:\n\033[1m{}\033[0m'.format( + nextcommand, '\n'.join(args))) except Exception as e: log.error('Module {} does not exists'.format(nextcommand)) allModules = paramsFinder.getAll() @@ -117,12 +121,18 @@ def runschain(nextcommand): def basicInputs(): inputs = {} - inputs['desc'] = click.prompt('Enter a description', default="A schain project", type=str) - inputs['name'] = click.prompt('Name of the project', default="project", type=str) - inputs['path'] = click.prompt('Data path', default=os.getcwd(), type=click.Path(exists=True, resolve_path=True)) - inputs['startDate'] = click.prompt('Start date', default='1970/01/01', type=str) - inputs['endDate'] = click.prompt('End date', default='2017/12/31', type=str) - inputs['startHour'] = click.prompt('Start hour', default='00:00:00', type=str) + inputs['desc'] = click.prompt( + 'Enter a description', default="A schain project", type=str) + inputs['name'] = click.prompt( + 'Name of the project', default="project", type=str) + inputs['path'] = click.prompt('Data path', default=os.getcwd( + ), type=click.Path(exists=True, resolve_path=True)) + inputs['startDate'] = click.prompt( + 'Start date', default='1970/01/01', type=str) + inputs['endDate'] = click.prompt( + 'End date', default='2017/12/31', type=str) + inputs['startHour'] = click.prompt( + 'Start hour', default='00:00:00', type=str) inputs['endHour'] = click.prompt('End hour', default='23:59:59', type=str) inputs['figpath'] = inputs['path'] + '/figs' return inputs @@ -132,7 +142,8 @@ def generate(): inputs = basicInputs() inputs['multiprocess'] = click.confirm('Is this a multiprocess script?') if inputs['multiprocess']: - inputs['nProcess'] = click.prompt('How many process?', default=cpu_count(), type=int) + inputs['nProcess'] = click.prompt( + 'How many process?', default=cpu_count(), type=int) current = templates.multiprocess.format(**inputs) else: current = templates.basic.format(**inputs)