@@ -24,6 +24,171 @@ What's new in Pylint 2.15.0?
2424Release date: 2022-08-26
2525
2626
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+
27192New Checks
28193----------
29194
0 commit comments