Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

modulehooks-1.0.0.tar.gz (3.1 kB view hashes)

Uploaded Source

Built Distribution

modulehooks-1.0.0-py3-none-any.whl (3.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page