All Projects → rasbt → Pyprind

rasbt / Pyprind

Licence: bsd-3-clause
PyPrind - Python Progress Indicator Utility

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Pyprind

Spotter
🔎 macOS productivity tool to launch everything
Stars: ✭ 426 (-19.17%)
Mutual labels:  productivity
Sequence Layout
A vertical sequence UI component for Android
Stars: ✭ 444 (-15.75%)
Mutual labels:  progress-bar
Pomolectron
🍅 A pomodoro app for your menubar/tray.
Stars: ✭ 504 (-4.36%)
Mutual labels:  productivity
Mater
🍅 A simple and purty menubar Pomodoro app written in Electron
Stars: ✭ 433 (-17.84%)
Mutual labels:  productivity
Snaptile
Versatile window tiling for X11 with powerful keyboard controls
Stars: ✭ 442 (-16.13%)
Mutual labels:  productivity
Pomoday V2
A keyboard only task management web app
Stars: ✭ 495 (-6.07%)
Mutual labels:  productivity
Hoverzoom
Google Chrome extension for zooming images on mouse hover
Stars: ✭ 426 (-19.17%)
Mutual labels:  productivity
Activitywatch
The goal of ActivityWatch is simple: Enable the collection of as much valuable lifedata as possible without compromising user privacy.
Stars: ✭ 5,927 (+1024.67%)
Mutual labels:  productivity
Notion Toolbox
This is a collection of Notion tools that work in tandem together.
Stars: ✭ 441 (-16.32%)
Mutual labels:  productivity
Pomodoro
simple command line pomodoro app with visualization of statistics
Stars: ✭ 502 (-4.74%)
Mutual labels:  productivity
Android Dev Sources
All those Android development sources that you need to be and stay awesome!
Stars: ✭ 434 (-17.65%)
Mutual labels:  productivity
Metaflow
🚀 Build and manage real-life data science projects with ease!
Stars: ✭ 5,108 (+869.26%)
Mutual labels:  productivity
Things.sh
Simple read-only comand-line interface to your Things 3 database
Stars: ✭ 492 (-6.64%)
Mutual labels:  productivity
Avatarview
A circular Image View with a lot of perks. Including progress animation and highlight state with borders and gradient color.
Stars: ✭ 429 (-18.6%)
Mutual labels:  progress-bar
Sandman
An Application Built With Late Night Developers In Mind
Stars: ✭ 505 (-4.17%)
Mutual labels:  productivity
Prm
A minimal project manager for the terminal.
Stars: ✭ 428 (-18.79%)
Mutual labels:  productivity
Node.cli Progress
⌛️ easy to use progress-bar for command-line/terminal applications
Stars: ✭ 466 (-11.57%)
Mutual labels:  progress-bar
Jrnl
Collect your thoughts and notes without leaving the command line.
Stars: ✭ 5,126 (+872.68%)
Mutual labels:  productivity
Octolinker
OctoLinker — Links together, what belongs together
Stars: ✭ 4,853 (+820.87%)
Mutual labels:  productivity
Buttonprogressbar
A Download Button ProgressBar, inspiration from Dribbble
Stars: ✭ 496 (-5.88%)
Mutual labels:  progress-bar

Build Status Code Health Coverage Status Python 2.7 Python 3.5 PyPI version License

PyPrind (Python Progress Indicator)

The PyPrind (Python Progress Indicator) module provides a progress bar and a percentage indicator object that let you track the progress of a loop structure or other iterative computation.
Typical applications include the processing of large data sets to provide an intuitive estimate at runtime about the progress of the computation.

PyPrind Demo


Progress Bars and Percentage Generators

import pyprind

for i in pyprind.prog_bar(range(n)):
    time.sleep(timesleep) # your computation here
