blob: 97957d7c58d22be82aab7be6087f202f1cf4e0cb (
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
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
|
***************************
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
* Added ``using-final-decorator-in-unsupported-version`` checker. Issued when ``py-version``
is set to a version that does not support typing.final (< 3.8)
* Added configuration option ``exclude-too-few-public-methods`` to allow excluding
classes from the ``min-public-methods`` checker.
Closes #3370
* Added new checker ``useless-with-lock`` to find incorrect usage of with statement and threading module locks.
Emitted when ``with threading.Lock():`` is used instead of ``with lock_instance:``.
Closes #5208
* A new ``bad-configuration-section`` checker was added that will emit for misplaced option
in pylint's top level namespace for toml configuration. Top-level dictionaries or option defined
in the wrong section will still silently not be taken into account, which is tracked in a
follow-up issue.
Follow-up in #5259
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
* Moved ``misplaced-comparison-constant`` to its own extension ``comparison_placement``.
This checker was opinionated and now no longer a default. It can be reactived by adding
``pylint.extensions.comparison_placement`` to ``load-plugins`` in your config.
Closes #1064
Other Changes
=============
* Fix ``install graphiz`` message which isn't needed for puml output format.
* ``pylint`` no longer crashes when checking assignment expressions within if-statements
Closes #5178
* Fix ``accept-no-yields-doc`` and ``accept-no-return-doc`` not allowing missing ``yield`` or
``return`` documentation when a docstring is partially correct
Closes #5223
* Fix ``simplify-boolean-expression`` when condition can be inferred as False.
Closes #5200
* Fix exception when pyreverse parses ``property function`` of a class.
* 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``.
* Fixed ``protected-access`` for accessing of attributes and methods of inner classes
Closes #3066
* 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
* ``undefined-variable`` and ``unused-variable`` now correctly trigger for assignment expressions
in functions defaults
Fixes part of #3688
* ``self-cls-assignment`` now also considers tuple assignment
* ``undefined-variable`` now correctly triggers for assignment expressions in if ... else statements
This includes a basic form of control flow inference for if ... else statements using
constant boolean values
Closes #3688
* Fix crash for ``unused-private-member`` when checking private members on ``__class__``
Closes #5261
* 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
* ``mising-param-doc`` now correctly handles Numpy parameter documentation without
explicit typing
Closes #5222
* The ``--jobs`` parameter now falls back to 1 if the host operating system does not
have functioning shared semaphore implementation.
Closes #5216
* Crashes when a list is encountered in a toml configuration do not happen anymore.
Closes #4580
* Fix crash for ``protected-access`` on (outer) class traversal
* Make yn validator case insensitive, to allow for ``True`` and ``False`` in config files.
* The last version compatible with python '3.6.0' and '3.6.1' is pylint '2.9.3'. We did not
realize that when adding incompatible typing at the time, and all versions since are broken
for this interpreter. 2.12.0 meta-information will permit to download pylint on those
interpreters but the installation will fail and tell you to install '2.9.3' instead.
pylint 2.12.1 will require python >= 3.6.2.
Closes #5171
Follow-up in #5065
|