"""
An implementation of events and asynchronous callbacks using decorators.

!! Code documentation is not currently complete !!


example :
    import asyncio

    manager = EventManager()
    sample_event = manager.create_event('sample_event')


    @sample_event.as_callback()
    async def call_on_event(text: str):
        print(text)

    loop = asyncio.get_event_loop()
    loop.run_until_complete(sample_event('Hello, world !'))    # could use `Event`.raise_event() instead.

"""

from asyevent.event import Event
from asyevent.event_manager import EventManager
from asyevent.event_wrapper import EventWrapperMixin
from asyevent.callback import Callback
from asyevent.command import Command


__author__ = 'Zucchinetti Hervé'
__status__ = 'In development'
__version__ = '0.1.2'
