Releases: pylint-dev/astroid
v4.1.1
What's New in astroid 4.1.1?
Release date: 2026-02-22
v4.1.0
What's New in astroid 4.1.0?
Release date: 2026-02-08
-
Add support for equality constraints (
==,!=) in inference.
Closes pylint-dev/pylint#3632
Closes pylint-dev/pylint#3633 -
Ensure
ast.JoinedStrnodes areUninferablewhen theast.FormattedValueis
Uninferable. This preventsunexpected-keyword-argmessages in Pylint
where theUninferablestring appeared in function arguments that were
constructed dynamically.Closes pylint-dev/pylint#10822
-
Add support for type constraints (
isinstance(x, y)) in inference.Closes pylint-dev/pylint#1162
Closes pylint-dev/pylint#4635
Closes pylint-dev/pylint#10469 -
Make
type.__new__()raise clear errors instead of returningNone -
Move object dunder methods from
FunctionModeltoObjectModelto make them
available on all object types, not just functions.Closes #2742
Closes #2741
Closes pylint-dev/pylint#6094 -
linenoandend_linenoare now available onArguments. -
Add helper to iterate over all annotations nodes of function arguments,
Arguments.get_annotations().Refs #2860
-
Skip direct parent when determining the
Decoratorframe. -
Add simple command line interface for astroid to output generated AST.
Use withpython -m astroid. -
Fix incorrect type inference for
super().method()calls that returnSelf.
Previously, astroid would infer the parent class type instead of the child class type,
causing pylint E1101 false positives in method chaining scenarios.Closes #457
-
Add missing
dtypeandcastingparameters tonumpy.concatenatebrain.Closes #2870
-
Fix ability to detect .py modules inside PATH directories on Windows
described by a UNC path with a trailing backslash (\)- Example: modutils.modpath_from_file(filename=r"\Mac\Code\tests\test_resources.py", path=["\mac\code"]) == ['tests', 'test_resources']
-
Fix
random.sampleinference crash when sequence contains uninferable elements.Closes #2518
-
Fix
random.samplecrash when cloningClassDeforFunctionDefnodes.Closes #2923
v4.0.4
v4.0.3
What's New in astroid 4.0.3?
Release date: 2026-01-03
-
Fix inference of
IfExp(ternary expression) nodes to avoid prematurely narrowing
results in the face of inference ambiguity.Closes #2899
-
Fix base class inference for dataclasses using the PEP 695 typing syntax.
v4.0.2
What's New in astroid 4.0.2?
Release date: 2025-11-09
-
Handle FunctionDef blockstart_tolineno edge cases correctly.
Refs #2880
-
Add
HTTPMethodenum support to brain module for Python 3.11+.Refs pylint-dev/pylint#10624
Closes #2877
v4.0.1
What's New in astroid 4.0.1?
Release date: 2025-10-11
-
Suppress
SyntaxWarningfor invalid escape sequences and return in finally on
Python 3.14 when parsing modules. -
Assign
ImportandImportFromnodes to module locals if used withglobal.Closes pylint-dev/pylint#10632
v4.0.0
What's New in astroid 4.0.0?
Release date: 2025-10-05
-
Support constraints from ternary expressions in inference.
Closes pylint-dev/pylint#9729
-
Handle deprecated
bool(NotImplemented)cast in const nodes. -
Add support for boolean truthiness constraints (
x,not x) in inference.Closes pylint-dev/pylint#9515
-
Fix false positive
invalid-nameonattrsclasses withClassVarannotated variables.Closes pylint-dev/pylint#10525
-
Prevent crash when parsing deeply nested parentheses causing MemoryError in python's built-in ast.
Closes #2643
-
Fix crash when inferring namedtuple with invalid field name looking like f-string formatting.
Closes #2519
-
Fix false positive no-member in except * handler.
Closes pylint-dev/pylint#9056
-
Fix crash when comparing invalid dict literal
Closes #2522
-
Removed internal functions
infer_numpy_member,name_looks_like_numpy_member, and
attribute_looks_like_numpy_memberfromastroid.brain.brain_numpy_utils. -
To alleviate circular imports, the
managerargument toAstroidBuilder()is now required. -
Constants now have a parent of
nodes.SYNTHETIC_ROOT. -
Fix crashes with large positive and negative list multipliers.
-
Fix precedence of
patharg inmodpath_from_file_with_callbackto be higher thansys.path -
Following a deprecation period, the
futureargument was removed fromstatement()andframe(). -
Improve consistency of
JoinedStrinference by not raisingInferenceErrorand
returning eitherUninferableor a fully resolvedConst.Closes #2621
-
Fix crash when typing._alias() call is missing arguments.
Closes #2513
-
Remove support for Python 3.9 (and constant
PY310_PLUS). -
Include subclasses of standard property classes as
propertydecoratorsCloses #10377
-
Modify
astroid.basesandtests.test_nodesto reflect thatenum.propertywas added in Python 3.11, not 3.10 -
Fix incorrect result in
_get_relative_base_pathwhen the target directory name starts with the base pathCloses #2608
-
The brain for nose was dropped. nose has been deprecated for 10 years and the brain required some maintenance.
Refs #2765
-
Fix a crash when the root of a node is not a module but is unknown.
Closes #2672
-
Add basic support for
ast.TemplateStrandast.Interpolationadded in Python 3.14.Refs #2789
-
Add support for type parameter defaults added in Python 3.13.
-
Improve
as_string()representation forTypeVar,ParamSpecandTypeVarTuplenodes, as well as
type parameter inClassDef,FuncDefandTypeAliasnodes (PEP 695). -
Astroid now correctly supports the
exceptionsattribute ofExceptionGroup.Closes pylint-dev/pylint#8985
Closes pylint-dev/pylint#10558 -
Deprecate importing node classes from
astroiddirectly. This will be removed in v5.
It's recommended to import them fromastroid.nodesinstead.Refs #2837
v4.0.0rc0
Bump astroid to 4.0.0rc0
v4.0.0b3
v4.0.0b3