-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Fix RawExpressionType.accept crash with --cache-fine-grained
#17588
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Commit 1072c78 (python#17148) converted all quoted types into RawExpressionType, which raised an AssertionError when accepting a TypeTriggersVisitor. Fixes python#17587. Signed-off-by: Anders Kaseorg <andersk@mit.edu>
This was referenced Jul 26, 2024
Member
|
This looks like it could work, but one of the mypy-primer runs timed out after 6 hours. Re-running it to see if it's a fluke or this PR is introducing/exposing a bug that makes mypy hang on some code. |
Contributor
Author
Contributor
Author
|
Might be related to this mypy_primer misconfiguration: |
Member
|
Thanks, let's see if that helps. |
Contributor
|
According to mypy_primer, this change doesn't affect type check results on a corpus of open source code. ✅ |
This was referenced Jul 30, 2024
ilevkivskyi
added a commit
that referenced
this pull request
Aug 4, 2024
mr-c
pushed a commit
to mr-c/mypy
that referenced
this pull request
Aug 14, 2024
md384
pushed a commit
to md384/mypy
that referenced
this pull request
Aug 14, 2024
…ed`" (python#17637) Reverts python#17588 (cherry picked from commit 41dcf1a)
736-c41-2c1-e464fc974
added a commit
to Swiss-Armed-Forces/Loom
that referenced
this pull request
Jan 15, 2026
This MR contains the following updates: | Package | Type | Update | Change | OpenSSF | |---|---|---|---|---| | [deptry](https://github.com/fpgmaas/deptry) ([changelog](https://github.com/fpgmaas/deptry/blob/main/CHANGELOG.md)) | dev | minor | `^0.16.1` → `^0.24.0` | [](https://securityscorecards.dev/viewer/?uri=github.com/fpgmaas/deptry) | | [flake8](https://github.com/pycqa/flake8) ([changelog](https://flake8.pycqa.org/en/latest/release-notes/index.html)) | dev | minor | `7.1.0` → `7.3.0` | [](https://securityscorecards.dev/viewer/?uri=github.com/pycqa/flake8) | | [flake8-bugbear](https://github.com/PyCQA/flake8-bugbear#change-log) ([changelog](https://github.com/PyCQA/flake8-bugbear#change-log)) | dev | minor | `24.4.26` → `24.12.12` | [](https://securityscorecards.dev/viewer/?uri=github.com/PyCQA/flake8-bugbear) | | [mypy](https://github.com/python/mypy) ([changelog](https://mypy.readthedocs.io/en/latest/changelog.html)) | dev | minor | `1.10.1` → `1.19.1` | [](https://securityscorecards.dev/viewer/?uri=github.com/python/mypy) | | [pip-licenses](https://github.com/raimon49/pip-licenses) ([changelog](https://github.com/raimon49/pip-licenses/releases)) | dev | minor | `5.0.0` → `5.5.0` | [](https://securityscorecards.dev/viewer/?uri=github.com/raimon49/pip-licenses) | | [pylint](https://github.com/pylint-dev/pylint) ([changelog](https://pylint.readthedocs.io/en/latest/whatsnew/3/)) | dev | minor | `3.2.4` → `3.3.9` | [](https://securityscorecards.dev/viewer/?uri=github.com/pylint-dev/pylint) | | [pylint-pydantic](https://github.com/fcfangcc/pylint-pydantic) | dev | minor | `^0.3.2` → `^0.4.0` | [](https://securityscorecards.dev/viewer/?uri=github.com/fcfangcc/pylint-pydantic) | | [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) ([changelog](https://pytest-asyncio.readthedocs.io/en/latest/reference/changelog.html)) | test | minor | `^0.23.6` → `^0.26.0` | [](https://securityscorecards.dev/viewer/?uri=github.com/pytest-dev/pytest-asyncio) | | [pytest-celery](https://github.com/celery/pytest-celery) | test | minor | `1.0.0` → `1.2.1` | [](https://securityscorecards.dev/viewer/?uri=github.com/celery/pytest-celery) | | [pytest-memray](https://github.com/bloomberg/pytest-memray) | test | minor | `1.7.0` → `1.8.0` | [](https://securityscorecards.dev/viewer/?uri=github.com/bloomberg/pytest-memray) | | [pytest-mock](https://github.com/pytest-dev/pytest-mock) ([changelog](https://pytest-mock.readthedocs.io/en/latest/changelog.html)) | test | minor | `3.14.0` → `3.15.1` | [](https://securityscorecards.dev/viewer/?uri=github.com/pytest-dev/pytest-mock) | | [pytest-random-order](https://github.com/jbasko/pytest-random-order) | test | minor | `1.1.1` → `1.2.0` | [](https://securityscorecards.dev/viewer/?uri=github.com/jbasko/pytest-random-order) | | [python-gitlab](https://github.com/python-gitlab/python-gitlab) ([changelog](https://github.com/python-gitlab/python-gitlab/blob/main/CHANGELOG.md)) | dev | minor | `6.0.0` → `6.5.0` | [](https://securityscorecards.dev/viewer/?uri=github.com/python-gitlab/python-gitlab) | | [zstandard](https://github.com/indygreg/python-zstandard) | dev | minor | `^0.23.0` → `^0.25.0` | [](https://securityscorecards.dev/viewer/?uri=github.com/indygreg/python-zstandard) | --- ### Release Notes <details> <summary>fpgmaas/deptry (deptry)</summary> ### [`v0.24.0`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0240---2025-11-09) [Compare Source](https://github.com/fpgmaas/deptry/compare/0.23.1...0.24.0) ##### Breaking changes ##### Python 3.9 support dropped Support for Python 3.9 has been dropped, as it has reached its end of life. ##### PyPy 3.10 support dropped, 3.11 added Support for PyPy 3.10 has been dropped, since it is unsupported. We now only test against PyPy 3.11, and only publish wheels for this version. ##### Features - Add GitHub Actions annotations reporter ([#​1059](https://github.com/fpgmaas/deptry/pull/1059)) - Add support for Python 3.14 ([#​1224](https://github.com/fpgmaas/deptry/pull/1224)) - Drop support for Python 3.9 ([#​1328](https://github.com/fpgmaas/deptry/pull/1328)) - Publish wheels for PyPy 3.11 and drop 3.10 ([#​1227](https://github.com/fpgmaas/deptry/pull/1227)) ##### Full Changelog ### [`v0.23.1`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0231---2025-07-30) [Compare Source](https://github.com/fpgmaas/deptry/compare/0.23.0...0.23.1) ##### Bug Fixes - Improve handling of `TYPE_CHECKING` blocks by supporting `import typing as t` and checking `t.TYPE_CHECKING` ([#​1218](https://github.com/fpgmaas/deptry/pull/1218)) - Fix missing hyperlink in report output ([#​1162](https://github.com/fpgmaas/deptry/pull/1162)) ##### Full Changelog ### [`v0.23.0`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0230---2025-01-25) [Compare Source](https://github.com/fpgmaas/deptry/compare/0.22.0...0.23.0) ##### Features - Correctly detect transitive dependencies with different module names ([#​1033](https://github.com/fpgmaas/deptry/pull/1033)) ##### Full Changelog ### [`v0.22.0`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0220---2025-01-10) [Compare Source](https://github.com/fpgmaas/deptry/compare/0.21.2...0.22.0) Poetry 2.0 introduced support for [defining project metadata in PEP 621](https://python-poetry.org/blog/announcing-poetry-2.0.0/). This is now supported by *deptry*. [Documentation](https://deptry.com/supported-dependency-managers/#poetry) has been updated to detail *deptry*'s behavior. ##### Features - Support PEP 621 in Poetry 2.0+ ([#​1003](https://github.com/fpgmaas/deptry/pull/1003)) ##### Full Changelog ### [`v0.21.2`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0212---2024-12-19) [Compare Source](https://github.com/fpgmaas/deptry/compare/0.21.1...0.21.2) ##### Miscellaneous - Provide wheels for musllinux ([#​979](https://github.com/fpgmaas/deptry/pull/979)) ##### Full Changelog ### [`v0.21.1`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0211---2024-11-15) [Compare Source](https://github.com/fpgmaas/deptry/compare/0.21.0...0.21.1) ##### Bug Fixes - Handle string requirements files for `setuptools` dynamic dependencies ([#​945](https://github.com/fpgmaas/deptry/pull/945)) ##### Full Changelog ### [`v0.21.0`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0210---2024-11-08) [Compare Source](https://github.com/fpgmaas/deptry/compare/0.20.0...0.21.0) ##### Breaking changes ##### Ignore files handling Unless [`--exclude`](https://deptry.com/usage/#exclude) is used, *deptry* excludes files found in common ignore files (`.gitignore`, `.ignore`, `$HOME/.config/git/ignore`. ...), by using [`ignore`](https://crates.io/crates/ignore) Rust crate. The default behaviour has been changed, so that now: - git-related ignore rules (`.gitignore`, `$HOME/.config/git/ignore`, ...) are only used if *deptry* is run inside a git repository - `.gitignore` files that are in parent directories of the git repository from where deptry is run are not used (previously, *deptry* would traverse parent directories up to the root system) If you were using `.gitignore` files for non-git repositories, you might want to switch to `.ignore` files, or use [`--extend-exclude`](https://deptry.com/usage/#extend-exclude). ##### Requirements files parsing *deptry* now uses [`requirements-parser`](https://pypi.org/project/requirements-parser/) to parse dependencies from requirements files, meaning that it can now extract nested requirements files referenced in other requirements files without having to explicitly configure it in *deptry*. For instance, if you have: ```python # requirements.txt -r cli-requirements.txt httpx==0.27.2 ``` ```python # cli-requirements.txt click==8.1.7 ``` With the default configuration, when parsing `requirements.txt`, both `httpx` and `click` will now be listed as dependencies by *deptry*, while previously, only `httpx` was, unless *deptry* was instructed about `cli-requirements.txt` by using [`--requirements-files`](https://deptry.com/usage/#requirements-files). This new behaviour also impacts development requirements files, that can be overridden by using [`--requirements-files-dev`](https://deptry.com/usage/#requirements-files-dev). ##### Python 3.8 support dropped Support for Python 3.8 has been dropped, as it has reached its end of life. ##### Features - *deptry* now detects development dependencies from `[dependency-groups]` section, introduced by [PEP 735](https://peps.python.org/pep-0735/) ([#​892](https://github.com/fpgmaas/deptry/pull/892)) - *deptry* now supports `setuptools` dynamic dependencies set in `[tool.setuptools.dynamic]` section, see <https://deptry.com/supported-dependency-managers/#setuptools> for more details ([#​894](https://github.com/fpgmaas/deptry/pull/894), [#​724](https://github.com/fpgmaas/deptry/pull/724)) - Drop support for Python 3.8 ([#​874](https://github.com/fpgmaas/deptry/pull/874)) - Improve ignore handling ([#​908](https://github.com/fpgmaas/deptry/pull/908)) - Parse requirements files with `requirements-parser`, adding support for parsing nested requirements files referenced with `-r <requirement_file>` ([#​913](https://github.com/fpgmaas/deptry/pull/913)) ##### Full Changelog ### [`v0.20.0`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0200---2024-08-27) [Compare Source](https://github.com/fpgmaas/deptry/compare/0.19.1...0.20.0) ##### Breaking changes In release [0.15.0](https://github.com/fpgmaas/deptry/releases/tag/0.15.0), we announced the deprecation of the following flags: - `--requirements-txt` (and its `requirements_txt` setting counterpart in `pyproject.toml`) - `--requirements-txt-dev` (and its `requirements_txt_dev` setting counterpart in `pyproject.toml`) Those flags have now been removed. If you relied on them, you should now use, respectively: - `--requirements-files` (and its `requirements_files` setting counterpart in `pyproject.toml`) - `--requirements-files-dev` (and its `requirements_files_dev` setting counterpart in `pyproject.toml`) ##### Features - deptry now detects [uv](https://github.com/astral-sh/uv) and reads development dependencies from `[uv.tool.dev-dependencies]` section ([#​816](https://github.com/fpgmaas/deptry/pull/816)) - Dynamically set max terminal width for better readability when displaying help ([#​817](https://github.com/fpgmaas/deptry/pull/817)) - Remove deprecated `--requirements-txt`/`--requirements-txt-dev` flags ([#​819](https://github.com/fpgmaas/deptry/pull/819)) ##### Full Changelog ### [`v0.19.1`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0191---2024-08-10) [Compare Source](https://github.com/fpgmaas/deptry/compare/0.19.0...0.19.1) ##### Features - Add back PEP 420 support behind `--experimental-namespace-package` feature flag ([#​808](https://github.com/fpgmaas/deptry/pull/808)) - Add support for Python 3.13 ([#​713](https://github.com/fpgmaas/deptry/pull/713), [#​809](https://github.com/fpgmaas/deptry/pull/809)) ##### Miscellaneous - Provide Windows ARM64 wheels for Python ([#​807](https://github.com/fpgmaas/deptry/pull/807)) ##### Full Changelog ### [`v0.19.0`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0190---2024-08-08) [Compare Source](https://github.com/fpgmaas/deptry/compare/0.18.0...0.19.0) This release reverts [#​753](https://github.com/fpgmaas/deptry/pull/753) that caused a noticeable performance regression on large codebases. The intent of the initial MR was to support projects following PEP 420, so if your project currently relies on this behaviour, feel free to manifest your interest in [#​740](https://github.com/fpgmaas/deptry/issues/740). ##### Bug Fixes - Revert "fix(core): use `rglob` to guess local Python modules ([#​753](https://github.com/fpgmaas/deptry/issues/753))" ([#​798](https://github.com/fpgmaas/deptry/pull/798)) ##### New Contributors - [@​huisman](https://github.com/huisman) made their first contribution in [#​796](https://github.com/fpgmaas/deptry/pull/796) ##### Full Changelog ### [`v0.18.0`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0180---2024-07-31) [Compare Source](https://github.com/fpgmaas/deptry/compare/0.17.0...0.18.0) ##### Features - Support imports using `importlib.import_module` ([#​782](https://github.com/fpgmaas/deptry/pull/782)) ##### New Contributors - [@​lmmx](https://github.com/lmmx) made their first contribution in [#​782](https://github.com/fpgmaas/deptry/pull/782) ##### Full Changelog ### [`v0.17.0`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0170---2024-07-20) [Compare Source](https://github.com/fpgmaas/deptry/compare/0.16.2...0.17.0) ##### Features - Add a new rule `DEP005` to detect project dependencies that are in the standard library. ([#​761](https://github.com/fpgmaas/deptry/pull/761)) ##### Full Changelog ### [`v0.16.2`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0162---2024-07-05) [Compare Source](https://github.com/fpgmaas/deptry/compare/0.16.1...0.16.2) ##### Bug Fixes - Avoid crashing on PEP 621 and Poetry projects with no dependencies ([#​752](https://github.com/fpgmaas/deptry/pull/752)) - Recursively search for Python files to detect local modules, to better support namespace packages ([#​753](https://github.com/fpgmaas/deptry/pull/753)) ##### Miscellaneous - Provide macOS ARM wheels for PyPy ([#​691](https://github.com/fpgmaas/deptry/pull/691)) ##### Full Changelog </details> <details> <summary>pycqa/flake8 (flake8)</summary> ### [`v7.3.0`](https://github.com/pycqa/flake8/compare/7.2.0...7.3.0) [Compare Source](https://github.com/pycqa/flake8/compare/7.2.0...7.3.0) ### [`v7.2.0`](https://github.com/pycqa/flake8/compare/7.1.2...7.2.0) [Compare Source](https://github.com/pycqa/flake8/compare/7.1.2...7.2.0) ### [`v7.1.2`](https://github.com/pycqa/flake8/compare/7.1.1...7.1.2) [Compare Source](https://github.com/pycqa/flake8/compare/7.1.1...7.1.2) ### [`v7.1.1`](https://github.com/pycqa/flake8/compare/7.1.0...7.1.1) [Compare Source](https://github.com/pycqa/flake8/compare/7.1.0...7.1.1) </details> <details> <summary>PyCQA/flake8-bugbear (flake8-bugbear)</summary> ### [`v24.12.12`](https://github.com/PyCQA/flake8-bugbear/releases/tag/24.12.12) [Compare Source](https://github.com/PyCQA/flake8-bugbear/compare/24.10.31...24.12.12) - B012 and B025 now also handle try/except\* ([#​500](https://github.com/PyCQA/flake8-bugbear/issues/500)) - Skip B028 if warnings.warn is called with `*args` or `**kwargs` ([#​501](https://github.com/PyCQA/flake8-bugbear/issues/501)) - Add B911: itertools.batched without strict= ([#​502](https://github.com/PyCQA/flake8-bugbear/issues/502)) - Readme has anchors per check (they do not seem to render on GitHub tho) ### [`v24.10.31`](https://github.com/PyCQA/flake8-bugbear/releases/tag/24.10.31) [Compare Source](https://github.com/PyCQA/flake8-bugbear/compare/24.8.19...24.10.31) - B041: New dictionary same key AND value check ([#​496](https://github.com/PyCQA/flake8-bugbear/issues/496)) - B037: Fix typo in error message - B024: No longer treats assigned class variables as abstract ([#​471](https://github.com/PyCQA/flake8-bugbear/issues/471)) - Bump required attrs version to 22.2.0 ### [`v24.8.19`](https://github.com/PyCQA/flake8-bugbear/releases/tag/24.8.19) [Compare Source](https://github.com/PyCQA/flake8-bugbear/compare/24.4.26...24.8.19) - B910: implement to suggest using Counter() instead of defaultdict(int) ([#​489](https://github.com/PyCQA/flake8-bugbear/issues/489)) - B901: Do not trigger with explicit Generator return type ([#​481](https://github.com/PyCQA/flake8-bugbear/issues/481)) - B008: add some comments, rename b008\_extend\_immutable\_calls ([#​476](https://github.com/PyCQA/flake8-bugbear/issues/476)) - B040: exception with note added not reraised or used ([#​477](https://github.com/PyCQA/flake8-bugbear/issues/477)) - B039, Add `ContextVar` with mutable literal or function call as default - B040: Add Exception with added note not reraised. ([#​474](https://github.com/PyCQA/flake8-bugbear/issues/474)) - Run tests in Python 3.13 - Type annotated code ([#​481](https://github.com/PyCQA/flake8-bugbear/issues/481) + [#​483](https://github.com/PyCQA/flake8-bugbear/issues/483)) - Replace hash with unsafe\_hash ([#​486](https://github.com/PyCQA/flake8-bugbear/issues/486)) </details> <details> <summary>python/mypy (mypy)</summary> ### [`v1.19.1`](https://github.com/python/mypy/blob/HEAD/CHANGELOG.md#Mypy-1191) [Compare Source](https://github.com/python/mypy/compare/v1.19.0...v1.19.1) - Fix noncommutative joins with bounded TypeVars (Shantanu, MR [20345](https://github.com/python/mypy/pull/20345)) - Respect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, MR [20372](https://github.com/python/mypy/pull/20372)) - Allow `types.NoneType` in match cases (A5rocks, MR [20383](https://github.com/python/mypy/pull/20383)) - Fix mypyc generator regression with empty tuple (BobTheBuidler, MR [20371](https://github.com/python/mypy/pull/20371)) - Fix crash involving Unpack-ed TypeVarTuple (Shantanu, MR [20323](https://github.com/python/mypy/pull/20323)) - Fix crash on star import of redefinition (Ivan Levkivskyi, MR [20333](https://github.com/python/mypy/pull/20333)) - Fix crash on typevar with forward ref used in other module (Ivan Levkivskyi, MR [20334](https://github.com/python/mypy/pull/20334)) - Fail with an explicit error on PyPy (Ivan Levkivskyi, MR [20389](https://github.com/python/mypy/pull/20389)) ### [`v1.19.0`](https://github.com/python/mypy/compare/v1.18.2...v1.19.0) [Compare Source](https://github.com/python/mypy/compare/v1.18.2...v1.19.0) ### [`v1.18.2`](https://github.com/python/mypy/blob/HEAD/CHANGELOG.md#Mypy-1182) [Compare Source](https://github.com/python/mypy/compare/v1.18.1...v1.18.2) - Fix crash on recursive alias (Ivan Levkivskyi, MR [19845](https://github.com/python/mypy/pull/19845)) - Add additional guidance for stubtest errors when runtime is `object.__init__` (Stephen Morton, MR [19733](https://github.com/python/mypy/pull/19733)) - Fix handling of None values in f-string expressions in mypyc (BobTheBuidler, MR [19846](https://github.com/python/mypy/pull/19846)) ### [`v1.18.1`](https://github.com/python/mypy/compare/v1.17.1...v1.18.1) [Compare Source](https://github.com/python/mypy/compare/v1.17.1...v1.18.1) ### [`v1.17.1`](https://github.com/python/mypy/blob/HEAD/CHANGELOG.md#Mypy-1171) [Compare Source](https://github.com/python/mypy/compare/v1.17.0...v1.17.1) - Retain `None` as constraints bottom if no bottoms were provided (Stanislav Terliakov, MR [19485](https://github.com/python/mypy/pull/19485)) - Fix "ignored exception in `hasattr`" in dmypy (Stanislav Terliakov, MR [19428](https://github.com/python/mypy/pull/19428)) - Prevent a crash when InitVar is redefined with a method in a subclass (Stanislav Terliakov, MR [19453](https://github.com/python/mypy/pull/19453)) ### [`v1.17.0`](https://github.com/python/mypy/compare/v1.16.1...v1.17.0) [Compare Source](https://github.com/python/mypy/compare/v1.16.1...v1.17.0) ### [`v1.16.1`](https://github.com/python/mypy/compare/v1.16.0...v1.16.1) [Compare Source](https://github.com/python/mypy/compare/v1.16.0...v1.16.1) ### [`v1.16.0`](https://github.com/python/mypy/compare/v1.15.0...v1.16.0) [Compare Source](https://github.com/python/mypy/compare/v1.15.0...v1.16.0) ### [`v1.15.0`](https://github.com/python/mypy/compare/v1.14.1...v1.15.0) [Compare Source](https://github.com/python/mypy/compare/v1.14.1...v1.15.0) ### [`v1.14.1`](https://github.com/python/mypy/compare/v1.14.0...v1.14.1) [Compare Source](https://github.com/python/mypy/compare/v1.14.0...v1.14.1) ### [`v1.14.0`](https://github.com/python/mypy/compare/v1.13.0...v1.14.0) [Compare Source](https://github.com/python/mypy/compare/v1.13.0...v1.14.0) ### [`v1.13.0`](https://github.com/python/mypy/compare/v1.12.1...v1.13.0) [Compare Source](https://github.com/python/mypy/compare/v1.12.1...v1.13.0) ### [`v1.12.1`](https://github.com/python/mypy/blob/HEAD/CHANGELOG.md#Mypy-1121) [Compare Source](https://github.com/python/mypy/compare/v1.12.0...v1.12.1) - Fix crash when showing partially analyzed type in error message (Ivan Levkivskyi, MR [17961](https://github.com/python/mypy/pull/17961)) - Fix iteration over union (when self type is involved) (Shantanu, MR [17976](https://github.com/python/mypy/pull/17976)) - Fix type object with type var default in union context (Jukka Lehtosalo, MR [17991](https://github.com/python/mypy/pull/17991)) - Revert change to `os.path` stubs affecting use of `os.PathLike[Any]` (Shantanu, MR [17995](https://github.com/python/mypy/pull/17995)) ### [`v1.12.0`](https://github.com/python/mypy/compare/v1.11.2...v1.12.0) [Compare Source](https://github.com/python/mypy/compare/v1.11.2...v1.12.0) ### [`v1.11.2`](https://github.com/python/mypy/blob/HEAD/CHANGELOG.md#Mypy-1112) [Compare Source](https://github.com/python/mypy/compare/v1.11.1...v1.11.2) - Alternative fix for a union-like literal string (Ivan Levkivskyi, MR [17639](https://github.com/python/mypy/pull/17639)) - Unwrap `TypedDict` item types before storing (Ivan Levkivskyi, MR [17640](https://github.com/python/mypy/pull/17640)) ### [`v1.11.1`](https://github.com/python/mypy/blob/HEAD/CHANGELOG.md#Mypy-1111) [Compare Source](https://github.com/python/mypy/compare/v1.11.0...v1.11.1) - Fix `RawExpressionType.accept` crash with `--cache-fine-grained` (Anders Kaseorg, MR [17588](https://github.com/python/mypy/pull/17588)) - Fix PEP 604 isinstance caching (Shantanu, MR [17563](https://github.com/python/mypy/pull/17563)) - Fix `typing.TypeAliasType` being undefined on python < 3.12 (Nikita Sobolev, MR [17558](https://github.com/python/mypy/pull/17558)) - Fix `types.GenericAlias` lookup crash (Shantanu, MR [17543](https://github.com/python/mypy/pull/17543)) ### [`v1.11.0`](https://github.com/python/mypy/compare/v1.10.1...v1.11.0) [Compare Source](https://github.com/python/mypy/compare/v1.10.1...v1.11.0) </details> <details> <summary>raimon49/pip-licenses (pip-licenses)</summary> ### [`v5.5.0`](https://github.com/raimon49/pip-licenses/blob/HEAD/CHANGELOG.md#550) - Replace dependency on `tomli` with builtin `tomllib` for Python 3.11 - Added support for `License-Expression` metadata field, see [PEP 639](https://peps.python.org/pep-0639/) - Added `--from=expression` option - Breaking change: The `--from=all` output now includes the `License-Expression` value - Fixed KeyError with `--partial` and `--allow-only` if a license matches multiple allowed licenses. - Declare support for Python 3.13 and 3.14 - Added RST/Sphinx workflow example for `--with-license-file` option in documentation </details> <details> <summary>pylint-dev/pylint (pylint)</summary> ### [`v3.3.9`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.9) [Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.8...v3.3.9) ## What's new in Pylint 3.3.9? Release date: 2025-10-05 ## False Positives Fixed - Fix used-before-assignment for PEP 695 type aliases and parameters. Closes [#​9815](https://github.com/pylint-dev/pylint/issues/9815) - No longer flag undeprecated functions in `importlib.resources` as deprecated. Closes [#​10593](https://github.com/pylint-dev/pylint/issues/10593) - Fix false positive `inconsistent-return-statements` when using `quit()` or `exit()` functions. Closes [#​10508](https://github.com/pylint-dev/pylint/issues/10508) - Fix false positive `undefined-variable` (E0602) for for-loop variable shadowing patterns like `for item in item:` when the variable was previously defined. Closes [#​10562](https://github.com/pylint-dev/pylint/issues/10562) ## Other Bug Fixes - Fixed crash in 'unnecessary-list-index-lookup' when starting an enumeration using minus the length of an iterable inside a dict comprehension when the len call was only made in this dict comprehension, and not elsewhere. Also changed the approach, to use inference in all cases but the simple ones, so we don't have to fix crashes one by one for arbitrarily complex expressions in enumerate. Closes [#​10510](https://github.com/pylint-dev/pylint/issues/10510) ### [`v3.3.8`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.8) [Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.7...v3.3.8) ## What's new in Pylint 3.3.8? Release date: 2025-08-09 This patch release includes an exceptional fix for a false negative issue. For details, see: [#​10482 (comment)](https://github.com/pylint-dev/pylint/pull/10482#issuecomment-3164514082) ## False Positives Fixed - Fix false positives for `possibly-used-before-assignment` when variables are exhaustively assigned within a `match` block. Closes [#​9668](https://github.com/pylint-dev/pylint/issues/9668) - Fix false positive for `missing-raises-doc` and `missing-yield-doc` when the method length is less than docstring-min-length. Refs [#​10104](https://github.com/pylint-dev/pylint/issues/10104) - Fix a false positive for `unused-variable` when multiple except handlers bind the same name under a try block. Closes [#​10426](https://github.com/pylint-dev/pylint/issues/10426) ## False Negatives Fixed - Fix false-negative for `used-before-assignment` with `from __future__ import annotations` in function definitions. Refs [#​10482](https://github.com/pylint-dev/pylint/issues/10482) ## Other Bug Fixes - Fix a bug in Pyreverse where aggregations and associations were included in diagrams regardless of the selected --filter-mode (such as PUB\_ONLY, ALL, etc.). Closes [#​10373](https://github.com/pylint-dev/pylint/issues/10373) - Fix double underscores erroneously rendering as bold in pyreverse's Mermaid output. Closes [#​10402](https://github.com/pylint-dev/pylint/issues/10402) ### [`v3.3.7`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.7) [Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.6...v3.3.7) ## What's new in Pylint 3.3.7? Release date: 2025-05-04 ## False Positives Fixed - Comparisons between two calls to `type()` won't raise an `unidiomatic-typecheck` warning anymore, consistent with the behavior applied only for `==` previously. Closes [#​10161](https://github.com/pylint-dev/pylint/issues/10161) ## Other Bug Fixes - Fixed a crash when importing a class decorator that did not exist with the same name as a class attribute after the class definition. Closes [#​10105](https://github.com/pylint-dev/pylint/issues/10105) - Fix a crash caused by malformed format strings when using `.format` with keyword arguments. Closes [#​10282](https://github.com/pylint-dev/pylint/issues/10282) - Using a slice as a class decorator now raises a `not-callable` message instead of crashing. A lot of checks that dealt with decorators (too many to list) are now shortcut if the decorator can't immediately be inferred to a function or class definition. Closes [#​10334](https://github.com/pylint-dev/pylint/issues/10334) ## Other Changes - The algorithm used for `no-member` suggestions is now more efficient and cuts the calculation when the distance score is already above the threshold. Refs [#​10277](https://github.com/pylint-dev/pylint/issues/10277) ### [`v3.3.6`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.6) [Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.5...v3.3.6) ## What's new in Pylint 3.3.6? Release date: 2025-03-20 ## False Positives Fixed - Fix a false positive for `used-before-assignment` when an inner function's return type annotation is a class defined at module scope. Closes [#​9391](https://github.com/pylint-dev/pylint/issues/9391) ### [`v3.3.5`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.5) [Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.4...v3.3.5) ## What's new in Pylint 3.3.5? Release date: 2025-03-09 ## False Positives Fixed - Fix false positives for `use-implicit-booleaness-not-comparison`, `use-implicit-booleaness-not-comparison-to-string` and `use-implicit-booleaness-not-comparison-to-zero` when chained comparisons are checked. Closes [#​10065](https://github.com/pylint-dev/pylint/issues/10065) - Fix a false positive for `invalid-getnewargs-ex-returned` when the tuple or dict has been assigned to a name. Closes [#​10208](https://github.com/pylint-dev/pylint/issues/10208) - Remove `getopt` and `optparse` from the list of deprecated modules. Closes [#​10211](https://github.com/pylint-dev/pylint/issues/10211) ## Other Bug Fixes - Fixed conditional import x.y causing false positive possibly-used-before-assignment. Closes [#​10081](https://github.com/pylint-dev/pylint/issues/10081) - Fix a crash when something besides a class is found in an except handler. Closes [#​10106](https://github.com/pylint-dev/pylint/issues/10106) - Fixed raising invalid-name when using camelCase for private methods with two leading underscores. Closes [#​10189](https://github.com/pylint-dev/pylint/issues/10189) ## Other Changes - Upload release assets to PyPI via Trusted Publishing. Closes [#​10256](https://github.com/pylint-dev/pylint/issues/10256) ### [`v3.3.4`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.4) [Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.3...v3.3.4) ## Other Bug Fixes - Fixes "skipped files" count calculation; the previous method was displaying an arbitrary number. Closes [#​10073](https://github.com/pylint-dev/pylint/issues/10073) - Fixes a crash that occurred when pylint was run in a container on a host with cgroupsv2 and restrictions on CPU usage. Closes [#​10103](https://github.com/pylint-dev/pylint/issues/10103) - Relaxed the requirements for isort so pylint can benefit from isort 6. Closes [#​10203](https://github.com/pylint-dev/pylint/issues/10203) ### [`v3.3.3`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.3) [Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.2...v3.3.3) ## What's new in Pylint 3.3.3? Release date: 2024-12-23 ## False Positives Fixed - Fix false positives for `undefined-variable` for classes using Python 3.12 generic type syntax. Closes [#​9335](https://github.com/pylint-dev/pylint/issues/9335) - Fix a false positive for `use-implicit-booleaness-not-len`. No lint should be emitted for generators (`len` is not defined for generators). Refs [#​10100](https://github.com/pylint-dev/pylint/issues/10100) ## Other Bug Fixes - Fix `Unable to import 'collections.abc' (import-error)` on Python 3.13.1. Closes [#​10112](https://github.com/pylint-dev/pylint/issues/10112) ### [`v3.3.2`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.2) [Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.1...v3.3.2) ## False Positives Fixed - Fix a false positive for `potential-index-error` when an indexed iterable contains a starred element that evaluates to more than one item. Closes [#​10076](https://github.com/pylint-dev/pylint/issues/10076) ## Other Bug Fixes - Fixes the issue with --source-root option not working when the source files are in a subdirectory of the source root (e.g. when using a /src layout). Closes [#​10026](https://github.com/pylint-dev/pylint/issues/10026) ### [`v3.3.1`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.1) [Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.0...v3.3.1) ## What's new in Pylint 3.3.1? Release date: 2024-09-24 ## False Positives Fixed - Fix regression causing some f-strings to not be inferred as strings. Closes [#​9947](https://github.com/pylint-dev/pylint/issues/9947) ### [`v3.3.0`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.0) [Compare Source](https://github.com/pylint-dev/pylint/compare/v3.2.7...v3.3.0) Release date: 2024-09-20 ## Changes requiring user actions - We migrated `symilar` to argparse, from getopt, so the error and help output changed (for the better). We exit with 2 instead of sometime 1, sometime 2. The error output is not captured by the runner anymore. It's not possible to use a value for the boolean options anymore (`--ignore-comments 1` should become `--ignore-comments`). Refs [#​9731](https://github.com/pylint-dev/pylint/issues/9731) ## New Features - Add new `declare-non-slot` error which reports when a class has a `__slots__` member and a type hint on the class is not present in `__slots__`. Refs [#​9499](https://github.com/pylint-dev/pylint/issues/9499) ## New Checks - Added `too-many-positional-arguments` to allow distinguishing the configuration for too many total arguments (with keyword-only params specified after `*`) from the configuration for too many positional-or-keyword or positional-only arguments. As part of evaluating whether this check makes sense for your project, ensure you adjust the value of `--max-positional-arguments`. Closes [#​9099](https://github.com/pylint-dev/pylint/issues/9099) - Add `using-exception-groups-in-unsupported-version` and `using-generic-type-syntax-in-unsupported-version` for uses of Python 3.11+ or 3.12+ features on lower supported versions provided with `--py-version`. Closes [#​9791](https://github.com/pylint-dev/pylint/issues/9791) - Add `using-assignment-expression-in-unsupported-version` for uses of `:=` (walrus operator) on Python versions below 3.8 provided with `--py-version`. Closes [#​9820](https://github.com/pylint-dev/pylint/issues/9820) - Add `using-positional-only-args-in-unsupported-version` for uses of positional-only args on Python versions below 3.8 provided with `--py-version`. Closes [#​9823](https://github.com/pylint-dev/pylint/issues/9823) - Add `unnecessary-default-type-args` to the `typing` extension to detect the use of unnecessary default type args for `typing.Generator` and `typing.AsyncGenerator`. Refs [#​9938](https://github.com/pylint-dev/pylint/issues/9938) ## False Negatives Fixed - Fix computation of never-returning function: `Never` is handled in addition to `NoReturn`, and priority is given to the explicit `--never-returning-functions` option. Closes [#​7565](https://github.com/pylint-dev/pylint/issues/7565). - Fix a false negative for `await-outside-async` when await is inside Lambda. Refs [#​9653](https://github.com/pylint-dev/pylint/issues/9653) - Fix a false negative for `duplicate-argument-name` by including `positional-only`, `*args` and `**kwargs` arguments in the check. Closes [#​9669](https://github.com/pylint-dev/pylint/issues/9669) - Fix false negative for `multiple-statements` when multiple statements are present on `else` and `finally` lines of `try`. Refs [#​9759](https://github.com/pylint-dev/pylint/issues/9759) - Fix false negatives when `isinstance` does not have exactly two arguments. pylint now emits a `too-many-function-args` or `no-value-for-parameter` appropriately for `isinstance` calls. Closes [#​9847](https://github.com/pylint-dev/pylint/issues/9847) ## Other Bug Fixes - `--enable` with `--disable=all` now produces an error, when an unknown msg code is used. Internal `pylint` messages are no longer affected by `--disable=all`. Closes [#​9403](https://github.com/pylint-dev/pylint/issues/9403) - Impossible to compile regexes for paths in the configuration or argument given to pylint won't crash anymore but raise an argparse error and display the error message from `re.compile` instead. Closes [#​9680](https://github.com/pylint-dev/pylint/issues/9680) - Fix a bug where a `tox.ini` file with pylint configuration was ignored and it exists in the current directory. `.cfg` and `.ini` files containing a `Pylint` configuration may now use a section named `[pylint]`. This enhancement impacts the scenario where these file types are used as defaults when they are present and have not been explicitly referred to, using the `--rcfile` option. Closes [#​9727](https://github.com/pylint-dev/pylint/issues/9727) - Improve file discovery for directories that are not python packages. Closes [#​9764](https://github.com/pylint-dev/pylint/issues/9764) ## Other Changes - Remove support for launching pylint with Python 3.8. Code that supports Python 3.8 can still be linted with the `--py-version=3.8` setting. Refs [#​9774](https://github.com/pylint-dev/pylint/issues/9774) - Add support for Python 3.13. Refs [#​9852](https://github.com/pylint-dev/pylint/issues/9852) ## Internal Changes - All variables, classes, functions and file names containing the word 'similar', when it was, in fact, referring to 'symilar' (the standalone program for the duplicate-code check) were renamed to 'symilar'. Closes [#​9734](https://github.com/pylint-dev/pylint/issues/9734) - Remove old-style classes (Python 2) code and remove check for new-style class since everything is new-style in Python 3. Updated doc for exception checker to remove reference to new style class. Refs [#​9925](https://github.com/pylint-dev/pylint/issues/9925) ### [`v3.2.7`](https://github.com/pylint-dev/pylint/releases/tag/v3.2.7) [Compare Source](https://github.com/pylint-dev/pylint/compare/v3.2.6...v3.2.7) ## What's new in Pylint 3.2.7? Release date: 2024-08-31 ## False Positives Fixed - Fixed a false positive `unreachable` for `NoReturn` coroutine functions. Closes [#​9840](https://github.com/pylint-dev/pylint/issues/9840) ## Other Bug Fixes - Fix crash in refactoring checker when calling a lambda bound as a method. Closes [#​9865](https://github.com/pylint-dev/pylint/issues/9865) - Fix a crash in `undefined-loop-variable` when providing the `iterable` argument to `enumerate()`. Closes [#​9875](https://github.com/pylint-dev/pylint/issues/9875) - Fix to address indeterminacy of error message in case a module name is same as another in a separate namespace. Refs [#​9883](https://github.com/pylint-dev/pylint/issues/9883) ### [`v3.2.6`](https://github.com/pylint-dev/pylint/releases/tag/v3.2.6) [Compare Source](https://github.com/pylint-dev/pylint/compare/v3.2.5...v3.2.6) ## What's new in Pylint 3.2.6? Release date: 2024-07-21 ## False Positives Fixed - Quiet false positives for `unexpected-keyword-arg` when pylint cannot determine which of two or more dynamically defined classes is being instantiated. Closes [#​9672](https://github.com/pylint-dev/pylint/issues/9672) - Fix a false positive for `missing-param-doc` where a method which is decorated with `typing.overload` was expected to have a docstring specifying its parameters. Closes [#​9739](https://github.com/pylint-dev/pylint/issues/9739) - Fix a regression that raised `invalid-name` on class attributes merely overriding invalid names from an ancestor. Closes [#​9765](https://github.com/pylint-dev/pylint/issues/9765) - Treat `assert_never()` the same way when imported from `typing_extensions`. Closes [#​9780](https://github.com/pylint-dev/pylint/issues/9780) - Fix a false positive for `consider-using-min-max-builtin` when the assignment target is an attribute. Refs [#​9800](https://github.com/pylint-dev/pylint/issues/9800) ## Other Bug Fixes - Fix an `AssertionError` arising from properties that return partial functions. Closes [#​9214](https://github.com/pylint-dev/pylint/issues/9214) - Fix a crash when a subclass extends `__slots__`. Closes [#​9814](https://github.com/pylint-dev/pylint/issues/9814) ### [`v3.2.5`](https://github.com/pylint-dev/pylint/releases/tag/v3.2.5) [Compare Source](https://github.com/pylint-dev/pylint/compare/v3.2.4...v3.2.5) ## What's new in Pylint 3.2.5 ? Release date: 2024-06-28 ## Other Bug Fixes - Fixed a false positive `unreachable-code` when using `typing.Any` as return type in python 3.8, the `typing.NoReturn` are not taken into account anymore for python 3.8 however. Closes [#​9751](https://github.com/pylint-dev/pylint/issues/9751) </details> <details> <summary>fcfangcc/pylint-pydantic (pylint-pydantic)</summary> ### [`v0.4.1`](https://github.com/fcfangcc/pylint-pydantic/releases/tag/v0.4.1) [Compare Source](https://github.com/fcfangcc/pylint-pydantic/compare/v0.4.0...v0.4.1) fixed [#​41](https://github.com/fcfangcc/pylint-pydantic/issues/41) ### [`v0.4.0`](https://github.com/fcfangcc/pylint-pydantic/releases/tag/v0.4.0) [Compare Source](https://github.com/fcfangcc/pylint-pydantic/compare/v0.3.5...v0.4.0) 1. Support pylint4 2. Remove support for python3.9 ### [`v0.3.5`](https://github.com/fcfangcc/pylint-pydantic/releases/tag/v0.3.5) [Compare Source](https://github.com/fcfangcc/pylint-pydantic/compare/v0.3.4...v0.3.5) - updates setup to add 3.13 - updates workflow with 3.13 - updates logic of transform\_pydantic\_json to resolve contribution by [@​litsolac](https://github.com/litsolac) ### [`v0.3.4`](https://github.com/fcfangcc/pylint-pydantic/releases/tag/v0.3.4) [Compare Source](https://github.com/fcfangcc/pylint-pydantic/compare/v0.3.3...v0.3.4) fixed [#​35](https://github.com/fcfangcc/pylint-pydantic/issues/35) ### [`v0.3.3`](https://github.com/fcfangcc/pylint-pydantic/releases/tag/v0.3.3) [Compare Source](https://github.com/fcfangcc/pylint-pydantic/compare/v0.3.2...v0.3.3) Fixed [#​33](https://github.com/fcfangcc/pylint-pydantic/issues/33) [#​32](https://github.com/fcfangcc/pylint-pydantic/issues/32) </details> <details> <summary>pytest-dev/pytest-asyncio (pytest-asyncio)</summary> ### [`v0.26.0`](https://github.com/pytest-dev/pytest-asyncio/releases/tag/v0.26.0): pytest-asyncio 0.26.0 [Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.25.3...v0.26.0) - Adds configuration option that sets default event loop scope for all tests [#​793](https://github.com/pytest-dev/pytest-asyncio/issues/793) - Improved type annotations for `pytest_asyncio.fixture` [#​1045](https://github.com/pytest-dev/pytest-asyncio/pull/1045) - Added `typing-extensions` as additional dependency for Python `<3.10` [#​1045](https://github.com/pytest-dev/pytest-asyncio/pull/1045) ### [`v0.25.3`](https://github.com/pytest-dev/pytest-asyncio/releases/tag/v0.25.3): pytest-asyncio 0.25.3 [Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.25.2...v0.25.3) - Avoid errors in cleanup of async generators when event loop is already closed [#​1040](https://github.com/pytest-dev/pytest-asyncio/issues/1040) ### [`v0.25.2`](https://github.com/pytest-dev/pytest-asyncio/releases/tag/v0.25.2): pytest-asyncio 0.25.2 [Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.25.1...v0.25.2) - Call `loop.shutdown_asyncgens()` before closing the event loop to ensure async generators are closed in the same manner as `asyncio.run` does [#​1034](https://github.com/pytest-dev/pytest-asyncio/pull/1034) ### [`v0.25.1`](https://github.com/pytest-dev/pytest-asyncio/releases/tag/v0.25.1): pytest-asyncio 0.25.1 [Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.25.0...v0.25.1) - Fixes an issue that caused a broken event loop when a function-scoped test was executed in between two tests with wider loop scope [#​950](https://github.com/pytest-dev/pytest-asyncio/issues/950) - Improves test collection speed in auto mode [#​1020](https://github.com/pytest-dev/pytest-asyncio/pull/1020) - Corrects the warning that is emitted upon redefining the event\_loop fixture ### [`v0.25.0`](https://github.com/pytest-dev/pytest-asyncio/releases/tag/v0.25.0): pytest-asyncio 0.25.0 [Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.24.0...v0.25.0) ### 0.25.0 (2024-12-13) - Deprecated: Added warning when asyncio test requests async `@pytest.fixture` in strict mode. This will become an error in a future version of flake8-asyncio. [#​979](https://github.com/pytest-dev/pytest-asyncio/pull/979) - Updates the error message about *pytest.mark.asyncio*'s *scope* keyword argument to say *loop\_scope* instead. [#​1004](https://github.com/pytest-dev/pytest-asyncio/pull/1004) - Verbose log displays correct parameter name: asyncio\_default\_fixture\_loop\_scope [#​990](https://github.com/pytest-dev/pytest-asyncio/pull/990) - Propagates *contextvars* set in async fixtures to other fixtures and tests on Python 3.11 and above. [#​1008](https://github.com/pytest-dev/pytest-asyncio/pull/1008) ### [`v0.24.0`](https://github.com/pytest-dev/pytest-asyncio/releases/tag/v0.24.0): pytest-asyncio 0.24.0 [Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.23.8...v0.24.0) ### 0.24.0 (2024-08-22) - BREAKING: Updated minimum supported pytest version to v8.2.0 - Adds an optional *loop\_scope* keyword argument to *pytest.mark.asyncio*. This argument controls which event loop is used to run the marked async test. [#​706](https://github.com/pytest-dev/pytest-asyncio/issues/706), [#​871](https://github.com/pytest-dev/pytest-asyncio/pull/871) - Deprecates the optional *scope* keyword argument to *pytest.mark.asyncio* for API consistency with `pytest_asyncio.fixture`. Users are encouraged to use the *loop\_scope* keyword argument, which does exactly the same. - Raises an error when passing *scope* or *loop\_scope* as a positional argument to `@pytest.mark.asyncio`. [#​812](https://github.com/pytest-dev/pytest-asyncio/issues/812) - Fixes a bug that caused module-scoped async fixtures to fail when reused in other modules [#​862](https://github.com/pytest-dev/pytest-asyncio/issues/862) [#​668](https://github.com/pytest-dev/pytest-asyncio/issues/668) ### [`v0.23.8`](https://github.com/pytest-dev/pytest-asyncio/releases/tag/v0.23.8): pytest-asyncio 0.23.8 [Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.23.7...v0.23.8) ### 0.23.8 (2024-07-17) - Fixes a bug that caused duplicate markers in async tests [#​813](https://github.com/pytest-dev/pytest-asyncio/issues/813) #### Known issues As of v0.23, pytest-asyncio attaches an asyncio event loop to each item of the test suite (i.e. session, packages, modules, classes, functions) and allows tests to be run in those loops when marked accordingly. Pytest-asyncio currently assumes that async fixture scope is correlated with the new event loop scope. This prevents fixtures from being evaluated independently from the event loop scope and breaks some existing test suites (see [#​706](https://github.com/pytest-dev/pytest-asyncio/issues/706)). For example, a test suite may require all fixtures and tests to run in the same event loop, but have async fixtures that are set up and torn down for each module. If you're affected by this issue, please continue using the v0.21 release, until it is resolved. </details> <details> <summary>celery/pytest-celery (pytest-celery)</summary> ### [`v1.2.1`](https://github.com/celery/pytest-celery/blob/HEAD/Changelog.rst#121) [Compare Source](https://github.com/celery/pytest-celery/compare/v1.2.0...v1.2.1) \===== :release-date: 30 July, 2025 :release-by: Tomer Nosrati ### [`v1.2.0`](https://github.com/celery/pytest-celery/blob/HEAD/Changelog.rst#120) [Compare Source](https://github.com/celery/pytest-celery/compare/v1.1.3...v1.2.0) \===== :release-date: 21 February, 2025 :release-by: Tomer Nosrati ### [`v1.1.3`](https://github.com/celery/pytest-celery/blob/HEAD/Changelog.rst#113) [Compare Source](https://github.com/celery/pytest-celery/compare/v1.1.2...v1.1.3) \===== :release-date: 20 September, 2024 :release-by: Tomer Nosrati ### [`v1.1.2`](https://github.com/celery/pytest-celery/blob/HEAD/Changelog.rst#112) [Compare Source](https://github.com/celery/pytest-celery/compare/v1.1.1...v1.1.2) \===== :release-date: 14 September, 2024 :release-by: Tomer Nosrati ### [`v1.1.1`](https://github.com/celery/pytest-celery/blob/HEAD/Changelog.rst#111) [Compare Source](https://github.com/celery/pytest-celery/compare/v1.1.0...v1.1.1) \===== :release-date: 12 August, 2024 :release-by: Tomer Nosrati ### [`v1.1.0`](https://github.com/celery/pytest-celery/blob/HEAD/Changelog.rst#110) [Compare Source](https://github.com/celery/pytest-celery/compare/v1.0.1...v1.1.0) \===== :release-date: 11 August, 2024 :release-by: Tomer Nosrati ### [`v1.0.1`](https://github.com/celery/pytest-celery/blob/HEAD/Changelog.rst#101) [Compare Source](https://github.com/celery/pytest-celery/compare/v1.0.0...v1.0.1) \===== :release-date: 17 July, 2024 :release-by: Tomer Nosrati </details> <details> <summary>bloomberg/pytest-memray (pytest-memray)</summary> ### [`v1.8.0`](https://github.com/bloomberg/pytest-memray/releases/tag/v1.8.0) [Compare Source](https://github.com/bloomberg/pytest-memray/compare/1.7.0...v1.8.0) #### What's Changed - Bump pypa/gh-action-pypi-publish from 1.9.0 to 1.10.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​124](https://github.com/bloomberg/pytest-memray/pull/124) - Bump pypa/gh-action-pypi-publish from 1.10.0 to 1.10.1 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​125](https://github.com/bloomberg/pytest-memray/pull/125) - Bump pypa/gh-action-pypi-publish from 1.10.1 to 1.10.2 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​127](https://github.com/bloomberg/pytest-memray/pull/127) - Bump pypa/gh-action-pypi-publish from 1.10.2 to 1.11.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​129](https://github.com/bloomberg/pytest-memray/pull/129) - Bump pypa/gh-action-pypi-publish from 1.11.0 to 1.12.4 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​139](https://github.com/bloomberg/pytest-memray/pull/139) - Declare 3.14 support by [@​godlygeek](https://github.com/godlygeek) in [#​148](https://github.com/bloomberg/pytest-memray/pull/148) - Bump actions/download-artifact from 4 to 5 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​146](https://github.com/bloomberg/pytest-memray/pull/146) - Bump actions/checkout from 4 to 5 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​147](https://github.com/bloomberg/pytest-memray/pull/147) - Release 1.8.0 by [@​pablogsal](https://github.com/pablogsal) in [#​149](https://github.com/bloomberg/pytest-memray/pull/149) **Full Changelog**: <https://github.com/bloomberg/pytest-memray/compare/1.7.0...v1.8.0> </details> <details> <summary>pytest-dev/pytest-mock (pytest-mock)</summary> ### [`v3.15.1`](https://github.com/pytest-dev/pytest-mock/blob/HEAD/CHANGELOG.rst#3151) [Compare Source](https://github.com/pytest-dev/pytest-mock/compare/v3.15.0...v3.15.1) *2025-09-16* - `#​529 <https://github.com/pytest-dev/pytest-mock/issues/529>`\_: Fixed `itertools._tee object has no attribute error` -- now `duplicate_iterators=True` must be passed to `mocker.spy` to duplicate iterators. ### [`v3.15.0`](https://github.com/pytest-dev/pytest-mock/blob/HEAD/CHANGELOG.rst#3150) [Compare Source](https://github.com/pytest-dev/pytest-mock/compare/v3.14.1...v3.15.0) *2025-09-04* - Python 3.8 (EOL) is no longer supported. - `#​524 <https://github.com/pytest-dev/pytest-mock/pull/524>`\_: Added `spy_return_iter` to `mocker.spy`, which contains a duplicate of the return value of the spied method if it is an `Iterator`. ### [`v3.14.1`](https://github.com/pytest-dev/pytest-mock/blob/HEAD/CHANGELOG.rst#3141-2025-05-26) [Compare Source](https://github.com/pytest-dev/pytest-mock/compare/v3.14.0...v3.14.1) - `#​503 <https://github.com/pytest-dev/pytest-mock/pull/503>`\_: Python 3.14 is now officially supported. </details> <details> <summary>jbasko/pytest-random-order (pytest-random-order)</summary> ### [`v1.2.0`](https://github.com/jbasko/pytest-random-order/compare/v1.1.1...v1.2.0) [Compare Source](https://github.com/jbasko/pytest-random-order/compare/v1.1.1...v1.2.0) </details> <details> <summary>python-gitlab/python-gitlab (python-gitlab)</summary> ### [`v6.5.0`](https://github.com/python-gitlab/python-gitlab/blob/HEAD/CHANGELOG.md#v650-2025-10-17) [Compare Source](https://github.com/python-gitlab/python-gitlab/compare/v6.4.0...v6.5.0) ##### Bug Fixes - **semantic-release**: Enable CHANGELOG.md generation ([`fb9693b`](https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47)) ##### Continuous Integration - **stale**: Fix permission for stale action and allow manual run ([`9357a37`](https://github.com/python-gitlab/python-gitlab/commit/9357a374702dcc8049a6d8af636f48c736d3f160)) ##### Documentation - **pull\_mirror**: Fix incorrect start() method usage example ([`2acac19`](https://github.com/python-gitlab/python-gitlab/commit/2acac19356c8624def90c7e54237b256bceece18)) ##### Features - **api**: Add content\_ref and dry\_run\_ref parameters to ProjectCiLintManager ([`e8d2538`](https://github.com/python-gitlab/python-gitlab/commit/e8d2538cdf85a7c57babbc00074efbdab97548cd)) - **users**: Implement 'skip\_confirmation' in users 'emails' creation ([`2981730`](https://github.com/python-gitlab/python-gitlab/commit/298173017be387f26aa0828cae1e9a48e3cce328)) ### [`v6.4.0`](https://github.com/python-gitlab/python-gitlab/blob/HEAD/CHANGELOG.md#v640-2025-09-28) [Compare Source](https://github.com/python-gitlab/python-gitlab/compare/v6.3.0...v6.4.0) ##### Features - **users**: Implement missing arguments in users 'list' ([`99923d4`](https://github.com/python-gitlab/python-gitlab/commit/99923d40dcb4f32f02bcbc5e8ef5ec4b77e3cb02)) - **users**: Sort 'user list' arguments against documentation ([`99923d4`](https://github.com/python-gitlab/python-gitlab/commit/99923d40dcb4f32f02bcbc5e8ef5ec4b77e3cb02)) ### [`v6.3.0`](https://github.com/python-gitlab/python-gitlab/blob/HEAD/CHANGELOG.md#v630-2025-08-28) [Compare Source](https://github.com/python-gitlab/python-gitlab/compare/v6.2.0...v6.3.0) ##### Features - Add sync method to force remote mirror updates ([`f3c6678`](https://github.com/python-gitlab/python-gitlab/commit/f3c6678482b7ca35b1dd1e3bc49fc0c56cd03639)) - **api**: Add missing ProjectJob list filters ([`5fe0e71`](https://github.com/python-gitlab/python-gitlab/commit/5fe0e715448b00a666f76cdce6db321686f6a271)) - **api**: Add missing ProjectPackageManager list filters ([`b1696be`](https://github.com/python-gitlab/python-gitlab/commit/b1696be5fb223028755e303069e23e42a11cab42)) - **users**: Implement support for 'admins' in administrators 'list' ([`aaed51c`](https://github.com/python-gitlab/python-gitlab/commit/aaed51cdec65c8acabe8b9a39fd18c7e1e48519c)) ### [`v6.2.0`](https://github.com/python-gitlab/python-gitlab/blob/HEAD/CHANGELOG.md#v620-2025-07-28) [Compare Source](https://github.com/python-gitlab/python-gitlab/compare/v6.1.0...v6.2.0) ##### Build System - **release**: Use correct python-semantic-release/publish-action ([`2f20634`](https://github.com/python-gitlab/python-gitlab/commit/2f20634b9700bc802177278ffdd7bdf83ef1605a)) ##### Continuous Integration - **stale**: Improve formatting of stale message ([`0ef20d1`](https://github.com/python-gitlab/python-gitlab/commit/0ef20d1b0ee6cd82c4e34003aca4c0c72935f4d9)) - **stale**: Increase `operations-per-run` to 500 ([`326e1a4`](https://github.com/python-gitlab/python-gitlab/commit/326e1a46881467f41dc3de5f060ac654924fbe40)) ##### Features - **api**: Add ListMixin to ProjectIssueDiscussionNoteManager ([`f908f0e`](https://github.com/python-gitlab/python-gitlab/commit/f908f0e82840a5df374e8fbfb1298608d23f02bd)) - **api**: Add ListMixin to ProjectMergeRequestDiscussionNoteManager ([`865339a`](https://github.com/python-gitlab/python-gitlab/commit/865339ac037fb125280180b05a2c4e44067dc5e9)) ### [`v6.1.0`](https://github.com/python-gitlab/python-gitlab/blob/HEAD/CHANGELOG.md#v610-2025-06-28) [Compare Source](https://github.com/python-gitlab/python-gitlab/compare/v6.0.0...v6.1.0) ##### Chores - Update to mypy 1.16.0 and resolve issues found ([`f734c58`](https://github.com/python-gitlab/python-gitlab/commit/f734c586e3fe5a0e866bcf60030107ca142fa763)) ##### Documentation - Update CONTRIBUTING.rst with policy on issue management ([`45dda50`](https://github.com/python-gitlab/python-gitlab/commit/45dda50ff4c0e01307480befa86498600563f818)) ##### Features - **api**: Add listing user contributed projects ([`98c1307`](https://github.com/python-gitlab/python-gitlab/commit/98c13074127ae46d85545498746d55c8b75aef48)) - **api**: Add support for project tag list filters ([`378a836`](https://github.com/python-gitlab/python-gitlab/commit/378a836bf5744ca6c9409dd60899e5d2f90b55be)) - **api**: Pipeline inputs support ([#​3194](https://github.com/python-gitlab/python-gitlab/pull/3194), [`306c4b1`](https://github.com/python-gitlab/python-gitlab/commit/306c4b1931e2b03d7cbcef5773668e876d5644b1)) - **const**: Add PLANNER\_ACCESS constant ([`ba6f174`](https://github.com/python-gitlab/python-gitlab/commit/ba6f174896f908ba711e1e3e8ebf4692c86bd3d4)) - **groups**: Add protectedbranches to group class ([#​3164](https://github.com/python-gitlab/python-gitlab/pull/3164), [`bfd31a8`](https://github.com/python-gitlab/python-gitlab/commit/bfd31a867547dffb2c2d54127e184fefa058cb30)) </details> <details> <summary>indygreg/python-zstandard (zstandard)</summary> ### [`v0.25.0`](https://github.com/indygreg/python-zstandard/releases/tag/0.25.0) [Compare Source](https://github.com/indygreg/python-zstandard/compare/0.24.0...0.25.0) - PyO3 Rust created upgraded from 0.24 to 0.25. ([#​273](https://github.com/indygreg/python-zstandard/issues/273)) - We now use `Py_REFCNT(obj)` instead of accessing `(*obj)->ob_refcnt` directly. This fixes a nogil / multi-threaded compile error. ([#​201](https://github.com/indygreg/python-zstandard/issues/201), [#​275](https://github.com/indygreg/python-zstandard/issues/275)) - A zstandard commit to fix qsort detection on BSD operating systems has been backported. ([#​272](https://github.com/indygreg/python-zstandard/issues/272)) - The `PYTHON_ZSTANDARD_IMPORT_POLICY` environment variable now has leading and trailing whitespace stripped. Values like ` cffi` and `cffi ` are now equivalent to `cffi`. - The CI jobs for building wheels have been overhauled to always use `cibuildwheel` and `uv` (where possible). This change should be backwards compatible. But wheel building for this project has historically been fragile and there may be unwanted changes. We're optimistic that standardizing on uv (except for musllinux ppc64le and s390x where uv isn't available) will lead to more stability over time. - CI now runs tests against the wheels we distribute. Previously, we ran tests against a separate build that was theoretically identical. But the builds may have been subtly different, leading to preventable bugs in our wheels. (Enabling this test coverage did not uncover any failures.) - The `pyproject.toml` build backend has been switched from `setuptools.build_meta:__legacy__` to `setuptools.build_meta`. - The setuptools build dependency has been upgraded from <69.0.0 to >=77.0.0. Modern versions of setuptools broke `--config-settings=--build-option=...` as part of implementing PEP 660. A workaround is to use `--config-settings=--global-option=...` instead. `--global-option` apparently is deprecated and the setuptools folks have yet to figure out how to thread config settings into `setup.py` invocations. (`--build-option` is sent to the `build_wheel` command but not the `build_editable` command.) - Python 3.14 wheels are now built with `manylinux_2_28` (versus `manylinux2014`) for older Python versions. This may raise the minimum glibc version, effectively dropping support for Debian 8 and 9, Ubuntu 13.10 through 18.04, Fedora 19 to 28, and RHEL/Centos 7. However, in practice most platforms don't container newer glibc symbols and are still ABI compatible with `manylinux2014` and glibc 2.17. - We now require cffi >= 2.0.0b on Python 3.14. <3.14 still requires 1.17. ([#​274](https://github.com/indygreg/python-zstandard/issues/274)) - The cffi backend is now automatically disabled for free-threaded builds on Python <3.14, as cffi didn't implement free-threaded support until the 2.0 release. ([#​274](https://github.com/indygreg/python-zstandard/issues/274)) - Added CI coverage for free-threaded CPython 3.13 and 3.14. We do not yet formally support free-threaded builds. ([#​276](https://github.com/indygreg/python-zstandard/issues/276)) - The C and Rust backends now declare the GIL as unused. - The `pythoncapi_compat.h` file has been upgraded to the latest version. ([#​278](https://github.com/indygreg/python-zstandard/issues/278)) - `setup.py` now depends on `packaging` and uses `packaging.version.Version` for version comparisons. This removes some deprecation warnings from usage of legacy distutils `Version` classes. - Relax run-time libzstd version checking in C extension from exactly 1.5.7 to >=1.5.6. ([#​254](https://github.com/indygreg/python-zstandard/issues/254), [#​267](https://github.com/indygreg/python-zstandard/issues/267)) - C extension types now (correctly) declare their fully qualified type names as `zstandard.backend_c.*` versus `zstd.*` before. The names have been subtly broken for years. We believe the only practical exposure to this change is via pickling (possibly encountered when using the `multiprocessing` or `concurrent.futures` packages), which would fail to pickle types like `ZstdError` before since the fully qualified type name referenced an incorrect and likely missing package (`zstd`). ([#​248](https://github.com/indygreg/python-zstandard/issues/248)) ### [`v0.24.0`](https://github.com/indygreg/python-zstandard/releases/tag/0.24.0) [Compare Source](https://github.com/indygreg/python-zstandard/compare/0.23.0...0.24.0) ### Backwards Compatibility Notes - Support for Python 3.8 has been dropped because it reached end of life. Python 3.9 is the minimum supported Python version. The code should still be compatible with Python 3.8 and removing of version checks from `setup.py` will likely yield a working install. However, this is not officially supported. ### Changes - Bundled zstd library upgraded from 1.5.6 to 1.5.7. ([#​255](https://github.com/indygreg/python-zstandard/issues/255)) - We now use and require cffi 1.17.0 or newer. Previously, the constraint was >=1.11.0 on Python <3.13. - The `pyproject.toml` file now defines a `[project]` section. - We now use GitHub's native ARM Linux runners to build wheels and run tests. Previously, Linux ARM wheels were built inside a QEMU virtualized environment and we didn't run tests on this platform. - We now use GitHub's native ARM Windows runners to build wheels and run tests. Previously, Windows ARM wheels were cross compiled from an x86-64 runner and we never ran tests for the Windows ARM platform. - We now `collections.abs.Buffer` on Python 3.12+ instead of `typing.ByteString`, as `typing.ByteString` was deprecated and later removed. ([#​238](https://github.co…
736-c41-2c1-e464fc974
added a commit
to Swiss-Armed-Forces/Loom
that referenced
this pull request
Jan 15, 2026
chore(deps): update root dev dependencies (minor) (minor) This MR contains the following updates: | Package | Type | Update | Change | OpenSSF | |---|---|---|---|---| | [deptry](https://github.com/fpgmaas/deptry) ([changelog](https://github.com/fpgmaas/deptry/blob/main/CHANGELOG.md)) | dev | minor | `^0.16.1` → `^0.24.0` | [](https://securityscorecards.dev/viewer/?uri=github.com/fpgmaas/deptry) | | [flake8](https://github.com/pycqa/flake8) ([changelog](https://flake8.pycqa.org/en/latest/release-notes/index.html)) | dev | minor | `7.1.0` → `7.3.0` | [](https://securityscorecards.dev/viewer/?uri=github.com/pycqa/flake8) | | [flake8-bugbear](https://github.com/PyCQA/flake8-bugbear#change-log) ([changelog](https://github.com/PyCQA/flake8-bugbear#change-log)) | dev | minor | `24.4.26` → `24.12.12` | [](https://securityscorecards.dev/viewer/?uri=github.com/PyCQA/flake8-bugbear) | | [mypy](https://github.com/python/mypy) ([changelog](https://mypy.readthedocs.io/en/latest/changelog.html)) | dev | minor | `1.10.1` → `1.19.1` | [](https://securityscorecards.dev/viewer/?uri=github.com/python/mypy) | | [pip-licenses](https://github.com/raimon49/pip-licenses) ([changelog](https://github.com/raimon49/pip-licenses/releases)) | dev | minor | `5.0.0` → `5.5.0` | [](https://securityscorecards.dev/viewer/?uri=github.com/raimon49/pip-licenses) | | [pylint](https://github.com/pylint-dev/pylint) ([changelog](https://pylint.readthedocs.io/en/latest/whatsnew/3/)) | dev | minor | `3.2.4` → `3.3.9` | [](https://securityscorecards.dev/viewer/?uri=github.com/pylint-dev/pylint) | | [pylint-pydantic](https://github.com/fcfangcc/pylint-pydantic) | dev | minor | `^0.3.2` → `^0.4.0` | [](https://securityscorecards.dev/viewer/?uri=github.com/fcfangcc/pylint-pydantic) | | [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) ([changelog](https://pytest-asyncio.readthedocs.io/en/latest/reference/changelog.html)) | test | minor | `^0.23.6` → `^0.26.0` | [](https://securityscorecards.dev/viewer/?uri=github.com/pytest-dev/pytest-asyncio) | | [pytest-celery](https://github.com/celery/pytest-celery) | test | minor | `1.0.0` → `1.2.1` | [](https://securityscorecards.dev/viewer/?uri=github.com/celery/pytest-celery) | | [pytest-memray](https://github.com/bloomberg/pytest-memray) | test | minor | `1.7.0` → `1.8.0` | [](https://securityscorecards.dev/viewer/?uri=github.com/bloomberg/pytest-memray) | | [pytest-mock](https://github.com/pytest-dev/pytest-mock) ([changelog](https://pytest-mock.readthedocs.io/en/latest/changelog.html)) | test | minor | `3.14.0` → `3.15.1` | [](https://securityscorecards.dev/viewer/?uri=github.com/pytest-dev/pytest-mock) | | [pytest-random-order](https://github.com/jbasko/pytest-random-order) | test | minor | `1.1.1` → `1.2.0` | [](https://securityscorecards.dev/viewer/?uri=github.com/jbasko/pytest-random-order) | | [python-gitlab](https://github.com/python-gitlab/python-gitlab) ([changelog](https://github.com/python-gitlab/python-gitlab/blob/main/CHANGELOG.md)) | dev | minor | `6.0.0` → `6.5.0` | [](https://securityscorecards.dev/viewer/?uri=github.com/python-gitlab/python-gitlab) | | [zstandard](https://github.com/indygreg/python-zstandard) | dev | minor | `^0.23.0` → `^0.25.0` | [](https://securityscorecards.dev/viewer/?uri=github.com/indygreg/python-zstandard) | --- ### Release Notes <details> <summary>fpgmaas/deptry (deptry)</summary> ### [`v0.24.0`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0240---2025-11-09) [Compare Source](https://github.com/fpgmaas/deptry/compare/0.23.1...0.24.0) ##### Breaking changes ##### Python 3.9 support dropped Support for Python 3.9 has been dropped, as it has reached its end of life. ##### PyPy 3.10 support dropped, 3.11 added Support for PyPy 3.10 has been dropped, since it is unsupported. We now only test against PyPy 3.11, and only publish wheels for this version. ##### Features - Add GitHub Actions annotations reporter ([#​1059](https://github.com/fpgmaas/deptry/pull/1059)) - Add support for Python 3.14 ([#​1224](https://github.com/fpgmaas/deptry/pull/1224)) - Drop support for Python 3.9 ([#​1328](https://github.com/fpgmaas/deptry/pull/1328)) - Publish wheels for PyPy 3.11 and drop 3.10 ([#​1227](https://github.com/fpgmaas/deptry/pull/1227)) ##### Full Changelog ### [`v0.23.1`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0231---2025-07-30) [Compare Source](https://github.com/fpgmaas/deptry/compare/0.23.0...0.23.1) ##### Bug Fixes - Improve handling of `TYPE_CHECKING` blocks by supporting `import typing as t` and checking `t.TYPE_CHECKING` ([#​1218](https://github.com/fpgmaas/deptry/pull/1218)) - Fix missing hyperlink in report output ([#​1162](https://github.com/fpgmaas/deptry/pull/1162)) ##### Full Changelog ### [`v0.23.0`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0230---2025-01-25) [Compare Source](https://github.com/fpgmaas/deptry/compare/0.22.0...0.23.0) ##### Features - Correctly detect transitive dependencies with different module names ([#​1033](https://github.com/fpgmaas/deptry/pull/1033)) ##### Full Changelog ### [`v0.22.0`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0220---2025-01-10) [Compare Source](https://github.com/fpgmaas/deptry/compare/0.21.2...0.22.0) Poetry 2.0 introduced support for [defining project metadata in PEP 621](https://python-poetry.org/blog/announcing-poetry-2.0.0/). This is now supported by *deptry*. [Documentation](https://deptry.com/supported-dependency-managers/#poetry) has been updated to detail *deptry*'s behavior. ##### Features - Support PEP 621 in Poetry 2.0+ ([#​1003](https://github.com/fpgmaas/deptry/pull/1003)) ##### Full Changelog ### [`v0.21.2`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0212---2024-12-19) [Compare Source](https://github.com/fpgmaas/deptry/compare/0.21.1...0.21.2) ##### Miscellaneous - Provide wheels for musllinux ([#​979](https://github.com/fpgmaas/deptry/pull/979)) ##### Full Changelog ### [`v0.21.1`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0211---2024-11-15) [Compare Source](https://github.com/fpgmaas/deptry/compare/0.21.0...0.21.1) ##### Bug Fixes - Handle string requirements files for `setuptools` dynamic dependencies ([#​945](https://github.com/fpgmaas/deptry/pull/945)) ##### Full Changelog ### [`v0.21.0`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0210---2024-11-08) [Compare Source](https://github.com/fpgmaas/deptry/compare/0.20.0...0.21.0) ##### Breaking changes ##### Ignore files handling Unless [`--exclude`](https://deptry.com/usage/#exclude) is used, *deptry* excludes files found in common ignore files (`.gitignore`, `.ignore`, `$HOME/.config/git/ignore`. ...), by using [`ignore`](https://crates.io/crates/ignore) Rust crate. The default behaviour has been changed, so that now: - git-related ignore rules (`.gitignore`, `$HOME/.config/git/ignore`, ...) are only used if *deptry* is run inside a git repository - `.gitignore` files that are in parent directories of the git repository from where deptry is run are not used (previously, *deptry* would traverse parent directories up to the root system) If you were using `.gitignore` files for non-git repositories, you might want to switch to `.ignore` files, or use [`--extend-exclude`](https://deptry.com/usage/#extend-exclude). ##### Requirements files parsing *deptry* now uses [`requirements-parser`](https://pypi.org/project/requirements-parser/) to parse dependencies from requirements files, meaning that it can now extract nested requirements files referenced in other requirements files without having to explicitly configure it in *deptry*. For instance, if you have: ```python # requirements.txt -r cli-requirements.txt httpx==0.27.2 ``` ```python # cli-requirements.txt click==8.1.7 ``` With the default configuration, when parsing `requirements.txt`, both `httpx` and `click` will now be listed as dependencies by *deptry*, while previously, only `httpx` was, unless *deptry* was instructed about `cli-requirements.txt` by using [`--requirements-files`](https://deptry.com/usage/#requirements-files). This new behaviour also impacts development requirements files, that can be overridden by using [`--requirements-files-dev`](https://deptry.com/usage/#requirements-files-dev). ##### Python 3.8 support dropped Support for Python 3.8 has been dropped, as it has reached its end of life. ##### Features - *deptry* now detects development dependencies from `[dependency-groups]` section, introduced by [PEP 735](https://peps.python.org/pep-0735/) ([#​892](https://github.com/fpgmaas/deptry/pull/892)) - *deptry* now supports `setuptools` dynamic dependencies set in `[tool.setuptools.dynamic]` section, see <https://deptry.com/supported-dependency-managers/#setuptools> for more details ([#​894](https://github.com/fpgmaas/deptry/pull/894), [#​724](https://github.com/fpgmaas/deptry/pull/724)) - Drop support for Python 3.8 ([#​874](https://github.com/fpgmaas/deptry/pull/874)) - Improve ignore handling ([#​908](https://github.com/fpgmaas/deptry/pull/908)) - Parse requirements files with `requirements-parser`, adding support for parsing nested requirements files referenced with `-r <requirement_file>` ([#​913](https://github.com/fpgmaas/deptry/pull/913)) ##### Full Changelog ### [`v0.20.0`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0200---2024-08-27) [Compare Source](https://github.com/fpgmaas/deptry/compare/0.19.1...0.20.0) ##### Breaking changes In release [0.15.0](https://github.com/fpgmaas/deptry/releases/tag/0.15.0), we announced the deprecation of the following flags: - `--requirements-txt` (and its `requirements_txt` setting counterpart in `pyproject.toml`) - `--requirements-txt-dev` (and its `requirements_txt_dev` setting counterpart in `pyproject.toml`) Those flags have now been removed. If you relied on them, you should now use, respectively: - `--requirements-files` (and its `requirements_files` setting counterpart in `pyproject.toml`) - `--requirements-files-dev` (and its `requirements_files_dev` setting counterpart in `pyproject.toml`) ##### Features - deptry now detects [uv](https://github.com/astral-sh/uv) and reads development dependencies from `[uv.tool.dev-dependencies]` section ([#​816](https://github.com/fpgmaas/deptry/pull/816)) - Dynamically set max terminal width for better readability when displaying help ([#​817](https://github.com/fpgmaas/deptry/pull/817)) - Remove deprecated `--requirements-txt`/`--requirements-txt-dev` flags ([#​819](https://github.com/fpgmaas/deptry/pull/819)) ##### Full Changelog ### [`v0.19.1`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0191---2024-08-10) [Compare Source](https://github.com/fpgmaas/deptry/compare/0.19.0...0.19.1) ##### Features - Add back PEP 420 support behind `--experimental-namespace-package` feature flag ([#​808](https://github.com/fpgmaas/deptry/pull/808)) - Add support for Python 3.13 ([#​713](https://github.com/fpgmaas/deptry/pull/713), [#​809](https://github.com/fpgmaas/deptry/pull/809)) ##### Miscellaneous - Provide Windows ARM64 wheels for Python ([#​807](https://github.com/fpgmaas/deptry/pull/807)) ##### Full Changelog ### [`v0.19.0`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0190---2024-08-08) [Compare Source](https://github.com/fpgmaas/deptry/compare/0.18.0...0.19.0) This release reverts [#​753](https://github.com/fpgmaas/deptry/pull/753) that caused a noticeable performance regression on large codebases. The intent of the initial MR was to support projects following PEP 420, so if your project currently relies on this behaviour, feel free to manifest your interest in [#​740](https://github.com/fpgmaas/deptry/issues/740). ##### Bug Fixes - Revert "fix(core): use `rglob` to guess local Python modules ([#​753](https://github.com/fpgmaas/deptry/issues/753))" ([#​798](https://github.com/fpgmaas/deptry/pull/798)) ##### New Contributors - [@​huisman](https://github.com/huisman) made their first contribution in [#​796](https://github.com/fpgmaas/deptry/pull/796) ##### Full Changelog ### [`v0.18.0`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0180---2024-07-31) [Compare Source](https://github.com/fpgmaas/deptry/compare/0.17.0...0.18.0) ##### Features - Support imports using `importlib.import_module` ([#​782](https://github.com/fpgmaas/deptry/pull/782)) ##### New Contributors - [@​lmmx](https://github.com/lmmx) made their first contribution in [#​782](https://github.com/fpgmaas/deptry/pull/782) ##### Full Changelog ### [`v0.17.0`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0170---2024-07-20) [Compare Source](https://github.com/fpgmaas/deptry/compare/0.16.2...0.17.0) ##### Features - Add a new rule `DEP005` to detect project dependencies that are in the standard library. ([#​761](https://github.com/fpgmaas/deptry/pull/761)) ##### Full Changelog ### [`v0.16.2`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0162---2024-07-05) [Compare Source](https://github.com/fpgmaas/deptry/compare/0.16.1...0.16.2) ##### Bug Fixes - Avoid crashing on PEP 621 and Poetry projects with no dependencies ([#​752](https://github.com/fpgmaas/deptry/pull/752)) - Recursively search for Python files to detect local modules, to better support namespace packages ([#​753](https://github.com/fpgmaas/deptry/pull/753)) ##### Miscellaneous - Provide macOS ARM wheels for PyPy ([#​691](https://github.com/fpgmaas/deptry/pull/691)) ##### Full Changelog </details> <details> <summary>pycqa/flake8 (flake8)</summary> ### [`v7.3.0`](https://github.com/pycqa/flake8/compare/7.2.0...7.3.0) [Compare Source](https://github.com/pycqa/flake8/compare/7.2.0...7.3.0) ### [`v7.2.0`](https://github.com/pycqa/flake8/compare/7.1.2...7.2.0) [Compare Source](https://github.com/pycqa/flake8/compare/7.1.2...7.2.0) ### [`v7.1.2`](https://github.com/pycqa/flake8/compare/7.1.1...7.1.2) [Compare Source](https://github.com/pycqa/flake8/compare/7.1.1...7.1.2) ### [`v7.1.1`](https://github.com/pycqa/flake8/compare/7.1.0...7.1.1) [Compare Source](https://github.com/pycqa/flake8/compare/7.1.0...7.1.1) </details> <details> <summary>PyCQA/flake8-bugbear (flake8-bugbear)</summary> ### [`v24.12.12`](https://github.com/PyCQA/flake8-bugbear/releases/tag/24.12.12) [Compare Source](https://github.com/PyCQA/flake8-bugbear/compare/24.10.31...24.12.12) - B012 and B025 now also handle try/except\* ([#​500](https://github.com/PyCQA/flake8-bugbear/issues/500)) - Skip B028 if warnings.warn is called with `*args` or `**kwargs` ([#​501](https://github.com/PyCQA/flake8-bugbear/issues/501)) - Add B911: itertools.batched without strict= ([#​502](https://github.com/PyCQA/flake8-bugbear/issues/502)) - Readme has anchors per check (they do not seem to render on GitHub tho) ### [`v24.10.31`](https://github.com/PyCQA/flake8-bugbear/releases/tag/24.10.31) [Compare Source](https://github.com/PyCQA/flake8-bugbear/compare/24.8.19...24.10.31) - B041: New dictionary same key AND value check ([#​496](https://github.com/PyCQA/flake8-bugbear/issues/496)) - B037: Fix typo in error message - B024: No longer treats assigned class variables as abstract ([#​471](https://github.com/PyCQA/flake8-bugbear/issues/471)) - Bump required attrs version to 22.2.0 ### [`v24.8.19`](https://github.com/PyCQA/flake8-bugbear/releases/tag/24.8.19) [Compare Source](https://github.com/PyCQA/flake8-bugbear/compare/24.4.26...24.8.19) - B910: implement to suggest using Counter() instead of defaultdict(int) ([#​489](https://github.com/PyCQA/flake8-bugbear/issues/489)) - B901: Do not trigger with explicit Generator return type ([#​481](https://github.com/PyCQA/flake8-bugbear/issues/481)) - B008: add some comments, rename b008\_extend\_immutable\_calls ([#​476](https://github.com/PyCQA/flake8-bugbear/issues/476)) - B040: exception with note added not reraised or used ([#​477](https://github.com/PyCQA/flake8-bugbear/issues/477)) - B039, Add `ContextVar` with mutable literal or function call as default - B040: Add Exception with added note not reraised. ([#​474](https://github.com/PyCQA/flake8-bugbear/issues/474)) - Run tests in Python 3.13 - Type annotated code ([#​481](https://github.com/PyCQA/flake8-bugbear/issues/481) + [#​483](https://github.com/PyCQA/flake8-bugbear/issues/483)) - Replace hash with unsafe\_hash ([#​486](https://github.com/PyCQA/flake8-bugbear/issues/486)) </details> <details> <summary>python/mypy (mypy)</summary> ### [`v1.19.1`](https://github.com/python/mypy/blob/HEAD/CHANGELOG.md#Mypy-1191) [Compare Source](https://github.com/python/mypy/compare/v1.19.0...v1.19.1) - Fix noncommutative joins with bounded TypeVars (Shantanu, MR [20345](https://github.com/python/mypy/pull/20345)) - Respect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, MR [20372](https://github.com/python/mypy/pull/20372)) - Allow `types.NoneType` in match cases (A5rocks, MR [20383](https://github.com/python/mypy/pull/20383)) - Fix mypyc generator regression with empty tuple (BobTheBuidler, MR [20371](https://github.com/python/mypy/pull/20371)) - Fix crash involving Unpack-ed TypeVarTuple (Shantanu, MR [20323](https://github.com/python/mypy/pull/20323)) - Fix crash on star import of redefinition (Ivan Levkivskyi, MR [20333](https://github.com/python/mypy/pull/20333)) - Fix crash on typevar with forward ref used in other module (Ivan Levkivskyi, MR [20334](https://github.com/python/mypy/pull/20334)) - Fail with an explicit error on PyPy (Ivan Levkivskyi, MR [20389](https://github.com/python/mypy/pull/20389)) ### [`v1.19.0`](https://github.com/python/mypy/compare/v1.18.2...v1.19.0) [Compare Source](https://github.com/python/mypy/compare/v1.18.2...v1.19.0) ### [`v1.18.2`](https://github.com/python/mypy/blob/HEAD/CHANGELOG.md#Mypy-1182) [Compare Source](https://github.com/python/mypy/compare/v1.18.1...v1.18.2) - Fix crash on recursive alias (Ivan Levkivskyi, MR [19845](https://github.com/python/mypy/pull/19845)) - Add additional guidance for stubtest errors when runtime is `object.__init__` (Stephen Morton, MR [19733](https://github.com/python/mypy/pull/19733)) - Fix handling of None values in f-string expressions in mypyc (BobTheBuidler, MR [19846](https://github.com/python/mypy/pull/19846)) ### [`v1.18.1`](https://github.com/python/mypy/compare/v1.17.1...v1.18.1) [Compare Source](https://github.com/python/mypy/compare/v1.17.1...v1.18.1) ### [`v1.17.1`](https://github.com/python/mypy/blob/HEAD/CHANGELOG.md#Mypy-1171) [Compare Source](https://github.com/python/mypy/compare/v1.17.0...v1.17.1) - Retain `None` as constraints bottom if no bottoms were provided (Stanislav Terliakov, MR [19485](https://github.com/python/mypy/pull/19485)) - Fix "ignored exception in `hasattr`" in dmypy (Stanislav Terliakov, MR [19428](https://github.com/python/mypy/pull/19428)) - Prevent a crash when InitVar is redefined with a method in a subclass (Stanislav Terliakov, MR [19453](https://github.com/python/mypy/pull/19453)) ### [`v1.17.0`](https://github.com/python/mypy/compare/v1.16.1...v1.17.0) [Compare Source](https://github.com/python/mypy/compare/v1.16.1...v1.17.0) ### [`v1.16.1`](https://github.com/python/mypy/compare/v1.16.0...v1.16.1) [Compare Source](https://github.com/python/mypy/compare/v1.16.0...v1.16.1) ### [`v1.16.0`](https://github.com/python/mypy/compare/v1.15.0...v1.16.0) [Compare Source](https://github.com/python/mypy/compare/v1.15.0...v1.16.0) ### [`v1.15.0`](https://github.com/python/mypy/compare/v1.14.1...v1.15.0) [Compare Source](https://github.com/python/mypy/compare/v1.14.1...v1.15.0) ### [`v1.14.1`](https://github.com/python/mypy/compare/v1.14.0...v1.14.1) [Compare Source](https://github.com/python/mypy/compare/v1.14.0...v1.14.1) ### [`v1.14.0`](https://github.com/python/mypy/compare/v1.13.0...v1.14.0) [Compare Source](https://github.com/python/mypy/compare/v1.13.0...v1.14.0) ### [`v1.13.0`](https://github.com/python/mypy/compare/v1.12.1...v1.13.0) [Compare Source](https://github.com/python/mypy/compare/v1.12.1...v1.13.0) ### [`v1.12.1`](https://github.com/python/mypy/blob/HEAD/CHANGELOG.md#Mypy-1121) [Compare Source](https://github.com/python/mypy/compare/v1.12.0...v1.12.1) - Fix crash when showing partially analyzed type in error message (Ivan Levkivskyi, MR [17961](https://github.com/python/mypy/pull/17961)) - Fix iteration over union (when self type is involved) (Shantanu, MR [17976](https://github.com/python/mypy/pull/17976)) - Fix type object with type var default in union context (Jukka Lehtosalo, MR [17991](https://github.com/python/mypy/pull/17991)) - Revert change to `os.path` stubs affecting use of `os.PathLike[Any]` (Shantanu, MR [17995](https://github.com/python/mypy/pull/17995)) ### [`v1.12.0`](https://github.com/python/mypy/compare/v1.11.2...v1.12.0) [Compare Source](https://github.com/python/mypy/compare/v1.11.2...v1.12.0) ### [`v1.11.2`](https://github.com/python/mypy/blob/HEAD/CHANGELOG.md#Mypy-1112) [Compare Source](https://github.com/python/mypy/compare/v1.11.1...v1.11.2) - Alternative fix for a union-like literal string (Ivan Levkivskyi, MR [17639](https://github.com/python/mypy/pull/17639)) - Unwrap `TypedDict` item types before storing (Ivan Levkivskyi, MR [17640](https://github.com/python/mypy/pull/17640)) ### [`v1.11.1`](https://github.com/python/mypy/blob/HEAD/CHANGELOG.md#Mypy-1111) [Compare Source](https://github.com/python/mypy/compare/v1.11.0...v1.11.1) - Fix `RawExpressionType.accept` crash with `--cache-fine-grained` (Anders Kaseorg, MR [17588](https://github.com/python/mypy/pull/17588)) - Fix PEP 604 isinstance caching (Shantanu, MR [17563](https://github.com/python/mypy/pull/17563)) - Fix `typing.TypeAliasType` being undefined on python < 3.12 (Nikita Sobolev, MR [17558](https://github.com/python/mypy/pull/17558)) - Fix `types.GenericAlias` lookup crash (Shantanu, MR [17543](https://github.com/python/mypy/pull/17543)) ### [`v1.11.0`](https://github.com/python/mypy/compare/v1.10.1...v1.11.0) [Compare Source](https://github.com/python/mypy/compare/v1.10.1...v1.11.0) </details> <details> <summary>raimon49/pip-licenses (pip-licenses)</summary> ### [`v5.5.0`](https://github.com/raimon49/pip-licenses/blob/HEAD/CHANGELOG.md#550) - Replace dependency on `tomli` with builtin `tomllib` for Python 3.11 - Added support for `License-Expression` metadata field, see [PEP 639](https://peps.python.org/pep-0639/) - Added `--from=expression` option - Breaking change: The `--from=all` output now includes the `License-Expression` value - Fixed KeyError with `--partial` and `--allow-only` if a license matches multiple allowed licenses. - Declare support for Python 3.13 and 3.14 - Added RST/Sphinx workflow example for `--with-license-file` option in documentation </details> <details> <summary>pylint-dev/pylint (pylint)</summary> ### [`v3.3.9`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.9) [Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.8...v3.3.9) ## What's new in Pylint 3.3.9? Release date: 2025-10-05 ## False Positives Fixed - Fix used-before-assignment for PEP 695 type aliases and parameters. Closes [#​9815](https://github.com/pylint-dev/pylint/issues/9815) - No longer flag undeprecated functions in `importlib.resources` as deprecated. Closes [#​10593](https://github.com/pylint-dev/pylint/issues/10593) - Fix false positive `inconsistent-return-statements` when using `quit()` or `exit()` functions. Closes [#​10508](https://github.com/pylint-dev/pylint/issues/10508) - Fix false positive `undefined-variable` (E0602) for for-loop variable shadowing patterns like `for item in item:` when the variable was previously defined. Closes [#​10562](https://github.com/pylint-dev/pylint/issues/10562) ## Other Bug Fixes - Fixed crash in 'unnecessary-list-index-lookup' when starting an enumeration using minus the length of an iterable inside a dict comprehension when the len call was only made in this dict comprehension, and not elsewhere. Also changed the approach, to use inference in all cases but the simple ones, so we don't have to fix crashes one by one for arbitrarily complex expressions in enumerate. Closes [#​10510](https://github.com/pylint-dev/pylint/issues/10510) ### [`v3.3.8`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.8) [Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.7...v3.3.8) ## What's new in Pylint 3.3.8? Release date: 2025-08-09 This patch release includes an exceptional fix for a false negative issue. For details, see: [#​10482 (comment)](https://github.com/pylint-dev/pylint/pull/10482#issuecomment-3164514082) ## False Positives Fixed - Fix false positives for `possibly-used-before-assignment` when variables are exhaustively assigned within a `match` block. Closes [#​9668](https://github.com/pylint-dev/pylint/issues/9668) - Fix false positive for `missing-raises-doc` and `missing-yield-doc` when the method length is less than docstring-min-length. Refs [#​10104](https://github.com/pylint-dev/pylint/issues/10104) - Fix a false positive for `unused-variable` when multiple except handlers bind the same name under a try block. Closes [#​10426](https://github.com/pylint-dev/pylint/issues/10426) ## False Negatives Fixed - Fix false-negative for `used-before-assignment` with `from __future__ import annotations` in function definitions. Refs [#​10482](https://github.com/pylint-dev/pylint/issues/10482) ## Other Bug Fixes - Fix a bug in Pyreverse where aggregations and associations were included in diagrams regardless of the selected --filter-mode (such as PUB\_ONLY, ALL, etc.). Closes [#​10373](https://github.com/pylint-dev/pylint/issues/10373) - Fix double underscores erroneously rendering as bold in pyreverse's Mermaid output. Closes [#​10402](https://github.com/pylint-dev/pylint/issues/10402) ### [`v3.3.7`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.7) [Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.6...v3.3.7) ## What's new in Pylint 3.3.7? Release date: 2025-05-04 ## False Positives Fixed - Comparisons between two calls to `type()` won't raise an `unidiomatic-typecheck` warning anymore, consistent with the behavior applied only for `==` previously. Closes [#​10161](https://github.com/pylint-dev/pylint/issues/10161) ## Other Bug Fixes - Fixed a crash when importing a class decorator that did not exist with the same name as a class attribute after the class definition. Closes [#​10105](https://github.com/pylint-dev/pylint/issues/10105) - Fix a crash caused by malformed format strings when using `.format` with keyword arguments. Closes [#​10282](https://github.com/pylint-dev/pylint/issues/10282) - Using a slice as a class decorator now raises a `not-callable` message instead of crashing. A lot of checks that dealt with decorators (too many to list) are now shortcut if the decorator can't immediately be inferred to a function or class definition. Closes [#​10334](https://github.com/pylint-dev/pylint/issues/10334) ## Other Changes - The algorithm used for `no-member` suggestions is now more efficient and cuts the calculation when the distance score is already above the threshold. Refs [#​10277](https://github.com/pylint-dev/pylint/issues/10277) ### [`v3.3.6`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.6) [Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.5...v3.3.6) ## What's new in Pylint 3.3.6? Release date: 2025-03-20 ## False Positives Fixed - Fix a false positive for `used-before-assignment` when an inner function's return type annotation is a class defined at module scope. Closes [#​9391](https://github.com/pylint-dev/pylint/issues/9391) ### [`v3.3.5`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.5) [Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.4...v3.3.5) ## What's new in Pylint 3.3.5? Release date: 2025-03-09 ## False Positives Fixed - Fix false positives for `use-implicit-booleaness-not-comparison`, `use-implicit-booleaness-not-comparison-to-string` and `use-implicit-booleaness-not-comparison-to-zero` when chained comparisons are checked. Closes [#​10065](https://github.com/pylint-dev/pylint/issues/10065) - Fix a false positive for `invalid-getnewargs-ex-returned` when the tuple or dict has been assigned to a name. Closes [#​10208](https://github.com/pylint-dev/pylint/issues/10208) - Remove `getopt` and `optparse` from the list of deprecated modules. Closes [#​10211](https://github.com/pylint-dev/pylint/issues/10211) ## Other Bug Fixes - Fixed conditional import x.y causing false positive possibly-used-before-assignment. Closes [#​10081](https://github.com/pylint-dev/pylint/issues/10081) - Fix a crash when something besides a class is found in an except handler. Closes [#​10106](https://github.com/pylint-dev/pylint/issues/10106) - Fixed raising invalid-name when using camelCase for private methods with two leading underscores. Closes [#​10189](https://github.com/pylint-dev/pylint/issues/10189) ## Other Changes - Upload release assets to PyPI via Trusted Publishing. Closes [#​10256](https://github.com/pylint-dev/pylint/issues/10256) ### [`v3.3.4`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.4) [Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.3...v3.3.4) ## Other Bug Fixes - Fixes "skipped files" count calculation; the previous method was displaying an arbitrary number. Closes [#​10073](https://github.com/pylint-dev/pylint/issues/10073) - Fixes a crash that occurred when pylint was run in a container on a host with cgroupsv2 and restrictions on CPU usage. Closes [#​10103](https://github.com/pylint-dev/pylint/issues/10103) - Relaxed the requirements for isort so pylint can benefit from isort 6. Closes [#​10203](https://github.com/pylint-dev/pylint/issues/10203) ### [`v3.3.3`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.3) [Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.2...v3.3.3) ## What's new in Pylint 3.3.3? Release date: 2024-12-23 ## False Positives Fixed - Fix false positives for `undefined-variable` for classes using Python 3.12 generic type syntax. Closes [#​9335](https://github.com/pylint-dev/pylint/issues/9335) - Fix a false positive for `use-implicit-booleaness-not-len`. No lint should be emitted for generators (`len` is not defined for generators). Refs [#​10100](https://github.com/pylint-dev/pylint/issues/10100) ## Other Bug Fixes - Fix `Unable to import 'collections.abc' (import-error)` on Python 3.13.1. Closes [#​10112](https://github.com/pylint-dev/pylint/issues/10112) ### [`v3.3.2`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.2) [Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.1...v3.3.2) ## False Positives Fixed - Fix a false positive for `potential-index-error` when an indexed iterable contains a starred element that evaluates to more than one item. Closes [#​10076](https://github.com/pylint-dev/pylint/issues/10076) ## Other Bug Fixes - Fixes the issue with --source-root option not working when the source files are in a subdirectory of the source root (e.g. when using a /src layout). Closes [#​10026](https://github.com/pylint-dev/pylint/issues/10026) ### [`v3.3.1`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.1) [Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.0...v3.3.1) ## What's new in Pylint 3.3.1? Release date: 2024-09-24 ## False Positives Fixed - Fix regression causing some f-strings to not be inferred as strings. Closes [#​9947](https://github.com/pylint-dev/pylint/issues/9947) ### [`v3.3.0`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.0) [Compare Source](https://github.com/pylint-dev/pylint/compare/v3.2.7...v3.3.0) Release date: 2024-09-20 ## Changes requiring user actions - We migrated `symilar` to argparse, from getopt, so the error and help output changed (for the better). We exit with 2 instead of sometime 1, sometime 2. The error output is not captured by the runner anymore. It's not possible to use a value for the boolean options anymore (`--ignore-comments 1` should become `--ignore-comments`). Refs [#​9731](https://github.com/pylint-dev/pylint/issues/9731) ## New Features - Add new `declare-non-slot` error which reports when a class has a `__slots__` member and a type hint on the class is not present in `__slots__`. Refs [#​9499](https://github.com/pylint-dev/pylint/issues/9499) ## New Checks - Added `too-many-positional-arguments` to allow distinguishing the configuration for too many total arguments (with keyword-only params specified after `*`) from the configuration for too many positional-or-keyword or positional-only arguments. As part of evaluating whether this check makes sense for your project, ensure you adjust the value of `--max-positional-arguments`. Closes [#​9099](https://github.com/pylint-dev/pylint/issues/9099) - Add `using-exception-groups-in-unsupported-version` and `using-generic-type-syntax-in-unsupported-version` for uses of Python 3.11+ or 3.12+ features on lower supported versions provided with `--py-version`. Closes [#​9791](https://github.com/pylint-dev/pylint/issues/9791) - Add `using-assignment-expression-in-unsupported-version` for uses of `:=` (walrus operator) on Python versions below 3.8 provided with `--py-version`. Closes [#​9820](https://github.com/pylint-dev/pylint/issues/9820) - Add `using-positional-only-args-in-unsupported-version` for uses of positional-only args on Python versions below 3.8 provided with `--py-version`. Closes [#​9823](https://github.com/pylint-dev/pylint/issues/9823) - Add `unnecessary-default-type-args` to the `typing` extension to detect the use of unnecessary default type args for `typing.Generator` and `typing.AsyncGenerator`. Refs [#​9938](https://github.com/pylint-dev/pylint/issues/9938) ## False Negatives Fixed - Fix computation of never-returning function: `Never` is handled in addition to `NoReturn`, and priority is given to the explicit `--never-returning-functions` option. Closes [#​7565](https://github.com/pylint-dev/pylint/issues/7565). - Fix a false negative for `await-outside-async` when await is inside Lambda. Refs [#​9653](https://github.com/pylint-dev/pylint/issues/9653) - Fix a false negative for `duplicate-argument-name` by including `positional-only`, `*args` and `**kwargs` arguments in the check. Closes [#​9669](https://github.com/pylint-dev/pylint/issues/9669) - Fix false negative for `multiple-statements` when multiple statements are present on `else` and `finally` lines of `try`. Refs [#​9759](https://github.com/pylint-dev/pylint/issues/9759) - Fix false negatives when `isinstance` does not have exactly two arguments. pylint now emits a `too-many-function-args` or `no-value-for-parameter` appropriately for `isinstance` calls. Closes [#​9847](https://github.com/pylint-dev/pylint/issues/9847) ## Other Bug Fixes - `--enable` with `--disable=all` now produces an error, when an unknown msg code is used. Internal `pylint` messages are no longer affected by `--disable=all`. Closes [#​9403](https://github.com/pylint-dev/pylint/issues/9403) - Impossible to compile regexes for paths in the configuration or argument given to pylint won't crash anymore but raise an argparse error and display the error message from `re.compile` instead. Closes [#​9680](https://github.com/pylint-dev/pylint/issues/9680) - Fix a bug where a `tox.ini` file with pylint configuration was ignored and it exists in the current directory. `.cfg` and `.ini` files containing a `Pylint` configuration may now use a section named `[pylint]`. This enhancement impacts the scenario where these file types are used as defaults when they are present and have not been explicitly referred to, using the `--rcfile` option. Closes [#​9727](https://github.com/pylint-dev/pylint/issues/9727) - Improve file discovery for directories that are not python packages. Closes [#​9764](https://github.com/pylint-dev/pylint/issues/9764) ## Other Changes - Remove support for launching pylint with Python 3.8. Code that supports Python 3.8 can still be linted with the `--py-version=3.8` setting. Refs [#​9774](https://github.com/pylint-dev/pylint/issues/9774) - Add support for Python 3.13. Refs [#​9852](https://github.com/pylint-dev/pylint/issues/9852) ## Internal Changes - All variables, classes, functions and file names containing the word 'similar', when it was, in fact, referring to 'symilar' (the standalone program for the duplicate-code check) were renamed to 'symilar'. Closes [#​9734](https://github.com/pylint-dev/pylint/issues/9734) - Remove old-style classes (Python 2) code and remove check for new-style class since everything is new-style in Python 3. Updated doc for exception checker to remove reference to new style class. Refs [#​9925](https://github.com/pylint-dev/pylint/issues/9925) ### [`v3.2.7`](https://github.com/pylint-dev/pylint/releases/tag/v3.2.7) [Compare Source](https://github.com/pylint-dev/pylint/compare/v3.2.6...v3.2.7) ## What's new in Pylint 3.2.7? Release date: 2024-08-31 ## False Positives Fixed - Fixed a false positive `unreachable` for `NoReturn` coroutine functions. Closes [#​9840](https://github.com/pylint-dev/pylint/issues/9840) ## Other Bug Fixes - Fix crash in refactoring checker when calling a lambda bound as a method. Closes [#​9865](https://github.com/pylint-dev/pylint/issues/9865) - Fix a crash in `undefined-loop-variable` when providing the `iterable` argument to `enumerate()`. Closes [#​9875](https://github.com/pylint-dev/pylint/issues/9875) - Fix to address indeterminacy of error message in case a module name is same as another in a separate namespace. Refs [#​9883](https://github.com/pylint-dev/pylint/issues/9883) ### [`v3.2.6`](https://github.com/pylint-dev/pylint/releases/tag/v3.2.6) [Compare Source](https://github.com/pylint-dev/pylint/compare/v3.2.5...v3.2.6) ## What's new in Pylint 3.2.6? Release date: 2024-07-21 ## False Positives Fixed - Quiet false positives for `unexpected-keyword-arg` when pylint cannot determine which of two or more dynamically defined classes is being instantiated. Closes [#​9672](https://github.com/pylint-dev/pylint/issues/9672) - Fix a false positive for `missing-param-doc` where a method which is decorated with `typing.overload` was expected to have a docstring specifying its parameters. Closes [#​9739](https://github.com/pylint-dev/pylint/issues/9739) - Fix a regression that raised `invalid-name` on class attributes merely overriding invalid names from an ancestor. Closes [#​9765](https://github.com/pylint-dev/pylint/issues/9765) - Treat `assert_never()` the same way when imported from `typing_extensions`. Closes [#​9780](https://github.com/pylint-dev/pylint/issues/9780) - Fix a false positive for `consider-using-min-max-builtin` when the assignment target is an attribute. Refs [#​9800](https://github.com/pylint-dev/pylint/issues/9800) ## Other Bug Fixes - Fix an `AssertionError` arising from properties that return partial functions. Closes [#​9214](https://github.com/pylint-dev/pylint/issues/9214) - Fix a crash when a subclass extends `__slots__`. Closes [#​9814](https://github.com/pylint-dev/pylint/issues/9814) ### [`v3.2.5`](https://github.com/pylint-dev/pylint/releases/tag/v3.2.5) [Compare Source](https://github.com/pylint-dev/pylint/compare/v3.2.4...v3.2.5) ## What's new in Pylint 3.2.5 ? Release date: 2024-06-28 ## Other Bug Fixes - Fixed a false positive `unreachable-code` when using `typing.Any` as return type in python 3.8, the `typing.NoReturn` are not taken into account anymore for python 3.8 however. Closes [#​9751](https://github.com/pylint-dev/pylint/issues/9751) </details> <details> <summary>fcfangcc/pylint-pydantic (pylint-pydantic)</summary> ### [`v0.4.1`](https://github.com/fcfangcc/pylint-pydantic/releases/tag/v0.4.1) [Compare Source](https://github.com/fcfangcc/pylint-pydantic/compare/v0.4.0...v0.4.1) fixed [#​41](https://github.com/fcfangcc/pylint-pydantic/issues/41) ### [`v0.4.0`](https://github.com/fcfangcc/pylint-pydantic/releases/tag/v0.4.0) [Compare Source](https://github.com/fcfangcc/pylint-pydantic/compare/v0.3.5...v0.4.0) 1. Support pylint4 2. Remove support for python3.9 ### [`v0.3.5`](https://github.com/fcfangcc/pylint-pydantic/releases/tag/v0.3.5) [Compare Source](https://github.com/fcfangcc/pylint-pydantic/compare/v0.3.4...v0.3.5) - updates setup to add 3.13 - updates workflow with 3.13 - updates logic of transform\_pydantic\_json to resolve contribution by [@​litsolac](https://github.com/litsolac) ### [`v0.3.4`](https://github.com/fcfangcc/pylint-pydantic/releases/tag/v0.3.4) [Compare Source](https://github.com/fcfangcc/pylint-pydantic/compare/v0.3.3...v0.3.4) fixed [#​35](https://github.com/fcfangcc/pylint-pydantic/issues/35) ### [`v0.3.3`](https://github.com/fcfangcc/pylint-pydantic/releases/tag/v0.3.3) [Compare Source](https://github.com/fcfangcc/pylint-pydantic/compare/v0.3.2...v0.3.3) Fixed [#​33](https://github.com/fcfangcc/pylint-pydantic/issues/33) [#​32](https://github.com/fcfangcc/pylint-pydantic/issues/32) </details> <details> <summary>pytest-dev/pytest-asyncio (pytest-asyncio)</summary> ### [`v0.26.0`](https://github.com/pytest-dev/pytest-asyncio/releases/tag/v0.26.0): pytest-asyncio 0.26.0 [Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.25.3...v0.26.0) - Adds configuration option that sets default event loop scope for all tests [#​793](https://github.com/pytest-dev/pytest-asyncio/issues/793) - Improved type annotations for `pytest_asyncio.fixture` [#​1045](https://github.com/pytest-dev/pytest-asyncio/pull/1045) - Added `typing-extensions` as additional dependency for Python `<3.10` [#​1045](https://github.com/pytest-dev/pytest-asyncio/pull/1045) ### [`v0.25.3`](https://github.com/pytest-dev/pytest-asyncio/releases/tag/v0.25.3): pytest-asyncio 0.25.3 [Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.25.2...v0.25.3) - Avoid errors in cleanup of async generators when event loop is already closed [#​1040](https://github.com/pytest-dev/pytest-asyncio/issues/1040) ### [`v0.25.2`](https://github.com/pytest-dev/pytest-asyncio/releases/tag/v0.25.2): pytest-asyncio 0.25.2 [Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.25.1...v0.25.2) - Call `loop.shutdown_asyncgens()` before closing the event loop to ensure async generators are closed in the same manner as `asyncio.run` does [#​1034](https://github.com/pytest-dev/pytest-asyncio/pull/1034) ### [`v0.25.1`](https://github.com/pytest-dev/pytest-asyncio/releases/tag/v0.25.1): pytest-asyncio 0.25.1 [Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.25.0...v0.25.1) - Fixes an issue that caused a broken event loop when a function-scoped test was executed in between two tests with wider loop scope [#​950](https://github.com/pytest-dev/pytest-asyncio/issues/950) - Improves test collection speed in auto mode [#​1020](https://github.com/pytest-dev/pytest-asyncio/pull/1020) - Corrects the warning that is emitted upon redefining the event\_loop fixture ### [`v0.25.0`](https://github.com/pytest-dev/pytest-asyncio/releases/tag/v0.25.0): pytest-asyncio 0.25.0 [Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.24.0...v0.25.0) ### 0.25.0 (2024-12-13) - Deprecated: Added warning when asyncio test requests async `@pytest.fixture` in strict mode. This will become an error in a future version of flake8-asyncio. [#​979](https://github.com/pytest-dev/pytest-asyncio/pull/979) - Updates the error message about *pytest.mark.asyncio*'s *scope* keyword argument to say *loop\_scope* instead. [#​1004](https://github.com/pytest-dev/pytest-asyncio/pull/1004) - Verbose log displays correct parameter name: asyncio\_default\_fixture\_loop\_scope [#​990](https://github.com/pytest-dev/pytest-asyncio/pull/990) - Propagates *contextvars* set in async fixtures to other fixtures and tests on Python 3.11 and above. [#​1008](https://github.com/pytest-dev/pytest-asyncio/pull/1008) ### [`v0.24.0`](https://github.com/pytest-dev/pytest-asyncio/releases/tag/v0.24.0): pytest-asyncio 0.24.0 [Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.23.8...v0.24.0) ### 0.24.0 (2024-08-22) - BREAKING: Updated minimum supported pytest version to v8.2.0 - Adds an optional *loop\_scope* keyword argument to *pytest.mark.asyncio*. This argument controls which event loop is used to run the marked async test. [#​706](https://github.com/pytest-dev/pytest-asyncio/issues/706), [#​871](https://github.com/pytest-dev/pytest-asyncio/pull/871) - Deprecates the optional *scope* keyword argument to *pytest.mark.asyncio* for API consistency with `pytest_asyncio.fixture`. Users are encouraged to use the *loop\_scope* keyword argument, which does exactly the same. - Raises an error when passing *scope* or *loop\_scope* as a positional argument to `@pytest.mark.asyncio`. [#​812](https://github.com/pytest-dev/pytest-asyncio/issues/812) - Fixes a bug that caused module-scoped async fixtures to fail when reused in other modules [#​862](https://github.com/pytest-dev/pytest-asyncio/issues/862) [#​668](https://github.com/pytest-dev/pytest-asyncio/issues/668) ### [`v0.23.8`](https://github.com/pytest-dev/pytest-asyncio/releases/tag/v0.23.8): pytest-asyncio 0.23.8 [Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.23.7...v0.23.8) ### 0.23.8 (2024-07-17) - Fixes a bug that caused duplicate markers in async tests [#​813](https://github.com/pytest-dev/pytest-asyncio/issues/813) #### Known issues As of v0.23, pytest-asyncio attaches an asyncio event loop to each item of the test suite (i.e. session, packages, modules, classes, functions) and allows tests to be run in those loops when marked accordingly. Pytest-asyncio currently assumes that async fixture scope is correlated with the new event loop scope. This prevents fixtures from being evaluated independently from the event loop scope and breaks some existing test suites (see [#​706](https://github.com/pytest-dev/pytest-asyncio/issues/706)). For example, a test suite may require all fixtures and tests to run in the same event loop, but have async fixtures that are set up and torn down for each module. If you're affected by this issue, please continue using the v0.21 release, until it is resolved. </details> <details> <summary>celery/pytest-celery (pytest-celery)</summary> ### [`v1.2.1`](https://github.com/celery/pytest-celery/blob/HEAD/Changelog.rst#121) [Compare Source](https://github.com/celery/pytest-celery/compare/v1.2.0...v1.2.1) \===== :release-date: 30 July, 2025 :release-by: Tomer Nosrati ### [`v1.2.0`](https://github.com/celery/pytest-celery/blob/HEAD/Changelog.rst#120) [Compare Source](https://github.com/celery/pytest-celery/compare/v1.1.3...v1.2.0) \===== :release-date: 21 February, 2025 :release-by: Tomer Nosrati ### [`v1.1.3`](https://github.com/celery/pytest-celery/blob/HEAD/Changelog.rst#113) [Compare Source](https://github.com/celery/pytest-celery/compare/v1.1.2...v1.1.3) \===== :release-date: 20 September, 2024 :release-by: Tomer Nosrati ### [`v1.1.2`](https://github.com/celery/pytest-celery/blob/HEAD/Changelog.rst#112) [Compare Source](https://github.com/celery/pytest-celery/compare/v1.1.1...v1.1.2) \===== :release-date: 14 September, 2024 :release-by: Tomer Nosrati ### [`v1.1.1`](https://github.com/celery/pytest-celery/blob/HEAD/Changelog.rst#111) [Compare Source](https://github.com/celery/pytest-celery/compare/v1.1.0...v1.1.1) \===== :release-date: 12 August, 2024 :release-by: Tomer Nosrati ### [`v1.1.0`](https://github.com/celery/pytest-celery/blob/HEAD/Changelog.rst#110) [Compare Source](https://github.com/celery/pytest-celery/compare/v1.0.1...v1.1.0) \===== :release-date: 11 August, 2024 :release-by: Tomer Nosrati ### [`v1.0.1`](https://github.com/celery/pytest-celery/blob/HEAD/Changelog.rst#101) [Compare Source](https://github.com/celery/pytest-celery/compare/v1.0.0...v1.0.1) \===== :release-date: 17 July, 2024 :release-by: Tomer Nosrati </details> <details> <summary>bloomberg/pytest-memray (pytest-memray)</summary> ### [`v1.8.0`](https://github.com/bloomberg/pytest-memray/releases/tag/v1.8.0) [Compare Source](https://github.com/bloomberg/pytest-memray/compare/1.7.0...v1.8.0) #### What's Changed - Bump pypa/gh-action-pypi-publish from 1.9.0 to 1.10.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​124](https://github.com/bloomberg/pytest-memray/pull/124) - Bump pypa/gh-action-pypi-publish from 1.10.0 to 1.10.1 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​125](https://github.com/bloomberg/pytest-memray/pull/125) - Bump pypa/gh-action-pypi-publish from 1.10.1 to 1.10.2 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​127](https://github.com/bloomberg/pytest-memray/pull/127) - Bump pypa/gh-action-pypi-publish from 1.10.2 to 1.11.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​129](https://github.com/bloomberg/pytest-memray/pull/129) - Bump pypa/gh-action-pypi-publish from 1.11.0 to 1.12.4 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​139](https://github.com/bloomberg/pytest-memray/pull/139) - Declare 3.14 support by [@​godlygeek](https://github.com/godlygeek) in [#​148](https://github.com/bloomberg/pytest-memray/pull/148) - Bump actions/download-artifact from 4 to 5 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​146](https://github.com/bloomberg/pytest-memray/pull/146) - Bump actions/checkout from 4 to 5 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​147](https://github.com/bloomberg/pytest-memray/pull/147) - Release 1.8.0 by [@​pablogsal](https://github.com/pablogsal) in [#​149](https://github.com/bloomberg/pytest-memray/pull/149) **Full Changelog**: <https://github.com/bloomberg/pytest-memray/compare/1.7.0...v1.8.0> </details> <details> <summary>pytest-dev/pytest-mock (pytest-mock)</summary> ### [`v3.15.1`](https://github.com/pytest-dev/pytest-mock/blob/HEAD/CHANGELOG.rst#3151) [Compare Source](https://github.com/pytest-dev/pytest-mock/compare/v3.15.0...v3.15.1) *2025-09-16* - `#​529 <https://github.com/pytest-dev/pytest-mock/issues/529>`\_: Fixed `itertools._tee object has no attribute error` -- now `duplicate_iterators=True` must be passed to `mocker.spy` to duplicate iterators. ### [`v3.15.0`](https://github.com/pytest-dev/pytest-mock/blob/HEAD/CHANGELOG.rst#3150) [Compare Source](https://github.com/pytest-dev/pytest-mock/compare/v3.14.1...v3.15.0) *2025-09-04* - Python 3.8 (EOL) is no longer supported. - `#​524 <https://github.com/pytest-dev/pytest-mock/pull/524>`\_: Added `spy_return_iter` to `mocker.spy`, which contains a duplicate of the return value of the spied method if it is an `Iterator`. ### [`v3.14.1`](https://github.com/pytest-dev/pytest-mock/blob/HEAD/CHANGELOG.rst#3141-2025-05-26) [Compare Source](https://github.com/pytest-dev/pytest-mock/compare/v3.14.0...v3.14.1) - `#​503 <https://github.com/pytest-dev/pytest-mock/pull/503>`\_: Python 3.14 is now officially supported. </details> <details> <summary>jbasko/pytest-random-order (pytest-random-order)</summary> ### [`v1.2.0`](https://github.com/jbasko/pytest-random-order/compare/v1.1.1...v1.2.0) [Compare Source](https://github.com/jbasko/pytest-random-order/compare/v1.1.1...v1.2.0) </details> <details> <summary>python-gitlab/python-gitlab (python-gitlab)</summary> ### [`v6.5.0`](https://github.com/python-gitlab/python-gitlab/blob/HEAD/CHANGELOG.md#v650-2025-10-17) [Compare Source](https://github.com/python-gitlab/python-gitlab/compare/v6.4.0...v6.5.0) ##### Bug Fixes - **semantic-release**: Enable CHANGELOG.md generation ([`fb9693b`](https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47)) ##### Continuous Integration - **stale**: Fix permission for stale action and allow manual run ([`9357a37`](https://github.com/python-gitlab/python-gitlab/commit/9357a374702dcc8049a6d8af636f48c736d3f160)) ##### Documentation - **pull\_mirror**: Fix incorrect start() method usage example ([`2acac19`](https://github.com/python-gitlab/python-gitlab/commit/2acac19356c8624def90c7e54237b256bceece18)) ##### Features - **api**: Add content\_ref and dry\_run\_ref parameters to ProjectCiLintManager ([`e8d2538`](https://github.com/python-gitlab/python-gitlab/commit/e8d2538cdf85a7c57babbc00074efbdab97548cd)) - **users**: Implement 'skip\_confirmation' in users 'emails' creation ([`2981730`](https://github.com/python-gitlab/python-gitlab/commit/298173017be387f26aa0828cae1e9a48e3cce328)) ### [`v6.4.0`](https://github.com/python-gitlab/python-gitlab/blob/HEAD/CHANGELOG.md#v640-2025-09-28) [Compare Source](https://github.com/python-gitlab/python-gitlab/compare/v6.3.0...v6.4.0) ##### Features - **users**: Implement missing arguments in users 'list' ([`99923d4`](https://github.com/python-gitlab/python-gitlab/commit/99923d40dcb4f32f02bcbc5e8ef5ec4b77e3cb02)) - **users**: Sort 'user list' arguments against documentation ([`99923d4`](https://github.com/python-gitlab/python-gitlab/commit/99923d40dcb4f32f02bcbc5e8ef5ec4b77e3cb02)) ### [`v6.3.0`](https://github.com/python-gitlab/python-gitlab/blob/HEAD/CHANGELOG.md#v630-2025-08-28) [Compare Source](https://github.com/python-gitlab/python-gitlab/compare/v6.2.0...v6.3.0) ##### Features - Add sync method to force remote mirror updates ([`f3c6678`](https://github.com/python-gitlab/python-gitlab/commit/f3c6678482b7ca35b1dd1e3bc49fc0c56cd03639)) - **api**: Add missing ProjectJob list filters ([`5fe0e71`](https://github.com/python-gitlab/python-gitlab/commit/5fe0e715448b00a666f76cdce6db321686f6a271)) - **api**: Add missing ProjectPackageManager list filters ([`b1696be`](https://github.com/python-gitlab/python-gitlab/commit/b1696be5fb223028755e303069e23e42a11cab42)) - **users**: Implement support for 'admins' in administrators 'list' ([`aaed51c`](https://github.com/python-gitlab/python-gitlab/commit/aaed51cdec65c8acabe8b9a39fd18c7e1e48519c)) ### [`v6.2.0`](https://github.com/python-gitlab/python-gitlab/blob/HEAD/CHANGELOG.md#v620-2025-07-28) [Compare Source](https://github.com/python-gitlab/python-gitlab/compare/v6.1.0...v6.2.0) ##### Build System - **release**: Use correct python-semantic-release/publish-action ([`2f20634`](https://github.com/python-gitlab/python-gitlab/commit/2f20634b9700bc802177278ffdd7bdf83ef1605a)) ##### Continuous Integration - **stale**: Improve formatting of stale message ([`0ef20d1`](https://github.com/python-gitlab/python-gitlab/commit/0ef20d1b0ee6cd82c4e34003aca4c0c72935f4d9)) - **stale**: Increase `operations-per-run` to 500 ([`326e1a4`](https://github.com/python-gitlab/python-gitlab/commit/326e1a46881467f41dc3de5f060ac654924fbe40)) ##### Features - **api**: Add ListMixin to ProjectIssueDiscussionNoteManager ([`f908f0e`](https://github.com/python-gitlab/python-gitlab/commit/f908f0e82840a5df374e8fbfb1298608d23f02bd)) - **api**: Add ListMixin to ProjectMergeRequestDiscussionNoteManager ([`865339a`](https://github.com/python-gitlab/python-gitlab/commit/865339ac037fb125280180b05a2c4e44067dc5e9)) ### [`v6.1.0`](https://github.com/python-gitlab/python-gitlab/blob/HEAD/CHANGELOG.md#v610-2025-06-28) [Compare Source](https://github.com/python-gitlab/python-gitlab/compare/v6.0.0...v6.1.0) ##### Chores - Update to mypy 1.16.0 and resolve issues found ([`f734c58`](https://github.com/python-gitlab/python-gitlab/commit/f734c586e3fe5a0e866bcf60030107ca142fa763)) ##### Documentation - Update CONTRIBUTING.rst with policy on issue management ([`45dda50`](https://github.com/python-gitlab/python-gitlab/commit/45dda50ff4c0e01307480befa86498600563f818)) ##### Features - **api**: Add listing user contributed projects ([`98c1307`](https://github.com/python-gitlab/python-gitlab/commit/98c13074127ae46d85545498746d55c8b75aef48)) - **api**: Add support for project tag list filters ([`378a836`](https://github.com/python-gitlab/python-gitlab/commit/378a836bf5744ca6c9409dd60899e5d2f90b55be)) - **api**: Pipeline inputs support ([#​3194](https://github.com/python-gitlab/python-gitlab/pull/3194), [`306c4b1`](https://github.com/python-gitlab/python-gitlab/commit/306c4b1931e2b03d7cbcef5773668e876d5644b1)) - **const**: Add PLANNER\_ACCESS constant ([`ba6f174`](https://github.com/python-gitlab/python-gitlab/commit/ba6f174896f908ba711e1e3e8ebf4692c86bd3d4)) - **groups**: Add protectedbranches to group class ([#​3164](https://github.com/python-gitlab/python-gitlab/pull/3164), [`bfd31a8`](https://github.com/python-gitlab/python-gitlab/commit/bfd31a867547dffb2c2d54127e184fefa058cb30)) </details> <details> <summary>indygreg/python-zstandard (zstandard)</summary> ### [`v0.25.0`](https://github.com/indygreg/python-zstandard/releases/tag/0.25.0) [Compare Source](https://github.com/indygreg/python-zstandard/compare/0.24.0...0.25.0) - PyO3 Rust created upgraded from 0.24 to 0.25. ([#​273](https://github.com/indygreg/python-zstandard/issues/273)) - We now use `Py_REFCNT(obj)` instead of accessing `(*obj)->ob_refcnt` directly. This fixes a nogil / multi-threaded compile error. ([#​201](https://github.com/indygreg/python-zstandard/issues/201), [#​275](https://github.com/indygreg/python-zstandard/issues/275)) - A zstandard commit to fix qsort detection on BSD operating systems has been backported. ([#​272](https://github.com/indygreg/python-zstandard/issues/272)) - The `PYTHON_ZSTANDARD_IMPORT_POLICY` environment variable now has leading and trailing whitespace stripped. Values like ` cffi` and `cffi ` are now equivalent to `cffi`. - The CI jobs for building wheels have been overhauled to always use `cibuildwheel` and `uv` (where possible). This change should be backwards compatible. But wheel building for this project has historically been fragile and there may be unwanted changes. We're optimistic that standardizing on uv (except for musllinux ppc64le and s390x where uv isn't available) will lead to more stability over time. - CI now runs tests against the wheels we distribute. Previously, we ran tests against a separate build that was theoretically identical. But the builds may have been subtly different, leading to preventable bugs in our wheels. (Enabling this test coverage did not uncover any failures.) - The `pyproject.toml` build backend has been switched from `setuptools.build_meta:__legacy__` to `setuptools.build_meta`. - The setuptools build dependency has been upgraded from <69.0.0 to >=77.0.0. Modern versions of setuptools broke `--config-settings=--build-option=...` as part of implementing PEP 660. A workaround is to use `--config-settings=--global-option=...` instead. `--global-option` apparently is deprecated and the setuptools folks have yet to figure out how to thread config settings into `setup.py` invocations. (`--build-option` is sent to the `build_wheel` command but not the `build_editable` command.) - Python 3.14 wheels are now built with `manylinux_2_28` (versus `manylinux2014`) for older Python versions. This may raise the minimum glibc version, effectively dropping support for Debian 8 and 9, Ubuntu 13.10 through 18.04, Fedora 19 to 28, and RHEL/Centos 7. However, in practice most platforms don't container newer glibc symbols and are still ABI compatible with `manylinux2014` and glibc 2.17. - We now require cffi >= 2.0.0b on Python 3.14. <3.14 still requires 1.17. ([#​274](https://github.com/indygreg/python-zstandard/issues/274)) - The cffi backend is now automatically disabled for free-threaded builds on Python <3.14, as cffi didn't implement free-threaded support until the 2.0 release. ([#​274](https://github.com/indygreg/python-zstandard/issues/274)) - Added CI coverage for free-threaded CPython 3.13 and 3.14. We do not yet formally support free-threaded builds. ([#​276](https://github.com/indygreg/python-zstandard/issues/276)) - The C and Rust backends now declare the GIL as unused. - The `pythoncapi_compat.h` file has been upgraded to the latest version. ([#​278](https://github.com/indygreg/python-zstandard/issues/278)) - `setup.py` now depends on `packaging` and uses `packaging.version.Version` for version comparisons. This removes some deprecation warnings from usage of legacy distutils `Version` classes. - Relax run-time libzstd version checking in C extension from exactly 1.5.7 to >=1.5.6. ([#​254](https://github.com/indygreg/python-zstandard/issues/254), [#​267](https://github.com/indygreg/python-zstandard/issues/267)) - C extension types now (correctly) declare their fully qualified type names as `zstandard.backend_c.*` versus `zstd.*` before. The names have been subtly broken for years. We believe the only practical exposure to this change is via pickling (possibly encountered when using the `multiprocessing` or `concurrent.futures` packages), which would fail to pickle types like `ZstdError` before since the fully qualified type name referenced an incorrect and likely missing package (`zstd`). ([#​248](https://github.com/indygreg/python-zstandard/issues/248)) ### [`v0.24.0`](https://github.com/indygreg/python-zstandard/releases/tag/0.24.0) [Compare Source](https://github.com/indygreg/python-zstandard/compare/0.23.0...0.24.0) ### Backwards Compatibility Notes - Support for Python 3.8 has been dropped because it reached end of life. Python 3.9 is the minimum supported Python version. The code should still be compatible with Python 3.8 and removing of version checks from `setup.py` will likely yield a working install. However, this is not officially supported. ### Changes - Bundled zstd library upgraded from 1.5.6 to 1.5.7. ([#​255](https://github.com/indygreg/python-zstandard/issues/255)) - We now use and require cffi 1.17.0 or newer. Previously, the constraint was >=1.11.0 on Python <3.13. - The `pyproject.toml` file now defines a `[project]` section. - We now use GitHub's native ARM Linux runners to build wheels and run tests. Previously, Linux ARM wheels were built inside a QEMU virtualized environment and we didn't run tests on this platform. - We now use GitHub's native ARM Windows runners to build wheels and run tests. Previously, Windows ARM wheels were cross compiled from an x86-64 runner and we never ran tests for the Windows ARM platform. - We now `collections.abs.Buffer` on Python 3.12+ instead of `typing.ByteString`, as `typing.ByteString` was dep…
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Commit 1072c78 (#17148) converted all quoted types into
RawExpressionType, which raised anAssertionErrorwhenaccepting aTypeTriggersVisitor.