def enableLogging(level, HandlerType=None, handlerArgs=(), format=None): ''' Enable logging using `level` as the debug level ''' from processing.logger import enableLogging return enableLogging(level, HandlerType, handlerArgs, format)
def prepare(name, mainpath, sys_path, sys_argv, authkey, cur_dir, orig_dir, log_args): ''' Try to get this process ready to unpickle process object ''' global original_main_module original_main_module = sys.modules['__main__'] processing.currentProcess().setName(name) processing.currentProcess().setAuthKey(authkey) if log_args is not None: from processing.logger import enableLogging enableLogging(*log_args) if orig_dir is not None: processing.ORIGINAL_DIR = orig_dir if cur_dir is not None: try: os.chdir(cur_dir) except OSError: raise if sys_path is not None: sys.path = sys_path if mainpath is not None: mainname = splitext(basename(mainpath))[0] if mainname == '__init__': mainname = basename(dirname(mainpath)) if not mainpath.lower().endswith('.exe') and mainname != 'ipython': if mainpath is None: dirs = None elif basename(mainpath).startswith('__init__.py'): dirs = [dirname(dirname(mainpath))] else: dirs = [dirname(mainpath)] assert mainname not in sys.modules, mainname file, pathname, etc = imp.find_module(mainname, dirs) try: # We would like to do "imp.load_module('__main__', ...)" # here. However, that would cause 'if __name__ == # "__main__"' clauses to be executed. main_module = imp.load_module( '__parents_main__', file, pathname, etc ) finally: if file: file.close() sys.modules['__main__'] = main_module main_module.__name__ = '__main__' # XXX Try to make the potentially picklable objects in # sys.modules['__main__'] realize they are in the main # module -- ugly for obj in main_module.__dict__.values(): try: if obj.__module__ == '__parents_main__': obj.__module__ = '__main__' except (KeyboardInterrupt, SystemExit): raise except: pass if sys_argv is not None: # this needs to come last sys.argv = sys_argv
def prepare(name, mainpath, sys_path, sys_argv, authkey, cur_dir, orig_dir, log_args): """ Try to get this process ready to unpickle process object """ global original_main_module original_main_module = sys.modules["__main__"] processing.currentProcess().setName(name) processing.currentProcess().setAuthKey(authkey) if log_args is not None: from processing.logger import enableLogging enableLogging(*log_args) if orig_dir is not None: processing.ORIGINAL_DIR = orig_dir if cur_dir is not None: try: os.chdir(cur_dir) except OSError: raise if sys_path is not None: sys.path = sys_path if mainpath is not None: mainname = splitext(basename(mainpath))[0] if mainname == "__init__": mainname = basename(dirname(mainpath)) if not mainpath.lower().endswith(".exe") and mainname != "ipython": if mainpath is None: dirs = None elif basename(mainpath).startswith("__init__.py"): dirs = [dirname(dirname(mainpath))] else: dirs = [dirname(mainpath)] assert mainname not in sys.modules, mainname file, pathname, etc = imp.find_module(mainname, dirs) try: # We would like to do "imp.load_module('__main__', ...)" # here. However, that would cause 'if __name__ == # "__main__"' clauses to be executed. main_module = imp.load_module("__parents_main__", file, pathname, etc) finally: if file: file.close() sys.modules["__main__"] = main_module main_module.__name__ = "__main__" # XXX Try to make the potentially picklable objects in # sys.modules['__main__'] realize they are in the main # module -- ugly for obj in main_module.__dict__.values(): try: if obj.__module__ == "__parents_main__": obj.__module__ = "__main__" except (KeyboardInterrupt, SystemExit): raise except: pass if sys_argv is not None: # this needs to come last sys.argv = sys_argv