Skip to main content

event-bus

Run Tests
EventBus implementation in python

Examples

sync

from multi_event_bus import EventBus

eb = EventBus(redis_host="127.0.0.1", redis_port=6379)

eb.dispatch("event-name", payload={"num": 1})

eb.subscribe_to("event-name", consumer_id="consumer-1", offset=0)

event, topic = eb.get(consumer_id="consumer-1")  # Blocking

print(event.payload)  # -> {"num": 1}

async

from multi_event_bus import AsyncEventBus

eb = AsyncEventBus(redis_host="127.0.0.1", redis_port=6379)

eb.dispatch("event-name", payload={"num": 1})

eb.subscribe_to("event-name", consumer_id="consumer-2", offset=0)

event, topic = await eb.get(consumer_id="consumer-2")

print(event.payload)  # -> {"num": 1}

register event schema

from multi_event_bus import EventBus

eb = EventBus(redis_host="127.0.0.1", redis_port=6379)

# Enforce json schema of event
json_schema = {
    "type": "object",
    "properties": {"num": {"type": "string"}}
}
eb.register_event_schema("event-name", schema=json_schema)

eb.dispatch("event-name", payload={"num": "7854"})

eb.subscribe_to("event-name", consumer_id="consumer-3", offset=0)

event, topic = eb.get(consumer_id="consumer-3")  # Blocking

print(event.payload)  # -> {"num": "7854"}

Development

scripts

poetry run run_pytest
poetry run run_flake8
poetry run run_mypy
poetry run run_black

run tests

poetry run test

run all (test and black)

poetry run all

Release files for multi-event-bus 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for multi-event-bus 0.2.0
File Size Uploaded
multi_event_bus-0.2.0.tar.gz 4.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for multi-event-bus 0.2.0
File Interpreter ABI Platform
multi_event_bus-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 9.0 kB

Release files / multi_event_bus-0.2.0.tar.gz

Download URL multi_event_bus-0.2.0.tar.gz
Size 4.2 kB
Tags Source
SHA-256 checksum
How to use checksums
504caf6ffa4d51294bab93c644c68ef46a8164fd92f4da2c385ee38b8e22e8bc
BLAKE2b-256 checksum
How to use checksums
9814b86413f5248e8e5400fa0b7ada0563b2ca6adeb4c6ff2c7a8eb669c82024
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.13 CPython/3.8.10 Linux/5.13.0-39-generic

Release files / multi_event_bus-0.2.0-py3-none-any.whl

Download URL multi_event_bus-0.2.0-py3-none-any.whl
Size 4.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6a55ae9a7dcdaf294f3f26eb93bf526ed6ef1f76956879a59e79390817c42739
BLAKE2b-256 checksum
How to use checksums
b3300923f0bdc90d27f2e59254563cda53b340d08c9b42c5375b99ac261ae30c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.13 CPython/3.8.10 Linux/5.13.0-39-generic

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page