1import parsing 2parsing.parser.add_option("--processes", metavar="NUM_PROCESSES", type="int", help="Run in multiple processes, use Pyro if available") 3parsing.parser.add_option("--processes_pyro", metavar="NUM_PROCESSES", type="int", help="Run in multiple processes, requires Pyro") 4parsing.parser.add_option("--processes_old", metavar="NUM_PROCESSES", type="int", help="Run in multiple processes, old implementation") 5 6def enable_processes_pyro(nprocesses): 7 parsing.require_posix("--processes_pyro") 8 parsing.require_modules("--processes_pyro", "Pyro") 9 from testoob.running import PyroRunner 10 parsing.kwargs["runner"] = PyroRunner(max_processes = nprocesses) 11 12def enable_processes_old(nprocesses): 13 parsing.require_posix("--processes_old") 14 from testoob.running import ProcessedRunner 15 parsing.kwargs["runner"] = ProcessedRunner(max_processes = nprocesses) 16 17def process_options(options): 18 if options.processes_pyro is not None: 19 enable_processes_pyro(options.processes_pyro) 20 21 if options.processes_old is not None: 22 enable_processes_old(options.processes_old) 23 24 if options.processes is not None: 25 try: 26 enable_processes_pyro(options.processes) 27 except parsing.ArgumentsError: 28 enable_processes_old(options.processes) 29 30parsing.option_processors.append(process_options) 31