A simple progress bar with the ILoveCandy style


Keywords
Progress, Bar, ILoveCandy, Pacman
License
MIT
Install
pip install candy-bar==1.3.5

Documentation

FOSSA Status

CandyBar

A Progress Bar inspired by Arch pacman with ILoveCandy option enabled. CandyBar

Instalation

Python

Manual instalation

Clone the repository, build, and install the package:

git clone https://github.com/MacDumi/CandyBar.git
cd CandyBar
pip install .

Install from PyPi

pip install candy_bar

C++

Don't like Python? Use it with C++! Clone the repository and either install the library or build against it:

git clone https://github.com/MacDumi/CandyBar.git
cd CandyBar
make && make install

Usage

Import the package and create the progress bar object:

# Python
from candy_bar import CandyBar

cb = CandyBar(100, "Progress")
// C++
#include "candybar.h"

...

CandyBar cb(100, "Progress");

Parameters

Parameter Default Description
total 100 Defines the value corresponding to 100%
message None Write some text at the beginning of the line
width console size Size (in chars) of the bar, by default max console size
left_justified True Defines the justification of the bar (not the message text)
disable False When set, the progress bar will be disabled

To update the position of the progress bar use the update method:

# Python
total = 100

for i in range(total + 1):
    # Your code goes here
    cb.update(i)
// C++
int total = 100;

for (int i = 0; i <= total; i++)
{
    // Your code goes here
    cb.update(i);
}

The progress bar can be disabled:

# Python
def function(verbose):
    ...
    cb.disable(not verbose)
    ...
// C++
void function(bool verbose)
{
    ...
    cb.disable(!verbose);
    ...
}

The total value, the message, and the justification of the progress bar can be changed:

# Python
cb.set_total(150)
cb.set_message("Another message")
cb.set_left_justified(False)
// C++
cb.set_total(150);
cb.set_message("Another message");
cb.set_left_justified(false);

Like what I do?

Buy me coffee Donate with monero 85jJPcfLPZRUKm3Re6qHZsKBZskVS2tYMWFoY5sYXUSQJzqzqpuPFepXMtqTKCRfuhYXaiJ3zQVeRPDYJUfepVjnJDpApH5