Skip to main content

Keeps an eye on slow code

Project description

Lackadaisical

codecov

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

lackadaisical-1.0.1-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

File details

Details for the file lackadaisical-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for lackadaisical-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 99d4260730c24585279b97923300fb0860f1aa5e3178ef5076a664017ec7dd2e
MD5 991ef63d2123b52dbeeaf2ae8f32e23b
BLAKE2b-256 cffa2bf99d312e724c79be94c803607bb830d132eb0e48658937309dadd85b72

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