pylint-dev/pylint (pylint)
### [`v3.3.0`](https://redirect.github.com/pylint-dev/pylint/releases/tag/v3.3.0)
[Compare Source](https://redirect.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://redirect.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://redirect.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://redirect.github.com/pylint-dev/pylint/issues/9099)
- Add `using-exception-group-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://redirect.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://redirect.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://redirect.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://redirect.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://redirect.github.com/pylint-dev/pylint/issues/7565).
- Fix a false negative for `await-outside-async` when await is inside Lambda.
Refs [#9653](https://redirect.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://redirect.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://redirect.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://redirect.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://redirect.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://redirect.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://redirect.github.com/pylint-dev/pylint/issues/9727)
- Improve file discovery for directories that are not python packages.
Closes [#9764](https://redirect.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://redirect.github.com/pylint-dev/pylint/issues/9774)
- Add support for Python 3.13.
Refs [#9852](https://redirect.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://redirect.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://redirect.github.com/pylint-dev/pylint/issues/9925)
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 is behind base branch, 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.2.7
->3.3.0
Release Notes
pylint-dev/pylint (pylint)
### [`v3.3.0`](https://redirect.github.com/pylint-dev/pylint/releases/tag/v3.3.0) [Compare Source](https://redirect.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://redirect.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://redirect.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://redirect.github.com/pylint-dev/pylint/issues/9099) - Add `using-exception-group-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://redirect.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://redirect.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://redirect.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://redirect.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://redirect.github.com/pylint-dev/pylint/issues/7565). - Fix a false negative for `await-outside-async` when await is inside Lambda. Refs [#9653](https://redirect.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://redirect.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://redirect.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://redirect.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://redirect.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://redirect.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://redirect.github.com/pylint-dev/pylint/issues/9727) - Improve file discovery for directories that are not python packages. Closes [#9764](https://redirect.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://redirect.github.com/pylint-dev/pylint/issues/9774) - Add support for Python 3.13. Refs [#9852](https://redirect.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://redirect.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://redirect.github.com/pylint-dev/pylint/issues/9925)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 is behind base branch, 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.