DEV Community

Gerrishon Sirere
Gerrishon Sirere

Posted on • Updated on

Build CLIs with quo

Logo

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.8 or later.

Features

  • [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
Enter fullscreen mode Exit fullscreen mode

quo.echo

Example 1

   from quo import echo

   echo(f"Hello, World!", fg="red", italic=True, bold=True))
Enter fullscreen mode Exit fullscreen mode

Hello World

Example 2

   from quo import echo

   echo(f"Quo is ", nl=False)
   echo(f"scalable", bg="red", fg="black") 
Enter fullscreen mode Exit fullscreen mode

Scalable

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

   from quo import prompt

   prompt("What is your name?")
Enter fullscreen mode Exit fullscreen mode

quo.prompt

quo.Prompt

   from quo.prompt import Prompt

   session = Prompt(bottom_toolbar="Python 🐍 is great")
   session.prompt("Type something:") 
Enter fullscreen mode Exit fullscreen mode

quo.Prompt.prompt

Quo autocompletion

   # Press [Tab] to autocomplete
   from quo.prompt import Prompt
   from quo.completion import WordCompleter

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

Autocompletion

Quo frame


   from quo import container
   from quo.widget import TextArea, Frame
   # Example of a simple layout
   content = TextArea("Hello world🌍")
   container(
        Frame(
            content,
            title="Quo: python🐍")
         )
Enter fullscreen mode Exit fullscreen mode

Frame

Quo table

   from quo.table import Table


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

   Table(data)
Enter fullscreen mode Exit fullscreen mode

tabulate

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📑

License: MIT

This software is licensed under the MIT License. See the License file in the top distribution directory for the full license text.

Code of Conduct

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

Discussion (0)