Pretty progress and load indicators
Project description
python-propeller
================
Pretty progress and load indicators.
Installation:
pip install python-propeller
$ python
>>> from propeller import demo, propeller
>>> demo()
Usage as spinner:
with propeller("spinning propeller") as p:
# do something
p.spin()
# do more
p.spin()
# print to console
p.println("without messing up the spinner")
# replace "spinning propeller"
p.msg("spinner")
...
Usage with progress indicator:
with propeller("progress propeller") as p:
n = 1000
for i in range(n):
# do something
p.progress(i, n)
Process a collections:
def preprocessor(item):
# preprocess
def finalizer(item):
# finalize
pre_processed = propeller("preprocessing").map(preprocess, in_list)
propeller("finalizing").process(finalizer, pre_processed)
If the length of your collections can be determined, a progress bar will be
displayed. If iterables are given, a spinner will be displayed. If you know
the size of your iterables, you can explicitly specify it with the `n`
keyword argument:
def doit(item):
# work
propeller().process(doit, a_iterable, b_iterable, n=42)
`python-propeller` uses threading and needs to be ended cleanly. This can be
done by using `process`, `map` or `imap` functions, using the `with` statement
or explicitly calling the `end` method when you are finished.
p = propeller()
try:
# do something
finally:
p.end()
Various measurements are optional:
with propeller(eta=False, ops=False, eta=False, percent=False) as plain_p:
plain_p.spin()
Customization
-------------
The classic propeller can be made like so:
from time import sleep
def noop(item):
sleep(0.01)
propeller(spinner="|/-\\").process(noop, iter(range(300)))
But this is also one of the many preconfigured styles:
propeller(spinner='lines').process(noop, iter(range(300)))
With progress bars the first character of the string is used for the unfilled
portion of the bar and the last character for the filled portion:
propeller(bar=' -+=').process(noop, range(300))
# produces something like this:
========- [ops: 99][eta: 2s][23%]
Included styles for both spinners and progress bars:
`shades` ┄░▒▓█ (default)
`hbar` ▁▂▃▄▅▆▇█
`vbar` ▏▎▍▌▋▊▉█
`dots` ⠀⠁⠃⠇⡇⣇⣧⣷⣿
# print all spinner and progress bar styles
from propeller import print_styles
print_styles()
================
Pretty progress and load indicators.
Installation:
pip install python-propeller
$ python
>>> from propeller import demo, propeller
>>> demo()
Usage as spinner:
with propeller("spinning propeller") as p:
# do something
p.spin()
# do more
p.spin()
# print to console
p.println("without messing up the spinner")
# replace "spinning propeller"
p.msg("spinner")
...
Usage with progress indicator:
with propeller("progress propeller") as p:
n = 1000
for i in range(n):
# do something
p.progress(i, n)
Process a collections:
def preprocessor(item):
# preprocess
def finalizer(item):
# finalize
pre_processed = propeller("preprocessing").map(preprocess, in_list)
propeller("finalizing").process(finalizer, pre_processed)
If the length of your collections can be determined, a progress bar will be
displayed. If iterables are given, a spinner will be displayed. If you know
the size of your iterables, you can explicitly specify it with the `n`
keyword argument:
def doit(item):
# work
propeller().process(doit, a_iterable, b_iterable, n=42)
`python-propeller` uses threading and needs to be ended cleanly. This can be
done by using `process`, `map` or `imap` functions, using the `with` statement
or explicitly calling the `end` method when you are finished.
p = propeller()
try:
# do something
finally:
p.end()
Various measurements are optional:
with propeller(eta=False, ops=False, eta=False, percent=False) as plain_p:
plain_p.spin()
Customization
-------------
The classic propeller can be made like so:
from time import sleep
def noop(item):
sleep(0.01)
propeller(spinner="|/-\\").process(noop, iter(range(300)))
But this is also one of the many preconfigured styles:
propeller(spinner='lines').process(noop, iter(range(300)))
With progress bars the first character of the string is used for the unfilled
portion of the bar and the last character for the filled portion:
propeller(bar=' -+=').process(noop, range(300))
# produces something like this:
========- [ops: 99][eta: 2s][23%]
Included styles for both spinners and progress bars:
`shades` ┄░▒▓█ (default)
`hbar` ▁▂▃▄▅▆▇█
`vbar` ▏▎▍▌▋▊▉█
`dots` ⠀⠁⠃⠇⡇⣇⣧⣷⣿
# print all spinner and progress bar styles
from propeller import print_styles
print_styles()
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
File details
Details for the file python-propeller-0.2.6.tar.gz
.
File metadata
- Download URL: python-propeller-0.2.6.tar.gz
- Upload date:
- Size: 6.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a38d47bbf547341b544085b67425fb5b5fdd4d534f1e82e1741fa8a9cfa1bdc7 |
|
MD5 | 95cbd17b658e10f9e07d4c3b7e99dc6b |
|
BLAKE2b-256 | 0db1211c1f3141aa5bca2b75a293a143a77c23a1666960110677c87896ea40d9 |