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.5.dev202511121419.tar.gz (332.6 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.5.dev202511121419-cp312-abi3-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.12+Windows x86-64

covers-0.0.5.dev202511121419-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

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

covers-0.0.5.dev202511121419-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.5.dev202511121419-cp312-abi3-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.12+macOS 11.0+ ARM64

covers-0.0.5.dev202511121419-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.5.dev202511121419.tar.gz.

File metadata

File hashes

Hashes for covers-0.0.5.dev202511121419.tar.gz
Algorithm Hash digest
SHA256 6a08d66b8a43bbc300cf58267b954f73a1d2f2e9d9cd7c9972118e558fa556e8
MD5 fd98ccdb5e250247cb4d3ae19b99f6bf
BLAKE2b-256 c158ece6a00cb91dc9dc5b1e07109124f8cf5f6a9e2f964923fbae4c681da2b3

See more details on using hashes here.

File details

Details for the file covers-0.0.5.dev202511121419-cp312-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for covers-0.0.5.dev202511121419-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 7949527cff3fba77dfe9bbb38711e13bbd5e248ef7316ef6135ed03c5496add1
MD5 44998f13a73d487e3673ad79bfbbf357
BLAKE2b-256 8085958395b30bce84a7c845246e07f0ae531595d8c58cd7430ebd168911a61f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202511121419-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e14da2de68a8f6894f2c424a99c16e4bddb4e3a68503704e46faba445f6950a2
MD5 13f0b27b2e7ca4cddbd01b6167cdf674
BLAKE2b-256 7ae198f695f66e5d1064c55e8eabd23e84e7f3e45c2cc217f231042e375b480e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202511121419-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f7079702ccc42db8bb92a74488d00d7bb6f9692fa427e49714c434a03cd205a8
MD5 4384bf48b4db170fdd8234550e5a94b1
BLAKE2b-256 59446246a4abe9822ddeccef02201206ba4f004ca96de3e6c8620e9a9bca751d

See more details on using hashes here.

File details

Details for the file covers-0.0.5.dev202511121419-cp312-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for covers-0.0.5.dev202511121419-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 51d1fb2fe24dc944c835c1038543b12301db57b5606330e770568fadce2a59fb
MD5 88727cb6c57c163375e061ac558fe795
BLAKE2b-256 caf1350df4af97ee9253961e8899cf297b52ae64afb98e134b4a16e11c1ed215

See more details on using hashes here.

File details

Details for the file covers-0.0.5.dev202511121419-cp312-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for covers-0.0.5.dev202511121419-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1784e400a8ff9f709acbbdcc4f508b473d209fe126ab7ab8ae3aff7b5c3c867c
MD5 27084baa2e4a395e6e8d11f65963b648
BLAKE2b-256 21d76ee508f2624dcab90752f4f122616008ab7c4b7e0df9320e3e7d743101c7

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