Asynchronous console and interfaces for asyncio
aioconsole provides:
- asynchronous equivalents to input, print, exec and code.interact
- an interactive loop running the asynchronous python console
- a way to customize and run command line interface using argparse
- stream support to serve interfaces instead of using standard streams
- the
apython
script to access asyncio code at runtime without modifying the sources
- python >= 3.4
aioconsole is available on PyPI and GitHub. Both of the following commands install the aioconsole
package and the apython
script.
console
$ pip3 install aioconsole # from PyPI $ python3 setup.py install # or from the sources $ apython -h usage: apython [-h] [--serve [HOST:] PORT] [--no-readline] [--banner BANNER] [--locals LOCALS] [-m MODULE | FILE] ...
Run the given python file or module with a modified asyncio policy replacing the default event loop with an interactive loop. If no argument is given, it simply runs an asynchronous python console.
- positional arguments:
FILE python file to run ARGS extra arguments
- optional arguments:
-h, --help show this help message and exit --serve [HOST:] PORT, -s [HOST:] PORT serve a console on the given interface instead --no-readline force readline disabling --banner BANNER provide a custom banner --locals LOCALS provide custom locals as a dictionary -m MODULE run a python module
The following example demonstrates the use of await
inside the console:
console
$ apython Python 3.5.0 (default, Sep 7 2015, 14:12:03) [GCC 4.8.4] on linux Type "help", "copyright", "credits" or "license" for more information. ---This console is running in an asyncio event loop. It allows you to wait for coroutines using the 'await' syntax. Try: await asyncio.sleep(1, result=3, loop=loop) ---
python3
>>> await asyncio.sleep(1, result=3) # Wait one second... 3 >>>
Find more examples in the documentation and the example directory.
Vincent Michel: vxgmichel@gmail.com