Skip to main content

A simple typed event bus written in pure python

Project description

Yet another event bus - yaeb for short

A simple typed event bus written in pure python

Installation

Install yaeb with pip

  pip install yaeb

Usage/Examples

from logging import info

from yaeb.bus import EventBus, NonPersistentEventHandlerRegistry
from yaeb.interface import Event, EventBusInterface, EventHandler


class UserCreated(Event):
    user_id: int

    def __init__(self, user_id: int) -> None:
        self.user_id = user_id


class UserCreatedHandler(EventHandler[UserCreated]):
    def handle_event(self, event: UserCreated, bus: EventBusInterface) -> None:
        info('User with id=%d was created!', event.user_id)


if __name__ == '__main__':
    bus = EventBus(event_handler_registry=NonPersistentEventHandlerRegistry())
    bus.register(event_type=UserCreated, event_handler=UserCreatedHandler())

    bus.emit(UserCreated(user_id=1))  # prints log message with created user id

Roadmap

  • Add coroutines support
  • Add some kind of multithreading support. Though it can be implemented by handlers themselves 🤔

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yaeb-0.4.0.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

yaeb-0.4.0-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

Details for the file yaeb-0.4.0.tar.gz.

File metadata

  • Download URL: yaeb-0.4.0.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.0 CPython/3.10.6 Linux/5.15.0-1017-azure

File hashes

Hashes for yaeb-0.4.0.tar.gz
Algorithm Hash digest
SHA256 349822788d99233e47ed85dcc41f14abcb716d16183d2a7b612fd3661d065634
MD5 09d98e8000b4aebe06b596c4259d0b16
BLAKE2b-256 05d77447965801e5dbec4653ebade970ce2e277acf5627e33ccee637b2c24426

See more details on using hashes here.

File details

Details for the file yaeb-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: yaeb-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 5.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.0 CPython/3.10.6 Linux/5.15.0-1017-azure

File hashes

Hashes for yaeb-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4ffa4264900f110ba84a3e4c5608ea5ed9a6adfe9a2a5eb1e8f114854d055de1
MD5 4ac02fabb569fb8391480095c2ebbc07
BLAKE2b-256 088c6c4be0219373aae15a2bddb7f2d25b4a81ec6869bc229578ac346682e357

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page