pytest-benchmark 5.2.2__tar.gz → 5.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/.bumpversion.cfg +1 -1
  2. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/.cookiecutterrc +20 -19
  3. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/.editorconfig +3 -0
  4. pytest_benchmark-5.3.0/.github/workflows/github-actions.yml +453 -0
  5. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/.pre-commit-config.yaml +19 -11
  6. pytest_benchmark-5.3.0/.tombi.toml +4 -0
  7. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/AUTHORS.rst +4 -0
  8. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/CHANGELOG.rst +34 -0
  9. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/LICENSE +1 -1
  10. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/MANIFEST.in +2 -1
  11. {pytest_benchmark-5.2.2/src/pytest_benchmark.egg-info → pytest_benchmark-5.3.0}/PKG-INFO +88 -14
  12. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/README.rst +7 -6
  13. pytest_benchmark-5.3.0/_typos.toml +8 -0
  14. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/ci/bootstrap.py +1 -1
  15. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/ci/templates/.github/workflows/github-actions.yml +3 -3
  16. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/docs/calibration.rst +12 -0
  17. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/docs/comparing.rst +27 -0
  18. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/docs/conf.py +3 -3
  19. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/docs/faq.rst +1 -1
  20. pytest_benchmark-5.3.0/docs/glossary.rst +25 -0
  21. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/docs/index.rst +2 -2
  22. pytest_benchmark-5.3.0/docs/screenshot-compare-between.png +0 -0
  23. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/docs/usage.rst +18 -7
  24. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/pyproject.toml +70 -61
  25. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/src/pytest_benchmark/__init__.py +1 -1
  26. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/src/pytest_benchmark/cli.py +47 -5
  27. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/src/pytest_benchmark/fixture.py +46 -4
  28. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/src/pytest_benchmark/hookspec.py +2 -2
  29. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/src/pytest_benchmark/plugin.py +25 -5
  30. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/src/pytest_benchmark/session.py +23 -9
  31. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/src/pytest_benchmark/storage/elasticsearch.py +2 -2
  32. pytest_benchmark-5.3.0/src/pytest_benchmark/table.py +277 -0
  33. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/src/pytest_benchmark/timers.py +2 -1
  34. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/src/pytest_benchmark/utils.py +18 -6
  35. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0/src/pytest_benchmark.egg-info}/PKG-INFO +88 -14
  36. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/src/pytest_benchmark.egg-info/SOURCES.txt +4 -4
  37. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/src/pytest_benchmark.egg-info/requires.txt +1 -1
  38. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_benchmark.py +47 -21
  39. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_cli.py +109 -2
  40. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_elasticsearch_storage.py +9 -4
  41. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_pedantic.py +10 -5
  42. pytest_benchmark-5.3.0/tests/test_precision.py +61 -0
  43. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_storage.py +10 -17
  44. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tox.ini +18 -25
  45. pytest_benchmark-5.2.2/.github/workflows/github-actions.yml +0 -519
  46. pytest_benchmark-5.2.2/.taplo.toml +0 -3
  47. pytest_benchmark-5.2.2/docs/glossary.rst +0 -21
  48. pytest_benchmark-5.2.2/setup.py +0 -25
  49. pytest_benchmark-5.2.2/src/pytest_benchmark/compat.py +0 -8
  50. pytest_benchmark-5.2.2/src/pytest_benchmark/table.py +0 -151
  51. pytest_benchmark-5.2.2/src/pytest_benchmark.egg-info/not-zip-safe +0 -1
  52. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/.coveragerc +0 -0
  53. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/.readthedocs.yml +0 -0
  54. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/CONTRIBUTING.rst +0 -0
  55. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/ci/requirements.txt +0 -0
  56. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/docs/authors.rst +0 -0
  57. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/docs/changelog.rst +0 -0
  58. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/docs/contributing.rst +0 -0
  59. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/docs/hooks.rst +0 -0
  60. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/docs/installation.rst +0 -0
  61. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/docs/measurement-issues.png +0 -0
  62. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/docs/pedantic.rst +0 -0
  63. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/docs/requirements.txt +0 -0
  64. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/docs/sample.svg +0 -0
  65. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/docs/screenshot-compare.png +0 -0
  66. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/docs/screenshot-histogram.png +0 -0
  67. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/docs/screenshot.png +0 -0
  68. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/docs/spelling_wordlist.txt +0 -0
  69. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/pytest.ini +0 -0
  70. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/setup.cfg +0 -0
  71. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/src/pytest_benchmark/__main__.py +0 -0
  72. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/src/pytest_benchmark/csv.py +0 -0
  73. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/src/pytest_benchmark/histogram.py +0 -0
  74. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/src/pytest_benchmark/logger.py +0 -0
  75. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/src/pytest_benchmark/py.typed +0 -0
  76. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/src/pytest_benchmark/stats.py +0 -0
  77. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/src/pytest_benchmark/storage/__init__.py +0 -0
  78. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/src/pytest_benchmark/storage/file.py +0 -0
  79. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/src/pytest_benchmark.egg-info/dependency_links.txt +0 -0
  80. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/src/pytest_benchmark.egg-info/entry_points.txt +0 -0
  81. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/src/pytest_benchmark.egg-info/top_level.txt +0 -0
  82. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_calibration.py +0 -0
  83. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_doctest.rst +0 -0
  84. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_nbmake.ipynb +0 -0
  85. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_normal.py +0 -0
  86. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_sample.py +0 -0
  87. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_skip.py +0 -0
  88. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_stats.py +0 -0
  89. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_storage/0001_b87b9aae14ff14a7887a6bbaa9731b9a8760555d_20150814_190343_uncommitted-changes.json +0 -0
  90. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_storage/0002_b87b9aae14ff14a7887a6bbaa9731b9a8760555d_20150814_190348_uncommitted-changes.json +0 -0
  91. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_storage/0003_5b78858eb718649a31fb93d8dc96ca2cee41a4cd_20150815_030157_uncommitted-changes.json +0 -0
  92. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_storage/0004_5b78858eb718649a31fb93d8dc96ca2cee41a4cd_20150815_030202_uncommitted-changes.json +0 -0
  93. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_storage/0005_5b78858eb718649a31fb93d8dc96ca2cee41a4cd_20150815_030207_uncommitted-changes.json +0 -0
  94. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_storage/0006_5b78858eb718649a31fb93d8dc96ca2cee41a4cd_20150815_030213_uncommitted-changes.json +0 -0
  95. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_storage/0007_5b78858eb718649a31fb93d8dc96ca2cee41a4cd_20150815_030218_uncommitted-changes.json +0 -0
  96. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_storage/0008_5b78858eb718649a31fb93d8dc96ca2cee41a4cd_20150815_030223_uncommitted-changes.json +0 -0
  97. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_storage/0009_5b78858eb718649a31fb93d8dc96ca2cee41a4cd_20150815_030228_uncommitted-changes.json +0 -0
  98. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_storage/0010_5b78858eb718649a31fb93d8dc96ca2cee41a4cd_20150815_030233_uncommitted-changes.json +0 -0
  99. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_storage/0011_5b78858eb718649a31fb93d8dc96ca2cee41a4cd_20150815_030238_uncommitted-changes.json +0 -0
  100. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_storage/0012_5b78858eb718649a31fb93d8dc96ca2cee41a4cd_20150815_030243_uncommitted-changes.json +0 -0
  101. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_storage/0013_5b78858eb718649a31fb93d8dc96ca2cee41a4cd_20150815_030248_uncommitted-changes.json +0 -0
  102. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_storage/0014_5b78858eb718649a31fb93d8dc96ca2cee41a4cd_20150815_030253_uncommitted-changes.json +0 -0
  103. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_storage/0015_5b78858eb718649a31fb93d8dc96ca2cee41a4cd_20150815_030259_uncommitted-changes.json +0 -0
  104. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_storage/0016_5b78858eb718649a31fb93d8dc96ca2cee41a4cd_20150815_030304_uncommitted-changes.json +0 -0
  105. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_storage/0017_5b78858eb718649a31fb93d8dc96ca2cee41a4cd_20150815_030310_uncommitted-changes.json +0 -0
  106. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_storage/0018_5b78858eb718649a31fb93d8dc96ca2cee41a4cd_20150815_030315_uncommitted-changes.json +0 -0
  107. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_storage/0019_5b78858eb718649a31fb93d8dc96ca2cee41a4cd_20150815_030320_uncommitted-changes.json +0 -0
  108. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_storage/0020_5b78858eb718649a31fb93d8dc96ca2cee41a4cd_20150815_030325_uncommitted-changes.json +0 -0
  109. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_storage/0021_5b78858eb718649a31fb93d8dc96ca2cee41a4cd_20150815_030330_uncommitted-changes.json +0 -0
  110. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_storage/0022_5b78858eb718649a31fb93d8dc96ca2cee41a4cd_20150815_030335_uncommitted-changes.json +0 -0
  111. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_storage/0023_5b78858eb718649a31fb93d8dc96ca2cee41a4cd_20150815_030340_uncommitted-changes.json +0 -0
  112. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_storage/0024_5b78858eb718649a31fb93d8dc96ca2cee41a4cd_20150815_030346_uncommitted-changes.json +0 -0
  113. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_storage/0025_5b78858eb718649a31fb93d8dc96ca2cee41a4cd_20150815_030351_uncommitted-changes.json +0 -0
  114. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_storage/0026_5b78858eb718649a31fb93d8dc96ca2cee41a4cd_20150815_030356_uncommitted-changes.json +0 -0
  115. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_storage/0027_5b78858eb718649a31fb93d8dc96ca2cee41a4cd_20150815_030402_uncommitted-changes.json +0 -0
  116. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_storage/0028_5b78858eb718649a31fb93d8dc96ca2cee41a4cd_20150815_030408_uncommitted-changes.json +0 -0
  117. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_storage/0029_5b78858eb718649a31fb93d8dc96ca2cee41a4cd_20150815_030413_uncommitted-changes.json +0 -0
  118. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_storage/0030_5b78858eb718649a31fb93d8dc96ca2cee41a4cd_20150815_030419_uncommitted-changes.json +0 -0
  119. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_utils.py +0 -0
  120. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_with_testcase.py +0 -0
  121. {pytest_benchmark-5.2.2 → pytest_benchmark-5.3.0}/tests/test_with_weaver.py +0 -0
