Documentation for pulsar 0.9.2. For development docs, go here.
Pulsar asynchronous api is built on top of the new python asyncio
module, therefore pulsar.Future
class is an alias for
asyncio.Future
.
However, pulsar can run on python 2.7 and 3.3+ using the same code base.
To achieve this, pulsar uses a specialised asyncio.Task
class
with the following features:
yield
and yield from
This small class is the default interface for asynchronous objects. It is provided mainly for documentation purposes.
pulsar.async.futures.
AsyncObject
[source]¶Interface for async objects
_loop
¶The event loop associated with this object
timeit
(method, times, *args, **kwargs)[source]¶Useful utility for benchmarking an asynchronous method
.
Parameters: |
|
---|---|
Returns: |
The usage is simple:
>>> b = self.timeit('asyncmethod', 100)
A collection of asynchronous utilities which facilitates manipulation and interaction with asynchronous components.
pulsar.async.futures.
task
(function)[source]¶Thread-safe decorator to run a function
in an event loop.
Parameters: | function – a callable which can return coroutines,
asyncio.Future or synchronous data. Can be a method of
an async object, in which case the loop
is given by the object _loop attribute. |
---|---|
Returns: | a Future |
The coroutine is wrapped with the yield_from()
function.
pulsar.async.futures.
maybe_async
(value, loop=None)[source]¶Handle a possible asynchronous value
.
Return an asynchronous instance
only if value
is a generator, a Future
.
Parameters: |
|
---|---|
Returns: | a |
pulsar.async.futures.
chain_future
(future, callback=None, errback=None, next=None, timeout=None)[source]¶Chain a Future
to an existing future
.
This function chain the next
future to an existing future
.
When the input future
receive a result the optional
callback
is executed and its result set as the results of next
.
If an exception occurs the optional errback
is executed.
Parameters: | |
---|---|
Returns: | the future |
pulsar.async.futures.
multi_async
(data=None, loop=None, type=None, raise_on_error=True)¶Handle several futures at once. Thread safe.
pulsar.async.futures.
async_while
(timeout, while_clause, *args)[source]¶The asynchronous equivalent of while while_clause(*args):
Use this function within a coroutine when you need
to wait while_clause
to be satisfied.
Parameters: |
|
---|---|
Returns: | A |
Classes used by pulsar to create event loop executors. For more information on how to use an event loop executor check the asyncio documentation and pulsar CPU based actors.
pulsar.async.threads.
QueueEventLoop
(executor, iothreadloop=False, logger=None)[source]¶An asyncio event loop which
uses IOqueue
as its selector.