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('.'))
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
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)
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))
def main(*a,**b): MM= __name__ + '.' + '__main__' FN=imp(MM).main return FN(*a,**b)