@@ -1,5 +1,5 @@
1
1
  [bumpversion]
2
- current_version = 5.2.2
2
+ current_version = 5.3.0
3
3
  commit = True
4
4
  tag = True
5
5
 
@@ -1,47 +1,48 @@
1
1
  # Generated by cookiepatcher, a small shim around cookiecutter (pip install cookiepatcher)
2
2
 
3
3
  default_context:
4
- c_extension_optional: 'no'
4
+ c_extension_optional: false
5
5
  c_extension_support: 'no'
6
- codacy: 'no'
6
+ codacy: false
7
7
  codacy_projectid: '[Get ID from https://app.codacy.com/app/ionelmc/pytest-benchmark/settings]'
8
- codeclimate: 'no'
9
- codecov: 'yes'
8
+ codeclimate: false
9
+ codecov: true
10
10
  command_line_interface: argparse
11
11
  command_line_interface_bin_name: py.test-benchmark
12
- coveralls: 'yes'
12
+ coveralls: true
13
13
  distribution_name: pytest-benchmark
14
14
  email: contact@ionelmc.ro
15
15
  formatter_quote_style: single
16
16
  full_name: Ionel Cristian Mărieș
17
17
  function_name: compute
18
- github_actions: 'yes'
19
- github_actions_osx: 'yes'
20
- github_actions_windows: 'yes'
18
+ github_actions: true
19
+ github_actions_osx: true
20
+ github_actions_windows: true
21
21
  license: BSD 2-Clause License
