Ejemplo n.º 1
0
def inject(mypath,mymod):
    from pathlib import Path
    this = Path(mypath)
    subcommands = [ x.stem for x in this.iterdir() if (x/'__init__.py').is_file() ]
    for cmd in subcommands:
        MOD=imp("%s.%s" % (__name__,cmd))
        setattr(mymod, cmd.lower(), MOD.__call__ )
#imodules() )
    print(__name__.split('.'))
Ejemplo n.º 2
0
def parent_parsers(package):
    parts = package.split('.')
    acc = []
    while parts:
        dott = '.'.join(parts + ['parse'])
        parts.pop()
        try:
            acc.append(imp(dott).parser)
        except (ModuleNotFoundError, AttributeError):
            continue
    return acc
Ejemplo n.º 3
0
def _main(n, init=(1,1)):
    report(__name__, 'main', args )
    OPT,bang = args
    args, bang = preparse(OPT.args + bang)
    if not args:
        return null()
    cmd = args.pop(0)
    try:
        mod = imp( "%s.%s" % (__name__,cmd ))
    except ModuleNotFoundError:
        mod=None
    if mod == None:
        print('STUB: %s %s' % (cmd, args) )
    else:
        print('CALLING %s.main()' % mod.__name__ )
        mod.main(OPT, args)
Ejemplo n.º 4
0
def WithLocals_handler(_locals, parser, fn4nameD):
    D1 = fn4nameD
    assert type(_locals) == type(locals())
    if not _locals['__name__'] == '__main__':
        raise Exception("Use this function only if __name__=='__main__'")
    LC = WithLocals_LC(_locals)
    args, bang = split_bang(sys.argv)
    OPTS = parser.parse_args(args)
    args = OPTS.args[2:]  # cut off sys.argv and cmd
    cmd = (OPTS.args + [''])[1]
    if cmd in D1.keys():
        fn = D1[cmd]
    elif cmd in LC.keys():
        mod = imp(LC[cmd])
        fn = getattr(mod, '__subhandler', stub(mod.__name__, 'nohandler'))
    else:
        fn = lambda *x, **y: exit('unknown')
    exit(fn(opts_list=[OPTS], args=args, bang=bang))
Ejemplo n.º 5
0
def main(*a,**b):
    MM= __name__ + '.' + '__main__'
    FN=imp(MM).main
    return FN(*a,**b)