summaryrefslogtreecommitdiff
path: root/doc/whatsnew/2.12.rst
blob: af5b33a432116d0e9f21263a292334059ae7db34 (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
***************************
 What's New in Pylint 2.12
***************************

:Release: 2.12
:Date: TBA

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


New checkers
============

* Added ``missing-any-param-doc`` triggered when a function has neither parameter nor parameter type
  documentation. Undocumented parameters are now being properly identified. A warning might start to
  appear unexpectedly if ``missing-param-doc`` and ``missing-type-doc`` were disabled, as a new message
  ``missing-any-param-doc`` will be emitted instead.

  Closes #3799

* Checkers for ``typing.final``

  * Added ``overridden-final-method``: Emitted when a method which is annotated with ``typing.final`` is overridden

  * Added ``subclassed-final-class``: Emitted when a class which is annotated with ``typing.final`` is subclassed

  Closes #3197

* Created new ``UnsupportedVersionChecker`` checker class that includes checks for features
  not supported by all versions indicated by a ``py-version``.

  * Added ``using-f-string-in-unsupported-version`` checker. Issued when ``py-version``
    is set to a version that does not support f-strings (< 3.6)

* Fix ``useless-super-delegation`` false positive when default keyword argument is a variable.

* Added new checker `use-implicit-booleanness``: Emitted when using collection
  literals for boolean comparisons

* Added new checker ``use-implicit-booleaness-not-comparison``: Emitted when
  collection literal comparison is being used to check for emptiness.

  Closes #4774


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


Extensions
==========
* Added an optional extension ``consider-using-any-or-all``: Emitted when a ``for`` loop only
  produces a boolean and could be replaced by ``any`` or ``all`` using a generator. Also suggests
  a suitable any/all statement if it is concise.

  Closes #5008

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

* Improve and flatten ``unused-wildcard-import`` message

  Closes #3859

* In length checker, ``len-as-condition`` has been renamed as
  ``use-implicit-booleaness-not-len`` in order to be consistent with
  ``use-implicit-booleaness-not-comparison``.

* Update ``literal-comparison``` checker to ignore tuple literals

  Closes #3031

* ``undefined-variable`` now correctly flags variables which only receive a type annotations
  and never get assigned a value

  Closes #5140

* ``undefined-variable`` now correctly considers the line numbering and order of classes
  used in metaclass declarations

  Closes #4031

* ``used-before-assignment`` now correctly considers references to classes as type annotation
  or default values in first-level methods

  Closes #3771

* Fix double emitting of ``not-callable`` on inferrable ``properties``

  Closes #4426

* Support configuring mixin class pattern via ``mixin-class-rgx``

* Normalize the input to the ``ignore-paths`` option to allow both Posix and
  Windows paths

  Closes #5194

* ``mising-param-doc`` now correctly parses asterisks for variable length and
  keyword parameters

  Closes #3733