Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/your-tools/python-cli-ui

Tools for better command line interfaces
https://github.com/your-tools/python-cli-ui

cli python

Last synced: 2 months ago
JSON representation

Tools for better command line interfaces

Awesome Lists containing this project

README

        

.. image:: https://img.shields.io/pypi/pyversions/cli-ui.svg
:target: https://pypi.org/project/cli-ui

.. image:: https://img.shields.io/pypi/v/cli-ui.svg
:target: https://pypi.org/project/cli-ui/

.. image:: https://img.shields.io/github/license/your-tools/python-cli-ui.svg
:target: https://github.com/your-tools/python-cli-ui/blob/main/LICENSE

.. image:: https://img.shields.io/badge/deps%20scanning-pyup.io-green
:target: https://github.com/your-tools/python-cli-ui/actions

python-cli-ui
=============

Tools for nice user interfaces in the terminal.

Note
----

This project was originally hosted on the `TankerHQ
`_ organization, which was my employer from 2016
to 2021. They kindly agreed to give back ownership of this project to
me. Thanks!

Documentation
-------------

See `python-cli-ui documentation `_.

Demo
----

Watch the `asciinema recording `_.

Usage
-----

.. code-block:: console

$ pip install cli-ui

Example:

.. code-block:: python

import cli_ui

# coloring:
cli_ui.info(
"This is",
cli_ui.red, "red", cli_ui.reset,
"and this is",
cli_ui.bold, "bold"
)

# enumerating:
list_of_things = ["foo", "bar", "baz"]
for i, thing in enumerate(list_of_things):
cli_ui.info_count(i, len(list_of_things), thing)

# progress indication:
cli_ui.info_progress("Done", 5, 20)
cli_ui.info_progress("Done", 10, 20)
cli_ui.info_progress("Done", 20, 20)

# reading user input:
with_sugar = cli_ui.ask_yes_no("With sugar?", default=False)

fruits = ["apple", "orange", "banana"]
selected_fruit = cli_ui.ask_choice("Choose a fruit", choices=fruits)

# ... and more!

Contributing
------------

We use `optimistic merging `_ so you don't have to worry too much about formatting the code, pleasing the linters or making sure all the test pass.

That being said, if you want, you can install `just `_ and use it to check your changes automatically. Just run ``just`` to see available tasks.

Making a new release
--------------------

* Create a token on pypi : see `pypi help `_ for details.

* Install `tbump `_ and use it to bump `cli-ui` to the new version.

Uploading documentation
-----------------------

Run:

.. code-block:: sh

just deploy-doc