def on_load(io, commands, settings): for name, path in settings.items('pyrite.addons'): module = pyrite.dyn_import(name, io, True, None) if not module: continue _extensions[name] = module if hasattr(module, 'on_load'): if module.on_load(commands): _extensions[name] = module else: _extensions[name] = module
def run(): show_trace = False dummy_out = None io = IO() try: if len(sys.argv) < 2: raise HelpError() cmd = sys.argv[1] cmd_info = get_command_info(cmd) if not cmd_info: raise HelpError(cmd) m = pyrite.dyn_import(cmd_info[0], io) options = OptionParser(cmd, m, global_options) options.parse(sys.argv[2:]) flags = options.get_flags() args = options.get_args() module = pyrite.modules[cmd_info[0]] if 'help' in flags: raise HelpError(cmd) if 'debug-subcommands' in flags: os.environ['PYTDBG'] = '1' if 'debug-exceptions' in flags: show_trace = True if 'debug-suppress-output' in flags: dummy_out = open('/dev/null', 'w') io.stdout = dummy_out if 'debug-profile' in flags: import cProfile import pstats cProfile.runctx('exec_command(module, cmd, args, flags, ' 'io)', globals(), locals(), 'pyt-profile') p = pstats.Stats('pyt-profile') p.sort_stats(flags.get('debug-profile-sort', 'cumulative')) p.print_title() p.print_stats() if 'debug-profile-extra' in flags: p.print_callers() else: exec_command(module, cmd, args, flags, io) except HelpError, inst: on_help_error(inst, io) if show_trace: raise