Releases: pylint-dev/astroid
v4.0.1
What's New in astroid 4.0.1?
Release date: 2025-10-11
-
Suppress
SyntaxWarning
for invalid escape sequences and return in finally on
Python 3.14 when parsing modules. -
Assign
Import
andImportFrom
nodes 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-name
onattrs
classes withClassVar
annotated 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_member
fromastroid.brain.brain_numpy_utils
. -
To alleviate circular imports, the
manager
argument 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
path
arg inmodpath_from_file_with_callback
to be higher thansys.path
-
Following a deprecation period, the
future
argument was removed fromstatement()
andframe()
. -
Improve consistency of
JoinedStr
inference by not raisingInferenceError
and
returning eitherUninferable
or 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
property
decoratorsCloses #10377
-
Modify
astroid.bases
andtests.test_nodes
to reflect thatenum.property
was added in Python 3.11, not 3.10 -
Fix incorrect result in
_get_relative_base_path
when 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.TemplateStr
andast.Interpolation
added in Python 3.14.Refs #2789
-
Add support for type parameter defaults added in Python 3.13.
-
Improve
as_string()
representation forTypeVar
,ParamSpec
andTypeVarTuple
nodes, as well as
type parameter inClassDef
,FuncDef
andTypeAlias
nodes (PEP 695). -
Astroid now correctly supports the
exceptions
attribute ofExceptionGroup
.Closes pylint-dev/pylint#8985
Closes pylint-dev/pylint#10558 -
Deprecate importing node classes from
astroid
directly. This will be removed in v5.
It's recommended to import them fromastroid.nodes
instead.Refs #2837
v4.0.0rc0
Bump astroid to 4.0.0rc0
v4.0.0b3
v4.0.0b3
v4.0.0b2
v4.0.0b1
Bump astroid to 4.0.0b1, update changelog
v4.0.0b0
-
Removed internal functions
infer_numpy_member
,name_looks_like_numpy_member
, and
attribute_looks_like_numpy_member
fromastroid.brain.brain_numpy_utils
. -
To alleviate circular imports, the
manager
argument 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
path
arg inmodpath_from_file_with_callback
to be higher thansys.path
-
Following a deprecation period, the
future
argument was removed fromstatement()
andframe()
. -
Improve consistency of
JoinedStr
inference by not raisingInferenceError
and
returning eitherUninferable
or 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
property
decoratorsCloses pylint-dev/pylint#10377
-
Modify
astroid.bases
andtests.test_nodes
to reflect thatenum.property
was added in Python 3.11, not 3.10 -
Fix incorrect result in
_get_relative_base_path
when 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
v3.3.11
v3.3.10
-
Avoid importing submodules sharing names with standard library modules.
Closes #2684
-
Fix bug where
pylint code.custom_extension
would analyzecode.py
orcode.pyi
instead if they existed.Closes pylint-dev/pylint#3631
v3.3.9
What's New in astroid 3.3.9?
Release date: 2025-03-09
-
Fix crash when
sys.modules
contains lazy loader objects during checking.Closes #2686
Closes pylint-dev/pylint#8589 -
Upload release assets to PyPI via Trusted Publishing.