Path to this page:
Subject: CVS commit: pkgsrc/devel/py-pylint
From: Thomas Klausner
Date: 2024-09-22 18:39:11
Message id: 20240922163912.01EE6FC74@cvs.NetBSD.org
Log Message:
py-pylint: update to 3.3.0.
What's new in Pylint 3.3.0?
---------------------------
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``).
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__`.
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`.
- 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`.
- Add `using-assignment-expression-in-unsupported-version` for uses of `:=` \
(walrus operator)
on Python versions below 3.8 provided with `--py-version`.
- Add `using-positional-only-args-in-unsupported-version` for uses of \
positional-only args on
Python versions below 3.8 provided with `--py-version`.
- Add ``unnecessary-default-type-args`` to the ``typing`` extension to detect the use
of unnecessary default type args for ``typing.Generator`` and \
``typing.AsyncGenerator``.
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.
- Fix a false negative for `await-outside-async` when await is inside Lambda.
- Fix a false negative for ``duplicate-argument-name`` by including \
``positional-only``, ``*args`` and ``**kwargs`` arguments in the check.
- Fix false negative for `multiple-statements` when multiple statements are \
present on `else` and `finally` lines of `try`.
- 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.
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`.
- 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.
- 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.
- Improve file discovery for directories that are not python packages.
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.
- Add support for Python 3.13.
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'.
- 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.
Files: