Skip to main content

Penguin: a customizable stopwatch decorator

Project description

🐧 Penguin_py 🐧

Penguin is a lightweight, customizable stopwatch ⏱ decorator that helps you determine how long it takes for your functions to run.

Source code

The source code of this package lives here: https://github.com/espitiaandres/penguin

Installation

With Command Line

To install penguin_py with the command line, run this command:

pip install penguin_py.

With a requirements.txt file

To install penguin_py using a requirements.txt file, add this line to your requirements.txt file.

penguin-py==0.2.8

Usage

✅ To run with default kwargs:

from penguin_py import penguin


@penguin()
def test_func(test1, test2=None):
    # NOTE: this function can be anything!
    for i in range(10000000):
        pass
    return "test", True


test = test_func("", test2=":")

✅ To run with user specified kwargs:

@penguin(
    verbose=True,
    show_args=True,
    show_return=True,
    foreground='cyan',
    background='yellow',
)
def test_func(test1, test2=None):
    for i in range(10000000):
        pass
    return "test", True


test = test_func("", test2=":")

Note: For a more detailed list of all kwargs and their defaults, visit this section: List of kwargs

❌ Since penguin is a decorator that takes in kwargs, do not call it without the brackets ().

@penguin
def test_func(test1, test2=None):
    # NOTE: this function can be anything!
    for i in range(10000000):
        pass
    return "test", True


test = test_func("", test2=":")

You'll get a TypeError relating to arguments.

List of kwargs

  • verbose: When True, it shows all logs that are described by the other kwargs. When False, each kwarg would determine if that specific log is shown
    • default: False
  • show_args: When True, it shows the function's signature, with the *args and **kwargs being passed in.
    • default: False
  • show_return: When True, it shows the function's return value(s).
    • default: False
  • foreground: When chosen from this list, ["red" "yellow", "green", "blue", "magenta", "cyan", "grey"], it colour the logger output text the chosen colour.
    • default: "grey"
  • background: When chosen from this list, ["red" "yellow", "green", "blue", "magenta", "cyan", "grey", "black", "white"], it colour the logger output background the chosen colour.
    • default: "black"

Documentation

Documentation of penguin_py can be found here: https://github.com/espitiaandres/penguin/blob/master/README.md

Bugs/Requests

If you find any bugs or have any suggestions to penguin_py, submit them in the issues tab in the Github repo. This can be found here: https://github.com/espitiaandres/penguin/issues

License

Distributed under the terms of the MIT license, penguin_py is free and open source software.

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

penguin_py-0.2.8.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

penguin_py-0.2.8-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

Details for the file penguin_py-0.2.8.tar.gz.

File metadata

  • Download URL: penguin_py-0.2.8.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.12

File hashes

Hashes for penguin_py-0.2.8.tar.gz
Algorithm Hash digest
SHA256 8d6337e8f327315554626e2de0ea24e09d191522f84862a112d472ff873fb1ab
MD5 8e9599dadeed2b77db806b8c720a3124
BLAKE2b-256 acb3d44485ca84d5a2c2d1d34a0c86c4318d8e075e2aa94476b300a227498853

See more details on using hashes here.

File details

Details for the file penguin_py-0.2.8-py3-none-any.whl.

File metadata

  • Download URL: penguin_py-0.2.8-py3-none-any.whl
  • Upload date:
  • Size: 6.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.12

File hashes

Hashes for penguin_py-0.2.8-py3-none-any.whl
Algorithm Hash digest
SHA256 d8d19c9c10739aa7786a5859698869d053805dee664dbf44471726f0af608636
MD5 5c54106e594842764c7ee1dce9fb431e
BLAKE2b-256 796559bebc2c4c51e4bc0f4ef57e3b1403c1c654132c9352d1df2e60eb31809c

See more details on using hashes here.

Supported by

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