def _patched_import2(name, globals={}, locals={}, fromlist=[], level=-1): already_imported = name in sys.modules mod = builtins.__org_import__(name, globals=globals, locals=locals, fromlist=fromlist, level=level) if not already_imported and name in PostImportHookPatching._post_import_hooks: for hook in PostImportHookPatching._post_import_hooks[name]: hook() return mod
def _patched_import3(name, globals=None, locals=None, fromlist=(), level=0): base_name = name.split('.')[0] already_imported = (not base_name) or (base_name in sys.modules) mod = builtins.__org_import__(name, globals=globals, locals=locals, fromlist=fromlist, level=level) if not already_imported and base_name in PostImportHookPatching._post_import_hooks: for hook in PostImportHookPatching._post_import_hooks[base_name]: hook() return mod
def _patched_import3(name, globals=None, locals=None, fromlist=(), level=0): name_parts = name.split('.') base_name = name_parts[0] second_name = '.'.join(name_parts[:2]) if len(name_parts) > 1 else None base_already_imported = (not base_name) or (base_name in sys.modules) second_already_imported = (not second_name) or (second_name in sys.modules) mod = builtins.__org_import__(name, globals=globals, locals=locals, fromlist=fromlist, level=level) if not base_already_imported and base_name in PostImportHookPatching._post_import_hooks: for hook in PostImportHookPatching._post_import_hooks[base_name]: hook() if not second_already_imported and second_name in PostImportHookPatching._post_import_hooks: for hook in PostImportHookPatching._post_import_hooks[second_name]: hook() return mod