summaryrefslogtreecommitdiff
path: root/doc/whatsnew/2.13.rst
blob: 89796bd5da909cac13140731750e85686b9d6aa2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
***************************
 What's New in Pylint 2.13
***************************

:Release: 2.13
:Date: TBA

Summary -- Release highlights
=============================

New checkers
============
* ``unnecessary-ellipsis``: Emitted when the ellipsis constant is used unnecessarily.

  Closes #5460

Removed checkers
================

Extensions
==========

* Pyreverse - add output in mermaid-js format and html which is an mermaid js diagram with html boilerplate

* ``DocstringParameterChecker``

  * Fixed incorrect classification of Numpy-style docstring as Google-style docstring for
    docstrings with property setter documentation.
    Docstring classification is now based on the highest amount of matched sections instead
    of the order in which the docstring styles were tried.

Other Changes
=============

* Fixed false positive ``consider-using-dict-comprehension`` when creating a dict
  using a list of tuples where key AND value vary depending on the same condition.

  Closes #5588

* When run in parallel mode ``pylint`` now pickles the data passed to subprocesses with
  the ``dill`` package. The ``dill`` package has therefore been added as a dependency.

* By default, pylint does no longer take files starting with ``.#`` into account. Those are
  considered `emacs file locks`_. This behavior can be reverted by redefining the
  ``ignore-patterns`` option.

  Closes #367

.. _`emacs file locks`: https://www.gnu.org/software/emacs/manual/html_node/elisp/File-Locks.html

* An astroid issue where symlinks were not being taken into account
  was fixed

  Closes #1470
  Closes #3499
  Closes #4302
  Closes #4798
  Closes #5081

* Fixed extremely long processing of long lines with comma's.

  Closes #5483

* Fix ``unnecessary_dict_index_lookup`` false positive when deleting a dictionary's entry.

  Closes #4716

* Fix crash in ``unnecessary-dict-index-lookup`` checker if the output of
  ``items()`` is assigned to a 1-tuple.

  Closes #5504

* Fix false negative for ``consider-iterating-dictionary`` during membership checks encapsulated in iterables
  or ``not in`` checks

  Closes #5323

* ``used-before-assignment`` now considers that assignments in a try block
  may not have occurred when the except or finally blocks are executed.

  Closes #85, #2615

* Fix a false positive for ``assigning-non-slot`` when the slotted class
  defined ``__setattr__``.

  Closes #3793

* Fixed false positive for ``used-before-assignment`` with self-referential type
  annotation in conditional statements within class methods.

  Closes #5499

* ``used-before-assignment`` now assumes that assignments in except blocks
  may not have occurred and warns accordingly.

  Closes #4761

* When evaluating statements after an except block, ``used-before-assignment``
  assumes that assignments in the except blocks took place if the
  corresponding try block contained a return statement.

  Closes #5500

* ``used-before-assignment`` now checks names in try blocks.

* Fixed false positive with ``used-before-assignment`` for assignment expressions
  in lambda statements.

  Closes #5360, #3877

* Fixed crash on list comprehensions that used ``type`` as inner variable name.

  Closes #5461

* Require Python ``3.6.2`` to run pylint.

  Closes #5065

* Fixed crash on uninferable decorators on Python 3.6 and 3.7

* Emit ``redefined-outer-name`` when a nested except handler shadows an outer one.

  Closes #4434
  Closes #5370

* ``encoding`` can now be supplied as a positional argument to calls that open
  files without triggering ``unspecified-encoding``.

  Closes #5638

* Fatal errors now emit a score of 0.0 regardless of whether the linted module
  contained any statements

  Closes #5451

* ``fatal`` was added to the variables permitted in score evaluation expressions.

* The default score evaluation now uses a floor of 0.

  Closes #2399

* Fix ``comparison-with-callable`` false positive for callables that raise, such
  as typing constants.

  Closes #5557

* When invoking ``pylint``, ``epylint``, ``symilar`` or ``pyreverse`` by importing them in a python file
  you can now pass an ``arguments`` keyword besides patching ``sys.argv``.

  Closes #5320

* The ``PyLinter`` class will now be initialized with a ``TextReporter``
  as its reporter if none is provided.

* Fix false positive ``not-callable`` with attributes that alias ``NamedTuple``

  Partially closes #1730

* The ``testutils`` for unittests now accept ``end_lineno`` and ``end_column``. Tests
  without these will trigger a ``DeprecationWarning``.

* Fixed false positive ``unexpected-keyword-arg`` for decorators.

  Closes #258

* ``missing-raises-doc`` will now check the class hierarchy of the raised exceptions

  .. code-block:: python

    def my_function()
      """My function.

      Raises:
        Exception: if something fails
      """
      raise ValueError

  Closes #4955