Watch attributes on a class and trigger a callback on change
Project description
Hookup is a Python decorator to monitor one or more attributes on a given object, and trigger a callback function to be called when the attribute(s) value changes.
Example:
from hookup import hookup
@hookup(attrs=["version"], callback="update_version")
class Software:
def __init__(self):
version = 1
def update_version(self):
# This is the callback function that will be called when the attribute's value changes
with open("version.txt") as _file:
_file.write(self.version)
software = Software()
software.version=2
Installation
To install Hookup, simply:
$ pip install hookup
Usage
Hookup is designed to be used as a decorator on a class:
@hookup(attrs=["version"], callback="update_version")
class Software:
You must pass in the two required arguments:
attrs
- a List of attributes that will be watched for changescallback
- a function belonging to the class used as a callback
Upon the value of any watched attribute (attrs
) changing from one value to another, the callback function will be executed.
The callback function will be called with no additional parameters. For example, the following would both be valid callbacks:
def callback(self):
def callback(self, option="default"):
Contributing
- Check for open issues or open a new issue to kick off discussion
- Fork the repository on Github, create a branch and make your code changes
- Write a test which shows that the bug was fixed, or that the new feature works as expected
- Send a PR with a clear description of the change
Changelog
0.1.1 (2021-11-10)
- Initial release
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
hookup-0.1.1.tar.gz
(3.5 kB
view hashes)
Built Distribution
hookup-0.1.1-py3-none-any.whl
(2.9 kB
view hashes)