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-19.2.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 824304ff866cd7b8d336c83de31c2f1ab117af0a0f0951e98a29740854ab517c |
|
MD5 | b0e5009256e4e5f938d70832a3e30859 |
|
BLAKE2b-256 | 463a054cae776f06175d6c7ebdd1c40f7fe297dc720a826f865522945d71fe8d |