Handful of utilities to do printing tricks to the terminal.
Project description
printbuddies
A few utilities to do terminal printing tricks.
Install with:
pip install printbuddies
Contains two classes and three functions: ProgBar, Spinner, print_in_place, ticker, and clear.
ProgBar
ProgBar is a self-incrementing, dynamically sized progress bar.
The progress counter and completion values can be manually overriden if desired.
The width of the progress bar is set according to a ratio of the terminal width
so it will be resized automatically if the terminal width is changed.
from printbuddies import ProgBar total = 100 bar = ProgBar(total=total) for _ in range(total): bar.display() bar.reset() my_list = [bar.display(return_object=i) for i in range(total)]
The display function has a 'return_object' parameter, allowing ProgBar to be used in comprehensions.
bar = ProgBar(10) def square(x: int | float)->int|float: return x * x myList = [bar.display(return_object=square(i)) for i in range(10)] {progress bar gets displayed} print(myList) [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
ProgBar also supports being used with a context manager.
PoolBar
A convenience class to integrate concurrent.futures.ThreadPoolExecutor
and concurrent.futures.ProcessPoolExecutor
with ProgBar
.
Constructor takes the pool executor type, a list of functions to execute, and an optional list of args for those functions.
The execute()
method returns a list of whatever those functions return.
execute()
can also take any optional ProgBar
constructor arguments.
def my_func(page: int)->str: return requests.get(f"https://somesite.com/pages/{page}").text pool = PoolBar("thread", [my_func for _ in range(10)], [(i,) for i in range(10)]) pages = pool.execute(width_ratio=0.75)
Spinner
This class will print the next character from a sequence every time it's display
method is called, clearing whatever is currently on the line.
The characters will be cycled through indefinitely.
from printbuddies import Spinner spinner = Spinner() for _ in range(10): spinner.display()
The default character sequence can be overridden:
spinner = Spinner(sequence=["~_~_~_~_~_~_", "_~_~_~_~_~_~"]) for _ in range(10): spinner.display()
When used with a context manager, the last character printed will be cleared from the terminal upon exiting.
print_in_place
'print_in_place' erases the current line in the terminal and then writes the value of
the 'string' param to the terminal.
from printbuddies import print_in_place import time #This will print numbers 0-99 to the terminal with each digit overwriting the last. for i in range(100): print_in_place(i) time.sleep(0.1)
ticker
'ticker' prints a list of strings to the terminal with empty lines above and below
such that previous text in the terminal is no longer visible.
Visually, It functions as a multi-line version of print_in_place.
from printbuddies import ticker import time #This will produce visually the same output as the above example for i in range(100): ticker([i]) time.sleep(0.1)
clear
A call to printbuddies.clear()
simply clears the current line from the terminal.
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.
Source Distribution
Built Distribution
File details
Details for the file printbuddies-1.4.1.tar.gz
.
File metadata
- Download URL: printbuddies-1.4.1.tar.gz
- Upload date:
- Size: 62.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 247d0cf9b8deb8534f9ae82f32faf89d0eecc1db6aa81e3c2051e376dbc30a1a |
|
MD5 | 324d7640a7e7d0b57a01f02d424eada3 |
|
BLAKE2b-256 | f8587168b30ff48ea96c263d51075659c6cb6c392609a00387606b804f02d315 |
Provenance
File details
Details for the file printbuddies-1.4.1-py3-none-any.whl
.
File metadata
- Download URL: printbuddies-1.4.1-py3-none-any.whl
- Upload date:
- Size: 7.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d4807102043675634d94f79de7e7b0dc95597f24cf44a5e397df079f76d2a42f |
|
MD5 | 61bf3067559638029e815bd1b40ea823 |
|
BLAKE2b-256 | c53b33a14b8300dce7ea362c357e3e4673832803686528c911ca0fc53c58ee29 |