Wrapping modules with attribute hooks
Project description
modulehooks
modulehooks is a Python module used to wrap another
module with various hooks that trigger when a variable
is assigned to (for example, sys.excepthook
). Currently
there is only one type of hook, FunctionHook
, which
adds the function to a callback list that all gets called
when the hook is called.
This is particularly useful
with attributes such as sys.excepthook
that could
be overwritten by any other script, and with a
FunctionHook
all functions that were assigned to it
will be stored and called when needed.
Example
import sys
from modulehooks import ModuleWrapper, FunctionHook
class SysWrapper(ModuleWrapper):
excepthook = FunctionHook(sys.excepthook)
_names = ["excepthook"]
_restricted = ["__excepthook__"]
wrapper = SysWrapper.create(sys)
sys.modules["sys"] = wrapper
sys = wrapper
_names
is used to declare all hooks that are defined,
_restricted
is used to declare attributes that cannot
be modified or deleted and create
creates a wrapper
around the specified module. Remember to modify
sys.modules
as well otherwise import
will load the
default Python module and not your custom wrapper.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for modulehooks-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 58cd6c7edf7b8c2a2cb99289f2cb45cb830e584810b54af64533215f184a0119 |
|
MD5 | c39e57755945029d7e779594e7470ef2 |
|
BLAKE2b-256 | 11d519722722e95ce6848aa483802a168045c26750ea085c58e1765b0adc9084 |