Spaces:
Runtime error
Runtime error
Metadata-Version: 2.1 | |
Name: backcall | |
Version: 0.2.0 | |
Summary: Specifications for callback functions passed in to an API | |
Home-page: https://github.com/takluyver/backcall | |
License: UNKNOWN | |
Author: Thomas Kluyver | |
Author-email: thomas@kluyver.me.uk | |
Description-Content-Type: text/x-rst | |
Classifier: License :: OSI Approved :: BSD License | |
Classifier: Programming Language :: Python :: 2 | |
Classifier: Programming Language :: Python :: 2.7 | |
Classifier: Programming Language :: Python :: 3 | |
======== | |
backcall | |
======== | |
.. image:: https://travis-ci.org/takluyver/backcall.png?branch=master | |
:target: https://travis-ci.org/takluyver/backcall | |
Specifications for callback functions passed in to an API | |
If your code lets other people supply callback functions, it's important to | |
specify the function signature you expect, and check that functions support that. | |
Adding extra parameters later would break other peoples code unless you're careful. | |
backcall provides a way of specifying the callback signature using a prototype | |
function:: | |
from backcall import callback_prototype | |
@callback_prototype | |
def handle_ping(sender, delay=None): | |
# Specify positional parameters without a default, and keyword | |
# parameters with a default. | |
pass | |
def register_ping_handler(callback): | |
# This checks and adapts the function passed in: | |
callback = handle_ping.adapt(callback) | |
ping_callbacks.append(callback) | |
If the callback takes fewer parameters than your prototype, *backcall* will wrap | |
it in a function that discards the extra arguments. If the callback expects | |
more arguments, a TypeError is thrown when it is registered. | |
For more details, see the `docs <http://backcall.readthedocs.org/en/latest/>`_ or | |
the `Demo notebook <http://nbviewer.ipython.org/github/takluyver/backcall/blob/master/Demo.ipynb>`_. | |
The tests are run with `pytest <http://pytest.org/latest/>`_. In the root directory, | |
execute:: | |
py.test | |