Pylint

Latest version: v3.1.0

Safety actively analyzes 627056 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 8 of 19

2.14.0

* We have improved our recognition of inline disable and enable comments. It is
now possible to disable ``bad-option-value`` inline (as long as you disable it before
the bad option value is raised, i.e. ``disable=bad-option-value,bad-message`` not ``disable=bad-message,bad-option-value`` ) as well as certain other previously unsupported messages.

Closes 3312

* Added new checker ``comparison-of-constants``.

Closes 6076

* Started ignoring underscore as a local variable for ``too-many-locals``.

Closes 6488

* Improved wording of the message of ``deprecated-module``

Closes 6169

* ``Pylint`` now requires Python 3.7.2 or newer to run.

Closes 4301

* ``BaseChecker`` classes now require the ``linter`` argument to be passed.

* Fix a failure to respect inline disables for ``fixme`` occurring on the last line
of a module when pylint is launched with ``--enable=fixme``.

* Update ``invalid-slots-object`` message to show bad object rather than its inferred value.

Closes 6101

* The main checker name is now ``main`` instead of ``master``. The configuration does not need to be updated as sections' name are optional.

Closes 5467

* Added new checker ``typevar-name-mismatch``: TypeVar must be assigned to a variable with the same name as its name argument.

Closes 5224

* Pylint can now be installed with an extra-require called ``spelling`` (``pip install pylint[spelling]``).
This will add ``pyenchant`` to pylint's dependencies. You will still need to install the
requirements for ``pyenchant`` (the ``enchant`` library and any dictionaries) yourself. You will also
need to set the ``spelling-dict`` option.

Refs 6462

* Removed the ``assign-to-new-keyword`` message as there are no new keywords in the supported Python
versions any longer.

Closes 4683

* Fixed a crash in the ``not-an-iterable`` checker involving multiple starred expressions
inside a call.

Closes 6372

* Fixed failure to enable ``deprecated-module`` after a ``disable=all``
by making ``ImportsChecker`` solely responsible for emitting ``deprecated-module`` instead
of sharing responsibility with ``StdlibChecker``. (This could have led to double messages.)

* The ``no-init`` (W0232) warning has been removed. It's ok to not have an ``__init__`` in a class.

Closes 2409

* The ``config`` attribute of ``BaseChecker`` has been deprecated. You can use ``checker.linter.config``
to access the global configuration object instead of a checker-specific object.

Ref 5392

* The ``level`` attribute of ``BaseChecker`` has been deprecated: everything is now
displayed in ``--help``, all the time.

Ref 5392

* The ``options_providers`` attribute of ``ArgumentsManager`` has been deprecated.

Ref 5392

* The ``option_groups`` attribute of ``PyLinter`` has been deprecated.

Ref 5392

* All ``Interface`` classes in ``pylint.interfaces`` have been deprecated. You can subclass
the respective normal classes to get the same behaviour. The ``__implements__`` functionality
was based on a rejected PEP from 2001:
https://peps.python.org/pep-0245/

Closes 2287

* The ``set_option`` method of ``BaseChecker`` has been deprecated. You can use ``checker.linter.set_option``
to set an option on the global configuration object instead of a checker-specific object.

Ref 5392

* ``implicit-str-concat`` will now be raised on calls like ``open("myfile.txt" "a+b")`` too.

Closes 6441

* The ``config`` attribute of ``PyLinter`` is now of the ``argparse.Namespace`` type instead of
``optparse.Values``.

Ref 5392

* ``MapReduceMixin`` has been deprecated. ``BaseChecker`` now implements ``get_map_data`` and
``reduce_map_data``. If a checker actually needs to reduce data it should define ``get_map_data``
as returning something different than ``None`` and let its ``reduce_map_data`` handle a list
of the types returned by ``get_map_data``.
An example can be seen by looking at ``pylint/checkers/similar.py``.

* ``UnsupportedAction`` has been deprecated.

Ref 5392

* ``OptionsManagerMixIn`` has been deprecated.

Ref 5392

* ``OptionParser`` has been deprecated.

Ref 5392

* ``Option`` has been deprecated.

Ref 5392

* ``OptionsProviderMixIn`` has been deprecated.

Ref 5392

* ``ConfigurationMixIn`` has been deprecated.

Ref 5392

* ``get_global_config`` has been deprecated. You can now access all global options from
``checker.linter.config``.

Ref 5392

* ``OptionsManagerMixIn`` has been replaced with ``ArgumentsManager``. ``ArgumentsManager`` is considered
private API and most methods that were public on ``OptionsManagerMixIn`` have now been deprecated and will
be removed in a future release.

Ref 5392

* ``OptionsProviderMixIn`` has been replaced with ``ArgumentsProvider``. ``ArgumentsProvider`` is considered
private API and most methods that were public on ``OptionsProviderMixIn`` have now been deprecated and will
be removed in a future release.

Ref 5392

* ``interfaces.implements`` has been deprecated and will be removed in 3.0. Please use standard inheritance
patterns instead of ``__implements__``.

Ref 2287

* ``invalid-enum-extension``: Used when a class tries to extend an inherited Enum class.

Closes 5501

* Added the ``unrecognized-option`` message. Raised if we encounter any unrecognized options.

Closes 5259

* Added new checker ``typevar-double-variance``: The "covariant" and "contravariant" keyword arguments
cannot both be set to "True" in a TypeVar.

Closes 5895

* Re-enable checker ``bad-docstring-quotes`` for Python <= 3.7.

Closes 6087

* Removed the broken ``generate-man`` option.

Closes 5283
Closes 1887

* Fix false negative for ``bad-string-format-type`` if the value to be formatted is passed in
as a variable holding a constant.

* Add new check ``unnecessary-dunder-call`` for unnecessary dunder method calls.

