-
-
-

importhook

-

Python module for registering hooks to call when certain modules are imported.

-
import importhook
-
-# Configure a function to call when `socket` is imported
-@importhook.on_import('socket')
-def socket_import(socket):
-    print('Socket module imported')
-
-# Import the `socket` module
-import socket
-
-
-
-
-importhook.copy_module(module, copy_attributes=True, copy_spec=True)
-

Helper function for copying a python module

-
import importhook
-
-@importhook.on_import('socket')
-def on_socket_import(socket):
-    new_socket = importhook.copy_module(socket)
-    setattr(new_socket, 'get_hostname', lambda: 'hostname')
-    return new_socket
-
-
-
- -
-
-importhook.get_module_name(module)
-

Helper function to get a module’s name

-
- -
-
-importhook.on_import(module_name, func=None)
-

Helper function used to register a hook function for a given module

-
import importhook
-
-@importhook.on_import('socket')
-def on_socket_import(socket):
-    print('socket imported')
-
-
-@importhook.on_import(importhook.ANY_MODULE)
-def on_any_import(module):
-    print(f'{module.__spec__.name} imported')
-
-
-def on_httplib_import(httplib):
-    print('httplib imported')
-
-
-importhook.on_import('httplib', on_httplib_import)
-
-
-
- -
-
-importhook.reload_module(module_name)
-

Helper function to reload the specified module

-
import socket
-import importhook
-
-# Reload the `socket` module by passing in module
-socket = importhook.reload_module(socket)
-
-# Reload the `socket` module by passing in the name
-socket = importhook.reload_module('socket')
-
-
-
- -
-
-importhook.reset_module(module_name)
-

Helper function to reset a copied module.

-
import socket
-import importhook
-
-# Copy `socket` module
-socket = importhook.copy_module(socket)
-
-# Reset copied `socket` module back to it's original version
-socket = importhook.reset_module(socket)
-
-
-
-
@@ -164,6 +72,14 @@