def config_program( wrapped, *args, # keep for clize return_: parameters.one_of('<cfg_from_args>', '<gen_names_and_log>', '<end>') = '<end>', b_interact=False, log='', verbose: parameters.one_of('CRITICAL', 'ERROR', 'WARNING', 'INFO', 'DEBUG', 'NOTSET') = 'INFO', **kwargs # keep for clize ): """ ---------------------------- Add data from CSV-like files to Pandas HDF5 store*.h5 ---------------------------- "program": program behaviour: :param return_: choices=[], <cfg_from_args>: returns cfg based on input args only and exit, <gen_names_and_log>: execute init_input_cols() and also returns fun_proc_loaded function... - see main() :param log_, :param verbose_, """ kw_args = locals() if __debug__: del kw_args['kw_args'] # exist if debug return wrapped(*args, cfg_program=kw_args, **kwargs)
def with_prog_config( wrapped, config_path='to_pandas_hdf5/csv2h5_ini/csv2h5_vaex.yml', return_: parameters.one_of('<cfg_from_args>', '<gen_names_and_log>', '<end>')='<end>', # b_interact=False, # verbose=: **kwargs): """ overwrite command line arguments with program and in :param wrapped: :param return_: parameters.one_of('<cfg_from_args>', '<gen_names_and_log>', '<end>')='<end>', :param in_: :return: """ global l @hydra.main(config_path=config_path) def main_cfg(cfg: DictConfig): global l # cfg = cfg_from_args(argparser_files(), **kwargs) if not cfg or not cfg['program'].get('return'): print('Can not initialise') return cfg elif cfg['program']['return'] == '<cfg_from_args>': # to help testing return cfg l = init_logging(logging, None, cfg['program']['log'], cfg['program']['verbose']) print('\n' + this_prog_basename(__file__), end=' started. ') try: cfg['in']['paths'], cfg['in']['nfiles'], cfg['in']['path'] = init_file_names( **cfg['in'], b_interact=cfg['program']['b_interact']) except Ex_nothing_done as e: print(e.message) return () return cfg def wrap(**kwargs): return wrapped(**main_cfg(kwargs)) return wrap
def main(flavour: one_of('harmful', 'agonism')): fieldnames = ('Drug 1', 'Drug 2', 'DDI Type', 'Time', 'Unit') writer = csv.DictWriter(sys.stdout, fieldnames=fieldnames, lineterminator='\n') writer.writeheader() for ddi in enrich(dinto.all_ddis()): ddi['Drug 1'] = ddi['drug_a'] ddi['Drug 2'] = ddi['drug_b'] ddi['Time'] = ddi['spacing'] ddi['Unit'] = ddi['unit'] if flavour == 'harmful': ddi['DDI Type'] = 'bad' if ddi[flavour] else 'good' if flavour == 'agonism': ddi['DDI Type'] = 'agonism' if ddi[flavour] else 'antagonism' writer.writerow({k: ddi[k] for k in fieldnames})
try: mod = importlib.import_module('.' + self.value, __name__) return mod.Writer except (ImportError, AttributeError): log.warning("%s format has no writer implementation", self.value, exc_info=True) DEFAULT_FORMAT = Format.TEXT """str: the name of the default format.""" @wrappers.decorator @modifiers.autokwoargs @modifiers.annotate(fmt=parameters.one_of(*map(attrgetter('value'), Format))) @modifiers.annotate(kwargs=parser.Parameter.IGNORE) def with_format(wrapped, fmt=DEFAULT_FORMAT, *args, **kwargs): """Provide ``--format`` argument. Args: format (str, optional): one of :class:`Format` values. Defaults to ``'text'``. Raises: clize.errors.CliValueError: if the format argument is invalid. """ if fmt.writer is None: raise errors.CliValueError( '{} is unavailable (missing requirements?)'.format(fmt.value)) return wrapped(fmt=Format(fmt), *args, **kwargs)
fh = open(filepath, mode='r') line = fh.readline() log.info('Determing Taxa file source...') if 'k__' in line: return taxa_import_gg(filepath) else: return taxa_import_rdp(filepath) except Exception as e: log.error(f'Whoops while importing {filepath}.') raise e types_of_imports = parameters.one_of( ('sample', "sample metadata"), ('analysis', "analysis sets with names, descriptions"), ('count', "otu count table, pct abundance per sample"), ('fasta', "otu seq fasta"), ('taxa', "otu annotations (taxonomy)"), ) def parse_import( *, filepath: ['p', str] = None, filetype: ['t', types_of_imports] = None, ): """Perform imports of files into OTUdb, as indicated. :param filepath: path to file to be imported (REQUIRED) :param filetype: which type of file are you importing?
class RepTests(object): mapped_basic = ('par:a', parameters.mapped([ ('greeting', ['hello'], 'h1'), ('parting', ['goodbye'], 'h2'), ]), 'par') mapped_default = ('par:a="greeting"', parameters.mapped([ ('greeting', ['hello'], 'h1'), ('parting', ['goodbye'], 'h2'), ]), '[par]') mapped_alternate_list = ('par:a', parameters.mapped([ ('greeting', ['hello'], 'h1'), ('parting', ['goodbye'], 'h2'), ], list_name="options"), 'par') mapped_no_list = ('par:a', parameters.mapped([ ('greeting', ['hello'], 'h1'), ('parting', ['goodbye'], 'h2'), ], list_name=None), 'par') mapped_kw = ('*, par:a', parameters.mapped([ ('greeting', ['hello'], 'h1'), ('parting', ['goodbye'], 'h2'), ], list_name=None), '--par=STR') mapped_force_icase = ('par:a', parameters.mapped([(1, ['thing'], 'h')], case_sensitive=False), 'par') mapped_force_scase = ('par:a', parameters.mapped([ (1, ['Thing'], 'h'), ], case_sensitive=True), 'par') mapped_imply_scase = ('par:a', parameters.mapped([ (1, ['thing'], 'h'), (2, ['Thing'], 'h'), ]), 'par') mapped_bad_icase = ('par:a', parameters.mapped([ (1, ['thing'], 'h'), (2, ['Thing'], 'h'), ], case_sensitive=False), 'par') oneof_basic = 'par:a', parameters.one_of('hello', 'goodbye', 'bye'), 'par' oneof_help = ('par:a', parameters.one_of(('hello', 'h1'), ('bye', 'h2')), 'par') multi_basic = '*, par:a', parameters.multi(), '[--par=STR...]' multi_req = '*, par:a', parameters.multi(1), '--par=STR...' multi_min = '*, par:a', parameters.multi(2), '--par=STR...' multi_max = '*, par:a', parameters.multi(max=2), '[--par=STR...]' multi_bound = '*, par:a', parameters.multi(min=2, max=3), '--par=STR...' multi_conv = '*, par:a', (parameters.multi(), int), '[--par=INT...]' multi_last_opt = ('*args, par:a', (parameters.multi(), Parameter.L), '[--par=STR...] [args...]') margs_basic = '*args:a', parameters.multi(), '[args...]' margs_req = '*args:a', parameters.multi(1), 'args...' margs_min = '*args:a', parameters.multi(2), 'args...' margs_max = '*args:a', parameters.multi(max=2), '[args...]' margs_bound = '*args:a', parameters.multi(min=2, max=3), 'args...' margs_conv = '*args:a', (parameters.multi(), int), '[args...]' margs_last_opt = ('*args:a, par=""', (parameters.multi(), Parameter.L), '[--par=STR] [args...]') @parameters.argument_decorator def _blank(arg): return arg + 'x' deco_blank_pos = 'par:a', _blank, 'par' deco_blank_posd = 'par:a="d"', _blank, '[par]' deco_blank_kw = '*, par:a', _blank, '--par=STR' deco_blank_kwd = '*, par:a="d"', _blank, '[--par=STR]' deco_blank_args = '*par:a', _blank, '[par...]' @parameters.argument_decorator @modifiers.kwoargs(start='kw') def _kw(arg, kw): return arg + kw deco_kw_pos = 'par:a', _kw, '--kw=STR par' deco_kw_posd = 'par:a="d"', _kw, '[--kw=STR par]' deco_kw_kw = '*, par:a', _kw, '--kw=STR --par=STR' deco_kw_kwd = '*, par:a="d"', _kw, '[--kw=STR --par=STR]' deco_kw_args = '*par:a', _kw, '[--kw=STR par...]' @parameters.argument_decorator @modifiers.autokwoargs def _kwdef(arg, kw='D'): return arg + kw deco_def_pos = 'par:a', _kwdef, '[--kw=STR] par' deco_def_posd = 'par:a="d"', _kwdef, '[[--kw=STR] par]' deco_def_kw = '*, par:a', _kwdef, '[--kw=STR] --par=STR' deco_def_kwd = '*, par:a="d"', _kwdef, '[[--kw=STR] --par=STR]' deco_def_args = '*par:a', _kwdef, '[[--kw=STR] par...]' @parameters.argument_decorator @modifiers.autokwoargs def _flag(arg, f=False): return arg + ('y' if f else 'n') deco_flag_pos = 'par:a', _flag, '[-f] par' deco_flag_posd = 'par:a="d"', _flag, '[[-f] par]' deco_flag_kw = '*, par:a', _flag, '[-f] --par=STR' deco_flag_kwd = '*, par:a="d"', _flag, '[[-f] --par=STR]' deco_flag_args = '*par:a', _flag, '[[-f] par...]' deco_flag_other = 'par:a, *, x=False', _flag, '[-x] [-f] par' @parameters.argument_decorator @modifiers.autokwoargs def _int(arg, i=0): return arg + str(i) deco_int_pos = 'par:a', _int, '[-i INT] par' deco_int_posd = 'par:a="d"', _int, '[[-i INT] par]' deco_int_kw = '*, par:a', _int, '[-i INT] --par=STR' deco_int_kwd = '*, par:a="d"', _int, '[[-i INT] --par=STR]' deco_int_args = '*par:a', _int, '[[-i INT] par...]' deco_int_other = 'par:a, *, x=False', _int, '[-x] [-i INT] par' @parameters.argument_decorator @modifiers.kwoargs(start='kw') def _all(arg, kw, flag=False, kwd='D', i=0): return arg, kw, flag, kwd, i _all_rep = '--kw=STR [--flag] [--kwd=STR] [-i INT] ' deco_all_pos = 'par:a', _all, _all_rep + 'par' deco_all_posd = 'par:a="d"', _all, '[' + _all_rep + 'par]' deco_all_kw = '*, par:a', _all, _all_rep + '--par=STR' deco_all_kwd = '*, par:a="d"', _all, '[' + _all_rep + '--par=STR]' deco_all_args = '*par:a', _all, '[' + _all_rep + 'par...]' @parameters.argument_decorator @modifiers.kwoargs(start='why') def _inner(arg, why, zed='zed'): return '(' + arg + why + zed + ')' @parameters.argument_decorator @modifiers.kwoargs(start='ab') @modifiers.annotate(cd=_inner) def _nest(arg, ab, cd='cd'): return '(' + arg + ab + cd + ')' _nest_rep = '--ab=STR [--why=STR [--zed=STR] --cd=STR] ' deco_nest_pos = 'par:a', _nest, _nest_rep + 'par' deco_nest_posd = 'par:a="d"', _nest, '[' + _nest_rep + 'par]' deco_nest_kw = '*, par:a', _nest, _nest_rep + '--par=STR' deco_nest_kwd = '*, par:a="d"', _nest, '[' + _nest_rep + '--par=STR]' deco_nest_args = '*par:a', _nest, '[' + _nest_rep + 'par...]' pn_pos = 'par:a', parameters.pass_name, '' pn_pos_first = 'par:a, other', parameters.pass_name, 'other' pn_pos_nextpicky = 'par:a, other:int', parameters.pass_name, 'other' pn_kw = '*, par:a', parameters.pass_name, ''