Skip to main content

Near Zero-Overhead Python Code Coverage

Project description

Covers: Near Zero-Overhead Python Code Coverage

Covers is a fast Python code coverage tool, originally based on SlipCover. This version has been re-written as a Rust / PyO3 extension for improved performance and maintainability.

license pypi pyversions tests

About Covers

Covers is a fast code coverage tool. It tracks a Python program as it runs and reports on the parts that executed and those that didn't. That can help guide your testing (showing code that isn't being tested), debugging, fuzzing or to find "dead" code.

Past code coverage tools can make programs significantly slower; it is not uncommon for them to take twice as long to execute. Covers aims to provide the same information with near-zero overhead, often almost as fast as running the original Python program.

How it works

Previous coverage tools like Coverage.py rely on Python's tracing facilities, which add significant overhead. Instead, Covers uses the new sys.monitoring API to collect coverage information with minimal performance impact. The core data collection is implemented in Rust for maximum efficiency.

Getting started

Covers is available from PyPI. You can install it like any other Python module with

pip3 install covers

You could then run your Python script with:

python3 -m covers myscript.py

Using it with a test harness

Covers can also execute a Python module, as in:

python3 -m covers -m pytest -x -v

which starts pytest, passing it any options (-x -v in this example) after the module name. No plug-in is required for pytest.

Platforms

Our GitHub workflows run the automated test suite on Linux, MacOS and Windows, but really it should work anywhere where CPython does.

Contributing

Covers is under active development; contributions are welcome! Please also feel free to create a new issue with any suggestions or issues you may encounter.

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 Distribution

covers-0.0.4.tar.gz (333.0 kB view details)

Uploaded Source

Built Distributions

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

covers-0.0.4-cp312-abi3-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.12+Windows x86-64

covers-0.0.4-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.17+ x86-64

covers-0.0.4-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.6 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.17+ ARM64

covers-0.0.4-cp312-abi3-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.12+macOS 11.0+ ARM64

covers-0.0.4-cp312-abi3-macosx_10_12_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.12+macOS 10.12+ x86-64

File details

Details for the file covers-0.0.4.tar.gz.

File metadata

  • Download URL: covers-0.0.4.tar.gz
  • Upload date:
  • Size: 333.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: maturin/1.9.6

File hashes

Hashes for covers-0.0.4.tar.gz
Algorithm Hash digest
SHA256 5a3fa001e04085f79e8ee2d5abdf43c2c77bbf49cd49712a4d1c0fd4886e79b2
MD5 8fbac9aa6315d0744c4f1605645c9212
BLAKE2b-256 5d36bd20707a4ce6ba29cdbebc849542a4b5de43397aed1410479becaaac25d6

See more details on using hashes here.

File details

Details for the file covers-0.0.4-cp312-abi3-win_amd64.whl.

File metadata

  • Download URL: covers-0.0.4-cp312-abi3-win_amd64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.12+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: maturin/1.9.6

File hashes

Hashes for covers-0.0.4-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 3021c451c0d12510d0fd4bae76eda7bcf640273318d7122963ec662bc190e21e
MD5 754729da31e22f18403b0864b6dde41c
BLAKE2b-256 54527774ea0d28ff652cd1f2183e52a747cabb2319ca7152eb9607cdfd354ecb

See more details on using hashes here.

File details

Details for the file covers-0.0.4-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for covers-0.0.4-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 27d468fb117a0468665ce45d6fcccc6ce570224482dbba1efc9836cd264ecc93
MD5 51d379eda19092deec10e2e13b1da778
BLAKE2b-256 d0a84d4487b72208e190351ea8c6683d0d06b0b3cee62435f597feaa4460b166

See more details on using hashes here.

File details

Details for the file covers-0.0.4-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for covers-0.0.4-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ac3835413cff82e1abc465592901f8567c086c1f7b2ea3401be8c30f9beda5e4
MD5 9f8a38d5c114bd38d7d3473cffddf403
BLAKE2b-256 1e63249011888efd439a487b9c7362dfb4ac04b9a2967c7f0e2898c7241f3227

See more details on using hashes here.

File details

Details for the file covers-0.0.4-cp312-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for covers-0.0.4-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 40246657fdf67d8cf7ab2bd3fd05a7e3a3fc3ffffc0d281e0b1619333eb0c42a
MD5 b3f5392d7196887bdcd0d97a756f6032
BLAKE2b-256 f4560d8a816aaa7275a36286b74f1c581c9cddd66f3e3c6683bc54314e3ba049

See more details on using hashes here.

File details

Details for the file covers-0.0.4-cp312-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for covers-0.0.4-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 41962a405f33d894827c15738b482b66b3b33c89a71b3a07f00ce721129c6352
MD5 d27ee57242f2ae9ed2871533766e7c67
BLAKE2b-256 9ab99236a7c05595208df9a84158ab89b4ce24fcb64833c4104888b90139832d

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