Releases: pylint-dev/astroid
v2.11.5
-
Fix crash while obtaining
object_type()
of anUnknown
node. -
Fix a bug where in attempting to handle the patching of
distutils
byvirtualenv
,
library submodules calleddistutils
(e.g.numpy.distutils
) were included also.
v2.11.4
-
Fix
col_offset
attribute for nodes involvingwith
onPyPy
. -
Fixed a crash involving two starred expressions: one inside a comprehension,
both inside a call. -
Made
FunctionDef.implicit_parameters
return 1 for methods by making
FunctionDef.is_bound
returnTrue
, as it does for class methods.Closes pylint-dev/pylint#6464
-
Fixed a crash when
_filter_stmts
encounters anEmptyNode
.Closes pylint-dev/pylint#6438
v2.11.3
-
Fixed an error in the Qt brain when building
instance_attrs
.Closes pylint-dev/pylint#6221
-
Fixed a crash in the
gi
brain.Closes pylint-dev/pylint#6371
v2.11.2
-
Avoided adding the name of a parent namedtuple to its child's locals.
v2.11.1
v2.11.0
-
Add new (optional)
doc_node
attribute tonodes.Module
,nodes.ClassDef
,
andnodes.FunctionDef
. -
Accessing the
doc
attribute ofnodes.Module
,nodes.ClassDef
, and
nodes.FunctionDef
has been deprecated in favour of thedoc_node
attribute.
Note:doc_node
is an (optional)nodes.Const
whereasdoc
was an (optional)str
. -
Passing the
doc
argument to the__init__
ofnodes.Module
,nodes.ClassDef
,
andnodes.FunctionDef
has been deprecated in favour of thepostinit
doc_node
attribute.
Note:doc_node
is an (optional)nodes.Const
whereasdoc
was an (optional)str
. -
Replace custom
cachedproperty
withfunctools.cached_property
and deprecate it
for Python 3.8+.Closes #1410
-
Set
end_lineno
andend_col_offset
attributes toNone
for all nodes
with PyPy 3.8. PyPy 3.8 assigns these attributes inconsistently which could lead
to unexpected errors. Overwriting them withNone
will cause a fallback
to the already supported way of PyPy 3.7. -
Add missing
shape
parameter to numpyzeros_like
,ones_like
,
andfull_like
methods.Closes pylint-dev/pylint#5871
-
Only pin
wrapt
on the major version.
v2.10.0
-
Fixed inference of
self
in binary operations in whichself
is part of a list or tuple.Closes pylint-dev/pylint#4826
-
Fixed builtin inference on
property
calls not calling thepostinit
of the new node, which
resulted in instance arguments missing on these nodes. -
Fixed a crash on
Super.getattr
when the attribute was previously uninferable due to a cache
limit size. This limit can be hit when the inheritance pattern of a class (and therefore of the
__init__
attribute) is very large.Closes pylint-dev/pylint#5679
-
Include names of keyword-only arguments in
astroid.scoped_nodes.Lambda.argnames
.Closes pylint-dev/pylint#5771
-
Fixed a crash inferring on a
NewType
named with an f-string.Closes pylint-dev/pylint#5770
-
Add support for attrs v21.3.0 which
added a newattrs
module alongside the existingattr
.Closes #1330
-
Use the
end_lineno
attribute for theNodeNG.tolineno
property
when it is available.Closes #1350
-
Add
is_dataclass
attribute toClassDef
nodes. -
Use
sysconfig
instead ofdistutils
to determine the location of
python stdlib files and packages.Related pull requests: #1322, #1323, #1324
Closes #1282
Ref #1103 -
Fixed crash with recursion error for inference of class attributes that referenced
the class itself.Closes pylint-dev/pylint#5408
-
Fixed crash when trying to infer
items()
on the__dict__
attribute of an imported module.Closes #1085
-
Add optional
NodeNG.position
attribute.
Used for block nodes to highlight position of keyword(s) and name
in cases where the AST doesn't provide good enough positional information.
E.g.nodes.ClassDef
,nodes.FunctionDef
. -
Fix
ClassDef.fromlineno
. For Python < 3.8 thelineno
attribute includes decorators.
fromlineno
should return the line of theclass
statement itself. -
Performance improvements. Only run expensive decorator functions when
non-default Deprecation warnings are enabled, eg. during a Pytest run.Closes #1383
v2.9.3
v2.9.2
v2.9.1
-
NodeNG.frame()
andNodeNG.statement()
will start raisingParentMissingError
instead ofAttributeError
in astroid 3.0. This behaviour can already be triggered
by passingfuture=True
to aframe()
orstatement()
call. -
Prefer the module loader get_source() method in AstroidBuilder's
module_build() when possible to avoid assumptions about source
code being available on a filesystem. Otherwise the source cannot
be found and application behavior changes when running within an
embedded hermetic interpreter environment (pyoxidizer, etc.). -
Require Python 3.6.2 to use astroid.
-
Removed custom
distutils
handling for resolving paths to submodules.Ref #1321
-
Fix
deque.insert()
signature incollections
brain.Closes #1260
-
Fix
Module
nodes not having acol_offset
,end_lineno
, andend_col_offset
attributes. -
Fix typing and update explanation for
Arguments.args
beingNone
. -
Fix crash if a variable named
type
is subscripted in a generator expression.Closes pylint-dev/pylint#5461
-
Enable inference of dataclass import from marshmallow_dataclass.
This allows the dataclasses brain to recognize dataclasses annotated by marshmallow_dataclass. -
Resolve symlinks in the import path
Fixes inference error when the import path includes symlinks (e.g. Python
installed on macOS via Homebrew).Closes #823
Closes pylint-dev/pylint#3499
Closes pylint-dev/pylint#4302
Closes pylint-dev/pylint#4798
Closes pylint-dev/pylint#5081