blob: 3be3f3c7b1bb347fe31ed9f5700e466ef07c024c (
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
|
***************************
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 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
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
=============
* Fix ``install graphiz`` message which isn't needed for puml output format.
* 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
|