third_party.pylibs.pylint.src/doc/whatsnew/2.1.rst
Bryce Guinta edceee93ba Suppress undefined-variable for self referential class in lamdbas (#2362)
This works because execution of the lambda code is
typically deferred until the class definition is built.

Also avoid suppression for default arguments of lambda's
if the class scope is the immediate parent scope
of the lambda.

Close #704
2018-07-31 08:16:34 +02:00

62 lines
2.2 KiB
ReStructuredText

**************************
What's New in Pylint 2.1
**************************
:Release: 2.1
:Date: |TBA|
Summary -- Release highlights
=============================
* This release mostly includes fixes for bugs found after the launch of 2.0.
New checkers
============
Other Changes
=============
* `try-except-raise` check was demoted from an error to a warning, as part of issue #2323.
* Correctly handle the new name of the Python implementation of the `abc` module.
In Python 3.7, the `abc` module has both a C implementation as well as a Python one,
but the Python implementation has a different file name that what ``pylint`` was expecting,
resulting in some checks getting confused.
* Modules with ``__getattr__`` are exempted by default from ``no-member``
There's no easy way to figure out if a module has a particular member when
the said module uses ``__getattr__``, which is a new addition to Python 3.7.
Instead we assume the safe thing to do, in the same way we do for classes,
and skip those modules from checking.
* ``invalid name`` is no longer triggered for function and attribute names longer
than 30 characters. The upper limit was removed completely.
* Fix false-positive ``undefined-variable`` for self referential class name in lamdbas
* ``no-else-return`` also specifies the type of the branch that is causing the error.
* Fixed inconsistent behaviour for bad-continuation on first line of file.
* Fixed a bug where ``pylint`` was not able to disable certain messages on the last line through
the global disable option.
* ``pylint`` no longer emits `useless-return` when it finds a single statement that is the ``return`` itself
We still want to be explicit when a function is supposed to return
an optional value; even though ``pass`` could still work, it's not explicit
enough and the function might look like it's missing an implementation.
* Fixed a bug where ``pylint`` was crashing when being unable to infer the value of an argument to `next()`
* ``pylint`` no longer emit ``not-an-iterable`` when dealing with async iterators.
* ``pylint`` gained the ability to specify a default docstring type for when the check cannot guess the type
For this we added a ``--default-docstring-type`` command line option.