| ************************** |
| What's New in Pylint 2.1 |
| ************************** |
| |
| :Release: 2.1 |
| :Date: 2018-08-01 |
| |
| Summary -- Release highlights |
| ============================= |
| |
| * This release mostly includes fixes for bugs found after the launch of 2.0. |
| |
| New checkers |
| ============ |
| |
| * A new check was added, ``misplaced-format-function``. |
| |
| This message is emitted when pylint detects that a format function is called on non str object. |
| This can occur due to wrong placement of closing bracket, e.g |
| |
| .. code-block:: python |
| |
| print('value: {}').format(123) # bad |
| |
| print('value: {}'.format(123)) # good |
| |
| |
| 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. |