Closes 5936
Closes 6074

* The ``cache-max-size-none`` checker has been renamed to ``method-cache-max-size-none``.

Closes 5670

* The ``method-cache-max-size-none`` checker will now also check ``functools.cache``.

Closes 5670

* ``unnecessary-lambda-assignment``: Lambda expression assigned to a variable.
Define a function using the "def" keyword instead.
``unnecessary-direct-lambda-call``: Lambda expression called directly.
Execute the expression inline instead.

Closes 5976

* ``potential-index-error``: Emitted when the index of a list or tuple exceeds its length.
This checker is currently quite conservative to avoid false positives. We welcome
suggestions for improvements.

Closes 578

* Added optional extension ``redefined-loop-name`` to emit messages when a loop variable
is redefined in the loop body.

Closes 5072

* Changed message type from ``redefined-outer-name`` to ``redefined-loop-name``
(optional extension) for redefinitions of outer loop variables by inner loops.

Closes 5608

* The ``ignore-mixin-members`` option has been deprecated. You should now use the new
``ignored-checks-for-mixins`` option.

Closes 5205

* ``bad-option-value`` will be emitted whenever a configuration value or command line invocation
includes an unknown message.

Closes 4324

* Avoid reporting ``superfluous-parens`` on expressions using the ``is not`` operator.

Closes 5930

* Added the ``super-without-brackets`` checker, raised when a super call is missing its brackets.

Closes 4008

* Added the ``generate-toml-config`` option.

Ref 5462

* Added new checker ``unnecessary-list-index-lookup`` for indexing into a list while
iterating over ``enumerate()``.

Closes 4525

* Fix falsely issuing ``useless-suppression`` on the ``wrong-import-position`` checker.

Closes 5219

* Fixed false positive ``no-member`` for Enums with self-defined members.

Closes 5138

* Fix false negative for ``no-member`` when attempting to assign an instance
attribute to itself without any prior assignment.

Closes 1555

* The concept of checker priority has been removed.

* Add a new command line option ``--minimal-messages-config`` for ``pytest``, which disables all
irrelevant messages when running the functional tests.

* ``duplicate-argument-name`` now only raises once for each set of duplicated arguments.

* Fix bug where specifically enabling just ``await-outside-async`` was not possible.

* The ``set_config_directly`` decorator has been removed.

* Added new message called ``duplicate-value`` which identifies duplicate values inside sets.

Closes 5880

* Pylint now expands the user path (i.e. ``~`` to ``home/yusef/``) and expands environment variables (i.e. ``home/$USER/$project``
to ``home/yusef/pylint`` for ``USER=yusef`` and ``project=pylint``) for pyreverse's ``output-directory``,
``import-graph``, ``ext-import-graph``, ``int-import-graph`` options, and the spell checker's ``spelling-private-dict-file``
option.

Relates to 6493

* Created ``NoSelfUseChecker`` extension and moved the ``no-self-use`` check.
You now need to explicitly enable this check using
``load-plugins=pylint.extensions.no_self_use``.

Closes 5502

* Fix saving of persistent data files in environments where the user's cache
directory and the linted file are on a different drive.

Closes 6394

* Don't emit ``unsubscriptable-object`` for string annotations.
Pylint doesn't check if class is only generic in type stubs only.

Closes 4369 and 6523

* ``is_class_subscriptable_pep585_with_postponed_evaluation_enabled`` has been deprecated.
Use ``subscriptable_with_postponed_evaluation_enabled`` instead.

Ref 6536

2.14.0b1

2.13.9

2.13.9`` is the last release supporting python interpreter between 3.6.2 and 3.7.2.

* Respect ignore configuration options with ``--recursive=y``.

Closes 6471

* Fix false positives for ``no-name-in-module`` and ``import-error`` for ``numpy.distutils`` and ``pydantic``.

Closes 6497

* Fix ``IndexError`` crash in ``uninferable_final_decorators`` method.

Relates to 6531

* Fix a crash in ``unnecessary-dict-index-lookup`` when subscripting an attribute.

Closes 6557

* Fix a crash when accessing ``__code__`` and assigning it to a variable.

Closes 6539

* Fix a false positive for ``undefined-loop-variable`` when using ``enumerate()``.

Closes 6593

2.13.8

* Fix a false positive for ``undefined-loop-variable`` for a variable used in a lambda
inside the first of multiple loops.

Closes 6419

* Fix a crash when linting a file that passes an integer ``mode=`` to ``open``

Closes 6414

* Avoid reporting ``superfluous-parens`` on expressions using the ``is not`` operator.

Closes 5930

* Fix a false positive for ``undefined-loop-variable`` when the ``else`` of a ``for``
loop raises or returns.

Closes 5971

* Fix false positive for ``unused-variable`` for classes inside functions
and where a metaclass is provided via a call.

Closes 4020

* Fix false positive for ``unsubscriptable-object`` in Python 3.8 and below for
statements guarded by ``if TYPE_CHECKING``.

Closes 3979

2.13.7

* Fix a crash caused by using the new config from 2.14.0 in 2.13.x code.

Closes 6408

2.13.6

* Fix a crash in the ``unsupported-membership-test`` checker when assigning
multiple constants to class attributes including ``__iter__`` via unpacking.

Closes 6366

* Asterisks are no longer required in Sphinx and Google style parameter documentation
for ``missing-param-doc`` and are parsed correctly.

Closes 5815
Closes 5406

* Fixed a false positive for ``unused-variable`` when a builtin specified in
``--additional-builtins`` is given a type annotation.

Closes 6388

* Fixed an ``AstroidError`` in 2.13.0 raised by the ``duplicate-code`` checker with
``ignore-imports`` or ``ignore-signatures`` enabled.

Closes 6301

Page 8 of 19

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.