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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file modulehooks-1.0.0.tar.gz.

File metadata

  • Download URL: modulehooks-1.0.0.tar.gz
  • Upload date:
  • Size: 3.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.4

File hashes

Hashes for modulehooks-1.0.0.tar.gz
Algorithm Hash digest
SHA256 34b063d68f3e55bce45cead92fa9f4ae36313084785409a4efa27e427af21bf8
MD5 a79888cf18d6a9811d4efc1f8fee9995
BLAKE2b-256 d6e183c7eaf2fc0ee0940f51d12e16be9a9faa75bce19a4280ea8a45c62f710b

See more details on using hashes here.

File details

Details for the file modulehooks-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: modulehooks-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 3.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.4

File hashes

Hashes for modulehooks-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 58cd6c7edf7b8c2a2cb99289f2cb45cb830e584810b54af64533215f184a0119
MD5 c39e57755945029d7e779594e7470ef2
BLAKE2b-256 11d519722722e95ce6848aa483802a168045c26750ea085c58e1765b0adc9084

See more details on using hashes here.

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