TheTechromancer / aioconsole

Asynchronous console and interfaces for asyncio

Home Page:http://aioconsole.readthedocs.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

aioconsole

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

Requirements

  • Python >= 3.8

Installation

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

Simple usage

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 >>>

Documentation

Find more examples in the documentation and the example directory.

Limitations

The python console exposed by aioconsole is quite limited compared to modern consoles such as IPython or ptpython. Luckily, those projects gained greater asyncio support over the years. In particular, the following use cases overlap with aioconsole capabilities:

Contact

Vincent Michel: vxgmichel@gmail.com

About

Asynchronous console and interfaces for asyncio

http://aioconsole.readthedocs.io

License:GNU General Public License v3.0


Languages

Language:Python 100.0%