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

Uploaded CPython 3.12+Windows x86-64

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

Uploaded CPython 3.12+macOS 11.0+ ARM64

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202601181928.tar.gz
Algorithm Hash digest
SHA256 cc9a8e46c7de35c17e038e9b44e7a2030da762fa17c1202b9af1a4cb965802f7
MD5 574d40f1792e43eea7eaebd1d8e816cc
BLAKE2b-256 a8ab561042ecc67a1894c8efc0b4bd0e8524b2ef5f92a7ecc5d3831ca353989a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202601181928-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 69652f0985eca3ef6550948f6bc28c801d6a26858c580b90aa5f7a0ef05fe601
MD5 3d8f7946373b670806537d83d1cdbb65
BLAKE2b-256 8c8907f3e0095fce8c22c0afde44b94b47f4ea99d7d85f37ff2e0fc1280a6a64

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202601181928-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5c4c70a064d659129f065457f613b0595091912d21b4a722452b1cf7754ca809
MD5 eaaaa4a1c88461af47c163e0455df417
BLAKE2b-256 15ff0a174ceebfc9ccc4130256d315eae3ecc72861be0d9003d32baf887c80f8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202601181928-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 75c79572c5c3570306e25ecbc6e5d4ea484fa04b898009d55c68409f9622d04e
MD5 304368c4c76535d041cefb5c753add3d
BLAKE2b-256 df2acb65c29ab98fb5d36862f7883763edcbb533c2d7fa9e865e6458be296f0b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202601181928-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9f5c021bf920c8b974ca682d4701656e7e122d2c10fe36257672e61d20d3f81c
MD5 dd12a16c4f409291bb8bb16d6e71f5ab
BLAKE2b-256 f57033f784369c031efadc91ae2dfaa58984414d029c77847522c11b3ae6f7a8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202601181928-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 31da8f06a5a0ddd5ca784fc652fc4ca078a3e42237a0074ff098acd9b4b100d5
MD5 f78ea42c09e465b66efb98a32bf76c03
BLAKE2b-256 021cda90b650e5e399d8ce2e05a6c7555766d16873edd5ff469aa1fd99c4e6e3

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