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

Uploaded CPython 3.12+Windows x86-64

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

Uploaded CPython 3.12+macOS 11.0+ ARM64

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202512200148.tar.gz
Algorithm Hash digest
SHA256 8c77f901ebceb186bd9a43f09d90414a52d9885a772f069cc70ba1d2226e7368
MD5 3efe7e7b88c174930dab738047582b2c
BLAKE2b-256 ffe5cdf85c29b8d68db3bbe625888eb89d3a4f49a15f05a1f895e6c50539c3f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202512200148-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 46599c30714d05edd59e2ee041833b933071fb21ddd04f0eab8724b8e7731d61
MD5 9bd0c39c9879fa01d333533e9b4f38c2
BLAKE2b-256 a860c922021343fcedda23f7d9fe65f554a1f5896e33bf8a53de009c38b98531

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202512200148-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 336104099a55f499d8cc1b53b8e6d141f90d8f8ca94c5d0f33efc1c5b0589349
MD5 8c1df855f0ec4252be5ae90fbfb4c958
BLAKE2b-256 c537501b7415d7289948af49ba76e01ba57e2db3a78270fa2a31ec6e114ebca8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202512200148-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4b21a620c50f7cce1a1808bb6f60c708e001fb6e518ba1dea038123cf536c5d4
MD5 ac661d8f93085230e30fb6d1c637f6fc
BLAKE2b-256 dd2213a20c2b9009f44aab5d7fc6ac22b5f7e96117d699858b3a915673a9bb80

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202512200148-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 40e3c26534af65a099a1718d027cddffd135b5d2a0b7a182a8dc5ab3b9e59702
MD5 3e553e4bd50bfe4a99db1fcc136b617c
BLAKE2b-256 63d5046c56b87d27784b88d4e9ae9b39bbb800689f47fa7f8c62b1022b994359

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202512200148-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 06ec9dce603ec5923bd097b7844868b497aba31032348766a11e01cc37ed6ed0
MD5 cc543ae1b213ef5a6573b47162a41ef5
BLAKE2b-256 73aa46e78736c0b66318aee20b129381d3dc8922409b3dc18ee0fd94ee165638

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