| Name | covers JSON |
| Version |
0.0.1
JSON |
| download |
| home_page | None |
| Summary | Near Zero-Overhead Python Code Coverage |
| upload_time | 2025-11-02 23:47:08 |
| maintainer | None |
| docs_url | None |
| author | None |
| requires_python | <3.15,>=3.12 |
| license | None |
| keywords |
coverage
testing
|
| VCS |
 |
| bugtrack_url |
|
| requirements |
No requirements were recorded.
|
| Travis-CI |
No Travis.
|
| coveralls test coverage |
No coveralls.
|
# Covers: Near Zero-Overhead Python Code Coverage
Covers is a fast Python code coverage tool, originally based on [SlipCover](httpshttps://github.com/plasma-umass/slipcover).
This version has been re-written as a Rust / PyO3 extension for improved performance and maintainability.
[](LICENSE)
[](https://pypi.org/project/covers/)


## About Covers
Covers is a fast [code coverage](https://en.wikipedia.org/wiki/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](https://en.wikipedia.org/wiki/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](https://github.com/nedbat/coveragepy) rely on
[Python's tracing facilities](https://docs.python.org/3/library/sys.html?highlight=settrace#sys.settrace),
which add significant overhead.
Instead, Covers uses the new
[`sys.monitoring`](https://docs.python.org/3.12/library/sys.monitoring.html) 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](https://pypi.org/project/covers).
You can install it like any other Python module with
```console
pip3 install covers
```
You could then run your Python script with:
```console
python3 -m covers myscript.py
```
### Using it with a test harness
Covers can also execute a Python module, as in:
```console
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](https://github.com/amartani/covers/issues/new)
with any suggestions or issues you may encounter.
Raw data
{
"_id": null,
"home_page": null,
"name": "covers",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.15,>=3.12",
"maintainer_email": null,
"keywords": "coverage, testing",
"author": null,
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/09/ae/3d9ac37b70646e0edce9229e0af4a9735bd55058d1feaa8f264855e31508/covers-0.0.1.tar.gz",
"platform": null,
"description": "# Covers: Near Zero-Overhead Python Code Coverage\n\nCovers is a fast Python code coverage tool, originally based on [SlipCover](httpshttps://github.com/plasma-umass/slipcover).\nThis version has been re-written as a Rust / PyO3 extension for improved performance and maintainability.\n\n[](LICENSE)\n[](https://pypi.org/project/covers/)\n\n\n\n## About Covers\nCovers is a fast [code coverage](https://en.wikipedia.org/wiki/Code_coverage) tool.\nIt tracks a Python program as it runs and reports on the parts that executed and\nthose that didn't.\nThat can help guide your testing (showing code that isn't being tested), debugging,\n[fuzzing](https://en.wikipedia.org/wiki/Fuzzing) or to find \"dead\" code.\n\nPast code coverage tools can make programs significantly slower;\nit is not uncommon for them to take twice as long to execute.\nCovers aims to provide the same information with **near-zero overhead**, often\nalmost as fast as running the original Python program.\n\n### How it works\nPrevious coverage tools like [Coverage.py](https://github.com/nedbat/coveragepy) rely on \n[Python's tracing facilities](https://docs.python.org/3/library/sys.html?highlight=settrace#sys.settrace),\nwhich add significant overhead.\nInstead, Covers uses the new\n[`sys.monitoring`](https://docs.python.org/3.12/library/sys.monitoring.html) API\nto collect coverage information with minimal performance impact. The core data collection\nis implemented in Rust for maximum efficiency.\n\n## Getting started\nCovers is available from [PyPI](https://pypi.org/project/covers).\nYou can install it like any other Python module with\n```console\npip3 install covers\n```\n\nYou could then run your Python script with:\n```console\npython3 -m covers myscript.py\n```\n\n### Using it with a test harness\nCovers can also execute a Python module, as in:\n```console\npython3 -m covers -m pytest -x -v\n```\nwhich starts `pytest`, passing it any options (`-x -v` in this example)\nafter the module name.\nNo plug-in is required for pytest.\n\n## Platforms\nOur GitHub workflows run the automated test suite on Linux, MacOS and Windows, but\nreally it should work anywhere where CPython does.\n\n## Contributing\nCovers is under active development; contributions are welcome!\nPlease also feel free to [create a new issue](https://github.com/amartani/covers/issues/new)\nwith any suggestions or issues you may encounter.\n\n",
"bugtrack_url": null,
"license": null,
"summary": "Near Zero-Overhead Python Code Coverage",
"version": "0.0.1",
"project_urls": {
"Homepage": "https://github.com/amartani/covers",
"Repository": "https://github.com/amartani/covers"
},
"split_keywords": [
"coverage",
" testing"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "2bb3158199a2f3a6fa22bd259f2a6724d28c3b4030bc7b764812d62d09acb3ea",
"md5": "0d39d88867fc1aa48f5c63efcb1ade78",
"sha256": "7ccd7b6ca50fbff9544bc63980f2719d0c75485d754130dc4e993520f301279f"
},
"downloads": -1,
"filename": "covers-0.0.1-cp312-abi3-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "0d39d88867fc1aa48f5c63efcb1ade78",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<3.15,>=3.12",
"size": 476184,
"upload_time": "2025-11-02T23:47:04",
"upload_time_iso_8601": "2025-11-02T23:47:04.135840Z",
"url": "https://files.pythonhosted.org/packages/2b/b3/158199a2f3a6fa22bd259f2a6724d28c3b4030bc7b764812d62d09acb3ea/covers-0.0.1-cp312-abi3-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f485605e635451005b34d51c564de9bf2e496c8a9d4d2e1e4ef65b1a4120c441",
"md5": "2aa45bc6a5edbe5ed4ed56df6c5b05e9",
"sha256": "964b45ed45b162c3b548e3456e417b33d33f2913a754b120c66250f499c596f1"
},
"downloads": -1,
"filename": "covers-0.0.1-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "2aa45bc6a5edbe5ed4ed56df6c5b05e9",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<3.15,>=3.12",
"size": 506044,
"upload_time": "2025-11-02T23:47:05",
"upload_time_iso_8601": "2025-11-02T23:47:05.415929Z",
"url": "https://files.pythonhosted.org/packages/f4/85/605e635451005b34d51c564de9bf2e496c8a9d4d2e1e4ef65b1a4120c441/covers-0.0.1-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "5b9d9526e4be4bb92abc44eaac82750e82b2e6178d8ad2a2bc7cb07c8830c644",
"md5": "022eaa5e51d3a557dcf0a3926bfdc33e",
"sha256": "a912942a16454a732f1c9f211de6ba57f74b8728055865c9c0ea2331f0aac335"
},
"downloads": -1,
"filename": "covers-0.0.1-cp312-abi3-manylinux_2_34_x86_64.whl",
"has_sig": false,
"md5_digest": "022eaa5e51d3a557dcf0a3926bfdc33e",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<3.15,>=3.12",
"size": 528212,
"upload_time": "2025-11-02T23:47:06",
"upload_time_iso_8601": "2025-11-02T23:47:06.495573Z",
"url": "https://files.pythonhosted.org/packages/5b/9d/9526e4be4bb92abc44eaac82750e82b2e6178d8ad2a2bc7cb07c8830c644/covers-0.0.1-cp312-abi3-manylinux_2_34_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0753b53cbc2ac471395ecffc5faa632472d53e94496c846bc06eeeffacac4cb7",
"md5": "f2958895225971ba2c63cbc102d31857",
"sha256": "e50c9d321648738e5794eef9c35ecdfc7ebcac8839ead3d67868229006b2af3c"
},
"downloads": -1,
"filename": "covers-0.0.1-cp312-abi3-win_amd64.whl",
"has_sig": false,
"md5_digest": "f2958895225971ba2c63cbc102d31857",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<3.15,>=3.12",
"size": 375313,
"upload_time": "2025-11-02T23:47:07",
"upload_time_iso_8601": "2025-11-02T23:47:07.592619Z",
"url": "https://files.pythonhosted.org/packages/07/53/b53cbc2ac471395ecffc5faa632472d53e94496c846bc06eeeffacac4cb7/covers-0.0.1-cp312-abi3-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "09ae3d9ac37b70646e0edce9229e0af4a9735bd55058d1feaa8f264855e31508",
"md5": "f3697eadea91fa66b2d89c35bf446691",
"sha256": "5eb7d9940f824cdb5420a6fec97837abab0a52699da3a96e435e82e935064557"
},
"downloads": -1,
"filename": "covers-0.0.1.tar.gz",
"has_sig": false,
"md5_digest": "f3697eadea91fa66b2d89c35bf446691",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.15,>=3.12",
"size": 287540,
"upload_time": "2025-11-02T23:47:08",
"upload_time_iso_8601": "2025-11-02T23:47:08.908889Z",
"url": "https://files.pythonhosted.org/packages/09/ae/3d9ac37b70646e0edce9229e0af4a9735bd55058d1feaa8f264855e31508/covers-0.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-11-02 23:47:08",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "amartani",
"github_project": "covers",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "covers"
}