22
22
  module_name: core
23
23
  package_name: pytest_benchmark
24
- pre_commit: 'yes'
24
+ pre_commit: true
25
25
  project_name: pytest-benchmark
26
26
  project_short_description: A ``pytest`` fixture for benchmarking code. It will group the tests into rounds that are calibrated to the chosen timer.
27
- pypi_badge: 'yes'
28
- pypi_disable_upload: 'no'
27
+ pypi_badge: true
28
+ pypi_disable_upload: false
29
29
  release_date: '2024-10-30'
30
30
  repo_hosting: github.com
31
31
  repo_hosting_domain: github.com
32
32
  repo_main_branch: master
33
33
  repo_name: pytest-benchmark
34
34
  repo_username: ionelmc
35
- scrutinizer: 'no'
36
- setup_py_uses_setuptools_scm: 'no'
37
- sphinx_docs: 'yes'
35
+ ruff_unsafe_fixes: true
36
+ scrutinizer: false
37
+ setup_py_uses_setuptools_scm: false
38
+ sphinx_docs: true
38
39
  sphinx_docs_hosting: https://pytest-benchmark.readthedocs.io/
39
- sphinx_doctest: 'no'
40
+ sphinx_doctest: false
40
41
  sphinx_theme: furo
41
- test_matrix_separate_coverage: 'yes'
42
- tests_inside_package: 'no'
43
- version: 5.2.2
42
+ test_matrix_separate_coverage: true
43
+ tests_inside_package: false
44
+ version: 5.3.0
44
45
  version_manager: bump2version
45
46
  website: http://blog.ionelmc.ro
46
47
  year_from: '2014'
47
- year_to: '2025'
48
+ year_to: '2026'
@@ -10,6 +10,9 @@ insert_final_newline = true
10
10
  indent_size = 4
11
11
  charset = utf-8
12
12
 
13
+ [*.py]
14
+ max_line_length = 140
15
+
13
16
  [*.{bat,cmd,ps1}]
14
17
  end_of_line = crlf
15
18
 
