Name | pytest-codspeed JSON |
Version |
4.0.0
JSON |
| download |
home_page | None |
Summary | Pytest plugin to create CodSpeed benchmarks |
upload_time | 2025-07-10 08:37:53 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.9 |
license | The MIT License (MIT) Copyright (c) 2022 CodSpeed and contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
keywords |
codspeed
benchmark
performance
pytest
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
<div align="center">
<h1>pytest-codspeed</h1>
[](https://github.com/CodSpeedHQ/pytest-codspeed/actions/workflows/ci.yml)
[](https://pypi.org/project/pytest-codspeed)

[](https://discord.com/invite/MxpaCfKSqF)
[](https://codspeed.io/CodSpeedHQ/pytest-codspeed)
Pytest plugin to create CodSpeed benchmarks
</div>
---
**Documentation**: https://codspeed.io/docs/reference/pytest-codspeed
---
## Installation
```shell
pip install pytest-codspeed
```
## Usage
### Creating benchmarks
In a nutshell, `pytest-codspeed` offers two approaches to create performance benchmarks that integrate seamlessly with your existing test suite.
Use `@pytest.mark.benchmark` to measure entire test functions automatically:
```python
import pytest
from statistics import median
@pytest.mark.benchmark
def test_median_performance():
input = [1, 2, 3, 4, 5]
output = sum(i**2 for i in input)
assert output == 55
```
Since this measure the entire function, you might want to use the `benchmark` fixture for precise control over what code gets measured:
```python
def test_mean_performance(benchmark):
data = [1, 2, 3, 4, 5]
# Only the function call is measured
result = benchmark(lambda: sum(i**2 for i in data))
assert result == 55
```
Check out the [full documentation](https://codspeed.io/docs/reference/pytest-codspeed) for more details.
### Testing the benchmarks locally
If you want to run the benchmarks tests locally, you can use the `--codspeed` pytest flag:
```sh
$ pytest tests/ --codspeed
============================= test session starts ====================
platform darwin -- Python 3.13.0, pytest-7.4.4, pluggy-1.5.0
codspeed: 3.0.0 (enabled, mode: walltime, timer_resolution: 41.7ns)
rootdir: /home/user/codspeed-test, configfile: pytest.ini
plugins: codspeed-3.0.0
collected 1 items
tests/test_sum_squares.py . [ 100%]
Benchmark Results
┏━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━┓
┃ Benchmark ┃ Time (best) ┃ Rel. StdDev ┃ Run time ┃ Iters ┃
┣━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━╋━━━━━━━━━━━━━╋━━━━━━━━━━╋━━━━━━━━┫
┃test_sum_squares┃ 1,873ns ┃ 4.8% ┃ 3.00s ┃ 66,930 ┃
┗━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━┻━━━━━━━━━━━━━┻━━━━━━━━━━┻━━━━━━━━┛
=============================== 1 benchmarked ========================
=============================== 1 passed in 4.12s ====================
```
### Running the benchmarks in your CI
You can use the [CodSpeedHQ/action](https://github.com/CodSpeedHQ/action) to run the benchmarks in Github Actions and upload the results to CodSpeed.
Here is an example of a GitHub Actions workflow that runs the benchmarks and reports the results to CodSpeed on every push to the `main` branch and every pull request:
```yaml
name: CodSpeed
on:
push:
branches:
- "main" # or "master"
pull_request:
# `workflow_dispatch` allows CodSpeed to trigger backtest
# performance analysis in order to generate initial data.
workflow_dispatch:
jobs:
benchmarks:
name: Run benchmarks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.13"
- name: Install dependencies
run: pip install -r requirements.txt
- name: Run benchmarks
uses: CodSpeedHQ/action@v3
with:
token: ${{ secrets.CODSPEED_TOKEN }}
run: pytest tests/ --codspeed
```
Raw data
{
"_id": null,
"home_page": null,
"name": "pytest-codspeed",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "codspeed, benchmark, performance, pytest",
"author": null,
"author_email": "Arthur Pastel <arthur@codspeed.io>",
"download_url": "https://files.pythonhosted.org/packages/64/13/4989d50a3d6de9fb91de23f3b6ffce7c704f23516d308138242325a7c857/pytest_codspeed-4.0.0.tar.gz",
"platform": null,
"description": "<div align=\"center\">\n<h1>pytest-codspeed</h1>\n\n[](https://github.com/CodSpeedHQ/pytest-codspeed/actions/workflows/ci.yml)\n[](https://pypi.org/project/pytest-codspeed)\n\n[](https://discord.com/invite/MxpaCfKSqF)\n[](https://codspeed.io/CodSpeedHQ/pytest-codspeed)\n\nPytest plugin to create CodSpeed benchmarks\n\n</div>\n\n---\n\n**Documentation**: https://codspeed.io/docs/reference/pytest-codspeed\n\n---\n\n## Installation\n\n```shell\npip install pytest-codspeed\n```\n\n## Usage\n\n### Creating benchmarks\n\nIn a nutshell, `pytest-codspeed` offers two approaches to create performance benchmarks that integrate seamlessly with your existing test suite.\n\nUse `@pytest.mark.benchmark` to measure entire test functions automatically:\n\n```python\nimport pytest\nfrom statistics import median\n\n@pytest.mark.benchmark\ndef test_median_performance():\n input = [1, 2, 3, 4, 5]\n output = sum(i**2 for i in input)\n assert output == 55\n```\n\nSince this measure the entire function, you might want to use the `benchmark` fixture for precise control over what code gets measured:\n\n```python\ndef test_mean_performance(benchmark):\n data = [1, 2, 3, 4, 5]\n # Only the function call is measured\n result = benchmark(lambda: sum(i**2 for i in data))\n assert result == 55\n```\n\nCheck out the [full documentation](https://codspeed.io/docs/reference/pytest-codspeed) for more details.\n\n### Testing the benchmarks locally\n\nIf you want to run the benchmarks tests locally, you can use the `--codspeed` pytest flag:\n\n```sh\n$ pytest tests/ --codspeed\n============================= test session starts ====================\nplatform darwin -- Python 3.13.0, pytest-7.4.4, pluggy-1.5.0\ncodspeed: 3.0.0 (enabled, mode: walltime, timer_resolution: 41.7ns)\nrootdir: /home/user/codspeed-test, configfile: pytest.ini\nplugins: codspeed-3.0.0\ncollected 1 items\n\ntests/test_sum_squares.py . [ 100%]\n\n Benchmark Results\n\u250f\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2513\n\u2503 Benchmark \u2503 Time (best) \u2503 Rel. StdDev \u2503 Run time \u2503 Iters \u2503\n\u2523\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u254b\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u254b\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u254b\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u254b\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u252b\n\u2503test_sum_squares\u2503 1,873ns \u2503 4.8% \u2503 3.00s \u2503 66,930 \u2503\n\u2517\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u253b\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u253b\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u253b\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u253b\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u251b\n=============================== 1 benchmarked ========================\n=============================== 1 passed in 4.12s ====================\n```\n\n### Running the benchmarks in your CI\n\nYou can use the [CodSpeedHQ/action](https://github.com/CodSpeedHQ/action) to run the benchmarks in Github Actions and upload the results to CodSpeed.\n\nHere is an example of a GitHub Actions workflow that runs the benchmarks and reports the results to CodSpeed on every push to the `main` branch and every pull request:\n\n```yaml\nname: CodSpeed\n\non:\n push:\n branches:\n - \"main\" # or \"master\"\n pull_request:\n # `workflow_dispatch` allows CodSpeed to trigger backtest\n # performance analysis in order to generate initial data.\n workflow_dispatch:\n\njobs:\n benchmarks:\n name: Run benchmarks\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v4\n - uses: actions/setup-python@v5\n with:\n python-version: \"3.13\"\n\n - name: Install dependencies\n run: pip install -r requirements.txt\n\n - name: Run benchmarks\n uses: CodSpeedHQ/action@v3\n with:\n token: ${{ secrets.CODSPEED_TOKEN }}\n run: pytest tests/ --codspeed\n```\n",
"bugtrack_url": null,
"license": "The MIT License (MIT) Copyright (c) 2022 CodSpeed and contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ",
"summary": "Pytest plugin to create CodSpeed benchmarks",
"version": "4.0.0",
"project_urls": {
"Documentation": "https://codspeed.io/docs/reference/pytest-codspeed",
"Homepage": "https://codspeed.io/",
"Source": "https://github.com/CodSpeedHQ/pytest-codspeed"
},
"split_keywords": [
"codspeed",
" benchmark",
" performance",
" pytest"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "bac9c7116338e04d1c6bb43277c5f938fa7e5eb1df54b4cc0c298a428995296b",
"md5": "4f0cfb2463d7b89093ca815392effd18",
"sha256": "2517731b20a6aa9fe61d04822b802e1637ee67fd865189485b384a9d5897117f"
},
"downloads": -1,
"filename": "pytest_codspeed-4.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "4f0cfb2463d7b89093ca815392effd18",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 230409,
"upload_time": "2025-07-10T08:37:40",
"upload_time_iso_8601": "2025-07-10T08:37:40.830997Z",
"url": "https://files.pythonhosted.org/packages/ba/c9/c7116338e04d1c6bb43277c5f938fa7e5eb1df54b4cc0c298a428995296b/pytest_codspeed-4.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e600c21b0e2863c967c8d4dfa5bebdc5f0f2a9d6ab1cc7a39e111faf70a5880d",
"md5": "006c65752c1f28a52c18e247c8fe20c4",
"sha256": "1e5076bb5119d4f8248822b5cd6b768f70a18c7e1a7fbcd96a99cd4a6430096e"
},
"downloads": -1,
"filename": "pytest_codspeed-4.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "006c65752c1f28a52c18e247c8fe20c4",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 221135,
"upload_time": "2025-07-10T08:37:42",
"upload_time_iso_8601": "2025-07-10T08:37:42.255169Z",
"url": "https://files.pythonhosted.org/packages/e6/00/c21b0e2863c967c8d4dfa5bebdc5f0f2a9d6ab1cc7a39e111faf70a5880d/pytest_codspeed-4.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7fe716b0f347fd910f2cc50e858094c17744d640e5ae71926c2c0ad762ecb7ec",
"md5": "6b1d77bf2a8df95e5ff538c8833ac796",
"sha256": "06b324acdfe2076a0c97a9d31e8645f820822d6f0e766c73426767ff887a9381"
},
"downloads": -1,
"filename": "pytest_codspeed-4.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "6b1d77bf2a8df95e5ff538c8833ac796",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 230418,
"upload_time": "2025-07-10T08:37:43",
"upload_time_iso_8601": "2025-07-10T08:37:43.602634Z",
"url": "https://files.pythonhosted.org/packages/7f/e7/16b0f347fd910f2cc50e858094c17744d640e5ae71926c2c0ad762ecb7ec/pytest_codspeed-4.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "47a72b3ac30e1e2b326abf370c8a6b4ed48a43d3a5491def7aaf67f7fbab5d6f",
"md5": "f22cf740edcce1d4b04fa530f86716b0",
"sha256": "9ebdac1a4d6138e1ca4f5391e7e3cafad6e3aa6d5660d1b243871b691bc1396c"
},
"downloads": -1,
"filename": "pytest_codspeed-4.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "f22cf740edcce1d4b04fa530f86716b0",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 221131,
"upload_time": "2025-07-10T08:37:44",
"upload_time_iso_8601": "2025-07-10T08:37:44.708793Z",
"url": "https://files.pythonhosted.org/packages/47/a7/2b3ac30e1e2b326abf370c8a6b4ed48a43d3a5491def7aaf67f7fbab5d6f/pytest_codspeed-4.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "11e4a9591949783cdea60d5f2a215d89c3e17af7b068f2613e38b1d46cb5b8e9",
"md5": "e7620c63328c8411f7596b4c184cae81",
"sha256": "7f3def79d4072867d038a33e7f35bc7fb1a2a75236a624b3a690c5540017cb38"
},
"downloads": -1,
"filename": "pytest_codspeed-4.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "e7620c63328c8411f7596b4c184cae81",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 230601,
"upload_time": "2025-07-10T08:37:46",
"upload_time_iso_8601": "2025-07-10T08:37:46.018691Z",
"url": "https://files.pythonhosted.org/packages/11/e4/a9591949783cdea60d5f2a215d89c3e17af7b068f2613e38b1d46cb5b8e9/pytest_codspeed-4.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "16fe22caa7cfb6717d21ba14ffd3c0b013b2143a4c32225715f401489f6c32bc",
"md5": "2d0b7093842d322bbbe3a2b3e0a98850",
"sha256": "01d29d4538c2d111c0034f71811bcce577304506d22af4dd65df87fadf3ab495"
},
"downloads": -1,
"filename": "pytest_codspeed-4.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "2d0b7093842d322bbbe3a2b3e0a98850",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 221230,
"upload_time": "2025-07-10T08:37:46",
"upload_time_iso_8601": "2025-07-10T08:37:46.997180Z",
"url": "https://files.pythonhosted.org/packages/16/fe/22caa7cfb6717d21ba14ffd3c0b013b2143a4c32225715f401489f6c32bc/pytest_codspeed-4.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "55e20a2e703301f7560a456e343e1b31d01a2ddee96807db5ded65951bfa5b7a",
"md5": "6858a49b3468d147a03a4d9d30367bb4",
"sha256": "90894c93c9e23f12487b7fdf16c28da8f6275d565056772072beb41a72a54cf9"
},
"downloads": -1,
"filename": "pytest_codspeed-4.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "6858a49b3468d147a03a4d9d30367bb4",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 230591,
"upload_time": "2025-07-10T08:37:47",
"upload_time_iso_8601": "2025-07-10T08:37:47.961238Z",
"url": "https://files.pythonhosted.org/packages/55/e2/0a2e703301f7560a456e343e1b31d01a2ddee96807db5ded65951bfa5b7a/pytest_codspeed-4.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "17fc5fee0bcdada8ecb5a89088cd84af7e094652fc94bf414a96b49a874fd8be",
"md5": "15644ea63d3d499a0e977113e9d7564c",
"sha256": "79e9c40852fa7fc76776db4f1d290eceaeee2d6c5d2dc95a66c7cc690d83889e"
},
"downloads": -1,
"filename": "pytest_codspeed-4.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "15644ea63d3d499a0e977113e9d7564c",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 221227,
"upload_time": "2025-07-10T08:37:49",
"upload_time_iso_8601": "2025-07-10T08:37:49.113715Z",
"url": "https://files.pythonhosted.org/packages/17/fc/5fee0bcdada8ecb5a89088cd84af7e094652fc94bf414a96b49a874fd8be/pytest_codspeed-4.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "96af4b04220fb0124824c950f974456d5f64446626a5795217e85de4b10a0c14",
"md5": "5798cf6009f9a97243477eabfe07816a",
"sha256": "7330b6eadd6a729d4dba95d26496ee1c6f1649d552f515ef537b14a43908eb67"
},
"downloads": -1,
"filename": "pytest_codspeed-4.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "5798cf6009f9a97243477eabfe07816a",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 230397,
"upload_time": "2025-07-10T08:37:50",
"upload_time_iso_8601": "2025-07-10T08:37:50.435556Z",
"url": "https://files.pythonhosted.org/packages/96/af/4b04220fb0124824c950f974456d5f64446626a5795217e85de4b10a0c14/pytest_codspeed-4.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "505f14223d692f34b5523a7b8ab977ab04dd4b7c1313d2a91c5f4001db5161a6",
"md5": "2fd6ed7dc44aaad18b2b78a9c2e87946",
"sha256": "e1271cd28e895132b20d12875554a544ee041f7acfb8112af8a5c3cb201f2fc8"
},
"downloads": -1,
"filename": "pytest_codspeed-4.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "2fd6ed7dc44aaad18b2b78a9c2e87946",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 221123,
"upload_time": "2025-07-10T08:37:51",
"upload_time_iso_8601": "2025-07-10T08:37:51.393278Z",
"url": "https://files.pythonhosted.org/packages/50/5f/14223d692f34b5523a7b8ab977ab04dd4b7c1313d2a91c5f4001db5161a6/pytest_codspeed-4.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "5fe4e3ddab5fd04febf6189d71bfa4ba2d7c05adaa7d692a6d6b1e8ed68de12d",
"md5": "c05cb7a3d5e8c57c09df0a6919cff7b1",
"sha256": "c5debd4b127dc1c507397a8304776f52cabbfa53aad6f51eae329a5489df1e06"
},
"downloads": -1,
"filename": "pytest_codspeed-4.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c05cb7a3d5e8c57c09df0a6919cff7b1",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 107084,
"upload_time": "2025-07-10T08:37:52",
"upload_time_iso_8601": "2025-07-10T08:37:52.650534Z",
"url": "https://files.pythonhosted.org/packages/5f/e4/e3ddab5fd04febf6189d71bfa4ba2d7c05adaa7d692a6d6b1e8ed68de12d/pytest_codspeed-4.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "64134989d50a3d6de9fb91de23f3b6ffce7c704f23516d308138242325a7c857",
"md5": "0efbc7d3920ab6e47a531a02c5b8fcd4",
"sha256": "0e9af08ca93ad897b376771db92693a81aa8990eecc2a778740412e00a6f6eaf"
},
"downloads": -1,
"filename": "pytest_codspeed-4.0.0.tar.gz",
"has_sig": false,
"md5_digest": "0efbc7d3920ab6e47a531a02c5b8fcd4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 107630,
"upload_time": "2025-07-10T08:37:53",
"upload_time_iso_8601": "2025-07-10T08:37:53.518833Z",
"url": "https://files.pythonhosted.org/packages/64/13/4989d50a3d6de9fb91de23f3b6ffce7c704f23516d308138242325a7c857/pytest_codspeed-4.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-10 08:37:53",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "CodSpeedHQ",
"github_project": "pytest-codspeed",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pytest-codspeed"
}