0%                          100%
[##############################] | ETA: 00:00:00
Total time elapsed: 00:00:05


for i in pyprind.prog_percent(range(n)):
    time.sleep(timesleep) # your computation here
[10 %] Time elapsed: 00:00:01 | ETA: 00:00:04

While-loops

The ProgBar and ProgPercent classes also support while loops if desired. The objects are updated inside the loop using the update method as shown below:

import random
import pyprind
import time

timesleep = 0.05
random.seed(1)
collection = set()

n = 100
bar = pyprind.ProgBar(n, track_time=False, title='while example')

while len(collection) < n:
    r = random.randint(0, 10**5)
    if r % 7 and r not in collection:
        collection.add(r)
        bar.update()
        time.sleep(timesleep)

print(bar)
while example
0%                          100%
[##############################]
Title: while example
  Started: 09/07/2016 13:06:58
  Finished: 09/07/2016 13:07:03
  Total time elapsed: 00:00:05


Advanced Tracking

If you have the psutil package installed, you can set the monitor=True to track CPU and memory usage:

bar = pyprind.ProgBar(n, monitor=True)
for i in range(n):
    time.sleep(timesleep) # your computation here
    bar.update()
print(bar)
0%                          100%
[##############################] | ETA: 00:00:00
Total time elapsed: 00:00:05
Title:
  Started: 09/07/2016 13:14:09
  Finished: 09/07/2016 13:14:14
  Total time elapsed: 00:00:05
  CPU %: 1.90
  Memory %: 0.48


Choose Your Favorite Bar Style

bar = pyprind.ProgBar(n, bar_char='█')
for i in range(n):
    time.sleep(0.1) # do some computation
    bar.update()
0%                          100%
[██████████████████████████████] | ETA: 00:00:00
Total time elapsed: 00:00:10

Note to PyCharm users

If you are using the PyCharm IDE, you need to pass the sys.stdout or sys.err as a stream argument to display the progress indicators correctly in the IDE. For example,

import sys

bar = pyprind.ProgBar(n, stream=sys.stdout)
for i in range(n):
    time.sleep(0.1) # do some computation
    bar.update()


###View more examples in an IPython Demo Notebook



Sections




Installation

[back to top]

The most convenient way to install PyPrind is via tools like pip or easy_install:

  • pip install pyprind

  • easy_install pyprind

PyPrind comes without any dependencies except for the optional psutil to monitor CPU and memory usages. You can install psutil via pip install psutil or install it automatically with PyPrind:
pip install pyprind -r requirements.txt

Alternatively, you can install PyPrind the classic way: Download the package from the Python Package Index https://pypi.python.org/pypi/PyPrind, unzip it, navigate into the unzipped directory, and use the command

python setup.py install




Documentation

[back to top]

PyPrind consists of two class objects that can visualize the progress of a computation on the output screen.
Progress bars are available via ProgBar, and percentage indicators can be used via a ProgPercent.

	n = 10000000
	bar = pyprind.ProgBar(n)   # 1) initialization with number of iterations
	for i in range(n):
    	# do some computation
    	bar.update()           # 2) update the progress visualization

Alternatively, the progress can be tracked via the equivalent generator functions prog_bar and prog_percent:

	for i in pyprind.prog_bar(range(n)):
    	# do something
    	pass

Complete Parameter of Parameters and Options

ProgBar

ProgBar(iterations, track_time=True, width=30, bar_char='#', stream=2, title='', monitor=False, update_interval=None))

  • iterations : int
    Number of iterations for the iterative computation.
  • track_time : bool (default: True)
    Prints elapsed time when loop has finished.
  • width : int (default: 30)
    Sets the progress bar width in characters.
  • stream : int (default: 2).
    Setting the output stream. Takes 1 for stdout, 2 for stderr, or a custom stream object
  • title : str (default: '')
    Setting a title for the progress bar.
  • monitor : bool (default: False)
    Monitors CPU and memory usage if True (requires psutil package).
  • update_interval : float or int (default: None)
    The update_interval in seconds controls how often the progress is flushed to the screen. Automatic mode if update_interval=None.
ProgPercent

ProgPercent(iterations, track_time=True, stream=2, title='', monitor=False, update_interval=None)

  • iterations : int
    Number of iterations for the iterative computation.
  • track_time : bool (default: True)
    Prints elapsed time when loop has finished.
  • stream : int (default: 2).
    Setting the output stream. Takes 1 for stdout, 2 for stderr, or a custom stream object
  • title : str (default : '').
    Setting a title for the percentage indicator.
  • monitor : bool (default: False)
    Monitors CPU and memory usage if True (requires psutil package).
  • update_interval : float or int (default: None)
    The update_interval in seconds controls how often the progress is flushed to the screen. Automatic mode if update_interval=None.
update method

update(iterations=1, item_id=None, force_flush=False)

  • iterations : int (default: 1)
    default argument can be changed to integer values >=1 in order to update the progress indicators more than once per iteration.
  • item_id : str (default: None)
    Print an item_id sring behind the progress bar
  • force_flush : bool (default: False)
    If True, flushes the progress indicator to the output screen in each iteration.




Examples

[back to top]

Examples for using the progress bar and percentage indicator objects can be found in the IPython Demo Notebook.




Contact

[back to top]

If you have any questions or comments about PyPrind, please feel free to contact me via
eMail: [email protected]
or Twitter: @rasbt

The pyprind module is available on GitHub at https://github.com/rasbt/pyprind.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].