Pyprobar
A beautiful , fast, easy-to-use progress bar for python.
Installation
pip install pyprobar
nightly build:
python setup.py install
Synopsis
28.71% |████████>>>>>>>>>>>>>>>>> | 0:00:22|0:00:31 ETC: 05-20 18:08:15
Performance
For 10000000 loops:
probar: # this repo
100.00%|█████████████████████████████| 0:00:00|0:00:02 ETC: 06-07 12:08:03
bar: # this repo
100.00%|█████████████████████████████| 0:00:00|0:00:03 ETC: 06-07 12:11:15
tqdm:
100%|██████████| 10000000/10000000 [00:03<00:00, 2634907.84it/s]
progressbar:
100% (10000000 of 10000000) |############| Elapsed Time: 0:00:46 Time: 0:00:46
Usage
Use probar
or bar
for different situations:
probar
:
from pyprobar import bar, probar
import time
for idx, x in probar(range(1234), enum=True):
time.sleep(0.02)
>>> 18.31%|█████>>>>> | 0:00:20|0:00:25 ETC: 05-20 19:00:39
Or used in List comprehension:
res = [i for i in probar(range(10))]
print(res)
>>> 100.00%|███████████████████████████| 0:00:00|0:00:00 ETC: 05-20 12:14:33
>>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
bar
:
import numpy as np
N = 1024
a = np.linspace(2, 5, N)
for idx, i in enumerate(a):
time.sleep(0.01)
bar(idx, N)
>>> 100.00% |███████████████████████████| 0:00:00|0:00:10 ETC: 05-20 20:33:34
You can set your own progress bar by using the parameters symbol_1
and symbol_2
:
for i in probar(range(1234), symbol_2="o"):
time.sleep(0.01)
>>> 23.10%|██████ooooooooooooooooooo | 0:00:10|0:00:14 ETC: 05-20 17:29:57
Tip: Searchcharmap
in win10 start menu, you can find a lot of interesting characters.
Supports progress bars in different colors:
for idx, i in enumerate(a):
bar(idx, N, color='1') # `color` options: '1','2','3','4','5','0','update_random'
time.sleep(0.01)
Of course, you can also add text or variables to the progress bar:
for idx, i in enumerate(a):
text = f"what you want see is {x}"
bar(idx, N, text=text)
multi-line text :
for idx, i in enumerate(a):
text = f"{v1}, frame:{idx}\n"
bar(idx, N, text=text)
Specify the time zone:
for i in enumerate(a):
bar(idx, N, time_zone="Asia/Shanghai")
print RGB color string:
from pyprobar.styleString import rgb_str
text = rgb_str("I'm green!", RGB_fore=[0,255,0])
print(text)
TODO
- Thread problem with probar() in jupyter notebook
-
Thread problem with
bar()
in jupyter notebook - Speed of information
- Multithreading