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: 6 months ago
JSON representation
Tools for better command line interfaces
- Host: GitHub
- URL: https://github.com/your-tools/python-cli-ui
- Owner: your-tools
- License: bsd-3-clause
- Created: 2017-08-25T12:36:05.000Z (almost 9 years ago)
- Default Branch: main
- Last Pushed: 2025-04-24T18:59:57.000Z (about 1 year ago)
- Last Synced: 2025-04-28T05:36:50.326Z (about 1 year ago)
- Topics: cli, python
- Language: Python
- Homepage: https://your-tools.github.io/python-cli-ui/
- Size: 1.18 MB
- Stars: 67
- Watchers: 4
- Forks: 15
- Open Issues: 4
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGELOG.rst
- License: LICENSE
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