pydispatch.aioutils
#
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)
- Parameters
*args – Positional arguments to pass to callbacks
**kwargs – Keyword arguments to pass to callbacks
- add_method(loop, callback)[source]#
Add a coroutine function
- Parameters
loop – The
event loop
instance on which to schedule callbackscallback – The coroutine function to add
- iter_methods()[source]#
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.- Parameters
coro – The coroutine to schedule
loop – The
event loop
on which to schedule the coroutine
Note
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 eventsUsed by
pydispatch.dispatch.Event
when it isawaited
- waiters#
Instances of
AioEventWaiter
currently “awaiting” the event- Type
New in version 0.1.0.
- __call__(*args, **kwargs)[source]#
Triggers any stored
waiters
Calls
AioEventWaiter.trigger()
method on all instances stored inwaiters
. After completion, thewaiters
are removed.- Parameters
*args – Positional arguments to pass to
AioEventWaiter.trigger()
**kwargs – Keyword arguments to pass to
AioEventWaiter.trigger()
- async add_waiter()[source]#
Add a
AioEventWaiter
to thewaiters
containerThe event loop to use for
AioEventWaiter.loop
is found in the current context usingasyncio.get_event_loop()
- Returns
The created
AioEventWaiter
instance- Return type
waiter
- async wait()[source]#
Creates a
waiter
and “awaits” its resultThis method is used by
pydispatch.dispatch.Event
instances when they are “awaited” and is the primary functionality ofAioEventWaiters
andAioEventWaiter
.- 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 handleawaiting
anEvent
on a specificevent loop
- loop#
The
EventLoop
instance
- aio_event#
An
asyncio.Event
used to track event emission
New in version 0.1.0.
AioSimpleLock class#
- class AioSimpleLock[source]#
asyncio.Lock
alternative backed by athreading.Lock
This is a context manager that supports use in both
with
andasync with
context blocks.- lock#
Instance of
threading.Lock
New in version 0.1.0.
- acquire(blocking=True, timeout=- 1)[source]#
Acquire the
lock
- Parameters
blocking (bool) – See
threading.Lock.acquire()
timeout (float) – See
threading.Lock.acquire()
- Returns
- Return type