Skip to main content

A CLI framework based on asyncio

Project description

Latest PyPI version Version status Python 3.5 and 3.6 Latest Travis CI build status Codacy grade Codacy coverage

A CLI framework based on asyncio.


The simplest usage is to just pass in an async function.

import asynccli

async def mycli():
    print("Hello, world.")

if __name__ == '__main__':
    app = asynccli.App(mycli)

It can also be instantiated as a class, as long it has a call method.

import asynccli

class DivisionCalculator(asynccli.CLI):
    numerator = asynccli.Integer(help_text='This is the numerator.')
    denominator = asynccli.Integer()

    async def call(self):
        print(self.first_num / self.second_num)

if __name__ == '__main__':
    app = asynccli.App(DivisionCalculator)

In the DivisionCalculator example above, you would call your script like this:

$ /path/to/ 2 3

What if you want to have a tiered CLI with a hierarchy of commands? First, create your command by subclassing CLI as above. Then, wrap the whole thing inside of the TieredCLI class, and pass that to the App.

class Calculator(asynccli.TieredCLI):
    d = DivisionCalculator

Now, to invoke the script, you have an extra argument to call:

$ /path/to/ d 2 3


pip install asynccli


Currently it requires Python 3.5 to make use of async/await. It uses argparse under the hood, and therefore has no dependencies outside of the standard library.


  • Additional Argument types

  • Integration of additional argparse features

  • Add uvloop

  • Better support for help documentation


You can invoke the test scripts a few different ways:

$ py.test
$ python test
$ python -m py.test

And, in order to generate the test coverage:

$ coverage run -m py.test




asynccli was written by Adam Hopkins.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

asynccli-0.1.3.tar.gz (4.5 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page