pydispatch.aioutils#
AioWeakMethodContainer class#
- class AioWeakMethodContainer[source]#
Bases:
pydispatch.utils.WeakMethodContainerStorage 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 loopinstance 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 loopon 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
awaituse with eventsUsed by
pydispatch.dispatch.Eventwhen it isawaited- waiters#
Instances of
AioEventWaitercurrently “awaiting” the event- Type
New in version 0.1.0.
- __call__(*args, **kwargs)[source]#
Triggers any stored
waitersCalls
AioEventWaiter.trigger()method on all instances stored inwaiters. After completion, thewaitersare removed.- Parameters
*args – Positional arguments to pass to
AioEventWaiter.trigger()**kwargs – Keyword arguments to pass to
AioEventWaiter.trigger()
- async add_waiter()[source]#
Add a
AioEventWaiterto thewaiterscontainerThe event loop to use for
AioEventWaiter.loopis found in the current context usingasyncio.get_event_loop()- Returns
The created
AioEventWaiterinstance- Return type
waiter
- async wait()[source]#
Creates a
waiterand “awaits” its resultThis method is used by
pydispatch.dispatch.Eventinstances when they are “awaited” and is the primary functionality ofAioEventWaitersandAioEventWaiter.- 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
AioEventWaitersto handleawaitinganEventon a specificevent loop- loop#
The
EventLoopinstance
- aio_event#
An
asyncio.Eventused to track event emission
New in version 0.1.0.
AioSimpleLock class#
- class AioSimpleLock[source]#
asyncio.Lockalternative backed by athreading.LockThis is a context manager that supports use in both
withandasync withcontext 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