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

Uploaded CPython 3.12+Windows x86-64

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

Uploaded CPython 3.12+macOS 11.0+ ARM64

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202511112326.tar.gz
Algorithm Hash digest
SHA256 a077db5f61b9b0bfc1601d6d7a5c4eff238d4c0712cf2822527642b8769e3c05
MD5 7bebc2040ea4a89782bc5fa50e40160c
BLAKE2b-256 db90fc30a09eed045738e6298be0b5fe8a45239a7a49436cd72bf30e01300aca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202511112326-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 bead8fafbd4ebea5c87d0500b80dfabfc87723bbcc9eb431cd757568e3234c31
MD5 cc2f07625a8faf03eab720b07a1c9918
BLAKE2b-256 b2fd93c223fc3104c50c77731ab0ee20b7ab8b07c792c838dbcb155c4cfec466

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202511112326-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 46bb2003449e99af5cdfbb922ef06f936619905ee3336d64fef36b0d0cf4d0f1
MD5 d0f07095120843aa2890db2fb9841f8f
BLAKE2b-256 62913d49d29cd79d5fd97933ef28e9fe5d4ae5e542b20c4bb0a21136703c4489

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202511112326-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 870910ade7eb3c1b1be901667867aa730a01a1a996a1001d61b17a8df487d122
MD5 df4057b78be5ec36a15d08a097525f97
BLAKE2b-256 361708c2d870da0bb7ca4239faefa993b15a2ab9c703045d5d3c78c7f3e3cc20

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202511112326-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 41c1b225050f5c4b763ddb31b84d1a1c4fbe88e6b396a0fbdf56c129e49c1fc7
MD5 215900c487ab8d64b984a0f60afe1f61
BLAKE2b-256 fc73927bf8b135210663e8973b4609e4383aed5a569259388d4a10181b7083e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202511112326-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 de6fb703ed6c94de0c22181d9a920e51a500cf062dc1e7ec233fa56ba696ad2a
MD5 46ea9e85fa8aa37e12f735c06fea3471
BLAKE2b-256 a38cb8a84b5d8d7f7c9ae5a17daa70a4e08ff7b8dad1efdc907ea544e5f61b89

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