Skip to main content

An assortment of handy Python tools made by someone named Andrew

Project description

About

PyPI Version Build

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


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 hashes)

Uploaded Source

Built Distribution

andrewtools-0.1.1-py3-none-any.whl (7.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page