third_party.pylibs.pylint.src/doc/whatsnew/2.2.rst

67 lines
2.2 KiB
ReStructuredText
Raw Normal View History

2018-08-09 08:39:05 +00:00
**************************
What's New in Pylint 2.2
**************************
:Release: 2.2
:Date: 2018-11-25
2018-08-09 08:39:05 +00:00
Summary -- Release highlights
=============================
New checkers
============
* String checker now reports format string type mismatches.
2018-08-09 08:39:05 +00:00
* ``duplicate-string-formatting-argument`` was added for detecting duplicate string
formatting arguments that should be passed instead as named arguments.
* ``logging-format-style`` is a new option for the logging checker for usage of
str.format() style format strings in calls to loggers.
It accepts two options: ``--logging-format-style=old`` for using `%` style formatting,
which is the assumed default, and ``--logging-format-style=new`` for using `{}` style formatting.
* ``implicit-str-concat-in-sequence`` detects string concatenation inside lists, sets & tuples.
Example of code that would generate such warning:
.. code-block:: python
woops = ('a', 'b' 'c')
2018-08-09 08:39:05 +00:00
Other Changes
=============
* `try-except-raise` checker now handles multilevel inheritance hirerachy for exceptions correctly.
Close #2484
* Ignore import x.y.z as z cases for checker `useless-import-alias`.
* `unnecessary-pass` is now also emitted when a function or class contains only docstring and pass statement,
2018-08-09 08:39:05 +00:00
in which case, docstring is enough for empty definition.
* Fix false positive ``undefined-variable`` and ``used-before-assignment`` with nonlocal keyword usage.
2018-08-22 06:57:16 +00:00
* Fix exceptions being raised when one of the params is not a ClassDef for :func:`checkers.utils.is_subclass_of`.
* ``pylint`` now picks the latest value from the inferred values of the exception that gets
raised, when looking for ``raising-non-exception``. This helps when reusing a variable name
for multiple types, since ``pylint`` was picking just the first inferred value, leading
to spurious false positives.
Close #2431
* ``pylint`` used to emit a ``not-an-iterable`` error when looking at coroutines built
with ``asyncio.coroutine``. This is no longer the case as we handle coroutines explicitly.
Close #996
* ``pylint`` used to emit a ``unused-variable`` error if unused import was found in the function. Now instead of
``unused-variable``, ``unused-import`` is emitted.
Close #2421