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.2.dev202511082138.tar.gz (314.9 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.2.dev202511082138-cp312-abi3-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.12+Windows x86-64

covers-0.0.2.dev202511082138-cp312-abi3-manylinux_2_34_x86_64.whl (1.4 MB view details)

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

covers-0.0.2.dev202511082138-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.17+ ARM64

covers-0.0.2.dev202511082138-cp312-abi3-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.12+macOS 11.0+ ARM64

File details

Details for the file covers-0.0.2.dev202511082138.tar.gz.

File metadata

File hashes

Hashes for covers-0.0.2.dev202511082138.tar.gz
Algorithm Hash digest
SHA256 9446a7efa295dec2fd5add17fdb6dc2296a9bd0e4562498779b9ac26e0958506
MD5 66b3e6e94690efde9c8d457d15c0fafb
BLAKE2b-256 85ac01c62876474807f9d8e492760b2b08eef0e730678de45d880f01f959b282

See more details on using hashes here.

File details

Details for the file covers-0.0.2.dev202511082138-cp312-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for covers-0.0.2.dev202511082138-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 8766d85fe277f6c62f4d7331a0435d4ef9b0fbb775e3789835193baeba38d87a
MD5 2f298aaae84760425d1cfcea3d21aed4
BLAKE2b-256 460414d4221cc8492bce5dd78a9390c7bb1e4af1dea8bd1331981f1fc1ef8662

See more details on using hashes here.

File details

Details for the file covers-0.0.2.dev202511082138-cp312-abi3-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for covers-0.0.2.dev202511082138-cp312-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 b3e12864001784ae58e3251633571069e3ebe9a2dd59e6c01c1a3c5b746ff74c
MD5 700c77dbef5db1b1d20e8b7a4f75f796
BLAKE2b-256 9ae5fc4cb7fb4596dbd2a06f20b0972457d0b4b1158c285e0a1ffff880454c11

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.2.dev202511082138-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f08afcb03a6f91eacfba73804a40d72f79d4f3948e9740da19254c983449397f
MD5 15247bf203c0b2717ac4cdffb9fcbcd4
BLAKE2b-256 b8ef7ce5bcf85375b537d0a8c1841c75ce796ed64a9f1fd764cd5ad29efe8f25

See more details on using hashes here.

File details

Details for the file covers-0.0.2.dev202511082138-cp312-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for covers-0.0.2.dev202511082138-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4528f542c7b2bdd51eb20a5aea3cfab62593c07f9fb4c8fe285114c1686bd476
MD5 0f9052f43f061e05fb55e01480ca3f17
BLAKE2b-256 3e5f4f78d408788951bd6ecc29f2bd3ff7d61b231904a00ae7bea2b8527e6c4e

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