An assortment of handy Python tools made by someone named Andrew
Project description
About
andrewtools
is an assortment of handy Python tools made by someone named Andrew.
Quick Start
Supported Python Versions
Python 3.8+
Mac / Linux
pip install andrewtools
Windows
py -m pip install andrewtools
Examples
Progress Bar
If you are working on a program that uses a loop that takes a significant amount of time to execute, it can be nice to follow the progress of your program while it runs. Use progress_bar
to visualize the progress via the command line.
import time
from andrewtools import progress_bar
iterations = 10
for i in range(iterations):
time.sleep(0.5)
progress_bar(i, iterations, width=10, prefix="Progress")
# Printed to command line:
Progress | ***------- | 30% <- % and progress bar update in-place while loop runs
- Warning: this function will not play well if the loop includes other print statements. The progress bar may get printed on a separate line for each iteration, which may not be desirable.
- Note: in the case of a constant runtime per iteration, the progress bar provides a good estimate of the relative amount of execution time remaining. Be aware that in the case of variable runtimes per iteration (e.g. if there is an inner loop with a varying workload), the progress bar is not a good estimate of the remaining execution time. It simply tracks the progress through the number of iterations.
AndrewTimer
AndrewTimer
provides a simple API for a timer to use to measure execution time of your programs.
from andrewtools import AndrewTimer
at = AndrewTimer()
for i in range(10):
time.sleep(0.5)
at.lap()
# Use in tandem with `progress_bar` as follows:
end = f"(Last {at.last_lap(format=True)}) (Total: {at.elapsed(format=True)})"
progress_bar(i, 10, width=10, label="Progress", end=end)
# Measure total time since instantiation
total_time = at.elapsed('s', format=True)
# Measure average time of all laps recorded on the timer
average_time = at.average('s', format=True)
# Display formatted times
print(f"Total: {total_time}, Average: {average_time}") # approx. 5.000s 0.500s
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
andrewtools-0.1.1.tar.gz
(7.0 kB
view details)
Built Distribution
File details
Details for the file andrewtools-0.1.1.tar.gz
.
File metadata
- Download URL: andrewtools-0.1.1.tar.gz
- Upload date:
- Size: 7.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c8801314e059e207c43663d0de116233fbc62144c2b6906117ceb828a3b62686 |
|
MD5 | 3d1fa1cc7b4d4286ac8e09672362bffc |
|
BLAKE2b-256 | c9360f6d4f3d485052da208fcb08089441259520fd3585eb43567a57720318ba |
File details
Details for the file andrewtools-0.1.1-py3-none-any.whl
.
File metadata
- Download URL: andrewtools-0.1.1-py3-none-any.whl
- Upload date:
- Size: 7.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d539af8192397d93c41ad36396e920e17fbc9e9a4f2788d587f649e9814290d8 |
|
MD5 | 0f524680fe3d0920d30b1cd0097c1481 |
|
BLAKE2b-256 | 58b5704b9d5e6c57890dabeef024c6ec833bd8b5349bbbbc7a7c665101110995 |