Skip to main content

A replacement for tqdm

Project description

What is this?

I wanted a light, clean, configurable alternative to tqdm. So I made one, complete with animations.

Screen Shot 2022-07-03 at 8 30 01 PM

How do I use this?

pip install informative_iterator

from informative_iterator import ProgressBar
import time

# 
# example 1
# 
for progress, each_element in ProgressBar([ 1, 2, 3, "any iterable thing" ]):
    time.sleep(0.002)
# example output:
# [>..................................]  0.00% |    0/1000 | started: 13:18:32 | eta: ________ | remaining: ________ | 
# example output:
# [==============>....................] 42.50% |  425/1000 | started: 13:18:32 | eta: 13:18:44 | remaining: 0:07sec | 
# example output:
# [================================>..] 93.10% |  931/1000 | started: 13:18:32 | eta: 13:18:44 | remaining: 0:01sec | 
# example output:
# Done in 0:12sec at 13:18:44

# 
# example 2
# 
import random
def custom_iterable():
    while True:
        yield random.random()

for progress, each in ProgressBar(custom_iterable(), iterations=10000):
    time.sleep(0.002)

# 
# example 3
# 
for progress, each in ProgressBar(10000):
    time.sleep(0.002)
    # index, just like using enumerate()
    print('progress.index   = ', progress.index)
    # percent with two decimal places. ex: 99.5
    print('progress.percent = ', progress.percent)
    # the output of time.time() for this iteration (seconds since unix epoch)
    print('progress.time    = ', progress.time)
    # boolean (updates dont always get printed every iteration)
    print('progress.updated = ', progress.updated)
    # int, doesn't change with each iteration: its the size of the iterator
    print('progress.total_iterations = ', progress.total_iterations)

# 
# example 4
# 
# update ~30 times a second for smooth looking progress
for progress, each in ProgressBar(10000, seconds_per_print=0.03):
    time.sleep(0.002)

# 
# example 5
# 
# have all progress bars default to trying to update update ~30 times a second
ProgressBar.configure(
    seconds_per_print=0.03,
)
for progress, each in ProgressBar(10000):
    time.sleep(0.002)

# 
# example 6
# 
ProgressBar.configure(
    # all the options (these exist as arguments for ProgressBar as well)
    layout=[ 'title', 'bar', 'percent', 'spacer', 'fraction', 'spacer', 'start_time', 'spacer', 'end_time', 'spacer', 'remaining_time', 'spacer', ],
    spacer=" | ",
    minmal=False, # False => defaults to normal layout
    minimal_layout=[ 'title', 'bar', 'spacer', 'end_time', 'spacer', ],
    inline=True,
    disable_logging=False, # turn off all the output
    progress_bar_size=35,  # 35 characters
    seconds_per_print=1,   # print every second
    percent_per_print=10,  # And print every 10% of progress
)
for progress, each in ProgressBar(10000):
    time.sleep(0.002)

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

informative_iterator-2.2.3.tar.gz (2.1 MB view details)

Uploaded Source

Built Distribution

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

informative_iterator-2.2.3-py3-none-any.whl (2.2 MB view details)

Uploaded Python 3

File details

Details for the file informative_iterator-2.2.3.tar.gz.

File metadata

  • Download URL: informative_iterator-2.2.3.tar.gz
  • Upload date:
  • Size: 2.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/6.7.0 pkginfo/1.9.6 requests/2.31.0 requests-toolbelt/1.0.0 tqdm/4.65.0 CPython/3.8.13

File hashes

Hashes for informative_iterator-2.2.3.tar.gz
Algorithm Hash digest
SHA256 1d506b85dc43361bb360ec38de1c142a4f775758508631f85a0353cfe6aa3696
MD5 714e964352a8f95a0a240b2150e998ca
BLAKE2b-256 ab467d8624ff6a41dcd3d437c0531db4becef27b22fc5c72258ddd6df3f84465

See more details on using hashes here.

File details

Details for the file informative_iterator-2.2.3-py3-none-any.whl.

File metadata

  • Download URL: informative_iterator-2.2.3-py3-none-any.whl
  • Upload date:
  • Size: 2.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/6.7.0 pkginfo/1.9.6 requests/2.31.0 requests-toolbelt/1.0.0 tqdm/4.65.0 CPython/3.8.13

File hashes

Hashes for informative_iterator-2.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 52154973f6b8199beffcbcdf51ee217997abf99a3684bb06798aa7cf4c56f058
MD5 ec54c8c4664d64ee48519e74a7547046
BLAKE2b-256 a3f103ce6ec5554b37a286529b28177788b8f25bfbb63cb02134e20261c28da7

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