@@ -0,0 +1,453 @@
1
+ name: build
2
+ on: [push, pull_request, workflow_dispatch]
3
+ jobs:
4
+ test:
5
+ name: ${{ matrix.name }}
6
+ runs-on: ${{ matrix.os }}
7
+ timeout-minutes: 30
8
+ strategy:
9
+ fail-fast: false
10
+ matrix:
11
+ include:
12
+ - name: 'check'
13
+ python: '3.13'
14
+ tox_env: 'check'
15
+ os: 'ubuntu-latest'
16
+ - name: 'docs'
17
+ python: '3.13'
18
+ tox_env: 'docs'
19
+ os: 'ubuntu-latest'
20
+ - name: 'py310-pytest91-nodist-cover (ubuntu/x64)'
21
+ python: '3.10'
22
+ python_arch: 'x64'
23
+ tox_env: 'py310-pytest91-nodist-cover'
24
+ os: 'ubuntu-latest'
25
+ cover: true
26
+ - name: 'py310-pytest91-nodist-cover (windows/x64)'
27
+ python: '3.10'
28
+ python_arch: 'x64'
29
+ tox_env: 'py310-pytest91-nodist-cover'
30
+ os: 'windows-latest'
31
+ cover: true
32
+ - name: 'py310-pytest91-nodist-cover (macos/arm64)'
33
+ python: '3.10'
34
+ python_arch: 'arm64'
35
+ tox_env: 'py310-pytest91-nodist-cover'
36
+ os: 'macos-latest'
37
+ cover: true
38
+ - name: 'py310-pytest91-nodist-nocov (ubuntu/x64)'
39
+ python: '3.10'
40
+ python_arch: 'x64'
41
+ tox_env: 'py310-pytest91-nodist-nocov'
42
+ os: 'ubuntu-latest'
43
+ - name: 'py310-pytest91-nodist-nocov (windows/x64)'
44
+ python: '3.10'
45
+ python_arch: 'x64'
46
+ tox_env: 'py310-pytest91-nodist-nocov'
47
+ os: 'windows-latest'
48
+ - name: 'py310-pytest91-nodist-nocov (macos/arm64)'
49
+ python: '3.10'
50
+ python_arch: 'arm64'
51
+ tox_env: 'py310-pytest91-nodist-nocov'
52
+ os: 'macos-latest'
53
+ - name: 'py310-pytest91-xdist-cover (ubuntu/x64)'
54
+ python: '3.10'
55
+ python_arch: 'x64'
56
+ tox_env: 'py310-pytest91-xdist-cover'
57
+ os: 'ubuntu-latest'
58
+ cover: true
59
+ - name: 'py310-pytest91-xdist-cover (windows/x64)'
60
+ python: '3.10'
61
+ python_arch: 'x64'
62
+ tox_env: 'py310-pytest91-xdist-cover'
63
+ os: 'windows-latest'
64
+ cover: true
65
+ - name: 'py310-pytest91-xdist-cover (macos/arm64)'
66
+ python: '3.10'
67
+ python_arch: 'arm64'
68
+ tox_env: 'py310-pytest91-xdist-cover'
69
+ os: 'macos-latest'
70
+ cover: true
71
+ - name: 'py310-pytest91-xdist-nocov (ubuntu/x64)'
72
+ python: '3.10'
73
+ python_arch: 'x64'
74
+ tox_env: 'py310-pytest91-xdist-nocov'
75
+ os: 'ubuntu-latest'
76
+ - name: 'py310-pytest91-xdist-nocov (windows/x64)'
77
+ python: '3.10'
78
+ python_arch: 'x64'
79
+ tox_env: 'py310-pytest91-xdist-nocov'
80
+ os: 'windows-latest'
81
+ - name: 'py310-pytest91-xdist-nocov (macos/arm64)'
82
+ python: '3.10'
83
+ python_arch: 'arm64'
84
+ tox_env: 'py310-pytest91-xdist-nocov'
85
+ os: 'macos-latest'
86
+ - name: 'py311-pytest91-nodist-cover (ubuntu/x64)'
87
+ python: '3.11'
88
+ python_arch: 'x64'
89
+ tox_env: 'py311-pytest91-nodist-cover'
90
+ os: 'ubuntu-latest'
91
+ cover: true
92
+ - name: 'py311-pytest91-nodist-cover (windows/x64)'
93
+ python: '3.11'
94
+ python_arch: 'x64'
95
+ tox_env: 'py311-pytest91-nodist-cover'
96
+ os: 'windows-latest'
97
+ cover: true
98
+ - name: 'py311-pytest91-nodist-cover (macos/arm64)'
99
+ python: '3.11'
100
+ python_arch: 'arm64'
101
+ tox_env: 'py311-pytest91-nodist-cover'
102
+ os: 'macos-latest'
103
+ cover: true
104
+ - name: 'py311-pytest91-nodist-nocov (ubuntu/x64)'
105
+ python: '3.11'
106
+ python_arch: 'x64'
107
+ tox_env: 'py311-pytest91-nodist-nocov'
108
+ os: 'ubuntu-latest'
109
+ - name: 'py311-pytest91-nodist-nocov (windows/x64)'
110
+ python: '3.11'
111
+ python_arch: 'x64'
112
+ tox_env: 'py311-pytest91-nodist-nocov'
113
+ os: 'windows-latest'
114
+ - name: 'py311-pytest91-nodist-nocov (macos/arm64)'
115
+ python: '3.11'
116
+ python_arch: 'arm64'
117
+ tox_env: 'py311-pytest91-nodist-nocov'
118
+ os: 'macos-latest'
119
+ - name: 'py311-pytest91-xdist-cover (ubuntu/x64)'
120
+ python: '3.11'
121
+ python_arch: 'x64'
122
+ tox_env: 'py311-pytest91-xdist-cover'
123
+ os: 'ubuntu-latest'
124
+ cover: true
125
+ - name: 'py311-pytest91-xdist-cover (windows/x64)'
126
+ python: '3.11'
127
+ python_arch: 'x64'
128
+ tox_env: 'py311-pytest91-xdist-cover'
129
+ os: 'windows-latest'
130
+ cover: true
131
+ - name: 'py311-pytest91-xdist-cover (macos/arm64)'
132
+ python: '3.11'
133
+ python_arch: 'arm64'
134
+ tox_env: 'py311-pytest91-xdist-cover'
135
+ os: 'macos-latest'
136
+ cover: true
137
+ - name: 'py311-pytest91-xdist-nocov (ubuntu/x64)'
138
+ python: '3.11'
139
+ python_arch: 'x64'
140
+ tox_env: 'py311-pytest91-xdist-nocov'
141
+ os: 'ubuntu-latest'
142
+ - name: 'py311-pytest91-xdist-nocov (windows/x64)'
143
+ python: '3.11'
144
+ python_arch: 'x64'
145
+ tox_env: 'py311-pytest91-xdist-nocov'
146
+ os: 'windows-latest'
147
+ - name: 'py311-pytest91-xdist-nocov (macos/arm64)'
148
+ python: '3.11'
149
+ python_arch: 'arm64'
150
+ tox_env: 'py311-pytest91-xdist-nocov'
151
+ os: 'macos-latest'
152
+ - name: 'py312-pytest91-nodist-cover (ubuntu/x64)'
153
+ python: '3.12'
154
+ python_arch: 'x64'
155
+ tox_env: 'py312-pytest91-nodist-cover'
156
+ os: 'ubuntu-latest'
157
+ cover: true
158
+ - name: 'py312-pytest91-nodist-cover (windows/x64)'
159
+ python: '3.12'
160
+ python_arch: 'x64'
161
+ tox_env: 'py312-pytest91-nodist-cover'
162
+ os: 'windows-latest'
163
+ cover: true
164
+ - name: 'py312-pytest91-nodist-cover (macos/arm64)'
165
+ python: '3.12'
166
+ python_arch: 'arm64'
167
+ tox_env: 'py312-pytest91-nodist-cover'
168
+ os: 'macos-latest'
169
+ cover: true
170
+ - name: 'py312-pytest91-nodist-nocov (ubuntu/x64)'
171
+ python: '3.12'
172
+ python_arch: 'x64'
173
+ tox_env: 'py312-pytest91-nodist-nocov'
174
+ os: 'ubuntu-latest'
175
+ - name: 'py312-pytest91-nodist-nocov (windows/x64)'
176
+ python: '3.12'
177
+ python_arch: 'x64'
178
+ tox_env: 'py312-pytest91-nodist-nocov'
179
+ os: 'windows-latest'
180
+ - name: 'py312-pytest91-nodist-nocov (macos/arm64)'
181
+ python: '3.12'
182
+ python_arch: 'arm64'
183
+ tox_env: 'py312-pytest91-nodist-nocov'
184
+ os: 'macos-latest'
185
+ - name: 'py312-pytest91-xdist-cover (ubuntu/x64)'
186
+ python: '3.12'
187
+ python_arch: 'x64'
188
+ tox_env: 'py312-pytest91-xdist-cover'
189
+ os: 'ubuntu-latest'
190
+ cover: true
191
+ - name: 'py312-pytest91-xdist-cover (windows/x64)'
192
+ python: '3.12'
193
+ python_arch: 'x64'
194
+ tox_env: 'py312-pytest91-xdist-cover'
195
+ os: 'windows-latest'
196
+ cover: true
197
+ - name: 'py312-pytest91-xdist-cover (macos/arm64)'
198
+ python: '3.12'
199
+ python_arch: 'arm64'
200
+ tox_env: 'py312-pytest91-xdist-cover'
201
+ os: 'macos-latest'
202
+ cover: true
203
+ - name: 'py312-pytest91-xdist-nocov (ubuntu/x64)'
204
+ python: '3.12'
205
+ python_arch: 'x64'
206
+ tox_env: 'py312-pytest91-xdist-nocov'
207
+ os: 'ubuntu-latest'
208
+ - name: 'py312-pytest91-xdist-nocov (windows/x64)'
209
+ python: '3.12'
210
+ python_arch: 'x64'
211
+ tox_env: 'py312-pytest91-xdist-nocov'
212
+ os: 'windows-latest'
213
+ - name: 'py312-pytest91-xdist-nocov (macos/arm64)'
214
+ python: '3.12'
215
+ python_arch: 'arm64'
216
+ tox_env: 'py312-pytest91-xdist-nocov'
217
+ os: 'macos-latest'
218
+ - name: 'py313-pytest91-nodist-cover (ubuntu/x64)'
219
+ python: '3.13'
220
+ python_arch: 'x64'
221
+ tox_env: 'py313-pytest91-nodist-cover'
222
+ os: 'ubuntu-latest'
223
+ cover: true
224
+ - name: 'py313-pytest91-nodist-cover (windows/x64)'
225
+ python: '3.13'
226
+ python_arch: 'x64'
227
+ tox_env: 'py313-pytest91-nodist-cover'
228
+ os: 'windows-latest'
229
+ cover: true
230
+ - name: 'py313-pytest91-nodist-cover (macos/arm64)'
231
+ python: '3.13'
232
+ python_arch: 'arm64'
233
+ tox_env: 'py313-pytest91-nodist-cover'
234
+ os: 'macos-latest'
235
+ cover: true
236
+ - name: 'py313-pytest91-nodist-nocov (ubuntu/x64)'
237
+ python: '3.13'
238
+ python_arch: 'x64'
239
+ tox_env: 'py313-pytest91-nodist-nocov'
240
+ os: 'ubuntu-latest'
241
+ - name: 'py313-pytest91-nodist-nocov (windows/x64)'
242
+ python: '3.13'
243
+ python_arch: 'x64'
244
+ tox_env: 'py313-pytest91-nodist-nocov'
245
+ os: 'windows-latest'
246
+ - name: 'py313-pytest91-nodist-nocov (macos/arm64)'
247
+ python: '3.13'
248
+ python_arch: 'arm64'
249
+ tox_env: 'py313-pytest91-nodist-nocov'
250
+ os: 'macos-latest'
251
+ - name: 'py313-pytest91-xdist-cover (ubuntu/x64)'
252
+ python: '3.13'
253
+ python_arch: 'x64'
254
+ tox_env: 'py313-pytest91-xdist-cover'
255
+ os: 'ubuntu-latest'
256
+ cover: true
257
+ - name: 'py313-pytest91-xdist-cover (windows/x64)'
258
+ python: '3.13'
259
+ python_arch: 'x64'
260
+ tox_env: 'py313-pytest91-xdist-cover'
261
+ os: 'windows-latest'
262
+ cover: true
263
+ - name: 'py313-pytest91-xdist-cover (macos/arm64)'
264
+ python: '3.13'
265
+ python_arch: 'arm64'
266
+ tox_env: 'py313-pytest91-xdist-cover'
267
+ os: 'macos-latest'
268
+ cover: true
269
+ - name: 'py313-pytest91-xdist-nocov (ubuntu/x64)'
270
+ python: '3.13'
271
+ python_arch: 'x64'
272
+ tox_env: 'py313-pytest91-xdist-nocov'
273
+ os: 'ubuntu-latest'
274
+ - name: 'py313-pytest91-xdist-nocov (windows/x64)'
275
+ python: '3.13'
276
+ python_arch: 'x64'
277
+ tox_env: 'py313-pytest91-xdist-nocov'
278
+ os: 'windows-latest'
279
+ - name: 'py313-pytest91-xdist-nocov (macos/arm64)'
280
+ python: '3.13'
281
+ python_arch: 'arm64'
282
+ tox_env: 'py313-pytest91-xdist-nocov'
283
+ os: 'macos-latest'
284
+ - name: 'py314-pytest91-nodist-cover (ubuntu/x64)'
285
+ python: '3.14'
286
+ python_arch: 'x64'
287
+ tox_env: 'py314-pytest91-nodist-cover'
288
+ os: 'ubuntu-latest'
289
+ cover: true
290
+ - name: 'py314-pytest91-nodist-cover (windows/x64)'
291
+ python: '3.14'
292
+ python_arch: 'x64'
293
+ tox_env: 'py314-pytest91-nodist-cover'
294
+ os: 'windows-latest'
295
+ cover: true
296
+ - name: 'py314-pytest91-nodist-cover (macos/arm64)'
297
+ python: '3.14'
298
+ python_arch: 'arm64'
299
+ tox_env: 'py314-pytest91-nodist-cover'
300
+ os: 'macos-latest'
301
+ cover: true
302
+ - name: 'py314-pytest91-nodist-nocov (ubuntu/x64)'
303
+ python: '3.14'
304
+ python_arch: 'x64'
305
+ tox_env: 'py314-pytest91-nodist-nocov'
306
+ os: 'ubuntu-latest'
307
+ - name: 'py314-pytest91-nodist-nocov (windows/x64)'
308
+ python: '3.14'
309
+ python_arch: 'x64'
310
+ tox_env: 'py314-pytest91-nodist-nocov'
311
+ os: 'windows-latest'
312
+ - name: 'py314-pytest91-nodist-nocov (macos/arm64)'
313
+ python: '3.14'
314
+ python_arch: 'arm64'
315
+ tox_env: 'py314-pytest91-nodist-nocov'
316
+ os: 'macos-latest'
317
+ - name: 'py314-pytest91-xdist-cover (ubuntu/x64)'
318
+ python: '3.14'
319
+ python_arch: 'x64'
320
+ tox_env: 'py314-pytest91-xdist-cover'
321
+ os: 'ubuntu-latest'
322
+ cover: true
323
+ - name: 'py314-pytest91-xdist-cover (windows/x64)'
324
+ python: '3.14'
325
+ python_arch: 'x64'
326
+ tox_env: 'py314-pytest91-xdist-cover'
327
+ os: 'windows-latest'
328
+ cover: true
329
+ - name: 'py314-pytest91-xdist-cover (macos/arm64)'
330
+ python: '3.14'
331
+ python_arch: 'arm64'
332
+ tox_env: 'py314-pytest91-xdist-cover'
333
+ os: 'macos-latest'
334
+ cover: true
335
+ - name: 'py314-pytest91-xdist-nocov (ubuntu/x64)'
336
+ python: '3.14'
337
+ python_arch: 'x64'
338
+ tox_env: 'py314-pytest91-xdist-nocov'
339
+ os: 'ubuntu-latest'
340
+ - name: 'py314-pytest91-xdist-nocov (windows/x64)'
341
+ python: '3.14'
342
+ python_arch: 'x64'
343
+ tox_env: 'py314-pytest91-xdist-nocov'
344
+ os: 'windows-latest'
345
+ - name: 'py314-pytest91-xdist-nocov (macos/arm64)'
346
+ python: '3.14'
347
+ python_arch: 'arm64'
348
+ tox_env: 'py314-pytest91-xdist-nocov'
349
+ os: 'macos-latest'
350
+ - name: 'pypy311-pytest91-nodist-cover (ubuntu/x64)'
351
+ python: 'pypy-3.11'
352
+ python_arch: 'x64'
353
+ tox_env: 'pypy311-pytest91-nodist-cover'
354
+ os: 'ubuntu-latest'
355
+ cover: true
356
+ - name: 'pypy311-pytest91-nodist-cover (windows/x64)'
357
+ python: 'pypy-3.11'
358
+ python_arch: 'x64'
359
+ tox_env: 'pypy311-pytest91-nodist-cover'
360
+ os: 'windows-latest'
361
+ cover: true
362
+ - name: 'pypy311-pytest91-nodist-cover (macos/arm64)'
363
+ python: 'pypy-3.11'
364
+ python_arch: 'arm64'
365
+ tox_env: 'pypy311-pytest91-nodist-cover'
366
+ os: 'macos-latest'
367
+ cover: true
368
+ - name: 'pypy311-pytest91-nodist-nocov (ubuntu/x64)'
369
+ python: 'pypy-3.11'
370
+ python_arch: 'x64'
371
+ tox_env: 'pypy311-pytest91-nodist-nocov'
372
+ os: 'ubuntu-latest'
373
+ - name: 'pypy311-pytest91-nodist-nocov (windows/x64)'
374
+ python: 'pypy-3.11'
375
+ python_arch: 'x64'
376
+ tox_env: 'pypy311-pytest91-nodist-nocov'
377
+ os: 'windows-latest'
378
+ - name: 'pypy311-pytest91-nodist-nocov (macos/arm64)'
379
+ python: 'pypy-3.11'
380
+ python_arch: 'arm64'
381
+ tox_env: 'pypy311-pytest91-nodist-nocov'
382
+ os: 'macos-latest'
383
+ - name: 'pypy311-pytest91-xdist-cover (ubuntu/x64)'
384
+ python: 'pypy-3.11'
385
+ python_arch: 'x64'
386
+ tox_env: 'pypy311-pytest91-xdist-cover'
387
+ os: 'ubuntu-latest'
388
+ cover: true
389
+ - name: 'pypy311-pytest91-xdist-cover (windows/x64)'
390
+ python: 'pypy-3.11'
391
+ python_arch: 'x64'
392
+ tox_env: 'pypy311-pytest91-xdist-cover'
393
+ os: 'windows-latest'
394
+ cover: true
395
+ - name: 'pypy311-pytest91-xdist-cover (macos/arm64)'
396
+ python: 'pypy-3.11'
397
+ python_arch: 'arm64'
398
+ tox_env: 'pypy311-pytest91-xdist-cover'
399
+ os: 'macos-latest'
400
+ cover: true
401
+ - name: 'pypy311-pytest91-xdist-nocov (ubuntu/x64)'
402
+ python: 'pypy-3.11'
403
+ python_arch: 'x64'
404
+ tox_env: 'pypy311-pytest91-xdist-nocov'
405
+ os: 'ubuntu-latest'
406
+ - name: 'pypy311-pytest91-xdist-nocov (windows/x64)'
407
+ python: 'pypy-3.11'
408
+ python_arch: 'x64'
409
+ tox_env: 'pypy311-pytest91-xdist-nocov'
410
+ os: 'windows-latest'
411
+ - name: 'pypy311-pytest91-xdist-nocov (macos/arm64)'
412
+ python: 'pypy-3.11'
413
+ python_arch: 'arm64'
414
+ tox_env: 'pypy311-pytest91-xdist-nocov'
415
+ os: 'macos-latest'
416
+ steps:
417
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
418
+ with:
419
+ fetch-depth: 0
420
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7
421
+ with:
422
+ python-version: ${{ matrix.python }}
423
+ architecture: ${{ matrix.python_arch }}
424
+ - name: install dependencies
425
+ run: |
426
+ python -mpip install --progress-bar=off -r ci/requirements.txt
427
+ virtualenv --version
428
+ pip --version
429
+ tox --version
430
+ pip list --format=freeze
431
+ - name: test
432
+ run: >
433
+ tox -e ${{ matrix.tox_env }} -v
434
+ - uses: coverallsapp/github-action@8d6379e14d29928660c4ba802d8e85393440b329 # v2
435
+ if: matrix.cover
436
+ continue-on-error: true
437
+ with:
438
+ flag-name: ${{ matrix.name }}
439
+ parallel: true
440
+ - uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7
441
+ if: matrix.cover
442
+ with:
443
+ flags: ${{ matrix.name }}
444
+ token: ${{ secrets.CODECOV_TOKEN }}
445
+ verbose: true
446
+ finish:
447
+ needs: test
448
+ if: ${{ always() }}
449
+ runs-on: ubuntu-latest
450
+ steps:
451
+ - uses: coverallsapp/github-action@8d6379e14d29928660c4ba802d8e85393440b329 # v2
452
+ with:
453
+ parallel-finished: true
@@ -1,30 +1,34 @@
1
1
  # To install the git pre-commit hooks run:
2
- # pre-commit install --install-hooks
2
+ # prek install --install-hooks --overwrite
3
3
  # To update the versions:
4
- # pre-commit autoupdate
4
+ # prek autoupdate
5
5
  exclude: '^(\.tox|ci/templates|\.bumpversion\.cfg)(/|$)'
6
6
  # Note the order is intentional to avoid multiple passes of the hooks
7
7
  repos:
8
8
  - repo: https://github.com/astral-sh/ruff-pre-commit
9
- rev: v0.14.4
9
+ rev: aab412d509121cb5f7533134b7e67f9fab59c682 # frozen: v0.16.4
10
10
  hooks:
11
- - id: ruff
11
+ - id: ruff-check
12
+ # Using --unsafe-fixes can change code behavior
12
13
  args: [--fix, --exit-non-zero-on-fix, --show-fixes, --unsafe-fixes]
13
14
  - id: ruff-format
14
- - repo: https://github.com/ComPWA/taplo-pre-commit
15
- rev: v0.9.3
15
+ - repo: https://github.com/tombi-toml/tombi-pre-commit
16
+ rev: dd68bbd8cdd8891c942fb6f33a6e87a477b2c375 # frozen: v1.4.1
16
17
  hooks:
17
- - id: taplo-format
18
- - id: taplo-lint
18
+ - id: tombi-format
19
+ # args: [ "--offline" ]
20
+ - id: tombi-lint
21
+ # args: [ "--offline" ]
22
+ # Should you use this offline, uncomment those args
19
23
  - repo: https://github.com/pre-commit/pre-commit-hooks
20
- rev: v6.0.0
24
+ rev: 3e8a8703264a2f4a69428a0aa4dcb512790b2c8c # frozen: v6.0.0
21
25
  hooks:
22
26
  - id: trailing-whitespace
23
27
  - id: end-of-file-fixer
24
28
  - id: mixed-line-ending
25
29
  - id: debug-statements
26
30
  - repo: https://github.com/pre-commit/mirrors-mypy
27
- rev: v1.18.2
31
+ rev: 7ff8d35ae36a7d2b968f2f90b4c723e292e594ee # frozen: v2.3.1
28
32
  hooks:
29
33
  - id: mypy
30
34
  args: ["."]
@@ -32,7 +36,7 @@ repos:
32
36
  additional_dependencies:
33
37
  - pytest
34
38
  - freezegun
35
- - py-cpuinfo
39
+ - py-cpuinfo2
36
40
  - jinja2
37
41
  - types-setuptools
38
42
  - elasticsearch
@@ -40,3 +44,7 @@ repos:
40
44
  - pygaljs
41
45
  - aspectlib
42
46
  - statistics
47
+ - repo: https://github.com/crate-ci/typos
48
+ rev: 8a48f81b6c64dcfea44b3633223084c4be58ac5f # frozen: v1.49.0
49
+ hooks:
50
+ - id: typos
@@ -0,0 +1,4 @@
1
+ [format]
2
+ [format.rules]
3
+ indent-sub-tables = false
4
+ indent-width = 4
@@ -42,3 +42,7 @@ Authors
42
42
  * Sorin Sbarnea - https://github.com/ssbarnea
