Skip to main content

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

Project description

Event Emitter (asyncio)

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

A full write up and explanation for how this module works can be found here.

Installation

pip install event_emitter_asyncio

Usage (Working example)

import asyncio

from event_emitter_asyncio.EventEmitter import EventEmitter
event_emitter = EventEmitter()

async def run():
  # add a listener
  async def func(event):
    for pet in event['pets']:
      print(pet)
  event_emitter.add_listener('some-event', func)

  # emit an event every second for 3 seconds
  n = 0
  while n < 3:
    event_data = { 'pets': ['cats', 'dogs'] }
    event_emitter.emit('some-event', event_data)
    await asyncio.sleep(1)
    n += 1

  # remove the listener
  event_emitter.remove_listener('some-event', func)

loop = asyncio.get_event_loop()
loop.run_until_complete(run())

This will give:

> cats
> dogs
> cats
> dogs
> cats
> dogs

Developing on this repo

Development

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

Testing

python3 -m pytest src/event_emitter_asyncio/

Packaging

source venv/bin/activate
python3 -m pip install --upgrade build
python3 -m pip install --upgrade twine
rm -rf dist && 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.4.tar.gz (3.3 kB view hashes)

Uploaded Source

Built Distribution

event_emitter_asyncio-1.0.4-py3-none-any.whl (4.1 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