Keeps an eye on slow code
Project description
Lackadaisical
adjective: lacking spirit or liveliness.
Lackadaisical is a Python package for keeping an eye on slow code.
Usage
To assert that a block of code should execute and return within a number of seconds, use lackadaisical.assert_faster_than as either a decorator or a context manager.
For example, assert_faster_than will raise lackadaisical.TooSlow if this test doesn't finish within 30 seconds of starting:
from lackadaisical import assert_faster_than
@assert_faster_than(30)
def test_my_slow_function() -> None:
my_slow_function()
In this example, the test's setup is free to take as long as it needs and only the slow function is monitored:
from lackadaisical import assert_faster_than
def test_my_slow_function() -> None:
data = my_slow_preparation()
with assert_faster_than(30):
my_slow_function(data)
assert_faster_than will not interrupt your code's execution after its time has elapsed, but lackadaisical.TooSlow will report the difference between the actual and expected execution times to help you diagnose the problem.
Operation took 2.6 seconds (expected 2.0 at most)
Installation
Lackadaisical requires Python 3.9 or later and can be installed from PyPI.
pip install lackadaisical
Support
Please submit all your questions, feature requests and bug reports at github.com/cariad/lackadaisical/issues. Thank you!
Licence
Lackadaisical is open-source and released under the MIT License.
You don't have to give attribution in your project, but -- as a freelance developer with rent to pay -- I appreciate it!
Author
Hello! 👋 I'm Cariad Eccleston, and I'm a freelance Amazon Web Services architect, DevOps evangelist, CI/CD pipeline engineer and backend developer.
You can find me at cariad.earth, github/cariad, linkedin/cariad and on Mastodon at @cariad@tech.lgbt.
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 Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lackadaisical-1.0.1-py3-none-any.whl.
File metadata
- Download URL: lackadaisical-1.0.1-py3-none-any.whl
- Upload date:
- Size: 5.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
99d4260730c24585279b97923300fb0860f1aa5e3178ef5076a664017ec7dd2e
|
|
| MD5 |
991ef63d2123b52dbeeaf2ae8f32e23b
|
|
| BLAKE2b-256 |
cffa2bf99d312e724c79be94c803607bb830d132eb0e48658937309dadd85b72
|