Access PyCQA changelog updates through our uniform API. Same JSON structure across all sources — no adapter-specific parsing needed.
GET https://watchchangelog.com/api/v1/entries?source=pylint.releases{
"source": "pylint.releases",
"vendor": "PyCQA",
"id": "tag:github.com,2008:Repository/47671127/v4.0.7",
"published_at": "2026-08-09T19:13:36.000Z",
"title": "v4.0.7",
"url": "https://github.com/pylint-dev/pylint/releases/tag/v4.0.7",
"summary": "What's new in Pylint 4.0.7? Release date: 2026-08-09 False Positives Fixed Fix a false positive for invalid-name when a module-level variable is assigned an instance of a TypedDict subclass. Such a name is a value, not a type definition, so it is now checked against the constant or variable regex instead of class-rgx . Closes #11231 Other Bug Fixes Fix a crash in the bad-open-mode check when the mode argument of open is the NotImplemented constant (Python >= 3.14). Closes #11099 Fix a crash in the not-context-manager and not-async-context-manager checks when the context manager infers to a value without a name, such as the slice returned by with slice(...) / async with slice(...) . Closes #11102 Fix a false positive for nested-min-max ( W3301 ) when the inner min / max call carries a keyword argument such as key= . Flattening the call dropped the keyword and changed the result, so nested calls whose inner call has keyword arguments are no longer flagged. Closes #11130 Fix a false suggestion from nested-min-max ( W3301 ): when rewriting a nested min / max into a splat call, arguments positioned after the splatted call were silently dropped, so the suggested code changed the result. Closes #11134 Fix a false positive for too-many-locals ( R0914 ): PEP 695 type parameters, i.e. the T1 and T2 in a generic def f[T1, T2] signature, were counted as local variables. They are type-system constructs, not runtime locals, and are now excluded from the local-variable count. Closes #11136 Fix literal-comparison ( R0123 ) emitting a corrupted suggestion for identifiers that contain is (e.g. axis is 5 was rendered ax== == 5 ). The suggestion is now rebuilt from the operands and operator. Closes #11146 Fix false positives in bad-string-format-type ( E1307 ) for valid % formatting: %i / %u applied to a float (both truncate like %d ) and %a applied to any non-int type ( %a is type-agnostic like %s / %r ). Closes #11147 Fix a false positive for :ref: useless-parent-delegation when an override changes the default value of a positional-only parameter. Closes #11148 Fixed a crash in comparison-with-callable when comparing a lambda assigned as a class attribute. Closes #11175 too-many-lines could be reported at the line of a # pylint: disable=too-many-lines pragma found in a previously linted module. Pragma positions are now reset between modules, so the message is reported at line 1 (or at the current module's own pragma) regardless of which files were linted before. Refs #11191 Fix a crash when a call unpacks a dictionary whose keys are not string constants, e.g. copy.copy(**{-1: 1}) . Closes #11222",
"tags": [
"PyCQA",
"pylint.releases",
"linter",
"python",
"code-quality"
]
}Sign up to access the full changelog API. All public sources are free — no credit card required.
Sign Up Free →+2 more
+2 more
+2 more
+2 more
+2 more