Skip to main content
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()

Metadata

Release files for python-propeller 0.2.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for python-propeller 0.2.6
File Size Uploaded
python-propeller-0.2.6.tar.gz 6.0 kB Details

Release files / python-propeller-0.2.6.tar.gz

Download URL python-propeller-0.2.6.tar.gz
Size 6.0 kB
Tags Source
SHA-256 checksum
How to use checksums
a38d47bbf547341b544085b67425fb5b5fdd4d534f1e82e1741fa8a9cfa1bdc7
BLAKE2b-256 checksum
How to use checksums
0db1211c1f3141aa5bca2b75a293a143a77c23a1666960110677c87896ea40d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.2.6 This release

1 release file

0.2.5

1 release file

0.2.4

1 release file

0.2.3

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2.0

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page