* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
- Update to version 2.15.0
* In pylint 2.15.0, we added a new check missing-timeout to warn
of default timeout values that could cause a program to be
hanging indefinitely.
* We improved pylint's handling of namespace packages. More
packages should be linted without resorting to using the
--recursive=y option.
- Release highlights from 2.14
* With 2.14 pylint only supports Python version 3.7.2 and above.
* We introduced several new checks among which duplicate-value
for sets, comparison-of-constants, and checks related to
lambdas. We removed no-init and made no-self-use optional as
they were too opinionated. We also added an option to generate
a toml configuration: --generate-toml-config.
* We migrated to argparse from optparse and refactored the
configuration handling thanks to Daniël van Noord. On the user
side it should change the output of the --help command, and
some inconsistencies and bugs should disappear. The behavior
between options set in a config file versus on the command line
will be more consistent. For us, it will permit to maintain
this part of the code easily in the future and anticipate
optparse's removal in Python 3.12.
* As a result of the refactor there are a lot of internal
deprecations. If you're a library maintainer that depends on
pylint, please verify that you're ready for pylint 3.0 by
activating deprecation warnings.
* We continued the integration of pylint-error and are now at
33%!. We still welcome any community effort to help review,
integrate, and add good/bad examples
<https://github.com/PyCQA/pylint/issues/5953>`_. This should be
doable without any pylint or astroid knowledge, so this is the
perfect entrypoint if you want to contribute to pylint or open
source without any experience with our code!
- Release highlights from 2.13
* In 2.13, we introduced a new check to deal with unicode
security issues. On top of that a lot of work was done inside
the unicode checker by @CarliJoy. We also introduced a new
check when importing private name and for unnecessary ellipsis
among other.
* We fixed long standing issues related to duplicate code that
could not be disabled, line numbers that were not accurate some
of the time, and added the ability to lint all files in a
directory without specifying each one. One of the most
anticipated issue from the repository. Thank you @matusvalo !
* A lot of undefined-variables and used-before-assignment issues
were resolved thanks to @jacobtylerwalls.
* We started integrating pylint-error the documentation created
by @vald-phoenix a developer from Hlyniane, Ukraine. We hope
he's doing well despite the current situation. The deployment
is set up but there's still a lot to do so we welcome any
community effort help to review, integrate, and add good/bad
examples. This should be doable without any pylint or astroid
knowledge, so this is the perfect entrypoint if you want to
contribute to pylint without investing any time learning the
internals.
* This release is the last one to support interpreter below
3.7.2, 3.6 end of life was reached in december 2021.
- Add pylint-pr7367-pythonpathtest.patch
* gh#PyCQA/pylint#7367
OBS-URL: https://build.opensuse.org/request/show/999571
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=129
- Dropped pylint-pr4816-astroid27.patch
- Update to 2.11.1
* ``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
string
* Added new extension ``SetMembershipChecker`` with
``use-set-for-membership`` check: Emitted when using an
in-place defined ``list`` or ``tuple`` to do a membership
test. ``sets`` are better optimized for that.
* Added ``py-version`` config key (if ``[MASTER]`` section). Used
for version dependant checks.
Will default to whatever Python version pylint is executed
with.
* ``CodeStyleChecker``
Added ``consider-using-assignment-expr``: Emitted when an
assignment is directly followed by an if statement and both can
be combined by using an assignment expression ``:=``. Requires
Python 3.8
* Added ``consider-using-f-string``: Emitted when .format() or '%'
is being used to format a string.
* Fix false positive for ``consider-using-with`` if a context
manager is assigned to a variable in different paths of control
flow (e. g. if-else clause).
* https is now prefered in the documentation and
http://pylint.pycqa.org correctly redirect to
https://pylint.pycqa.org
* Fix false positive for ``function-redefined`` for simple type
annotations
* Fix false positive for ``protected-access`` if a protected
member is used in type hints of function definitions
* Fix false positive ``dict-iter-missing-items`` for dictionaries
only using tuples as keys
* The ``unspecified-encoding`` checker now also checks calls to
``pathlib.Path().read_text()`` and
``pathlib.Path().write_text()``
* Fix false positive ``superfluous-parens`` for tuples created
with inner tuples
* Fix false positive ``unused-private-member`` for accessing
attributes in a class using ``cls``
* Fix false positive ``unused-private-member`` for private
staticmethods accessed in classmethods.
* Extended ``consider-using-in`` check to work for attribute
access.
* Setting ``min-similarity-lines`` to 0 now makes the similarty
checker stop checking for duplicate code
* Fix a bug where pylint complained if the cache's parent
directory does not exist
* The ``global-variable-not-assigned`` checker now catches global
variables that are never reassigned in a
local scope and catches (reassigned) functions
* Fix false positives for invalid-all-format that are lists or
tuples at runtime
* Fix ``no-self-use`` and ``docparams extension`` for async
functions and methods.
* Add documentation for ``pyreverse`` and ``symilar``
* Non symbolic messages with the wrong capitalisation now
correctly trigger ``use-symbolic-message-instead``
* The ``consider-iterating-dictionary`` checker now also
considers membership checks
* The ``invalid-name`` message is now more detailed when using
multiple naming style regexes.
- Release 2.10.2
* We now use platformdirs instead of appdirs since the latter is
not maintained.
* Fix a crash in the checker raising ``shallow-copy-environ``
when failing to infer on ``copy.copy``
- Release 2.10.1
* pylint does not crash when PYLINT_HOME does not exist.
- Release 2.10.0
* pyreverse: add option to produce colored output.
* pyreverse: add output in PlantUML format.
* ``consider-using-with`` is no longer triggered if a context
manager is returned from a function.
* pylint does not crash with a traceback anymore when a file is
problematic. It creates a template text file for opening an
issue on the bug tracker instead.
The linting can go on for other non problematic files instead
of being impossible.
* pyreverse: Show class has-a relationships inferred from the
type-hint
* Fixed a crash when importing beyond the top level package
during ``import-error`` message creation
* Added ``ignored-parents`` option to the design checker to
ignore specific classes from the ``too-many-ancestors`` check
(R0901).
* Added ``unspecified-encoding``: Emitted when open() is called
without specifying an encoding
* Improved the Similarity checker performance. Fix issue with
``--min-similarity-lines`` used with ``--jobs``.
* Don't emit ``no-member`` error if guarded behind if statement.
* The default for ``PYLINTHOME`` is now the standard
``XDG_CACHE_HOME``, and pylint now uses ``appdirs``.
* Added ``use-list-literal``: Emitted when ``list()`` is called
with no arguments instead of using ``[]``
* Added ``use-dict-literal``: Emitted when ``dict()`` is called
with no arguments instead of using ``{}``
* Added optional extension ``consider-ternary-expression``:
Emitted whenever a variable is assigned in both branches of an
if/else block.
* Added optional extension ``while-used``: Emitted whenever a
``while`` loop is used.
* Added ``forgotten-debug-statement``: Emitted when
``breakpoint``, ``pdb.set_trace`` or ``sys.breakpointhook``
calls are found
* Fix false-positive of ``unused-private-member`` when using
nested functions in a class
* Fix crash for ``unused-private-member`` that occurred with
nested attributes.
* Fix a false positive for ``unused-private-member`` with class
names
* Fix false positives for ``superfluous-parens`` with walrus
operator, ternary operator and inside list comprehension.
* Added ``format-string-without-interpolation`` checker: Emitted
when formatting is applied to a string without any variables to
be replaced
* Refactor of ``--list-msgs`` & ``--list-msgs-enabled``: both
options now show whether messages are emittable with the
current interpreter.
* Fix false negative for ``used-before-assignment`` when the
variable is assigned in an exception handler, but used outside
of the handler.
* Added ``disable-next`` option: allows using `# pylint:
disable-next=msgid` to disable a message for the following line
* Added ``redundant-u-string-prefix`` checker: Emitted when the u
prefix is added to a string
* Fixed ``cell-var-from-loop`` checker: handle cell variables in
comprehensions within functions, and function default argument
expressions. Also handle basic variable shadowing.
* Fixed bug with ``cell-var-from-loop`` checker: it no longer has
false negatives when both ``unused-variable`` and
``used-before-assignment`` are disabled.
* Fix false postive for ``invalid-all-format`` if the list or
tuple builtin functions are used
* Config files can now contain environment variables
* Fix false-positive ``used-before-assignment`` with an
assignment expression in a ``Return`` node
* Added ``use-sequence-for-iteration``: Emitted when iterating
over an in-place defined ``set``.
* ``CodeStyleChecker``
* Limit ``consider-using-tuple`` to be emitted only for
in-place defined ``lists``.
* Emit ``consider-using-tuple`` even if list contains a
``starred`` expression.
* Ignore decorators lines by similarities checker when ignore
signatures flag enabled
* Allow ``true`` and ``false`` values in ``pylintrc`` for better
compatibility with ``toml`` config.
* Class methods' signatures are ignored the same way as
functions' with similarities "ignore-signatures" option enabled
* Improve performance when inferring ``Call`` nodes, by utilizing
caching.
* Improve error message for invalid-metaclass when the node is an
Instance.
- Unskip the numpy inference tests. Note: always check with a clean
environment (osc build --clean) -- gh#PyCQA/pylint#4877
OBS-URL: https://build.opensuse.org/request/show/925619
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=127
- Update to 2.9.6
* Fix a false positive undefined-variable when variable name in
decoration matches function argument
- Many more release notes from 2.9.0 to 2.9.5:
* https://github.com/PyCQA/pylint/releases
* Added time.clock to deprecated functions/methods for python 3.3
* No longer emit consider-using-with for ThreadPoolExecutor and
ProcessPoolExecutor as they have legitimate use cases without a
with block.
* The similarity checker no longer add three trailing whitespaces
for empty lines in its report.
* Python 3.10 is now supported.
* Added various deprecated functions/methods for python 3.10,
3.7, 3.6 and 3.3
* setuptools_scm has been removed and replaced by tbump in order
to not have hidden runtime dependencies to setuptools
- Drop pylint-pr4450-import-init.patch
- Add pylint-pr4816-astroid27.patch
* gh#PyCQA/pylint#4816
* remove astroid upper bound -- the previous pin broke a lot of
packages through the pkg_resources check
OBS-URL: https://build.opensuse.org/request/show/913328
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=126
-----------------------------------------------------------------
- Update to 2.8.2
* Keep ``__pkginfo__.numversion`` a tuple to avoid breaking
pylint-django.
* scm_setuptools has been added to the packaging.
* Pylint's tags are now the standard form ``vX.Y.Z`` and not
``pylint-X.Y.Z`` anymore.
* New warning message ``deprecated-class``. This message is
emitted if import or call deprecated class of the standard
library (like ``collections.Iterable`` that will be removed
Python 3.10).
* Add numversion back (temporarily) in __pkginfo__ because it
broke Pylama and revert the unnecessary pylint.version
beaking change.
- Release 2.8.0
* New refactoring message ``consider-using-with``. This message
is emitted if resource-allocating functions or methods of the
standard library (like ``open()`` or
``threading.Lock.acquire() ``) that can be used as a context
manager are called without a ``with`` block.
* Resolve false positives on unused variables in decorator
functions
* Add new extension ``ConfusingConsecutiveElifChecker``. This
optional checker emits a refactoring message (R5601
``confusing-consecutive-elif``) if if/elif statements with
different indentation levels follow directly one after the
other.
* New option ``--output=<file>`` to output result to a file
rather than printing to stdout.
* Use a prescriptive message for ``unidiomatic-typecheck``
* Apply ``const-naming-style`` to module constants annotated with
``typing.Final``
* The packaging is now done via setuptools exclusively.
``doc``, ``tests``, ``man``, ``elisp`` and ``Changelog`` are
not packaged anymore - reducing the size of the package by 75%.
* Debian packaging is now (officially) done in https://salsa.
debian.org/python-team/packages/pylint.
* The 'doc' extra-require has been removed.
* ``__pkginfo__`` now only contain ``__version__`` (also
accessible with ``pylint.__version__``), other
meta-information are still
accessible with ``from importlib import metadata;metadata.
metadata('pylint')``.
* COPYING has been renamed to LICENSE for standardization.
* Fix false-positive ``used-before-assignment`` in function
returns.
* Updated ``astroid`` to 2.5.3
* Add ``consider-using-min-max-builtin`` check for if
statement which could be replaced by Python builtin min or
max
* Don't auto-enable postponed evaluation of type annotations
with Python 3.10
* Update ``astroid`` to 2.5.4
* Add new extension ``TypingChecker``. This optional checker
can detect the use of deprecated typing aliases
and can suggest the use of the alternative union syntax
where possible.
(For example, 'typing.Dict' can be replaced by 'dict', and
'typing.Unions' by '|', etc.)
Make sure to check the config options if you plan on using it!
* Reactivates old counts in report mode.
* During detection of ``inconsistent-return-statements``
consider that ``assert False`` is a return node.
* Run will not fail if score exactly equals ``config.
fail_under``.
* Functions that never returns may declare ``NoReturn`` as
type hints, so that
``inconsistent-return-statements`` is not emitted.
* Improved protected access checks to allow access inside
class methods
* Fix issue with PEP 585 syntax and the use of ``collections.
abc. Set``
* Fix issue that caused class variables annotated with
``typing. ClassVar`` to be
identified as class constants. Now, class variables nnotated
with ``typing.Final`` are identified as such.
* Continuous integration with read the doc has been added.
* Don't show ``DuplicateBasesError`` for attribute access
* Fix crash when checking ``setup.cfg`` for pylint config when
there are non-ascii characters in there
* Allow code flanked in backticks to be skipped by spellchecker
* Allow Python tool directives (for black, flake8, zimports,
isort, mypy, bandit, pycharm) at beginning of comments to be
skipped by spellchecker
* Fix issue that caused emacs pylint to fail when used with tramp
* Improve check for invalid PEP 585 syntax inside functions
if postponed evaluation of type annotations is enabled
* Improve check for invalid PEP 585 syntax as default
function arguments
- Release 2.7.4
* Fix a problem with disabled msgid not being ignored
* Fix issue with annotated class constants
- Release 2.7.3
* Introduce logic for checking deprecated attributes in
DeprecationMixin.
* Reduce usage of blacklist/whitelist terminology. Notably,
``extension-pkg-allow-list`` is an alternative to
``extension-pkg-whitelist`` and the message
``blacklisted-name`` is now emitted as
``disallowed-name``. The previous names are accepted to
maintain backward compatibility.
* Move deprecated checker to ``DeprecatedMixin``
* Bump ``astroid`` version to ``2.5.2``
* Fix false positive for ``method-hidden`` when using private
attribute and method
* ``use-symbolic-message-instead`` now also works on legacy
messages like ``C0111`` (``missing-docstring``).
* Remove unwanted print to stdout from ``_emit_no_member``
* Introduce a command-line option to specify pyreverse output
directory
* Fix issue with Enums and
``class-attribute-naming-style=snake_case``
* Add ``allowed-redefined-builtins`` option for fine tuning
``redefined-builtin`` check.
* Fix issue when executing with ``python -m pylint``
* Exempt ``typing.TypedDict`` from ``too-few-public-methods``
check.
* Fix false-positive ``no-member`` for typed annotations without
default value.
* Add ``--class-const-naming-style`` for Enum constants and
class variables annotated with ``typing.ClassVar``
* Fix astroid.Inference error for undefined-variables with
``len()```
* Fix column index on FIXME warning messages
* Improve handling of assignment expressions, better edge case
handling
* Improve check if class is subscriptable PEP585
* Fix documentation and filename handling of --import-graph
* Fix false-positive for ``unused-import`` on class keyword
arguments
* Fix regression with plugins on PYTHONPATH if latter is cwd
- Add pylint-pr4450-import-init.patch
gh#PyCQA/pylint#4450 fix broken tests
OBS-URL: https://build.opensuse.org/request/show/891349
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=122
- Update to 2.7.2
* Fix False Positive on ``Enum.__members__.items()``,
``Enum.__members__.values``, and ``Enum.__members__.keys``
* Properly strip dangerous sys.path entries (not just the first
one)
* Workflow and packaging improvements
- Release 2.7.1
* Expose ``UnittestLinter`` in pylint.testutils
* Don't check directories starting with '.' when using
register_plugins
- Release 2.7.0
* Introduce DeprecationMixin for reusable deprecation checks.
* Fix false positive for ``builtin-not-iterating`` when ``map``
receives iterable
* Python 3.6+ is now required.
* Fix false positive for ``builtin-not-iterating`` when ``zip``
receives iterable
* Add ``nan-comparison`` check for NaN comparisons
* Bug fix for empty-comment message line number.
* Only emit ``bad-reversed-sequence`` on dictionaries if below
py3.8
* Handle class decorators applied to function.
* Add check for empty comments
* Fix minor documentation issue in contribute.rst
* Enums are now required to be named in UPPER_CASE by
``invalid-name``.
* Add missing checks for deprecated functions.
* Postponed evaluation of annotations are now recognized by
default if python version is above 3.10
* Fix column metadata for anomalous backslash lints
* Drop support for Python 3.5
* Add support for pep585 with postponed evaluation
* Check alternative union syntax - PEP 604
* Fix multiple false positives with assignment expressions
* Fix TypedDict inherit-non-class false-positive Python 3.9+
* Fix issue with nested PEP 585 syntax
* Fix issue with nested PEP 604 syntax
* Fix a crash in ``undefined-variable`` caused by chained
attributes in metaclass
* Fix false positive for ``not-async-context-manager`` when
``contextlib.asynccontextmanager`` is used
* Fix linter multiprocessing pool shutdown (triggered warnings
when runned in parallels with other pytest plugins)
* Fix a false-positive emission of ``no-self-use`` and
``unused-argument`` for methods of generic structural types
(`Protocol[T]`)
* Fix bug that lead to duplicate messages when using
``--jobs 2`` or more.
* Adds option ``check-protected-access-in-special-methods`` in
the ClassChecker to activate/deactivate
``protected-access`` message emission for single underscore
prefixed attribute in special methods.
* Fix vulnerable regular expressions in ``pyreverse``
* ``inconsistent-return-statements`` message is now emitted if
one of ``try/except`` statement is not returning explicitly
while the other do.
* Fix ``useless-super-delegation`` false positive when default
keyword argument is a dictionnary.
* Fix a crash when a specified config file does not exist
* Add support to ``ignored-argument-names`` in
DocstringParameterChecker and adds ``useless-param-doc`` and
``useless-type-doc`` messages.
* Enforce docparams consistently when docstring is not present
* Fix ``duplicate-code`` false positive when lines only contain
whitespace and non-alphanumeric characters (e.g. parentheses,
bracket, comman, etc.)
* Improve lint message for ``singleton-comparison`` with bools
* Fix spell-checker crash on indented docstring lines that look
like # comments
* Fix AttributeError in checkers/refactoring.py
* Improve sphinx directives spelling filter
* Fix a bug with postponed evaluation when using aliases for
annotations.
* Fix minor documentation issues
* Improve the performance of the line length check.
* Removed incorrect deprecation of ``inspect.getfullargspec``
* Fix ``signature-differs`` false positive for functions with
variadics
* Fix a crash in ``consider-using-enumerate`` when encountering
``range()`` without arguments
* ``len-as-conditions`` is now triggered only for classes that
are inheriting directly from list, dict, or set and not
implementing the ``__bool__`` function, or from generators
like range or list/dict/set comprehension. This should reduce
the false positives for other classes, like pandas's DataFrame
or numpy's Array.
* Fixes duplicate-errors not working with -j2+
* ``generated-members`` now matches the qualified name of members
* Add check for bool function to ``len-as-condition``
* Add ``simplifiable-condition`` check for extraneous constants
in conditionals using and/or.
* Add ``condition-evals-to-constant`` check for conditionals
using and/or that evaluate to a constant.
* Changed setup.py to work with distlib
* New check: ``consider-using-generator``
This check warns when a comprehension is used inside an
``any`` or ``all`` function, since it is unnecessary and
should be replaced by a generator instead. Using a generator
would be less code and way faster.
* Add Github Actions to replace Travis and AppVeyor in the
future
OBS-URL: https://build.opensuse.org/request/show/880524
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=120
- Update to 2.5.3
* Fix a regression where disable comments that have checker names with numbers in them are not parsed correctly
Close#3666
* `property-with-parameters` properly handles abstract properties
Close#3600
* `continue-in-finally` no longer emitted on Python 3.8 where it's now valid
Close#3612
* Fix a regression where messages with dash are not fully parsed
Close#3604
* In a TOML configuration file, it's now possible to use rich (non-string) types, such as list, integer or boolean instead of strings. For example, one can now define a *list* of message identifiers to enable like this::
enable = [
"use-symbolic-message-instead",
"useless-suppression",
]
Close#3538
* Fix a regression where the score was not reported with multiple jobs
Close#3547
* Protect against `AttributeError` when checking `cell-var-from-loop`
Close#3646
OBS-URL: https://build.opensuse.org/request/show/812727
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=108
- Exempt all the names found in type annotations from ``unused-import``
The previous code was assuming that only ``typing`` names need to be
exempted, but we need to do that for the rest of the type comment
names as well. Close#3112
- Relax type import detection for names that do not come from
the ``typing`` module Close#3191
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=102
* Fix an issue with ``unnecessary-comprehension`` in comprehensions with additional repacking of elements.
* ``import-outside-toplevel`` is emitted for ``ImportFrom`` nodes as well.
* Do not emit ``no-method-argument`` for functions using positional only args.
* ``consider-using-sys-exit`` is no longer emitted when `exit` is imported in the local scope.
* `invalid-overridden-method` takes `abc.abstractproperty` in account
* Fixed ``missing-yield-type-doc`` getting incorrectly raised when
a generator does not document a yield type but has a type annotation.
* ``typing.overload`` functions are exempted from ``too-many-function-args``
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=99