Build CLIs with quo

Forever Scalable

Quo is a Python based toolkit for writing Command-Line Interface(CLI) applications.
Quo is making headway towards composing speedy and orderly CLI applications while forestalling any disappointments brought about by the failure to execute a CLI API.
Simple to code, easy to learn, and does not come with needless baggage.

Quo requires Python 3.6.1 or later.

Features

  • [x] Support for Ansi, RGB and HTML color models
  • [x] Support for tabular presentation of data
  • [x] Interactive progressbars
  • [x] Code completions
  • [x] Nesting of commands
  • [x] Automatic help page generation
  • [x] Syntax highlighting
  • [x] Autosuggestions
  • [x] Key Binders

Getting Started

Installation

You can install quo via the Python Package Index (PyPI)

pip install -U quo

quo.echo

Example 1

import quo

   quo.echo(f"Hello, World!", fg="red", italic=True, bold=True))

Example 2

import quo

   quo.echo(f"Quo is ", nl=False)
   quo.echo(f"scalable", bg="red", fg="black")

Unlike the builtin print function, echo function has improved support for handling Unicode and binary data.
It also supports handling of ANSI color sequences.

quo.prompt

import quo

   quo.prompt("What is your name?")

quo.Prompt

import quo

   session = quo.Prompt(bottom_toolbar="Python 🐍 is great")
   session.prompt("Type something:")

Quo autocompletion

# Press [Tab] to autocomplete
   import quo

   completer = quo.completion.WordCompleter(['USA', 'UK', 'Canada', 'Kenya'])
   session = quo.Prompt(completer=completer)
   session.prompt('Which country are you from?: ')

Quo frame

import quo

   @quo.command()
   @quo.app("@frame", help="Print a frame")

   def _frame(frame):
    """ Example of a simple layout"""
   content = quo.widgets.TextArea(text="Hello world🌍")
   quo.container(
        quo.widgets.Frame(
            content,
            title="Quo: python🐍")
         )

   if __name__ == "__main__":
       _frame()

Quo tabular

import quo


   table = [
     ["Name", "Gender", "Age"],
     ["Alice", "F", 24],
     ["Bob", "M", 19],
     ["Dave", "M", 24]
   ]

   quo.echo(quo.tabular(table))

For more intricate examples, have a look in the examples directory and the documentation.

Donate🎁

In order to for us to maintain this project and grow our community of contributors.
Donate

Quo is...

Simple
If you know Python you can easily use quo and it can integrate with just about anything.

Getting Help

Gitter

For discussions about the usage, development, and future of quo, please join our Gitter community

Resources

Bug tracker

If you have any suggestions, bug reports, or annoyances please report them
to our issue tracker at
Bug tracker

License📑

Code of Conduct

Code of Conduct is adapted from the Contributor Covenant,
version 1.2.0 available at
Code of Conduct

17