Helpful functions for python.
Project description
Collection of useful python functions/features.
Installation
pip install danpy
Installation from GitHub
git clone https://github.com/danhagen/danpy.git && cd danpy
pip install -r requirements.txt
pip install .
Statusbar for Python for/while
loops with danpy.sb
This helpful statusbar can be used with for/while
loops to keep track of how much time has elapsed as well as how much time remains. Simply place inside the loop (after initializing the statusbar -- dsb
) and update
with the current timestep (i). A title
can be added to the statusbar to keep track of individual function/loops and it is recommended that any function that runs a loop uses arbitrary_function_name.__name__
to automatically assign an appropriate title.
Initialize statusbar before running a for/while loop.
from danpy.sb import *
from time import sleep
statusbar = dsb()
number_of_loops = 10
for i in range(number_of_loops):
sleep(0.5)
statusbar.update(i,number_of_loops,title="Test Loop")
It is useful to either reset
the statusbar instance. However, loops run in succession will automatically reset if the loops are of the same size.
from danpy.sb import *
from time import sleep
statusbar = dsb()
number_of_inside_loops = 10
number_of_outside_loops = 3
for j in range(number_of_outside_loops):
for i in range(number_of_inside_loops):
sleep(0.5)
statusbar.update(i,number_of_inside_loops,title="Testing Loop-D-Loops")
number_of_additional_loops = 10
for i in range(number_of_additional_loops):
sleep(0.5)
statusbar.update(i,number_of_additional_loops,title="Test Another Loop")
Resetting Statusbar
from danpy.sb import *
from time import sleep
statusbar = dsb()
number_of_loops = 10
for i in range(number_of_loops):
sleep(0.5)
statusbar.update(i,number_of_loops,title="Testing One Loop")
statusbar.reset()
a_different_number_of_loops = 20
for i in range(a_different_number_of_loops):
sleep(0.5)
statusbar.update(i,a_different_number_of_loops,title="Test A Different Loop")
Using while
Loops
If using a while
loop, the statusbar will still update, but depending on the nature of the code in the loop, the extrapolation to determine time remaining may be off.
from danpy.sb import *
from time import sleep
statusbar = dsb()
count = 0
number_of_loops = 10
while count<number_of_loops:
sleep(0.5)
statusbar.update(count,number_of_loops,Title="Testing One Loop")
count+=1
Only compatible with while loops that utilize a count
metric where the loop continues while count<number_of_loops
. The "<" ensures that the statusbar terminates at 100%. If you use "<=" then the input to the statusbar will be statusbar.update(i,number_of_loops+1,**kwargs)
.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.