Like functools.singledispatch but for values
Project description
datadispatch
datadispatch provides a dispatch mechanism (a.k.a. polymorphism) like functools.singledispatch
, but it operates on data instead of types. This is useful if you are creating simple data-centric applications where you want polymorphism à la carte without resorting to types or classes.
datadispatch is available through pip: pip install datadispatch
Usage example
from datadispatch import datadispatch
@datadispatch(lambda args, _: args[0].get('type'))
def handle(message):
raise ValueError('cannot handle message: {}'.format(message))
@handle.register('ping')
def _(message):
return 'you sent ping'
@handle.register('pong')
def _(message):
return 'you sent pong'
print(handle(
{'type': 'ping', 'payload': 'hello'}
))
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
datadispatch-1.0.0.tar.gz
(1.8 kB
view hashes)
Built Distribution
Close
Hashes for datadispatch-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 527ad534881d7f6144a8ff643c260a3d2ae0d50e8ee24ec4b0fdae72d6c7beab |
|
MD5 | 14ae19926efbe23dc168cde811616583 |
|
BLAKE2b-256 | 806ad38daeb232e560803057c202ada249c5f53a7d532eae216660af42a23781 |