@@ -24,6 +24,171 @@ What's new in Pylint 2.15.0?
24
24
Release date: 2022-08-26
25
25
26
26
27
+ New Checks
28
+ ----------
29
+
30
+ - Added new checker ``missing-timeout `` to warn of default timeout values that could cause
31
+ a program to be hanging indefinitely.
32
+
33
+ Refs #6780 (`#6780 <https://github.com/PyCQA/pylint/issues/6780 >`_)
34
+
35
+
36
+ False Positives Fixed
37
+ ---------------------
38
+
39
+ - Don't report ``super-init-not-called `` for abstract ``__init__ `` methods.
40
+
41
+ Closes #3975 (`#3975 <https://github.com/PyCQA/pylint/issues/3975 >`_)
42
+ - Don't report ``unsupported-binary-operation `` on Python <= 3.9 when using the ``| `` operator
43
+ with types, if one has a metaclass that overloads ``__or__ `` or ``__ror__ `` as appropriate.
44
+
45
+ Closes #4951 (`#4951 <https://github.com/PyCQA/pylint/issues/4951 >`_)
46
+ - Don't report ``no-value-for-parameter `` for dataclasses fields annotated with ``KW_ONLY ``.
47
+
48
+ Closes #5767 (`#5767 <https://github.com/PyCQA/pylint/issues/5767 >`_)
49
+ - Fixed inference of ``Enums `` when they are imported under an alias.
50
+
51
+ Closes #5776 (`#5776 <https://github.com/PyCQA/pylint/issues/5776 >`_)
52
+ - Prevent false positives when accessing ``PurePath.parents `` by index (not slice) on Python 3.10+.
53
+
54
+ Closes #5832 (`#5832 <https://github.com/PyCQA/pylint/issues/5832 >`_)
55
+ - ``unnecessary-list-index-lookup `` is now more conservative to avoid potential false positives.
56
+
57
+ Closes #6896 (`#6896 <https://github.com/PyCQA/pylint/issues/6896 >`_)
58
+ - Fix double emitting ``trailing-whitespace `` for multi-line docstrings.
59
+
60
+ Closes #6936 (`#6936 <https://github.com/PyCQA/pylint/issues/6936 >`_)
61
+ - ``import-error `` now correctly checks for ``contextlib.suppress `` guards on import statements.
62
+
63
+ Closes #7270 (`#7270 <https://github.com/PyCQA/pylint/issues/7270 >`_)
64
+ - Fix false positive for `no-self-argument `/`no-method-argument ` when a staticmethod is applied to a function but uses a different name.
65
+
66
+ Closes #7300 (`#7300 <https://github.com/PyCQA/pylint/issues/7300 >`_)
67
+ - Fix `undefined-loop-variable ` with `break ` and `continue ` statements in `else ` blocks.
68
+
69
+ Refs #7311 (`#7311 <https://github.com/PyCQA/pylint/issues/7311 >`_)
70
+
71
+
72
+ False Negatives Fixed
73
+ ---------------------
74
+
75
+ - Emit ``used-before-assignment `` when relying on a name that is reimported later in a function.
76
+
77
+ Closes #4624 (`#4624 <https://github.com/PyCQA/pylint/issues/4624 >`_)
78
+ - Emit ``used-before-assignment `` for self-referencing named expressions (``:= ``) lacking
79
+ prior assignments.
80
+
81
+ Closes #5653 (`#5653 <https://github.com/PyCQA/pylint/issues/5653 >`_)
82
+ - Using "default" in parameter signatures of NumPy doctrings emitted a `missing-param `
83
+ error.
84
+
85
+ Closes #6211 (`#6211 <https://github.com/PyCQA/pylint/issues/6211 >`_)
86
+ - Emit ``used-before-assignment `` for self-referencing assignments under if conditions.
87
+
88
+ Closes #6643 (`#6643 <https://github.com/PyCQA/pylint/issues/6643 >`_)
89
+ - Emit ``modified-iterating-list `` and analogous messages for dicts and sets when iterating
90
+ literals, or when using the ``del `` keyword.
91
+
92
+ Closes #6648 (`#6648 <https://github.com/PyCQA/pylint/issues/6648 >`_)
93
+ - Emit ``used-before-assignment `` when calling nested functions before assignment.
94
+
95
+ Closes #6812 (`#6812 <https://github.com/PyCQA/pylint/issues/6812 >`_)
96
+ - Emit ``nonlocal-without-binding `` when a nonlocal name has been assigned at a later point in the same scope.
97
+
98
+ Closes #6883 (`#6883 <https://github.com/PyCQA/pylint/issues/6883 >`_)
99
+ - Emit ``using-constant-test `` when testing the truth value of a variable or call result
100
+ holding a generator.
101
+
102
+ Closes #6909 (`#6909 <https://github.com/PyCQA/pylint/issues/6909 >`_)
103
+ - Rename ``unhashable-dict-key `` to ``unhashable-member `` and emit when creating sets and dicts,
104
+ not just when accessing dicts.
105
+
106
+ Closes #7034, Closes #7055 (`#7034 <https://github.com/PyCQA/pylint/issues/7034 >`_)
107
+
108
+
109
+ Other Bug Fixes
110
+ ---------------
111
+
112
+ - Fix a failure to lint packages with ``__init__.py `` contained in directories lacking ``__init__.py ``.
113
+
114
+ Closes #1667 (`#1667 <https://github.com/PyCQA/pylint/issues/1667 >`_)
115
+ - Fixed a syntax-error crash that was not handled properly when the declared encoding of a file
116
+ was ``utf-9 ``.
117
+
118
+ Closes #3860 (`#3860 <https://github.com/PyCQA/pylint/issues/3860 >`_)
119
+ - Fix a crash in the ``not-callable `` check when there is ambiguity whether an instance is being incorrectly provided to ``__new__() ``.
120
+
121
+ Closes #7109 (`#7109 <https://github.com/PyCQA/pylint/issues/7109 >`_)
122
+ - Fix crash when regex option raises a `re.error ` exception.
123
+
124
+ Closes #7202 (`#7202 <https://github.com/PyCQA/pylint/issues/7202 >`_)
125
+ - Fix `undefined-loop-variable ` from walrus in comprehension test.
126
+
127
+ Closes #7222 (`#7222 <https://github.com/PyCQA/pylint/issues/7222 >`_)
128
+ - Check for `<cwd> ` before removing first item from `sys.path ` in `modify_sys_path `.
129
+
130
+ Closes #7231 (`#7231 <https://github.com/PyCQA/pylint/issues/7231 >`_)
131
+ - Fix sys.path pollution in parallel mode.
132
+
133
+ Closes #7246 (`#7246 <https://github.com/PyCQA/pylint/issues/7246 >`_)
134
+ - Prevent `useless-parent-delegation ` for delegating to a builtin
135
+ written in C (e.g. `Exception.__init__ `) with non-self arguments.
136
+
137
+ Closes #7319 (`#7319 <https://github.com/PyCQA/pylint/issues/7319 >`_)
138
+
139
+
140
+ Other Changes
141
+ -------------
142
+
143
+ - ``bad-exception-context `` has been renamed to ``bad-exception-cause `` as it is about the cause and not the context.
144
+
145
+ Closes #3694 (`#3694 <https://github.com/PyCQA/pylint/issues/3694 >`_)
146
+ - The message for ``literal-comparison `` is now more explicit about the problem and the
147
+ solution.
148
+
149
+ Closes #5237 (`#5237 <https://github.com/PyCQA/pylint/issues/5237 >`_)
150
+ - ``useless-super-delegation `` has been renamed to ``useless-parent-delegation `` in order to be more generic.
151
+
152
+ Closes #6953 (`#6953 <https://github.com/PyCQA/pylint/issues/6953 >`_)
153
+ - Pylint now uses ``towncrier `` for changelog generation.
154
+
155
+ Refs #6974 (`#6974 <https://github.com/PyCQA/pylint/issues/6974 >`_)
156
+ - Update ``astroid `` to 2.12.
157
+
158
+ Refs #7153 (`#7153 <https://github.com/PyCQA/pylint/issues/7153 >`_)
159
+ - Fix crash when a type-annotated `__slots__ ` with no value is declared.
160
+
161
+ Closes #7280 (`#7280 <https://github.com/PyCQA/pylint/issues/7280 >`_)
162
+
163
+
164
+ Internal Changes
165
+ ----------------
166
+
167
+ - Fixed an issue where it was impossible to update functional tests output when the existing
168
+ output was impossible to parse. Instead of raising an error we raise a warning message and
169
+ let the functional test fail with a default value.
170
+
171
+ Refs #6891 (`#6891 <https://github.com/PyCQA/pylint/issues/6891 >`_)
172
+ - ``pylint.testutils.primer `` is now a private API.
173
+
174
+ Refs #6905 (`#6905 <https://github.com/PyCQA/pylint/issues/6905 >`_)
175
+ - We changed the way we handle the changelog internally by using towncrier.
176
+ If you're a contributor you won't have to fix merge conflicts in the
177
+ changelog anymore.
178
+
179
+ Closes #6974 (`#6974 <https://github.com/PyCQA/pylint/issues/6974 >`_)
180
+ - Pylint is now using Scorecards to implement security recommendations from the
181
+ `OpenSSF <https://openssf.org/ >`_. This is done in order to secure our supply chains using a combination
182
+ of automated tooling and best practices, most of which were already implemented before.
183
+
184
+ Refs #7267 (`#7267 <https://github.com/PyCQA/pylint/issues/7267 >`_)
185
+
186
+
187
+ What's new in Pylint 2.15.0?
188
+ ----------------------------
189
+ Release date: 2022-08-26
190
+
191
+
27
192
New Checks
28
193
----------
29
194
0 commit comments