- Update to 4.0.3:
* Add Enum dunder methods _generate_next_value_, _missing_, _numeric_repr_,
_add_alias_, and _add_value_alias_ to the list passed to
--good-dunder-names.
* Fixed false positive for invalid-name with typing.Annotated.
* Fix false positive for f-string-without-interpolation with template
strings when using format spec.
* Fix a false positive when an UPPER_CASED class attribute was raising an
invalid-name when typed with Final.
* Fix a false positive for unbalanced-tuple-unpacking when a tuple is
assigned to a function call and the structure of the function's return
value is ambiguous.
* Make 'ignore' option work as expected again.
* Fix crash for consider-using-assignment-expr when a variable annotation
without assignment is used as the if test expression.
* Fix crash for prefer-typing-namedtuple and consider-math-not-float when
a slice object is called.
* Fix false positive for invalid-name on a partially uninferable
module-level constant.
* Fix a false positive for invalid-name on exclusive module-level
assignments composed of three or more branches.
* Fix false positive for invalid-name for TypedDict instances.
* Fix false-positive for bare-name-capture-pattern if a case guard is used.
* Check enums created with the Enum() functional syntax to pass against the
--class-rgx for the invalid-name check, like other enums.
* Pylint now supports Python 3.14.
* Pylint's inference engine (astroid) is now much more precise,
understanding implicit booleanness and ternary expressions. The required
astroid version is now 4.0.0.
* Handling of invalid-name at the module level was patchy. Now,
OBS-URL: https://build.opensuse.org/request/show/1318121
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pylint?expand=0&rev=51
* Add Enum dunder methods _generate_next_value_, _missing_, _numeric_repr_,
_add_alias_, and _add_value_alias_ to the list passed to
--good-dunder-names.
* Fixed false positive for invalid-name with typing.Annotated.
* Fix false positive for f-string-without-interpolation with template
strings when using format spec.
* Fix a false positive when an UPPER_CASED class attribute was raising an
invalid-name when typed with Final.
* Fix a false positive for unbalanced-tuple-unpacking when a tuple is
assigned to a function call and the structure of the function's return
value is ambiguous.
* Make 'ignore' option work as expected again.
* Fix crash for consider-using-assignment-expr when a variable annotation
without assignment is used as the if test expression.
* Fix crash for prefer-typing-namedtuple and consider-math-not-float when
a slice object is called.
* Fix false positive for invalid-name on a partially uninferable
module-level constant.
* Fix a false positive for invalid-name on exclusive module-level
assignments composed of three or more branches.
* Fix false positive for invalid-name for TypedDict instances.
* Fix false-positive for bare-name-capture-pattern if a case guard is used.
* Check enums created with the Enum() functional syntax to pass against the
--class-rgx for the invalid-name check, like other enums.
* Pylint now supports Python 3.14.
* Pylint's inference engine (astroid) is now much more precise,
understanding implicit booleanness and ternary expressions. The required
astroid version is now 4.0.0.
* Handling of invalid-name at the module level was patchy. Now,
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=179
- update to 3.3.8:
* Fix false positives for `possibly-used-before-assignment`
when variables are exhaustively assigned within a `match` block.
* Fix false positive for `missing-raises-doc` and `missing-
yield-doc` when the method length is less than docstring-min-
length.
* Fix a false positive for ``unused-variable`` when multiple
except handlers bind the same name under a try block.
* Fix false-negative for ``used-before-assignment`` with ``from
__future__ import annotations`` in function definitions.
* 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.).
* Fix double underscores erroneously rendering as bold in
pyreverse's Mermaid output.
OBS-URL: https://build.opensuse.org/request/show/1304654
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pylint?expand=0&rev=50
* Fix false positives for `possibly-used-before-assignment`
when variables are exhaustively assigned within a `match` block.
* Fix false positive for `missing-raises-doc` and `missing-
yield-doc` when the method length is less than docstring-min-
length.
* Fix a false positive for ``unused-variable`` when multiple
except handlers bind the same name under a try block.
* Fix false-negative for ``used-before-assignment`` with ``from
__future__ import annotations`` in function definitions.
* 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.).
* Fix double underscores erroneously rendering as bold in
pyreverse's Mermaid output.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=177
* Comparisons between two calls to `type()` won't raise an
``unidiomatic-typecheck`` warning anymore, consistent with
the behavior applied only for ``==`` previously.
* Fixed a crash when importing a class decorator that did not
exist with the same name as a class attribute after the class
definition.
* Fix a crash caused by malformed format strings when using
`.format` with keyword arguments.
* 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.
* The algorithm used for ``no-member`` suggestions is now more
efficient and cuts the calculation when the distance score is
already above the threshold.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=171
- Update to 3.3.6:
* Fix a false positive for used-before-assignment when an inner function's
return type * annotation is a class defined at module scope.
* 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.
* Fix a false positive for invalid-getnewargs-ex-returned when the tuple or
dict has been assigned to a name.
* Remove getopt and optparse from the list of deprecated modules.
* Fixed conditional import x.y causing false positive
possibly-used-before-assignment.
* Fix a crash when something besides a class is found in an except handler.
* Fixed raising invalid-name when using camelCase for private methods with
two leading underscores.
* Fixes "skipped files" count calculation; the previous method was
displaying an arbitrary number.
* Fixes a crash that occurred when pylint was run in a container on a host
with cgroupsv2 and restrictions on CPU usage.
* Relaxed the requirements for isort so pylint can benefit from isort 6.
* Fix false positives for undefined-variable for classes using Python 3.12
generic type syntax.
* Fix a false positive for use-implicit-booleaness-not-len. No lint should
be emitted for generators (len is not defined for generators).
* Fix Unable to import 'collections.abc' (import-error) on Python 3.13.1.
* Fix a false positive for potential-index-error when an indexed iterable
contains a starred element that evaluates to more than one item.
* 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).
OBS-URL: https://build.opensuse.org/request/show/1267802
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pylint?expand=0&rev=46
* Fix a false positive for used-before-assignment when an inner function's
return type * annotation is a class defined at module scope.
* 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.
* Fix a false positive for invalid-getnewargs-ex-returned when the tuple or
dict has been assigned to a name.
* Remove getopt and optparse from the list of deprecated modules.
* Fixed conditional import x.y causing false positive
possibly-used-before-assignment.
* Fix a crash when something besides a class is found in an except handler.
* Fixed raising invalid-name when using camelCase for private methods with
two leading underscores.
* Fixes "skipped files" count calculation; the previous method was
displaying an arbitrary number.
* Fixes a crash that occurred when pylint was run in a container on a host
with cgroupsv2 and restrictions on CPU usage.
* Relaxed the requirements for isort so pylint can benefit from isort 6.
* Fix false positives for undefined-variable for classes using Python 3.12
generic type syntax.
* Fix a false positive for use-implicit-booleaness-not-len. No lint should
be emitted for generators (len is not defined for generators).
* Fix Unable to import 'collections.abc' (import-error) on Python 3.13.1.
* Fix a false positive for potential-index-error when an indexed iterable
contains a starred element that evaluates to more than one item.
* 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).
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=169
* Fix regression causing some f-strings to not be inferred as
strings.
- update to 3.3.0:
* 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``).
* 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__`.
* 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.
* 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``
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=163
- Update to 3.2.6:
* Quiet false positives for unexpected-keyword-arg when pylint cannot
determine which of two or more dynamically defined classes is being
instantiated.
* 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.
* Fix a regression that raised invalid-name on class attributes merely
overriding invalid names from an ancestor.
* Treat assert_never() the same way when imported from typing_extensions.
* Fix a false positive for consider-using-min-max-builtin when the
assignment target is an attribute.
* Fix an AssertionError arising from properties that return partial
functions.
* Fix a crash when a subclass extends __slots__.
- Refresh pytest-8.patch.
- Add patch support-astroid-3.3.patch:
* Support astroid >= 3.3.0.
OBS-URL: https://build.opensuse.org/request/show/1193321
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pylint?expand=0&rev=43
* Quiet false positives for unexpected-keyword-arg when pylint cannot
determine which of two or more dynamically defined classes is being
instantiated.
* 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.
* Fix a regression that raised invalid-name on class attributes merely
overriding invalid names from an ancestor.
* Treat assert_never() the same way when imported from typing_extensions.
* Fix a false positive for consider-using-min-max-builtin when the
assignment target is an attribute.
* Fix an AssertionError arising from properties that return partial
functions.
* Fix a crash when a subclass extends __slots__.
- Refresh pytest-8.patch.
- Add patch support-astroid-3.3.patch:
* Support astroid >= 3.3.0.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=161
- Add new patch to fix failing tests with pytest 8, pytest-8.patch
gh#pylint-dev/pylint#9576
- Skip some tests that still are failing with pytest 8,
gh#pylint-dev/pylint#9545
- update to 3.2.5:
* 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.
* 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``.
- update to 3.2.3:
* Classes with only an Ellipsis (``...``) in their body do not
trigger 'multiple-statements' anymore if they are inlined
* 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.
* Fix a false positive for ``use-yield-from`` when using the
return value from the ``yield`` atom.
- update to 3.2.2:
* Fix multiple false positives for generic class syntax added
in Python 3.12 (PEP 695).
* Exclude context manager without cleanup from
``contextmanager-generator-missing-cleanup`` checks.
- update to 3.2.1:
* Exclude if/else branches containing terminating functions
(e.g. `sys.exit()`) from `possibly-used-before-assignment`
checks.
* 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.
- update to 3.2.0:
* Understand `six.PY2` and `six.PY3` for conditional imports.
* Github can use to automatically annotate code. Use it with
`pylint --output-format=github` on your Github Workflows.
* 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.
* 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()`.
OBS-URL: https://build.opensuse.org/request/show/1186384
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pylint?expand=0&rev=42
* 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.
* 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``.
- update to 3.2.3:
* Classes with only an Ellipsis (``...``) in their body do not
trigger 'multiple-statements' anymore if they are inlined
* 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.
* Fix a false positive for ``use-yield-from`` when using the
return value from the ``yield`` atom.
- update to 3.2.2:
* Fix multiple false positives for generic class syntax added
in Python 3.12 (PEP 695).
* Exclude context manager without cleanup from
``contextmanager-generator-missing-cleanup`` checks.
- update to 3.2.1:
* Exclude if/else branches containing terminating functions
(e.g. `sys.exit()`) from `possibly-used-before-assignment`
checks.
* Don't emit ``typevar-name-incorrect-variance`` warnings for
PEP 695 style TypeVars.
* The variance is inferred automatically by the type checker.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=158
- update to 3.1.0:
* Two new checks--``use-yield-from``, ``deprecated-
attribute``-- and a smattering of bug fixes.
* Skip ``consider-using-join`` check for non-empty separators
if an ``suggest-join-with-non-empty-separator`` option is set
to ``no``.
* Discover ``.pyi`` files when linting.
* Check ``TypeAlias`` and ``TypeVar`` (PEP 695) nodes for
``invalid-name``.
* Support for resolving external toml files named pylintrc.toml
and .pylintrc.toml.
* Check for `.clear`, `.discard`, `.pop` and `remove` methods
being called on a set while it is being iterated over.
* New message `use-yield-from` added to the refactoring
checker. This message is emitted when yielding from a loop
can be replaced by `yield from`.
* Added a ``deprecated-attribute`` message to check deprecated
attributes in the stdlib.
* Exempt ``TypedDict`` from ``typing_extensions`` from ``too-
many-ancestor`` checks.
* Extend broad-exception-raised and broad-exception-caught to
except*.
* Fix a false-negative for unnecessary if blocks using a
different than expected ordering of arguments.
* For "import X", it will report "(standard/third party/first
party/local) import X"
* For "import X.Y" and "from X import Y", it will report
"(standard/third party/first party/local) import X.Y"
* The import category is specified to provide explanation as to
why pylint has issued the message and guidence to the
OBS-URL: https://build.opensuse.org/request/show/1160816
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pylint?expand=0&rev=41
* Two new checks--``use-yield-from``, ``deprecated-
attribute``-- and a smattering of bug fixes.
* Skip ``consider-using-join`` check for non-empty separators
if an ``suggest-join-with-non-empty-separator`` option is set
to ``no``.
* Discover ``.pyi`` files when linting.
* Check ``TypeAlias`` and ``TypeVar`` (PEP 695) nodes for
``invalid-name``.
* Support for resolving external toml files named pylintrc.toml
and .pylintrc.toml.
* Check for `.clear`, `.discard`, `.pop` and `remove` methods
being called on a set while it is being iterated over.
* New message `use-yield-from` added to the refactoring
checker. This message is emitted when yielding from a loop
can be replaced by `yield from`.
* Added a ``deprecated-attribute`` message to check deprecated
attributes in the stdlib.
* Exempt ``TypedDict`` from ``typing_extensions`` from ``too-
many-ancestor`` checks.
* Extend broad-exception-raised and broad-exception-caught to
except*.
* Fix a false-negative for unnecessary if blocks using a
different than expected ordering of arguments.
* For "import X", it will report "(standard/third party/first
party/local) import X"
* For "import X.Y" and "from X import Y", it will report
"(standard/third party/first party/local) import X.Y"
* The import category is specified to provide explanation as to
why pylint has issued the message and guidence to the
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=156
- update to 3.0.3:
* Fixed false positive for ``unnecessary-lambda`` when the call
has keyword arguments but not the lambda.
* Fixed incorrect suggestion for shallow copy in unnecessary-
comprehension
* After changing b = [x for x in a] to b = a based on the
suggestion, the script now prints [0, 2, 3]. The correct
suggestion should be use list(a) to preserve the original
behavior.
* Fix false positives for ``undefined-variable`` and ``unused-
argument`` for classes and functions using Python 3.12 generic
type syntax.
* Fixed ``pointless-string-statement`` false positive for
docstrings on Python 3.12 type aliases.
* Fix false positive for ``invalid-exception-operation`` when
concatenating tuples of exception types.
* Fix a bug where pylint was unable to walk recursively through
a directory if the directory has an `__init__.py` file.
OBS-URL: https://build.opensuse.org/request/show/1133805
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pylint?expand=0&rev=40
* Fixed false positive for ``unnecessary-lambda`` when the call
has keyword arguments but not the lambda.
* Fixed incorrect suggestion for shallow copy in unnecessary-
comprehension
* After changing b = [x for x in a] to b = a based on the
suggestion, the script now prints [0, 2, 3]. The correct
suggestion should be use list(a) to preserve the original
behavior.
* Fix false positives for ``undefined-variable`` and ``unused-
argument`` for classes and functions using Python 3.12 generic
type syntax.
* Fixed ``pointless-string-statement`` false positive for
docstrings on Python 3.12 type aliases.
* Fix false positive for ``invalid-exception-operation`` when
concatenating tuples of exception types.
* Fix a bug where pylint was unable to walk recursively through
a directory if the directory has an `__init__.py` file.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=154
- update to 3.0.2:
* Fix ``used-before-assignment`` false positive for generic
type syntax (PEP 695, Python 3.12).
* Escape special symbols and newlines in messages.
* Fixes suggestion for ``nested-min-max`` for expressions with
additive operators, list and dict comprehensions.
* Fixes ignoring conditional imports with ``ignore-imports=y``.
* Emit ``inconsistent-quotes`` for f-strings with 3.12
interpreter only if targeting pre-3.12 versions.
names:
* Fix false positive for undefined-loop-variable in for-else loops that
- Unpin mccabe and astroid in sitelib metadata.
* ``unspecified-encoding`` now checks the encoding of
``pathlib.Path()`` correctly
* The python3 porting mode checker and it's ``py3k`` option were
removed. You can still find it in older pylints versions.
* ``raising-bad-type`` is now properly emitted when raising a
``use-set-for-membership`` check: Emitted when using an
in-place defined ``list`` or ``tuple`` to do a membership
* ``CodeStyleChecker``
flow (e. g. if-else clause).
* Fix false positive for ``protected-access`` if a protected
* Fix false positive ``dict-iter-missing-items`` for dictionaries
* The ``unspecified-encoding`` checker now also checks calls to
* Fix false positive ``superfluous-parens`` for tuples created
* Fix false positive ``unused-private-member`` for accessing
* Fix false positive ``unused-private-member`` for private
* Extended ``consider-using-in`` check to work for attribute
* Setting ``min-similarity-lines`` to 0 now makes the similarty
OBS-URL: https://build.opensuse.org/request/show/1129239
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pylint?expand=0&rev=39
* Fix ``used-before-assignment`` false positive for generic
type syntax (PEP 695, Python 3.12).
* Escape special symbols and newlines in messages.
* Fixes suggestion for ``nested-min-max`` for expressions with
additive operators, list and dict comprehensions.
* Fixes ignoring conditional imports with ``ignore-imports=y``.
* Emit ``inconsistent-quotes`` for f-strings with 3.12
interpreter only if targeting pre-3.12 versions.
names:
* Fix false positive for undefined-loop-variable in for-else loops that
- Unpin mccabe and astroid in sitelib metadata.
* ``unspecified-encoding`` now checks the encoding of
``pathlib.Path()`` correctly
* The python3 porting mode checker and it's ``py3k`` option were
removed. You can still find it in older pylints versions.
* ``raising-bad-type`` is now properly emitted when raising a
``use-set-for-membership`` check: Emitted when using an
in-place defined ``list`` or ``tuple`` to do a membership
* ``CodeStyleChecker``
flow (e. g. if-else clause).
* Fix false positive for ``protected-access`` if a protected
* Fix false positive ``dict-iter-missing-items`` for dictionaries
* The ``unspecified-encoding`` checker now also checks calls to
* Fix false positive ``superfluous-parens`` for tuples created
* Fix false positive ``unused-private-member`` for accessing
* Fix false positive ``unused-private-member`` for private
* Extended ``consider-using-in`` check to work for attribute
* Setting ``min-similarity-lines`` to 0 now makes the similarty
* Fix a bug where pylint complained if the cache's parent
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=152
- Update to 3.0.1:
* False Positives Fixed
- Fixed false positive for inherit-non-class for generic Protocols.
Closes#9106
* Other Changes
- Fix a crash when an enum class which is also decorated with a dataclasses.dataclass decorator is defined.
Closes#9100
- Update to 3.0.0:
- Pylint now support python 3.12 officially.
- The required astroid version is now 3.0.0
For all chaanges see:
https://github.com/pylint-dev/pylint/releases/tag/v3.0.0
- Changes from 2.17.7
2.17.7 is the last release before we only support pylint 3.0.0 or superior and python 3.8 or superior.
* False Positives Fixed
- Fix a regression in pylint 2.17.6 / astroid 2.15.7 causing various
messages for code involving TypeVar.
Closes#9069
* Other Bug Fixes
- Fix crash in refactoring checker when unary operand used with variable in for
loop.
Closes#9074
- Changes from 2.17.6
* Other Bug Fixes
- When parsing comma-separated lists of regular expressions in the config,
ignore commas that are inside braces since those indicate quantifiers, not
delineation between expressions.
Closes#7229
- sys.argv is now always correctly considered as impossible to infer
(instead of using the actual values given to pylint).
Closes#9047
- Don't show class fields more than once in Pyreverse diagrams.
Closes#8189
- Don't show arrows more than once in Pyreverse diagrams.
Closes#8522
- Don't show duplicate type annotations in Pyreverse diagrams.
Closes#8888
- Don't add Optional to | annotations with None in Pyreverse diagrams.
Closes#9014
- Changes from 2.17.5
* False Positives Fixed
- Fix a false positive for unused-variable when there is an import in a
if TYPE_CHECKING: block and allow-global-unused-variables is set to
no in the configuration.
Closes#8696
- Fix false positives generated when supplying arguments as **kwargs to IO
calls like open().
Closes#8719
- Fix a false positive where pylint was ignoring method calls annotated as
NoReturn during the inconsistent-return-statements check.
Closes#8747
- Exempt parents with only type annotations from the invalid-enum-extension
message.
Closes#8830
* Other Bug Fixes
- Fixed crash when a call to super() was placed after an operator (e.g.
not).
Closes#8554
- Fix crash for modified-while-iterating checker when deleting
members of a dict returned from a call.
Closes#8598
- Fix crash in invalid-metaclass check when a metaclass had duplicate
bases.
Closes#8698
- Avoid consider-using-f-string on modulos with brackets in template.
Closes#8720.
- Fix a crash when __all__ exists but cannot be inferred.
Closes#8740
- Fix crash when a variable is assigned to a class attribute of identical name.
Closes#8754
- Fixed a crash when calling copy.copy() without arguments.
Closes#8774
* Other Changes
- Fix a crash when a nonlocal is defined at module-level.
Closes#8735
OBS-URL: https://build.opensuse.org/request/show/1119232
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=150
* Fix a false positive for ``bad-dunder-name`` when there is a
user-defined ``__index__`` method.
* ``pyreverse``: added escaping of vertical bar character in
annotation labels
* produced by DOT printer to ensure it is not treated as field
separator of record-based nodes.
* Fixed a crash when generating a configuration file:
* ``tomlkit.exceptions.TOMLKitError: Can't add a table to a
dotted key`` caused by tomlkit ``v0.11.8``.
- update to 2.17.3:
* Fix `unused-argument` false positive when `__new__` does not
use all the arguments of `__init__`.
* Fix ``unused-import`` false positive for usage of
``six.with_metaclass``.
* `logging-not-lazy` is not longer emitted for explicitly
concatenated string arguments.
* Fix false positive for isinstance-second-argument-not-valid-
type when union types contains None.
* Fixed `unused-import` so that it observes the `dummy-
variables-rgx` option.
* `Union` typed variables without assignment are no longer
treated as `TypeAlias`.
* Fix false positive for ``positional-only-arguments-expected``
when a function contains both a positional-only parameter
that has a default value, and ``**kwargs``.
* Fix false positive for ``keyword-arg-before-vararg`` when a
positional-only parameter with a default value precedes ``*args``.
* Improve output of ``consider-using-generator`` message for
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=146
- update to 2.17.2:
* invalid-name now allows for integers in typealias
names:
* now valid: Good2Name, GoodName2.
* still invalid: _1BadName.
* No longer consider Union as type annotation as type alias
for naming checks.
* unnecessary-lambda no longer warns on lambdas which use
its parameters in their body (other than the final arguments),
e.g. lambda foo: (bar if foo else baz)(foo).
* Fix a crash in pyreverse when "/" characters are used in the
output filename e.g pyreverse -o png -p name/ path/to/project.
* Add new option (--show-stdlib, -L) to pyreverse.
* This is similar to the behavior of --show-builtin in that
standard library modules are now not included by default,
and this option will include them.
* Adds asyncSetUp to the default defining-attr-methods
list to silence
* attribute-defined-outside-init warning when using
* unittest.IsolatedAsyncioTestCase.
* invalid-name now allows for integers in typealias
names:
* now valid: Good2Name, GoodName2.
* still invalid: _1BadName.
* No longer consider Union as type annotation as type alias
for naming checks.
* unnecessary-lambda no longer warns on lambdas which use
its parameters in their body (other than the final arguments),
e.g. lambda foo: (bar if foo else baz)(foo).
* --clear-cache-post-run now also clears LRU caches for
OBS-URL: https://build.opensuse.org/request/show/1080001
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pylint?expand=0&rev=35
* invalid-name now allows for integers in typealias
names:
* now valid: Good2Name, GoodName2.
* still invalid: _1BadName.
* No longer consider Union as type annotation as type alias
for naming checks.
* unnecessary-lambda no longer warns on lambdas which use
its parameters in their body (other than the final arguments),
e.g. lambda foo: (bar if foo else baz)(foo).
* Fix a crash in pyreverse when "/" characters are used in the
output filename e.g pyreverse -o png -p name/ path/to/project.
* Add new option (--show-stdlib, -L) to pyreverse.
* This is similar to the behavior of --show-builtin in that
standard library modules are now not included by default,
and this option will include them.
* Adds asyncSetUp to the default defining-attr-methods
list to silence
* attribute-defined-outside-init warning when using
* unittest.IsolatedAsyncioTestCase.
* invalid-name now allows for integers in typealias
names:
* now valid: Good2Name, GoodName2.
* still invalid: _1BadName.
* No longer consider Union as type annotation as type alias
for naming checks.
* unnecessary-lambda no longer warns on lambdas which use
its parameters in their body (other than the final arguments),
e.g. lambda foo: (bar if foo else baz)(foo).
* --clear-cache-post-run now also clears LRU caches for
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=143
- update to v2.15.10:
* Fix use-sequence-for-iteration when unpacking a set with *.
* Fix false positive assigning-non-slot when a class attribute is
* re-assigned.
* Fixes used-before-assignment false positive when the walrus operator
* is used in a ternary operator.
* Prevent used-before-assignment when imports guarded by if TYPE_CHECKING
* are guarded again when used.
* Using custom braces in msg-template will now work properly.
OBS-URL: https://build.opensuse.org/request/show/1057060
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pylint?expand=0&rev=34
* Fix use-sequence-for-iteration when unpacking a set with *.
* Fix false positive assigning-non-slot when a class attribute is
* re-assigned.
* Fixes used-before-assignment false positive when the walrus operator
* is used in a ternary operator.
* Prevent used-before-assignment when imports guarded by if TYPE_CHECKING
* are guarded again when used.
* Using custom braces in msg-template will now work properly.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=141
- update to v2.15.9:
* Fix false-positive for used-before-assignment in pattern matching with a
guard.
* Pylint will no longer deadlock if a parallel job is killed but fail
immediately instead.
* When pylint exit due to bad arguments being provided the exit code will
now be the expected 32.
* Fixes a ModuleNotFound exception when running pylint on a Django project
with the pylint_django plugin enabled.
* Document a known false positive for useless-suppression when disabling
* line-too-long in a module with only comments and no code.
* Fix logging-fstring-interpolation false positive raised when logging and
f-string with %s formatting.
* Fixes false positive abstract-method on Protocol classes.
* Fix missing-param-doc false positive when function parameter has an
escaped underscore.
* multiple-statements no longer triggers for function stubs using inlined
....
* Fix deprecated-method false positive when alias for method is similar to
* name of deprecated method.
* Fix a false positive for used-before-assignment for imports guarded by
* typing.TYPE_CHECKING later used in variable annotations.
* Other Bug Fixes
* Pylint will now filter duplicates given to it before linting. The output
* should be the same whether a file is given/discovered multiple times or
not.
* Fixes a crash in stop-iteration-return when the next builtin is
* called without arguments.
* Fix false positive for unhashable-member when subclassing dict and
* using the subclass as a dictionary key.
OBS-URL: https://build.opensuse.org/request/show/1056749
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pylint?expand=0&rev=33
* Fix false-positive for used-before-assignment in pattern matching with a
guard.
* Pylint will no longer deadlock if a parallel job is killed but fail
immediately instead.
* When pylint exit due to bad arguments being provided the exit code will
now be the expected 32.
* Fixes a ModuleNotFound exception when running pylint on a Django project
with the pylint_django plugin enabled.
* Document a known false positive for useless-suppression when disabling
* line-too-long in a module with only comments and no code.
* Fix logging-fstring-interpolation false positive raised when logging and
f-string with %s formatting.
* Fixes false positive abstract-method on Protocol classes.
* Fix missing-param-doc false positive when function parameter has an
escaped underscore.
* multiple-statements no longer triggers for function stubs using inlined
....
* Fix deprecated-method false positive when alias for method is similar to
* name of deprecated method.
* Fix a false positive for used-before-assignment for imports guarded by
* typing.TYPE_CHECKING later used in variable annotations.
* Other Bug Fixes
* Pylint will now filter duplicates given to it before linting. The output
* should be the same whether a file is given/discovered multiple times or
not.
* Fixes a crash in stop-iteration-return when the next builtin is
* called without arguments.
* Fix false positive for unhashable-member when subclassing dict and
* using the subclass as a dictionary key.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=139
- update to 2.15.2:
* Fixed a case where custom plugins specified by command line could silently fail.
* Fix ``used-before-assignment`` for functions/classes defined in type checking guard.
* Update ``modified_iterating`` checker to fix a crash with ``for`` loops on empty list.
* The ``docparams`` extension now considers typing in Numpy style docstrings
* Fix false positive for ``unused-variable`` and ``unused-import`` when a name is only used in a string literal type annotation.
* Fix false positive for ``too-many-function-args`` when a function call is assigned to a class attribute inside the class where the function is defined.
* Fix ``used-before-assignment`` for functions/classes defined in type checking guard.
* Fix ignored files being linted when passed on stdin.
* ``missing-return-doc``, ``missing-raises-doc`` and ``missing-yields-doc`` now respect
* Don't crash on ``OSError`` in config file discovery.
* ``disable-next`` is now correctly scoped to only the succeeding line.
* Update ``modified_iterating`` checker to fix a crash with ``for`` loops on empty list.
OBS-URL: https://build.opensuse.org/request/show/1003053
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pylint?expand=0&rev=29
* Fixed a case where custom plugins specified by command line could silently fail.
* Fix ``used-before-assignment`` for functions/classes defined in type checking guard.
* Update ``modified_iterating`` checker to fix a crash with ``for`` loops on empty list.
* The ``docparams`` extension now considers typing in Numpy style docstrings
* Fix false positive for ``unused-variable`` and ``unused-import`` when a name is only used in a string literal type annotation.
* Fix false positive for ``too-many-function-args`` when a function call is assigned to a class attribute inside the class where the function is defined.
* Fix ``used-before-assignment`` for functions/classes defined in type checking guard.
* Fix ignored files being linted when passed on stdin.
* ``missing-return-doc``, ``missing-raises-doc`` and ``missing-yields-doc`` now respect
* Don't crash on ``OSError`` in config file discovery.
* ``disable-next`` is now correctly scoped to only the succeeding line.
* Update ``modified_iterating`` checker to fix a crash with ``for`` loops on empty list.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=131