43
43
  * Enno Gotthold - https://github.com/SchoolGuy
44
44
  * Thomas B. Brunner - https://github.com/thomasbbrunner
45
+ * Hugo van Kemenade - https://github.com/hugovk
46
+ * Aarni Koskela - https://github.com/akx
47
+ * Sophia Castellarin - https://github.com/soapy1
48
+ * xlyyddy - https://github.com/xlyyddy
@@ -2,6 +2,40 @@
2
2
  Changelog
3
3
  =========
4
4
 
5
+ v5.3.0 (2026-08-23)
6
+ --------------------
7
+
8
+ * Added ``--benchmark-precision`` and ``--benchmark-confidence``:
9
+ instead of a fixed number of rounds, stop once the mean's relative margin of error falls below the given fraction.
10
+ Contributed by Aarni Koskela in `#318 <https://github.com/ionelmc/pytest-benchmark/pull/318>`_.
11
+ * Added ``compare --between`` mode. Example: ``pytest-benchmark compare --between=min 0001 0002``.
12
+ Contributed by Aarni Koskela in `#302 <https://github.com/ionelmc/pytest-benchmark/pull/302>`_.
13
+ * Modernized the CI/linting and added spellchecking.
14
+ Contributed by Aarni Koskela in
15
+ `#304 <https://github.com/ionelmc/pytest-benchmark/pull/304>`_,
16
+ `#306 <https://github.com/ionelmc/pytest-benchmark/pull/306>`_ and
17
+ `#319 <https://github.com/ionelmc/pytest-benchmark/pull/319>`_.
18
+ * Defer the xdist auto-disable warning until a benchmark fixture is collected.
19
+ Contributed by xlyyddy in `#317 <https://github.com/ionelmc/pytest-benchmark/pull/317>`_
20
+ (fixes `#65 <https://github.com/ionelmc/pytest-benchmark/issues/65>`_).
21
+ * Replaced deprecated argparse.FileType.
22
+ Contributed by Sophia Castellarin in `#310 <https://github.com/ionelmc/pytest-benchmark/pull/310>`_.
23
+ * Fixed various spelling/typos.
24
+ Contributed by Daniel Holth and Hugo van Kemenade in
25
+ `#297 <https://github.com/ionelmc/pytest-benchmark/pull/297>`_ and
26
+ `#299 <https://github.com/ionelmc/pytest-benchmark/pull/299>`_.
27
+ * Cleaned up various dead code.
28
+ Contributed by Hugo van Kemenade in
29
+ `#300 <https://github.com/ionelmc/pytest-benchmark/pull/300>`_ and
30
+ `#301 <https://github.com/ionelmc/pytest-benchmark/pull/301>`_.
31
+ * CI now tests only with latest Pytest (now 9.1.1), Python 3.10-3.14 and PyPy 3.11.
32
+
33
+ v5.2.3 (2025-11-09)
34
+ --------------------
35
+
36
+ * Add support for pytest 9.0.
37
+ * Moved the README.rst/CHANGELOG.rst concatenation from setup.py to pyproject.toml.
38
+
5
39
  v5.2.2 (2025-11-07)
6
40
  --------------------
7
41
 
@@ -1,6 +1,6 @@
1
1
  BSD 2-Clause License
2
2
 
3
- Copyright (c) 2014-2025, Ionel Cristian Mărieș. All rights reserved.
3
+ Copyright (c) 2014-2026, Ionel Cristian Mărieș. All rights reserved.
4
4
 
5
5
  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
6
6
  following conditions are met:
@@ -10,7 +10,8 @@ include .editorconfig
10
10
  include .github/workflows/github-actions.yml
11
11
  include .pre-commit-config.yaml
12
12
  include .readthedocs.yml
13
- include .taplo.toml
13
+ include .tombi.toml
14
+ include _typos.toml
14
15
  include pyproject.toml
15
16
  include pytest.ini
16
17
  include tox.ini