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.
Python Wires is a pure Python package distributed via PyPI. Install it with:
$ pip install wires
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/.
- 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.
Python Wires was created by Tiago Montes.