Python Wires
Project description
Python Wires is a library to facilitate callable wiring by decoupling callers from callees. It can be used as a simple callable-based event notification system, as an in-process publish-subscribe like solution, or in any context where 1:N callable decoupling is appropriate.
Installation
Python Wires is a pure Python package distributed via PyPI. Install it with:
$ pip install wires
Quick Start
Create a Wires object:
from wires import Wires
w = Wires()
Its attributes are callables, auto-created on first access, that can be wired to other callables:
def say_hello():
print('Hello from wires!')
w.my_callable.wire(say_hello) # Wires `w.my_callable`, auto-created, to `say_hello`.
Calling such callables calls their wired callables:
w.my_callable() # Prints 'Hello from wires!'
More wirings can be added:
def say_welcome():
print('Welcome!')
w.my_callable.wire(say_welcome) # Wires `w.my_callable` to `say_welcome`, as well.
w.my_callable() # Prints 'Hello from wires!' and 'Welcome!'.
Wirings can also be removed:
w.my_callable.unwire(say_hello) # Removes the wiring to `say_hello`.
w.my_callable() # Prints 'Welcome!'
w.my_callable.unwire(say_welcome) # Removes the wiring to `say_welcome`.
w.my_callable() # Does nothing.
To learn more about Python Wires, including passing parameters, setting wiring limits and tuning the call-time coupling behaviour, please refer to the remaining documentation at https://python-wires.readthedocs.org/.
Thanks
Hynek Schlawack for the articles Sharing Your Labor of Love: PyPI Quick and Dirty and Testing & Packaging.
Stuart Colville for the article Including parts of README.rst in your sphinx docs.
About
Python Wires was created by Tiago Montes.
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 wires-18.1.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 07cd079531278d463f0b84e419deb555ae89a1fa86b5abf71f0636a7133555c8 |
|
MD5 | 7778bc207ef68527e19eff22df799607 |
|
BLAKE2b-256 | 3cc3e723f50e57fcd7f932d325d24c53005fb6ab6854513229c5f1c9b828c574 |