Event manager library
Project description
OnAny is a simple yet powerful event manager library, where you can declare listeners and dispatch as much events as needed to them.
How To
To listen and dispatch events is very simple:
from onany import dispatch, listener
@listener("event.name")
def on_event_name(*args, **kwargs):
print("I've been called with {} and {}".format(
args,
kwargs
))
>>> dispatch(
"event.name",
"first_param",
"second_param",
"third_param",
first="param",
second="param",
third="param")
Should I wait all callbacks to end ?
Nope. You can “threadily” dispatch your events so they don’t need to be waited for the main process.
from onany import disthread, listener
@listener("event.name")
def on_event_name():
print("I'm gonna be executed on another thread")
>>> disthread("event.name")
Webhook listener
It’s possible declare webhook rules to be dispatched as an inside event. This webhook events can be a powerful tool for communicating to third-party clients that an event is ended.
Listener rules:
- route
type: str
description: API route
required
- callback
type: callable/function
description: Receives request response object if needed
When dispatch or disthread is called is possible define some attributes to be sent in the external API call.
Attributes:
- data
type: dict
description: JSON body
- headers
type: dict
description: Dictionary declaring headers to be sent
Example:
from onany import dispatch, listener
def event_name_webhook_response(response):
if response.status_code == 200:
print("My hook listener worked")
listener("event.name", {
"route": "https://my.api/hooks",
"callback": event_name_webhook_response
})
>>> dispatch("event.name", data={
"some": "payload",
"I": "wanna",
"send": "to",
"hooked": "api"
})
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
File details
Details for the file onany-0.2.0.tar.gz
.
File metadata
- Download URL: onany-0.2.0.tar.gz
- Upload date:
- Size: 3.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 448bb4fd940cf85226332f6734501db7f02987fb5ff619cfba3cb078e1bd1680 |
|
MD5 | c3da39d4907b9bae12cabff870f01624 |
|
BLAKE2b-256 | 5ca118c20c2e857865a782f7d372e5f24e9016f0e6dc5b1b76727e92d849bb81 |
File details
Details for the file onany-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: onany-0.2.0-py3-none-any.whl
- Upload date:
- Size: 4.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c36b65c30ffba3c0e27fd0aa25cb98bf05b9ad15c1098b95f352764acd447f99 |
|
MD5 | 4dab3922b1d4cdc9170a56167542e75a |
|
BLAKE2b-256 | 8af3a088a5a09e15b54a31a5524d39f56fe7ce0073bccc8da87646392dad0c27 |