pylint-dev/pylint (pylint)
### [`v3.2.7`](https://togithub.com/pylint-dev/pylint/releases/tag/v3.2.7)
[Compare Source](https://togithub.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://togithub.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://togithub.com/pylint-dev/pylint/issues/9865)
- Fix a crash in `undefined-loop-variable` when providing the `iterable` argument to `enumerate()`.
Closes [#9875](https://togithub.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://togithub.com/pylint-dev/pylint/issues/9883)
### [`v3.2.6`](https://togithub.com/pylint-dev/pylint/releases/tag/v3.2.6)
[Compare Source](https://togithub.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://togithub.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://togithub.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://togithub.com/pylint-dev/pylint/issues/9765)
- Treat `assert_never()` the same way when imported from `typing_extensions`.
Closes [#9780](https://togithub.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://togithub.com/pylint-dev/pylint/issues/9800)
## Other Bug Fixes
- Fix an `AssertionError` arising from properties that return partial functions.
Closes [#9214](https://togithub.com/pylint-dev/pylint/issues/9214)
- Fix a crash when a subclass extends `__slots__`.
Closes [#9814](https://togithub.com/pylint-dev/pylint/issues/9814)
### [`v3.2.5`](https://togithub.com/pylint-dev/pylint/releases/tag/v3.2.5)
[Compare Source](https://togithub.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://togithub.com/pylint-dev/pylint/issues/9751)
### [`v3.2.4`](https://togithub.com/pylint-dev/pylint/releases/tag/v3.2.4)
[Compare Source](https://togithub.com/pylint-dev/pylint/compare/v3.2.3...v3.2.4)
## What's new in Pylint 3.2.4?
Release date: 2024-06-26
## False Positives Fixed
- Prevent emitting `possibly-used-before-assignment` when relying on names
only potentially not defined in conditional blocks guarded by functions
annotated with `typing.Never` or `typing.NoReturn`.
Closes [#9674](https://togithub.com/pylint-dev/pylint/issues/9674)
## Other Bug Fixes
- Fixed a crash when the lineno of a variable used as an annotation wasn't available for `undefined-variable`.
Closes [#8866](https://togithub.com/pylint-dev/pylint/issues/8866)
- Fixed a crash when the `start` value in an `enumerate` was non-constant and impossible to infer
(like in`enumerate(apples, start=int(random_apple_index)`) for `unnecessary-list-index-lookup`.
Closes [#9078](https://togithub.com/pylint-dev/pylint/issues/9078)
- Fixed a crash in `symilar` when the `-d` or `-i` short option were not properly recognized.
It's still impossible to do `-d=1` (you must do `-d 1`).
Closes [#9343](https://togithub.com/pylint-dev/pylint/issues/9343)
### [`v3.2.3`](https://togithub.com/pylint-dev/pylint/releases/tag/v3.2.3)
[Compare Source](https://togithub.com/pylint-dev/pylint/compare/v3.2.2...v3.2.3)
## False Positives Fixed
- Classes with only an Ellipsis (`...`) in their body do not trigger 'multiple-statements'
anymore if they are inlined (in accordance with black's 2024 style).
Closes [#9398](https://togithub.com/pylint-dev/pylint/issues/9398)
- Fix a false positive for `redefined-outer-name` when there is a name defined in an exception-handling block which shares the same name as a local variable that has been defined in a function body.
Closes [#9671](https://togithub.com/pylint-dev/pylint/issues/9671)
- Fix a false positive for `use-yield-from` when using the return value from the `yield` atom.
Closes [#9696](https://togithub.com/pylint-dev/pylint/issues/9696)
### [`v3.2.2`](https://togithub.com/pylint-dev/pylint/releases/tag/v3.2.2)
[Compare Source](https://togithub.com/pylint-dev/pylint/compare/v3.2.1...v3.2.2)
## What's new in Pylint 3.2.2?
Release date: 2024-05-20
## False Positives Fixed
- Fix multiple false positives for generic class syntax added in Python 3.12 (PEP 695).
Closes [#9406](https://togithub.com/pylint-dev/pylint/issues/9406)
- Exclude context manager without cleanup from
`contextmanager-generator-missing-cleanup` checks.
Closes [#9625](https://togithub.com/pylint-dev/pylint/issues/9625)
### [`v3.2.1`](https://togithub.com/pylint-dev/pylint/releases/tag/v3.2.1)
[Compare Source](https://togithub.com/pylint-dev/pylint/compare/v3.2.0...v3.2.1)
## What's new in Pylint 3.2.1?
Release date: 2024-05-18
## False Positives Fixed
- Exclude if/else branches containing terminating functions (e.g. `sys.exit()`)
from `possibly-used-before-assignment` checks.
Closes [#9627](https://togithub.com/pylint-dev/pylint/issues/9627)
- Don't emit `typevar-name-incorrect-variance` warnings for PEP 695 style TypeVars.
The variance is inferred automatically by the type checker.
Adding `_co` or `_contra` suffix can help to reason about TypeVar.
Refs [#9638](https://togithub.com/pylint-dev/pylint/issues/9638)
- Fix a false positive for `possibly-used-before-assignment` when using
`typing.assert_never()` (3.11+) to indicate exhaustiveness.
Closes [#9643](https://togithub.com/pylint-dev/pylint/issues/9643)
## Other Bug Fixes
- Fix a false negative for `--ignore-patterns` when the directory to be linted is specified using a dot(`.`) and all files are ignored instead of only the files whose name begin with a dot.
Closes [#9273](https://togithub.com/pylint-dev/pylint/issues/9273)
- Restore "errors / warnings by module" section to report output (with `-ry`).
Closes [#9145](https://togithub.com/pylint-dev/pylint/issues/9145)
- `trailing-comma-tuple` should now be correctly emitted when it was disabled globally
but enabled via local message control, after removal of an over-optimisation.
Refs [#9608](https://togithub.com/pylint-dev/pylint/issues/9608)
- Add `--prefer-stubs=yes` option to opt-in to the astroid 3.2 feature
that prefers `.pyi` stubs over same-named `.py` files. This has the
potential to reduce `no-member` errors but at the cost of more errors
such as `not-an-iterable` from function bodies appearing as `...`.
Defaults to `no`.
Closes [#9626](https://togithub.com/pylint-dev/pylint/issues/9626)
Closes [#9623](https://togithub.com/pylint-dev/pylint/issues/9623)
## Internal Changes
- Update astroid version to 3.2.1. This solves some reports of `RecursionError`
and also makes the *prefer .pyi stubs* feature in astroid 3.2.0 *opt-in*
with the aforementioned `--prefer-stubs=y` option.
Refs [#9139](https://togithub.com/pylint-dev/pylint/issues/9139)
### [`v3.2.0`](https://togithub.com/pylint-dev/pylint/releases/tag/v3.2.0)
[Compare Source](https://togithub.com/pylint-dev/pylint/compare/v3.1.1...v3.2.0)
## What's new in Pylint 3.2.0?
Release date: 2024-05-14
Of note: a `github` reporter, two new checks (`possibly-used-before-assignment` and `contextmanager-generator-missing-cleanup`), performance improvements, and an `astroid` upgrade providing support for `@overload` and `.pyi` stubs.
## New Features
- Understand `six.PY2` and `six.PY3` for conditional imports.
Closes [#3501](https://togithub.com/pylint-dev/pylint/issues/3501)
- A new `github` reporter has been added. This reporter returns the output of `pylint` in a format that
Github can use to automatically annotate code. Use it with `pylint --output-format=github` on your Github Workflows.
Closes [#9443](https://togithub.com/pylint-dev/pylint/issues/9443).
## New Checks
- Add check `possibly-used-before-assignment` when relying on names after an `if/else`
switch when one branch failed to define the name, raise, or return.
Closes [#1727](https://togithub.com/pylint-dev/pylint/issues/1727)
- Checks for generators that use contextmanagers that don't handle cleanup properly.
Is meant to raise visibilty on the case that a generator is not fully exhausted and the contextmanager is not cleaned up properly.
A contextmanager must yield a non-constant value and not handle cleanup for GeneratorExit.
The using generator must attempt to use the yielded context value `with x() as y` and not just `with x()`.
Closes [#2832](https://togithub.com/pylint-dev/pylint/issues/2832)
## False Negatives Fixed
- If and Try nodes are now checked for useless return statements as well.
Closes [#9449](https://togithub.com/pylint-dev/pylint/issues/9449).
- Fix false negative for `property-with-parameters` in the case of parameters which are `positional-only`, `keyword-only`, `variadic positional` or `variadic keyword`.
Closes [#9584](https://togithub.com/pylint-dev/pylint/issues/9584)
## False Positives Fixed
- pylint now understands the `@overload` decorator return values better.
Closes [#4696](https://togithub.com/pylint-dev/pylint/issues/4696)
Refs [#9606](https://togithub.com/pylint-dev/pylint/issues/9606)
## Performance Improvements
- Ignored modules are now not checked at all, instead of being checked and then
ignored. This should speed up the analysis of large codebases which have
ignored modules.
Closes [#9442](https://togithub.com/pylint-dev/pylint/issues/9442)
- ImportChecker's logic has been modified to avoid context files when possible. This makes it possible
to cache module searches on astroid and reduce execution times.
Refs [#9310](https://togithub.com/pylint-dev/pylint/issues/9310).
- An internal check for `trailing-comma-tuple` being enabled for a file or not is now
done once per file instead of once for each token.
Refs [#9608](https://togithub.com/pylint-dev/pylint/issues/9608).
### [`v3.1.1`](https://togithub.com/pylint-dev/pylint/releases/tag/v3.1.1)
[Compare Source](https://togithub.com/pylint-dev/pylint/compare/v3.1.0...v3.1.1)
## What's new in Pylint 3.1.1?
Release date: 2024-05-13
## False Positives Fixed
- Treat `attrs.define` and `attrs.frozen` as dataclass decorators in
`too-few-public-methods` check.
Closes [#9345](https://togithub.com/pylint-dev/pylint/issues/9345)
- Fix a false positive with `singledispatchmethod-function` when a method is decorated with both `functools.singledispatchmethod` and `staticmethod`.
Closes [#9531](https://togithub.com/pylint-dev/pylint/issues/9531)
- Fix a false positive for `consider-using-dict-items` when iterating using `keys()` and then deleting an item using the key as a lookup.
Closes [#9554](https://togithub.com/pylint-dev/pylint/issues/9554)
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
â™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
==3.1.0
->==3.2.7
Release Notes
pylint-dev/pylint (pylint)
### [`v3.2.7`](https://togithub.com/pylint-dev/pylint/releases/tag/v3.2.7) [Compare Source](https://togithub.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://togithub.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://togithub.com/pylint-dev/pylint/issues/9865) - Fix a crash in `undefined-loop-variable` when providing the `iterable` argument to `enumerate()`. Closes [#9875](https://togithub.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://togithub.com/pylint-dev/pylint/issues/9883) ### [`v3.2.6`](https://togithub.com/pylint-dev/pylint/releases/tag/v3.2.6) [Compare Source](https://togithub.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://togithub.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://togithub.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://togithub.com/pylint-dev/pylint/issues/9765) - Treat `assert_never()` the same way when imported from `typing_extensions`. Closes [#9780](https://togithub.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://togithub.com/pylint-dev/pylint/issues/9800) ## Other Bug Fixes - Fix an `AssertionError` arising from properties that return partial functions. Closes [#9214](https://togithub.com/pylint-dev/pylint/issues/9214) - Fix a crash when a subclass extends `__slots__`. Closes [#9814](https://togithub.com/pylint-dev/pylint/issues/9814) ### [`v3.2.5`](https://togithub.com/pylint-dev/pylint/releases/tag/v3.2.5) [Compare Source](https://togithub.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://togithub.com/pylint-dev/pylint/issues/9751) ### [`v3.2.4`](https://togithub.com/pylint-dev/pylint/releases/tag/v3.2.4) [Compare Source](https://togithub.com/pylint-dev/pylint/compare/v3.2.3...v3.2.4) ## What's new in Pylint 3.2.4? Release date: 2024-06-26 ## False Positives Fixed - Prevent emitting `possibly-used-before-assignment` when relying on names only potentially not defined in conditional blocks guarded by functions annotated with `typing.Never` or `typing.NoReturn`. Closes [#9674](https://togithub.com/pylint-dev/pylint/issues/9674) ## Other Bug Fixes - Fixed a crash when the lineno of a variable used as an annotation wasn't available for `undefined-variable`. Closes [#8866](https://togithub.com/pylint-dev/pylint/issues/8866) - Fixed a crash when the `start` value in an `enumerate` was non-constant and impossible to infer (like in`enumerate(apples, start=int(random_apple_index)`) for `unnecessary-list-index-lookup`. Closes [#9078](https://togithub.com/pylint-dev/pylint/issues/9078) - Fixed a crash in `symilar` when the `-d` or `-i` short option were not properly recognized. It's still impossible to do `-d=1` (you must do `-d 1`). Closes [#9343](https://togithub.com/pylint-dev/pylint/issues/9343) ### [`v3.2.3`](https://togithub.com/pylint-dev/pylint/releases/tag/v3.2.3) [Compare Source](https://togithub.com/pylint-dev/pylint/compare/v3.2.2...v3.2.3) ## False Positives Fixed - Classes with only an Ellipsis (`...`) in their body do not trigger 'multiple-statements' anymore if they are inlined (in accordance with black's 2024 style). Closes [#9398](https://togithub.com/pylint-dev/pylint/issues/9398) - Fix a false positive for `redefined-outer-name` when there is a name defined in an exception-handling block which shares the same name as a local variable that has been defined in a function body. Closes [#9671](https://togithub.com/pylint-dev/pylint/issues/9671) - Fix a false positive for `use-yield-from` when using the return value from the `yield` atom. Closes [#9696](https://togithub.com/pylint-dev/pylint/issues/9696) ### [`v3.2.2`](https://togithub.com/pylint-dev/pylint/releases/tag/v3.2.2) [Compare Source](https://togithub.com/pylint-dev/pylint/compare/v3.2.1...v3.2.2) ## What's new in Pylint 3.2.2? Release date: 2024-05-20 ## False Positives Fixed - Fix multiple false positives for generic class syntax added in Python 3.12 (PEP 695). Closes [#9406](https://togithub.com/pylint-dev/pylint/issues/9406) - Exclude context manager without cleanup from `contextmanager-generator-missing-cleanup` checks. Closes [#9625](https://togithub.com/pylint-dev/pylint/issues/9625) ### [`v3.2.1`](https://togithub.com/pylint-dev/pylint/releases/tag/v3.2.1) [Compare Source](https://togithub.com/pylint-dev/pylint/compare/v3.2.0...v3.2.1) ## What's new in Pylint 3.2.1? Release date: 2024-05-18 ## False Positives Fixed - Exclude if/else branches containing terminating functions (e.g. `sys.exit()`) from `possibly-used-before-assignment` checks. Closes [#9627](https://togithub.com/pylint-dev/pylint/issues/9627) - Don't emit `typevar-name-incorrect-variance` warnings for PEP 695 style TypeVars. The variance is inferred automatically by the type checker. Adding `_co` or `_contra` suffix can help to reason about TypeVar. Refs [#9638](https://togithub.com/pylint-dev/pylint/issues/9638) - Fix a false positive for `possibly-used-before-assignment` when using `typing.assert_never()` (3.11+) to indicate exhaustiveness. Closes [#9643](https://togithub.com/pylint-dev/pylint/issues/9643) ## Other Bug Fixes - Fix a false negative for `--ignore-patterns` when the directory to be linted is specified using a dot(`.`) and all files are ignored instead of only the files whose name begin with a dot. Closes [#9273](https://togithub.com/pylint-dev/pylint/issues/9273) - Restore "errors / warnings by module" section to report output (with `-ry`). Closes [#9145](https://togithub.com/pylint-dev/pylint/issues/9145) - `trailing-comma-tuple` should now be correctly emitted when it was disabled globally but enabled via local message control, after removal of an over-optimisation. Refs [#9608](https://togithub.com/pylint-dev/pylint/issues/9608) - Add `--prefer-stubs=yes` option to opt-in to the astroid 3.2 feature that prefers `.pyi` stubs over same-named `.py` files. This has the potential to reduce `no-member` errors but at the cost of more errors such as `not-an-iterable` from function bodies appearing as `...`. Defaults to `no`. Closes [#9626](https://togithub.com/pylint-dev/pylint/issues/9626) Closes [#9623](https://togithub.com/pylint-dev/pylint/issues/9623) ## Internal Changes - Update astroid version to 3.2.1. This solves some reports of `RecursionError` and also makes the *prefer .pyi stubs* feature in astroid 3.2.0 *opt-in* with the aforementioned `--prefer-stubs=y` option. Refs [#9139](https://togithub.com/pylint-dev/pylint/issues/9139) ### [`v3.2.0`](https://togithub.com/pylint-dev/pylint/releases/tag/v3.2.0) [Compare Source](https://togithub.com/pylint-dev/pylint/compare/v3.1.1...v3.2.0) ## What's new in Pylint 3.2.0? Release date: 2024-05-14 Of note: a `github` reporter, two new checks (`possibly-used-before-assignment` and `contextmanager-generator-missing-cleanup`), performance improvements, and an `astroid` upgrade providing support for `@overload` and `.pyi` stubs. ## New Features - Understand `six.PY2` and `six.PY3` for conditional imports. Closes [#3501](https://togithub.com/pylint-dev/pylint/issues/3501) - A new `github` reporter has been added. This reporter returns the output of `pylint` in a format that Github can use to automatically annotate code. Use it with `pylint --output-format=github` on your Github Workflows. Closes [#9443](https://togithub.com/pylint-dev/pylint/issues/9443). ## New Checks - Add check `possibly-used-before-assignment` when relying on names after an `if/else` switch when one branch failed to define the name, raise, or return. Closes [#1727](https://togithub.com/pylint-dev/pylint/issues/1727) - Checks for generators that use contextmanagers that don't handle cleanup properly. Is meant to raise visibilty on the case that a generator is not fully exhausted and the contextmanager is not cleaned up properly. A contextmanager must yield a non-constant value and not handle cleanup for GeneratorExit. The using generator must attempt to use the yielded context value `with x() as y` and not just `with x()`. Closes [#2832](https://togithub.com/pylint-dev/pylint/issues/2832) ## False Negatives Fixed - If and Try nodes are now checked for useless return statements as well. Closes [#9449](https://togithub.com/pylint-dev/pylint/issues/9449). - Fix false negative for `property-with-parameters` in the case of parameters which are `positional-only`, `keyword-only`, `variadic positional` or `variadic keyword`. Closes [#9584](https://togithub.com/pylint-dev/pylint/issues/9584) ## False Positives Fixed - pylint now understands the `@overload` decorator return values better. Closes [#4696](https://togithub.com/pylint-dev/pylint/issues/4696) Refs [#9606](https://togithub.com/pylint-dev/pylint/issues/9606) ## Performance Improvements - Ignored modules are now not checked at all, instead of being checked and then ignored. This should speed up the analysis of large codebases which have ignored modules. Closes [#9442](https://togithub.com/pylint-dev/pylint/issues/9442) - ImportChecker's logic has been modified to avoid context files when possible. This makes it possible to cache module searches on astroid and reduce execution times. Refs [#9310](https://togithub.com/pylint-dev/pylint/issues/9310). - An internal check for `trailing-comma-tuple` being enabled for a file or not is now done once per file instead of once for each token. Refs [#9608](https://togithub.com/pylint-dev/pylint/issues/9608). ### [`v3.1.1`](https://togithub.com/pylint-dev/pylint/releases/tag/v3.1.1) [Compare Source](https://togithub.com/pylint-dev/pylint/compare/v3.1.0...v3.1.1) ## What's new in Pylint 3.1.1? Release date: 2024-05-13 ## False Positives Fixed - Treat `attrs.define` and `attrs.frozen` as dataclass decorators in `too-few-public-methods` check. Closes [#9345](https://togithub.com/pylint-dev/pylint/issues/9345) - Fix a false positive with `singledispatchmethod-function` when a method is decorated with both `functools.singledispatchmethod` and `staticmethod`. Closes [#9531](https://togithub.com/pylint-dev/pylint/issues/9531) - Fix a false positive for `consider-using-dict-items` when iterating using `keys()` and then deleting an item using the key as a lookup. Closes [#9554](https://togithub.com/pylint-dev/pylint/issues/9554)Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
â™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.