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)
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 callbacks - callback – The coroutine function to add
- loop – The
-
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
¶ set – Instances of
AioEventWaiter
currently “awaiting” the event
-
lock
¶ 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 inwaiters
. After completion, thewaiters
are removed.Parameters: - *args – Positional arguments to pass to
AioEventWaiter.trigger()
- **kwargs – Keyword arguments to pass to
AioEventWaiter.trigger()
- *args – Positional arguments to pass to
-
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
instanceReturn type: waiter
-
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
-
aio_event
¶ An
asyncio.Event
used to track event emission
-
args
¶ list – The positional arguments attached to the event
-
kwargs
¶ dict – The keyword arguments attached to the event
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: - blocking (bool) – See
-