Skip to main content

Super simple event emitter in Python 3, built with asyncio. No decorators required.

Project description

py-event-bus

Super simple event bus in Python 3, built with asyncio. No decorators required. Built around a subset of the NodeJS EventEmitter API.

A full write up and explanation can be found here.

Usage

from py_event_bus.EventBus import EventBus
event_bus = EventBus()

async def func(event):
  for pet in event['pets']:
    print(pet)
  
event_data = {
  'pets': ['cats', 'dogs']  
}
event_bus.add_listener('some-event', func)
event_bus.emit('some-event', event_data)
event_bus.remove_listener('some-event', func)

This will give:

> cats
> dogs

Development Setup

git clone git@github.com:joeltok/py-event-bus.git
cd ./py-event-bus
python3 -m venv ./venv
source venv/bin/activate
pip3 install pytest
pip3 install pytest-asyncio

Testing

python3 -m pytest src/py-event-bus/

Packaging

Setup

source venv/bin/activate
python3 -m pip install --upgrade build
python3 -m pip install --upgrade twine

Package:

python3 -m build
twine upload dist/*

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

event_emitter_asyncio-1.0.0.tar.gz (3.1 kB view hashes)

Uploaded Source

Built Distribution

event_emitter_asyncio-1.0.0-py3-none-any.whl (3.8 kB view hashes)

Uploaded Python 3

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