Skip to main content

Have a nice looking, simple cli in seconds

Project description

cliasi (cli easy)

Output pretty command line text without hassle.
This is mostly a collection of pretty print commands

By using colorama, the text you see below is colored nicely.

Basic Usage

from cliasi import cli

cli.success("It works!")
# > ✔ [CLI] | It works!

cli.messages_stay_in_one_line = True
# The next few lines will get overwritten
cli.info("blah")
cli.warn("doing something dangerous")
# > ! [CLI] | doing something dangerous

# You can even ask for input and the input will disappear
cli.log("Got input: " + cli.ask("Give input: "))
# > LOG [CLI] | Got input: test

Prefix and Cliasi instances

Sometimes you might want to indicate different parts of your program working.
You can do that by having another instance of Cliasi with another prefix

from cliasi import cli, Cliasi  # Default shared Cliasi instance

cli.update_prefix("MANAGE")
cli.fail("Management failed")
# > X [MANAGE] | Management failed

def calculate():
    # Another part of your program could have its own instance
    clisi = Cliasi("CALC", use_oneline=True)
    clisi.info("Calculating...")
    # > i [CALC] | Calculating...
    # Although it might be better to use other methods for waiting

Animations

Some processes might take a few seconds to complete and you dont know how much the process is done (you cant use a progress bar)
In that case you can use either a blocking or non blocking animate method.

from cliasi import cli

# This will wait for three seconds and display an animation
cli.animate_message_blocking("Saving files, press CRTL-C to stop", 3)
save_data()

# But if you want to wait for something to finish and display something nice in the meantime
task = cli.animate_message_non_blocking("Waiting for a process to quit")
# Put your processing logic here
do_stuff_that_takes_time()
task.stop()  # Stop the animation
cli.success("Process quit")

animate_message_nonblocking look in the console

Progress Bars

You can also have a progress bar which adapts to the size of your terminal
This is the "static" version which you just call whenever you get an update.

from cliasi import cli

processed, total = 0, len(calculate_queue)
while not calculate_queue.is_empty():
    cli.progressbar("Calculating items...", processed / total)
    calculate_next_item()
    processed += 1

cli.success("Calculation complete")
# This will show a progress bar that will only update when a calculation has finished.
# Potentially bad if it gets stuck on a calculation

Or if you want to have the bar be animated while waiting for progress

from cliasi import cli

task = cli.progressbar_animated_download("Downloading files.")
download()
task.update(10)
# You can also change the message while in the process
task._message = "Extracting"
extract()
task.update(40)
extract_again()

task.stop()

progressbar_animated_download look in the console

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

cliasi-0.2.0.tar.gz (24.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cliasi-0.2.0-py3-none-any.whl (21.6 kB view details)

Uploaded Python 3

File details

Details for the file cliasi-0.2.0.tar.gz.

File metadata

  • Download URL: cliasi-0.2.0.tar.gz
  • Upload date:
  • Size: 24.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for cliasi-0.2.0.tar.gz
Algorithm Hash digest
SHA256 1b414420c7e7416a5cc3eb6d1df8aedc8b180b94631d76fd8b7aa52c70917be2
MD5 208a32d6762cb2c62de5495d6b61cff0
BLAKE2b-256 e1acdfa4771b942c9f901461d5b372869865720346601a4c047389c5a39beff9

See more details on using hashes here.

File details

Details for the file cliasi-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: cliasi-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 21.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for cliasi-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 57ef6fa33f07e2cd7a6b33b9dee8ac1c0aa7ddeb76420df585d3a4dcf0f4e045
MD5 e595f1db4312e678f3f7fe90bdb49e41
BLAKE2b-256 e2c974bb5055ee392bb6c333bd9c06b1b4cb6f11b1fb7834929f7380ea3de959

See more details on using hashes here.

Supported by

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