diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 2ce50997..d2649188 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 6.1.1 +current_version = 6.2.1 commit = True tag = True diff --git a/.cookiecutterrc b/.cookiecutterrc index 3703b848..324a99de 100644 --- a/.cookiecutterrc +++ b/.cookiecutterrc @@ -40,7 +40,7 @@ default_context: sphinx_doctest: 'no' sphinx_theme: sphinx-py3doc-enhanced-theme test_matrix_separate_coverage: 'no' - version: 6.1.1 + version: 6.2.1 version_manager: bump2version website: http://blog.ionelmc.ro year_from: '2010' diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3f6b8dc4..0a81ed49 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -60,131 +60,509 @@ jobs: toxpython: 'python3.11' tox_env: 'docs' os: 'ubuntu-latest' - - name: 'py39-pytest83-xdist36-coverage77 (ubuntu)' + - name: 'py39-pytest83-xdist36-coverage78 (ubuntu)' python: '3.9' toxpython: 'python3.9' python_arch: 'x64' - tox_env: 'py39-pytest83-xdist36-coverage77' + tox_env: 'py39-pytest83-xdist36-coverage78' os: 'ubuntu-latest' - - name: 'py39-pytest83-xdist36-coverage77 (windows)' + - name: 'py39-pytest83-xdist36-coverage78 (windows)' python: '3.9' toxpython: 'python3.9' python_arch: 'x64' - tox_env: 'py39-pytest83-xdist36-coverage77' + tox_env: 'py39-pytest83-xdist36-coverage78' os: 'windows-latest' - - name: 'py39-pytest83-xdist36-coverage77 (macos)' + - name: 'py39-pytest83-xdist36-coverage78 (macos)' python: '3.9' toxpython: 'python3.9' python_arch: 'arm64' - tox_env: 'py39-pytest83-xdist36-coverage77' + tox_env: 'py39-pytest83-xdist36-coverage78' os: 'macos-latest' - - name: 'py310-pytest83-xdist36-coverage77 (ubuntu)' + - name: 'py39-pytest83-xdist37-coverage78 (ubuntu)' + python: '3.9' + toxpython: 'python3.9' + python_arch: 'x64' + tox_env: 'py39-pytest83-xdist37-coverage78' + os: 'ubuntu-latest' + - name: 'py39-pytest83-xdist37-coverage78 (windows)' + python: '3.9' + toxpython: 'python3.9' + python_arch: 'x64' + tox_env: 'py39-pytest83-xdist37-coverage78' + os: 'windows-latest' + - name: 'py39-pytest83-xdist37-coverage78 (macos)' + python: '3.9' + toxpython: 'python3.9' + python_arch: 'arm64' + tox_env: 'py39-pytest83-xdist37-coverage78' + os: 'macos-latest' + - name: 'py39-pytest84-xdist36-coverage78 (ubuntu)' + python: '3.9' + toxpython: 'python3.9' + python_arch: 'x64' + tox_env: 'py39-pytest84-xdist36-coverage78' + os: 'ubuntu-latest' + - name: 'py39-pytest84-xdist36-coverage78 (windows)' + python: '3.9' + toxpython: 'python3.9' + python_arch: 'x64' + tox_env: 'py39-pytest84-xdist36-coverage78' + os: 'windows-latest' + - name: 'py39-pytest84-xdist36-coverage78 (macos)' + python: '3.9' + toxpython: 'python3.9' + python_arch: 'arm64' + tox_env: 'py39-pytest84-xdist36-coverage78' + os: 'macos-latest' + - name: 'py39-pytest84-xdist37-coverage78 (ubuntu)' + python: '3.9' + toxpython: 'python3.9' + python_arch: 'x64' + tox_env: 'py39-pytest84-xdist37-coverage78' + os: 'ubuntu-latest' + - name: 'py39-pytest84-xdist37-coverage78 (windows)' + python: '3.9' + toxpython: 'python3.9' + python_arch: 'x64' + tox_env: 'py39-pytest84-xdist37-coverage78' + os: 'windows-latest' + - name: 'py39-pytest84-xdist37-coverage78 (macos)' + python: '3.9' + toxpython: 'python3.9' + python_arch: 'arm64' + tox_env: 'py39-pytest84-xdist37-coverage78' + os: 'macos-latest' + - name: 'py310-pytest83-xdist36-coverage78 (ubuntu)' + python: '3.10' + toxpython: 'python3.10' + python_arch: 'x64' + tox_env: 'py310-pytest83-xdist36-coverage78' + os: 'ubuntu-latest' + - name: 'py310-pytest83-xdist36-coverage78 (windows)' + python: '3.10' + toxpython: 'python3.10' + python_arch: 'x64' + tox_env: 'py310-pytest83-xdist36-coverage78' + os: 'windows-latest' + - name: 'py310-pytest83-xdist36-coverage78 (macos)' + python: '3.10' + toxpython: 'python3.10' + python_arch: 'arm64' + tox_env: 'py310-pytest83-xdist36-coverage78' + os: 'macos-latest' + - name: 'py310-pytest83-xdist37-coverage78 (ubuntu)' + python: '3.10' + toxpython: 'python3.10' + python_arch: 'x64' + tox_env: 'py310-pytest83-xdist37-coverage78' + os: 'ubuntu-latest' + - name: 'py310-pytest83-xdist37-coverage78 (windows)' + python: '3.10' + toxpython: 'python3.10' + python_arch: 'x64' + tox_env: 'py310-pytest83-xdist37-coverage78' + os: 'windows-latest' + - name: 'py310-pytest83-xdist37-coverage78 (macos)' + python: '3.10' + toxpython: 'python3.10' + python_arch: 'arm64' + tox_env: 'py310-pytest83-xdist37-coverage78' + os: 'macos-latest' + - name: 'py310-pytest84-xdist36-coverage78 (ubuntu)' + python: '3.10' + toxpython: 'python3.10' + python_arch: 'x64' + tox_env: 'py310-pytest84-xdist36-coverage78' + os: 'ubuntu-latest' + - name: 'py310-pytest84-xdist36-coverage78 (windows)' + python: '3.10' + toxpython: 'python3.10' + python_arch: 'x64' + tox_env: 'py310-pytest84-xdist36-coverage78' + os: 'windows-latest' + - name: 'py310-pytest84-xdist36-coverage78 (macos)' + python: '3.10' + toxpython: 'python3.10' + python_arch: 'arm64' + tox_env: 'py310-pytest84-xdist36-coverage78' + os: 'macos-latest' + - name: 'py310-pytest84-xdist37-coverage78 (ubuntu)' python: '3.10' toxpython: 'python3.10' python_arch: 'x64' - tox_env: 'py310-pytest83-xdist36-coverage77' + tox_env: 'py310-pytest84-xdist37-coverage78' os: 'ubuntu-latest' - - name: 'py310-pytest83-xdist36-coverage77 (windows)' + - name: 'py310-pytest84-xdist37-coverage78 (windows)' python: '3.10' toxpython: 'python3.10' python_arch: 'x64' - tox_env: 'py310-pytest83-xdist36-coverage77' + tox_env: 'py310-pytest84-xdist37-coverage78' os: 'windows-latest' - - name: 'py310-pytest83-xdist36-coverage77 (macos)' + - name: 'py310-pytest84-xdist37-coverage78 (macos)' python: '3.10' toxpython: 'python3.10' python_arch: 'arm64' - tox_env: 'py310-pytest83-xdist36-coverage77' + tox_env: 'py310-pytest84-xdist37-coverage78' + os: 'macos-latest' + - name: 'py311-pytest83-xdist36-coverage78 (ubuntu)' + python: '3.11' + toxpython: 'python3.11' + python_arch: 'x64' + tox_env: 'py311-pytest83-xdist36-coverage78' + os: 'ubuntu-latest' + - name: 'py311-pytest83-xdist36-coverage78 (windows)' + python: '3.11' + toxpython: 'python3.11' + python_arch: 'x64' + tox_env: 'py311-pytest83-xdist36-coverage78' + os: 'windows-latest' + - name: 'py311-pytest83-xdist36-coverage78 (macos)' + python: '3.11' + toxpython: 'python3.11' + python_arch: 'arm64' + tox_env: 'py311-pytest83-xdist36-coverage78' os: 'macos-latest' - - name: 'py311-pytest83-xdist36-coverage77 (ubuntu)' + - name: 'py311-pytest83-xdist37-coverage78 (ubuntu)' python: '3.11' toxpython: 'python3.11' python_arch: 'x64' - tox_env: 'py311-pytest83-xdist36-coverage77' + tox_env: 'py311-pytest83-xdist37-coverage78' os: 'ubuntu-latest' - - name: 'py311-pytest83-xdist36-coverage77 (windows)' + - name: 'py311-pytest83-xdist37-coverage78 (windows)' python: '3.11' toxpython: 'python3.11' python_arch: 'x64' - tox_env: 'py311-pytest83-xdist36-coverage77' + tox_env: 'py311-pytest83-xdist37-coverage78' os: 'windows-latest' - - name: 'py311-pytest83-xdist36-coverage77 (macos)' + - name: 'py311-pytest83-xdist37-coverage78 (macos)' + python: '3.11' + toxpython: 'python3.11' + python_arch: 'arm64' + tox_env: 'py311-pytest83-xdist37-coverage78' + os: 'macos-latest' + - name: 'py311-pytest84-xdist36-coverage78 (ubuntu)' + python: '3.11' + toxpython: 'python3.11' + python_arch: 'x64' + tox_env: 'py311-pytest84-xdist36-coverage78' + os: 'ubuntu-latest' + - name: 'py311-pytest84-xdist36-coverage78 (windows)' python: '3.11' toxpython: 'python3.11' + python_arch: 'x64' + tox_env: 'py311-pytest84-xdist36-coverage78' + os: 'windows-latest' + - name: 'py311-pytest84-xdist36-coverage78 (macos)' + python: '3.11' + toxpython: 'python3.11' + python_arch: 'arm64' + tox_env: 'py311-pytest84-xdist36-coverage78' + os: 'macos-latest' + - name: 'py311-pytest84-xdist37-coverage78 (ubuntu)' + python: '3.11' + toxpython: 'python3.11' + python_arch: 'x64' + tox_env: 'py311-pytest84-xdist37-coverage78' + os: 'ubuntu-latest' + - name: 'py311-pytest84-xdist37-coverage78 (windows)' + python: '3.11' + toxpython: 'python3.11' + python_arch: 'x64' + tox_env: 'py311-pytest84-xdist37-coverage78' + os: 'windows-latest' + - name: 'py311-pytest84-xdist37-coverage78 (macos)' + python: '3.11' + toxpython: 'python3.11' + python_arch: 'arm64' + tox_env: 'py311-pytest84-xdist37-coverage78' + os: 'macos-latest' + - name: 'py312-pytest83-xdist36-coverage78 (ubuntu)' + python: '3.12' + toxpython: 'python3.12' + python_arch: 'x64' + tox_env: 'py312-pytest83-xdist36-coverage78' + os: 'ubuntu-latest' + - name: 'py312-pytest83-xdist36-coverage78 (windows)' + python: '3.12' + toxpython: 'python3.12' + python_arch: 'x64' + tox_env: 'py312-pytest83-xdist36-coverage78' + os: 'windows-latest' + - name: 'py312-pytest83-xdist36-coverage78 (macos)' + python: '3.12' + toxpython: 'python3.12' + python_arch: 'arm64' + tox_env: 'py312-pytest83-xdist36-coverage78' + os: 'macos-latest' + - name: 'py312-pytest83-xdist37-coverage78 (ubuntu)' + python: '3.12' + toxpython: 'python3.12' + python_arch: 'x64' + tox_env: 'py312-pytest83-xdist37-coverage78' + os: 'ubuntu-latest' + - name: 'py312-pytest83-xdist37-coverage78 (windows)' + python: '3.12' + toxpython: 'python3.12' + python_arch: 'x64' + tox_env: 'py312-pytest83-xdist37-coverage78' + os: 'windows-latest' + - name: 'py312-pytest83-xdist37-coverage78 (macos)' + python: '3.12' + toxpython: 'python3.12' + python_arch: 'arm64' + tox_env: 'py312-pytest83-xdist37-coverage78' + os: 'macos-latest' + - name: 'py312-pytest84-xdist36-coverage78 (ubuntu)' + python: '3.12' + toxpython: 'python3.12' + python_arch: 'x64' + tox_env: 'py312-pytest84-xdist36-coverage78' + os: 'ubuntu-latest' + - name: 'py312-pytest84-xdist36-coverage78 (windows)' + python: '3.12' + toxpython: 'python3.12' + python_arch: 'x64' + tox_env: 'py312-pytest84-xdist36-coverage78' + os: 'windows-latest' + - name: 'py312-pytest84-xdist36-coverage78 (macos)' + python: '3.12' + toxpython: 'python3.12' python_arch: 'arm64' - tox_env: 'py311-pytest83-xdist36-coverage77' + tox_env: 'py312-pytest84-xdist36-coverage78' os: 'macos-latest' - - name: 'py312-pytest83-xdist36-coverage77 (ubuntu)' + - name: 'py312-pytest84-xdist37-coverage78 (ubuntu)' python: '3.12' toxpython: 'python3.12' python_arch: 'x64' - tox_env: 'py312-pytest83-xdist36-coverage77' + tox_env: 'py312-pytest84-xdist37-coverage78' os: 'ubuntu-latest' - - name: 'py312-pytest83-xdist36-coverage77 (windows)' + - name: 'py312-pytest84-xdist37-coverage78 (windows)' python: '3.12' toxpython: 'python3.12' python_arch: 'x64' - tox_env: 'py312-pytest83-xdist36-coverage77' + tox_env: 'py312-pytest84-xdist37-coverage78' os: 'windows-latest' - - name: 'py312-pytest83-xdist36-coverage77 (macos)' + - name: 'py312-pytest84-xdist37-coverage78 (macos)' python: '3.12' toxpython: 'python3.12' python_arch: 'arm64' - tox_env: 'py312-pytest83-xdist36-coverage77' + tox_env: 'py312-pytest84-xdist37-coverage78' + os: 'macos-latest' + - name: 'py313-pytest83-xdist36-coverage78 (ubuntu)' + python: '3.13' + toxpython: 'python3.13' + python_arch: 'x64' + tox_env: 'py313-pytest83-xdist36-coverage78' + os: 'ubuntu-latest' + - name: 'py313-pytest83-xdist36-coverage78 (windows)' + python: '3.13' + toxpython: 'python3.13' + python_arch: 'x64' + tox_env: 'py313-pytest83-xdist36-coverage78' + os: 'windows-latest' + - name: 'py313-pytest83-xdist36-coverage78 (macos)' + python: '3.13' + toxpython: 'python3.13' + python_arch: 'arm64' + tox_env: 'py313-pytest83-xdist36-coverage78' os: 'macos-latest' - - name: 'py313-pytest83-xdist36-coverage77 (ubuntu)' + - name: 'py313-pytest83-xdist37-coverage78 (ubuntu)' python: '3.13' toxpython: 'python3.13' python_arch: 'x64' - tox_env: 'py313-pytest83-xdist36-coverage77' + tox_env: 'py313-pytest83-xdist37-coverage78' os: 'ubuntu-latest' - - name: 'py313-pytest83-xdist36-coverage77 (windows)' + - name: 'py313-pytest83-xdist37-coverage78 (windows)' python: '3.13' toxpython: 'python3.13' python_arch: 'x64' - tox_env: 'py313-pytest83-xdist36-coverage77' + tox_env: 'py313-pytest83-xdist37-coverage78' os: 'windows-latest' - - name: 'py313-pytest83-xdist36-coverage77 (macos)' + - name: 'py313-pytest83-xdist37-coverage78 (macos)' python: '3.13' toxpython: 'python3.13' python_arch: 'arm64' - tox_env: 'py313-pytest83-xdist36-coverage77' + tox_env: 'py313-pytest83-xdist37-coverage78' + os: 'macos-latest' + - name: 'py313-pytest84-xdist36-coverage78 (ubuntu)' + python: '3.13' + toxpython: 'python3.13' + python_arch: 'x64' + tox_env: 'py313-pytest84-xdist36-coverage78' + os: 'ubuntu-latest' + - name: 'py313-pytest84-xdist36-coverage78 (windows)' + python: '3.13' + toxpython: 'python3.13' + python_arch: 'x64' + tox_env: 'py313-pytest84-xdist36-coverage78' + os: 'windows-latest' + - name: 'py313-pytest84-xdist36-coverage78 (macos)' + python: '3.13' + toxpython: 'python3.13' + python_arch: 'arm64' + tox_env: 'py313-pytest84-xdist36-coverage78' + os: 'macos-latest' + - name: 'py313-pytest84-xdist37-coverage78 (ubuntu)' + python: '3.13' + toxpython: 'python3.13' + python_arch: 'x64' + tox_env: 'py313-pytest84-xdist37-coverage78' + os: 'ubuntu-latest' + - name: 'py313-pytest84-xdist37-coverage78 (windows)' + python: '3.13' + toxpython: 'python3.13' + python_arch: 'x64' + tox_env: 'py313-pytest84-xdist37-coverage78' + os: 'windows-latest' + - name: 'py313-pytest84-xdist37-coverage78 (macos)' + python: '3.13' + toxpython: 'python3.13' + python_arch: 'arm64' + tox_env: 'py313-pytest84-xdist37-coverage78' + os: 'macos-latest' + - name: 'pypy39-pytest83-xdist36-coverage78 (ubuntu)' + python: 'pypy-3.9' + toxpython: 'pypy3.9' + python_arch: 'x64' + tox_env: 'pypy39-pytest83-xdist36-coverage78' + os: 'ubuntu-latest' + - name: 'pypy39-pytest83-xdist36-coverage78 (windows)' + python: 'pypy-3.9' + toxpython: 'pypy3.9' + python_arch: 'x64' + tox_env: 'pypy39-pytest83-xdist36-coverage78' + os: 'windows-latest' + - name: 'pypy39-pytest83-xdist36-coverage78 (macos)' + python: 'pypy-3.9' + toxpython: 'pypy3.9' + python_arch: 'arm64' + tox_env: 'pypy39-pytest83-xdist36-coverage78' + os: 'macos-latest' + - name: 'pypy39-pytest83-xdist37-coverage78 (ubuntu)' + python: 'pypy-3.9' + toxpython: 'pypy3.9' + python_arch: 'x64' + tox_env: 'pypy39-pytest83-xdist37-coverage78' + os: 'ubuntu-latest' + - name: 'pypy39-pytest83-xdist37-coverage78 (windows)' + python: 'pypy-3.9' + toxpython: 'pypy3.9' + python_arch: 'x64' + tox_env: 'pypy39-pytest83-xdist37-coverage78' + os: 'windows-latest' + - name: 'pypy39-pytest83-xdist37-coverage78 (macos)' + python: 'pypy-3.9' + toxpython: 'pypy3.9' + python_arch: 'arm64' + tox_env: 'pypy39-pytest83-xdist37-coverage78' + os: 'macos-latest' + - name: 'pypy39-pytest84-xdist36-coverage78 (ubuntu)' + python: 'pypy-3.9' + toxpython: 'pypy3.9' + python_arch: 'x64' + tox_env: 'pypy39-pytest84-xdist36-coverage78' + os: 'ubuntu-latest' + - name: 'pypy39-pytest84-xdist36-coverage78 (windows)' + python: 'pypy-3.9' + toxpython: 'pypy3.9' + python_arch: 'x64' + tox_env: 'pypy39-pytest84-xdist36-coverage78' + os: 'windows-latest' + - name: 'pypy39-pytest84-xdist36-coverage78 (macos)' + python: 'pypy-3.9' + toxpython: 'pypy3.9' + python_arch: 'arm64' + tox_env: 'pypy39-pytest84-xdist36-coverage78' os: 'macos-latest' - - name: 'pypy39-pytest83-xdist36-coverage77 (ubuntu)' + - name: 'pypy39-pytest84-xdist37-coverage78 (ubuntu)' python: 'pypy-3.9' toxpython: 'pypy3.9' python_arch: 'x64' - tox_env: 'pypy39-pytest83-xdist36-coverage77' + tox_env: 'pypy39-pytest84-xdist37-coverage78' os: 'ubuntu-latest' - - name: 'pypy39-pytest83-xdist36-coverage77 (windows)' + - name: 'pypy39-pytest84-xdist37-coverage78 (windows)' python: 'pypy-3.9' toxpython: 'pypy3.9' python_arch: 'x64' - tox_env: 'pypy39-pytest83-xdist36-coverage77' + tox_env: 'pypy39-pytest84-xdist37-coverage78' os: 'windows-latest' - - name: 'pypy39-pytest83-xdist36-coverage77 (macos)' + - name: 'pypy39-pytest84-xdist37-coverage78 (macos)' python: 'pypy-3.9' toxpython: 'pypy3.9' python_arch: 'arm64' - tox_env: 'pypy39-pytest83-xdist36-coverage77' + tox_env: 'pypy39-pytest84-xdist37-coverage78' + os: 'macos-latest' + - name: 'pypy310-pytest83-xdist36-coverage78 (ubuntu)' + python: 'pypy-3.10' + toxpython: 'pypy3.10' + python_arch: 'x64' + tox_env: 'pypy310-pytest83-xdist36-coverage78' + os: 'ubuntu-latest' + - name: 'pypy310-pytest83-xdist36-coverage78 (windows)' + python: 'pypy-3.10' + toxpython: 'pypy3.10' + python_arch: 'x64' + tox_env: 'pypy310-pytest83-xdist36-coverage78' + os: 'windows-latest' + - name: 'pypy310-pytest83-xdist36-coverage78 (macos)' + python: 'pypy-3.10' + toxpython: 'pypy3.10' + python_arch: 'arm64' + tox_env: 'pypy310-pytest83-xdist36-coverage78' + os: 'macos-latest' + - name: 'pypy310-pytest83-xdist37-coverage78 (ubuntu)' + python: 'pypy-3.10' + toxpython: 'pypy3.10' + python_arch: 'x64' + tox_env: 'pypy310-pytest83-xdist37-coverage78' + os: 'ubuntu-latest' + - name: 'pypy310-pytest83-xdist37-coverage78 (windows)' + python: 'pypy-3.10' + toxpython: 'pypy3.10' + python_arch: 'x64' + tox_env: 'pypy310-pytest83-xdist37-coverage78' + os: 'windows-latest' + - name: 'pypy310-pytest83-xdist37-coverage78 (macos)' + python: 'pypy-3.10' + toxpython: 'pypy3.10' + python_arch: 'arm64' + tox_env: 'pypy310-pytest83-xdist37-coverage78' + os: 'macos-latest' + - name: 'pypy310-pytest84-xdist36-coverage78 (ubuntu)' + python: 'pypy-3.10' + toxpython: 'pypy3.10' + python_arch: 'x64' + tox_env: 'pypy310-pytest84-xdist36-coverage78' + os: 'ubuntu-latest' + - name: 'pypy310-pytest84-xdist36-coverage78 (windows)' + python: 'pypy-3.10' + toxpython: 'pypy3.10' + python_arch: 'x64' + tox_env: 'pypy310-pytest84-xdist36-coverage78' + os: 'windows-latest' + - name: 'pypy310-pytest84-xdist36-coverage78 (macos)' + python: 'pypy-3.10' + toxpython: 'pypy3.10' + python_arch: 'arm64' + tox_env: 'pypy310-pytest84-xdist36-coverage78' os: 'macos-latest' - - name: 'pypy310-pytest83-xdist36-coverage77 (ubuntu)' + - name: 'pypy310-pytest84-xdist37-coverage78 (ubuntu)' python: 'pypy-3.10' toxpython: 'pypy3.10' python_arch: 'x64' - tox_env: 'pypy310-pytest83-xdist36-coverage77' + tox_env: 'pypy310-pytest84-xdist37-coverage78' os: 'ubuntu-latest' - - name: 'pypy310-pytest83-xdist36-coverage77 (windows)' + - name: 'pypy310-pytest84-xdist37-coverage78 (windows)' python: 'pypy-3.10' toxpython: 'pypy3.10' python_arch: 'x64' - tox_env: 'pypy310-pytest83-xdist36-coverage77' + tox_env: 'pypy310-pytest84-xdist37-coverage78' os: 'windows-latest' - - name: 'pypy310-pytest83-xdist36-coverage77 (macos)' + - name: 'pypy310-pytest84-xdist37-coverage78 (macos)' python: 'pypy-3.10' toxpython: 'pypy3.10' python_arch: 'arm64' - tox_env: 'pypy310-pytest83-xdist36-coverage77' + tox_env: 'pypy310-pytest84-xdist37-coverage78' os: 'macos-latest' steps: - uses: actions/checkout@v4 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 4cd7d3e5..1d2f108a 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -6,7 +6,7 @@ exclude: '^(\.tox|ci/templates|\.bumpversion\.cfg)(/|$)' # Note the order is intentional to avoid multiple passes of the hooks repos: - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.11.2 + rev: v0.11.13 hooks: - id: ruff args: [--fix, --exit-non-zero-on-fix, --show-fixes, --unsafe-fixes] diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 22e585d5..beac9eea 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,42 @@ Changelog ========= + +6.2.1 (2025-06-12) +------------------ + +* Added a version requirement for pytest's pluggy dependency (1.2.0, released 2023-06-21) that has the required new-style hookwrapper API. +* Removed deprecated license classifier (packaging). +* Disabled coverage warnings in two more situations where they have no value: + + * "module-not-measured" in workers + * "already-imported" in subprocesses + +6.2.0 (2025-06-11) +------------------ + +* The plugin now adds 3 rules in the filter warnings configuration to prevent common coverage warnings being raised as obscure errors:: + + default:unclosed database in =4.6', + 'pytest>=6.2.5', 'coverage[toml]>=7.5', + 'pluggy>=1.2', ], extras_require={ 'testing': [ diff --git a/src/pytest_cov/__init__.py b/src/pytest_cov/__init__.py index ca111a38..0487a25b 100644 --- a/src/pytest_cov/__init__.py +++ b/src/pytest_cov/__init__.py @@ -1,6 +1,6 @@ """pytest-cov: avoid already-imported warning: PYTEST_DONT_REWRITE.""" -__version__ = '6.1.1' +__version__ = '6.2.1' import pytest diff --git a/src/pytest_cov/embed.py b/src/pytest_cov/embed.py index 57c2f423..153cb83d 100644 --- a/src/pytest_cov/embed.py +++ b/src/pytest_cov/embed.py @@ -61,6 +61,7 @@ def init(): cov.switch_context(cov_context) cov._warn_no_data = False cov._warn_unimported_source = False + cov._warn_preimported_source = False return cov diff --git a/src/pytest_cov/engine.py b/src/pytest_cov/engine.py index 64f5cafe..4d53c2fc 100644 --- a/src/pytest_cov/engine.py +++ b/src/pytest_cov/engine.py @@ -450,6 +450,8 @@ def start(self): data_suffix=_data_suffix(f'w{self.nodeid}'), config_file=self.cov_config, ) + # Prevent workers from issuing module-not-measured type of warnings (expected for a workers to not have coverage in all the files). + self.cov._warn_unimported_source = False self.cov.start() self.set_env() super().start() diff --git a/src/pytest_cov/plugin.py b/src/pytest_cov/plugin.py index aca89403..6efc4694 100644 --- a/src/pytest_cov/plugin.py +++ b/src/pytest_cov/plugin.py @@ -2,6 +2,7 @@ import argparse import os +import re import warnings from io import StringIO from pathlib import Path @@ -9,17 +10,21 @@ import coverage import pytest +from coverage.exceptions import CoverageWarning from coverage.results import display_covered from coverage.results import should_fail_under from . import CovDisabledWarning from . import CovReportWarning +from . import PytestCovWarning from . import compat from . import embed if TYPE_CHECKING: from .engine import CovController +COVERAGE_SQLITE_WARNING_RE = re.compile('unclosed database in