Skip to main content

A minimalistic async event bus implementation

Project description

aioemit

aioemit

aioemit allows you to manage events asynchonosly and notify subscribers when those events occur. It provides a simple way to implement event bus pattern in an event driven architecture application.

Installation

pip install aioemit

Usage

Creating Events

The Event class represents an event with a specified event type and optional data. You can create an event by initializing an instance of the Event class with the event type and data (if any).

event = Event("example_event", "example_data")

Creating an Emitter

To use the event emitter, create an instance of the Emitter class.

emitter = Emitter()

Subscribing to Events

To subscribe to events, use the subscribe method of the Emitter class. Pass the event type and an observer function that will be called when the event is emitted.

def event_observer(event):
    # Handle the event
    print("Received event:", event)

emitter.subscribe("example_event", event_observer)

Unsubscribing from Events

If you no longer want to receive notifications for a specific event, you can unsubscribe from it using the unsubscribe method. Provide the event type and the observer function that you want to remove.

emitter.unsubscribe("example_event", event_observer)

Emitting Events

To emit an event and notify all subscribers, use the emit method of the Emitter class. Pass the event you want to emit.

event = Event("example_event", "example_data")
await emitter.emit(event)

The emit method will asynchronously call all the subscribed observer functions that are associated with the event type.

License

This project is licensed under the MIT License. Feel free to use, modify, and distribute the code as per the terms of the license.

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

aioemit-0.0.1.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

aioemit-0.0.1-py3-none-any.whl (5.0 kB view details)

Uploaded Python 3

File details

Details for the file aioemit-0.0.1.tar.gz.

File metadata

  • Download URL: aioemit-0.0.1.tar.gz
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0rc1

File hashes

Hashes for aioemit-0.0.1.tar.gz
Algorithm Hash digest
SHA256 811be2be0647d46afe64becc1c7ce09da782eea45ebe5dc379c93b35f3897d40
MD5 2a6fac0fa2b5ab8213073f9888b8281c
BLAKE2b-256 dfa523a4d79c0160983ec3a55e9c7dca38922fe8b94236b0053b367465a940d3

See more details on using hashes here.

File details

Details for the file aioemit-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: aioemit-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 5.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0rc1

File hashes

Hashes for aioemit-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8aa6cab24a1ce018e75729c3de23aceac14c167bee4d7ec0d73c85c7d42d7efc
MD5 c46bf8cae902822e70358003c30f52f2
BLAKE2b-256 2b304aee731bc915b705b4535d9e8b0b6f9b9cdab351b524a3fd419931768deb

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