Warning: This document is for an old version of python-dispatch. The latest version is v0.1.1.

pydispatch.aioutils module

AioWeakMethodContainer class

class AioWeakMethodContainer[source]

Bases: pydispatch.utils.WeakMethodContainer

Storage for coroutine functions as weak references

New in version 0.1.0.

__call__(*args, **kwargs)[source]

Triggers all stored callbacks (coroutines)

  • *args – Positional arguments to pass to callbacks
  • **kwargs – Keyword arguments to pass to callbacks
add_method(loop, callback)[source]

Add a coroutine function


Iterate over the stored objects


Iterate over stored coroutine functions

Yields:Stored coroutine function objects
submit_coroutine(coro, loop)[source]

Schedule and await a coroutine on the specified loop

The coroutine is wrapped and scheduled using asyncio.run_coroutine_threadsafe(). While the coroutine is “awaited”, the result is not available as method returns immediately.

  • coro – The coroutine to schedule
  • loop – The event loop on which to schedule the coroutine


This method is used internally by __call__() and is not meant to be called directly.

AioEventWaiters class

class AioEventWaiters[source]

Container used to manage await use with events

Used by pydispatch.dispatch.Event when it is awaited


set – Instances of AioEventWaiter currently “awaiting” the event


AioSimpleLock – A sync/async lock to guard modification to the waiters container during event emission

New in version 0.1.0.

__call__(*args, **kwargs)[source]

Triggers any stored waiters

Calls AioEventWaiter.trigger() method on all instances stored in waiters. After completion, the waiters are removed.


Add a AioEventWaiter to the waiters container

The event loop to use for AioEventWaiter.loop is found in the current context using asyncio.get_event_loop()

Returns:The created AioEventWaiter instance
Return type:waiter

Creates a waiter and “awaits” its result

This method is used by pydispatch.dispatch.Event instances when they are “awaited” and is the primary functionality of AioEventWaiters and AioEventWaiter.

Returns:Positional arguments attached to the event kwargs (dict): Keyword arguments attached to the event
Return type:args (list)

AioEventWaiter class

class AioEventWaiter(loop)[source]

Stores necessary information for a single “waiter”

Used by AioEventWaiters to handle awaiting an Event on a specific event loop


The EventLoop instance


An asyncio.Event used to track event emission


list – The positional arguments attached to the event


dict – The keyword arguments attached to the event

New in version 0.1.0.

trigger(*args, **kwargs)[source]

Called on event emission and notifies the wait() method

Called by AioEventWaiters when the Event instance is dispatched.

Positional and keyword arguments are stored as instance attributes for use in the wait() method and aio_event is set.


Waits for event emission and returns the event parameters

Returns:Positional arguments attached to the event kwargs (dict): Keyword arguments attached to the event
Return type:args (list)

AioSimpleLock class

class AioSimpleLock[source]

asyncio.Lock alternative backed by a threading.Lock

This is a context manager that supports use in both with and async with context blocks.


Instance of threading.Lock

New in version 0.1.0.

acquire(blocking=True, timeout=-1)[source]

Acquire the lock


True if the lock was acquired, otherwise False

Return type:



Acquire the lock asynchronously


Release the lock