from collections import defaultdict import os from pprint import pprint import re import tempfile import shlex import time from path import Path from kea2.util import register_hook from kea2.log import get_logger lg = get_logger(__name__, 'info') def add_mad_stuff(meta): iodata = meta['_io'] if len(iodata) == 0: return to_add = [] for_ta = defaultdict(list) for cat in iodata: for fgroup in iodata[cat]: for fname in iodata[cat][fgroup]: for_ta[{'i': 'input', 'o': 'output', 'm': 'misc',
import re import shlex import sys import uuid import yaml from path import Path from jinja2 import Environment from kea2 import render from kea2.log import get_logger from kea2.util import run_hook, register_hook, get_recursive_dict from kea2 import util lg = get_logger('k2', 'warning') JENV = Environment() util.register_jinja2_filters(JENV) RE_PARFIND = re.compile('(?<!\{)\{\s*\*\s*([A-Za-z_]\w*)?\s*\}(?!\})') def _get_base_argsparse(add_template=True): parser = argparse.ArgumentParser() parser.add_argument('-x', '--executor', default='simple') parser.add_argument('-v', '--verbose', action='count', default=0) parser.add_argument('-q', '--quiet', action='count', default=0) parser.add_argument('-X', '--execute', action='store_const', help='run immediately', const='run', dest='execute') parser.add_argument('-N', '--do-not-execute', action='store_const', help='do not run',
from collections import defaultdict import os from pprint import pprint import re import tempfile import shlex import time from path import Path from kea2.util import register_hook from kea2.log import get_logger lg = get_logger(__name__, "info") def add_mad_stuff(meta): iodata = meta["_io"] if len(iodata) == 0: return to_add = [] for_ta = defaultdict(list) for cat in iodata: for fgroup in iodata[cat]: for fname in iodata[cat][fgroup]: for_ta[{"i": "input", "o": "output", "m": "misc", "x": "executable", "d": "db"}[cat]].append( "%s:%s" % (fgroup, fname) )
import copy import functools import os import re import sh from path import Path from kea2.util import register_hook from kea2.log import get_logger lg = get_logger(__name__, 'warning') find_inout = re.compile(r'\{([imoxd])(?: ([A-Za-z][\w]*))?\}') def parse_inout(meta): #first - start with the parameter descriptions for pname, pdata in meta['_parameters'].items(): if not 'io' in pdata: continue category = pdata['io'] if ':' in category: category, name = category.split(':') else: name = dict( i='input', o='output', x='executable',
from logging import INFO import re import shlex from kea2.log import get_logger lg = get_logger('k2.render') lg.setLevel(INFO) re_find_param_r = (r'#p\s+' r'(?P<name>[A-Za-z][A-Za-z0-9_]*)' r'([ \t]+(?P<keywords>[^\n]+))?' r'\n') re_find_param_embed_r = (r'{p\s+' r'(?P<name>[A-Za-z][A-Za-z0-9_]*)' r'([ \t]+(?P<keywords>[^\n]+))?' r'\n') re_find_param = re.compile(re_find_param_r) ALLOWED_PARAMETER_FLAGS = """ opt int float hide """.split() def find_params(meta): src = meta['_src']
from itertools import chain import os from pprint import pprint import re import time from path import Path from kea2.util import register_hook from kea2.log import get_logger lg = get_logger(__name__, 'info') find_inout = re.compile(r'{([ioxd])(?: ([A-Za-z][\w]*))?}') def file_time_report(ot, idxt): oldest_output = min(ot.values()) newest_input = max(idxt.values()) fmt = lambda x: time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(x)) print("# newest input :", fmt(newest_input)) print("# oldest output :", fmt(oldest_output)) for (c, g, f), t in ot.items(): flag = '>' if t < newest_input else ' ' print('%s %s %-10s %s %s' % (flag, c, g, fmt(t), f)) for (c, g, f), t in idxt.items(): flag = '<' if t > oldest_output else ' ' print('%s %s %-10s %s %s' % (flag, c, g, fmt(t), f))