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

Uploaded Source

Built Distribution

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

Uploaded Python 3

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

Hashes for andrewtools-0.1.1.tar.gz
Algorithm Hash digest
SHA256 c8801314e059e207c43663d0de116233fbc62144c2b6906117ceb828a3b62686
MD5 3d1fa1cc7b4d4286ac8e09672362bffc
BLAKE2b-256 c9360f6d4f3d485052da208fcb08089441259520fd3585eb43567a57720318ba

See more details on using hashes here.

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

Hashes for andrewtools-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d539af8192397d93c41ad36396e920e17fbc9e9a4f2788d587f649e9814290d8
MD5 0f524680fe3d0920d30b1cd0097c1481
BLAKE2b-256 58b5704b9d5e6c57890dabeef024c6ec833bd8b5349bbbbc7a7c665101110995

See more details on using hashes here.

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