chore(deps): update dependency astroid to v3 #436
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
==2.5.6
->==3.0.2
Warning
Some dependencies could not be looked up. Check the warning logs for more information.
Release Notes
pylint-dev/astroid (astroid)
v3.0.2
Compare Source
============================
Release date: 2023-12-12
Avoid duplicate inference results for some uses of
typing.X
constructs likeTuple[Optional[int], ...]
. This was causing pylint to occasionally omitmessages like
deprecated-typing-alias
.Closes pylint-dev/pylint#9220
v3.0.1
Compare Source
============================
Release date: 2023-10-15
Fix crashes linting code using PEP 695 (Python 3.12) generic type syntax.
Closes pylint-dev/pylint#9098
v3.0.0
Compare Source
=============================
Release date: 2023-09-26
Add support for Python 3.12, including PEP 695 type parameter syntax.
Closes #2201
Remove support for Python 3.7.
Refs #2137
Use the global inference cache when inferring, even without an explicit
InferenceContext
. This is a significant performance improvement given howoften methods default to
None
for the context argument. (Lintingastroid
itself now takes ~5% less time on Python 3.12; other projects requiring more
complex inference calculations will see greater speedups.)
Refs #529
Following a deprecation period starting in astroid 2.7.0, the
astroid.node_classes
and
astroid.scoped_nodes
modules have been removed in favor ofastroid.nodes.node_classes
and
astroid.nodes.scoped_nodes
.Closes #1072
Following a deprecation period starting in astroid 2.12.0, the
astroid.mixins
modulehas been removed in favor of
astroid.nodes._base_nodes
(private).Refs #1633
Return all existing arguments when calling
Arguments.arguments()
. This also meansfind_argname
will nowuse the whole list of arguments for its search.
Closes #2213
Exclude class attributes from the
__members__
container of anEnum
class when they arenodes.AnnAssign
nodes with no assigned value.Refs pylint-dev/pylint#7402
Remove
@cached
and@cachedproperty
decorator (just use@cached_property
from the stdlib).Closes #1780
Refs #2140
Remove the
inference
module. Node inference methods are now in the moduledefining the node, rather than being associated to the node afterward.
Closes #679
Move
LookupMixIn
toastroid.nodes._base_nodes
and make it private.Remove the shims for
OperationError
,BinaryOperationError
, andUnaryOperationError
in
exceptions
. They were moved toutil
in astroid 1.5.0.Move
safe_infer()
fromhelpers
toutil
. This avoids some circular imports.Reduce file system access in
ast_from_file()
.Reduce time to
import astroid
by delayingastroid_bootstrapping()
untilthe first instantiation of
AstroidBuilder
.Closes #2161
Make
igetattr()
idempotent. This addresses some reports of varying resultswhen running pylint with
--jobs
.Closes pylint-dev/pylint#4356
Refs #7
Fix incorrect cache keys for inference results, thereby correctly inferring types
for calls instantiating types dynamically.
Closes #1828
Closes pylint-dev/pylint#7464
Closes pylint-dev/pylint#8074
Fix interrupted
InferenceContext
call chains, thereby addressing performanceproblems when linting
sqlalchemy
.Closes pylint-dev/pylint#8150
nodes.FunctionDef
no longer inherits fromnodes.Lambda
.This is a breaking change but considered a bug fix as the nodes did not share the same
API and were not interchangeable.
We have tried to minimize the amount of breaking changes caused by this change
but some are unavoidable.
infer_call_result
now shares the same interface across all implementations. Namely:This is a breaking change for
nodes.FunctionDef
where previouslycaller
had a default ofNone
. PassingNone
again will not create a behaviour change.The breaking change allows us to better type and re-use the method within
astroid
.Improved signature of the
__init__
and__postinit__
methods of most nodes.This includes making
lineno
,col_offset
,end_lineno
,end_col_offset
andparent
required arguments for
nodes.NodeNG
and its subclasses.For most other nodes, arguments of their
__postinit__
methods have been made required to betterrepresent how they would normally be constructed by the standard library
ast
module.The following nodes were changed or updated:
nodes.AnnAssign
nodes.Arguments
nodes.Assign
nodes.AssignAttr
nodes.AssignName
nodes.Attribute
nodes.AugAssign
nodes.Await
nodes.BaseContainer
nodes.BinOp
nodes.Call
nodes.ClassDef
nodes.Compare
nodes.Comprehension
nodes.Decorators
nodes.Delete
nodes.DelAttr
nodes.DelName
nodes.Dict
nodes.DictComp
nodes.ExceptHandler
nodes.Expr
nodes.For
nodes.FunctionDef
nodes.GeneratorExp
nodes.If
nodes.IfExp
nodes.Keyword
nodes.Lambda
nodes.ListComp
nodes.Module
nodes.Name
nodes.NodeNG
nodes.Raise
nodes.Return
nodes.SetComp
nodes.Slice
nodes.Starred
objects.Super
, we also added thecall
parameter to its__init__
method.nodes.Subscript
nodes.UnaryOp
nodes.While
nodes.Yield
These changes involve breaking changes to their API but should be considered bug fixes. We
now make arguments required when they are instead of always providing defaults.
nodes.If.self.is_orelse
has been removed as it was never set correctly and thereforeprovided a false value.
Remove dependency on
wrapt
.Remove dependency on
lazy_object_proxy
. This includes the removalof the associated
lazy_import
,lazy_descriptor
andproxy_alias
utility functions.CallSite._unpack_args
andCallSite._unpack_keywords
now usesafe_infer()
forbetter inference and fewer false positives.
Closes pylint-dev/pylint#8544
Add
attr.Factory
to the recognized class attributes for classes decorated withattrs
.Closes pylint-dev/pylint#4341
infer_property()
now observes the same property-specific workaround asinfer_functiondef
.Refs #1490
Remove unused and / or deprecated constants:
astroid.bases.BOOL_SPECIAL_METHOD
astroid.bases.BUILTINS
astroid.const.BUILTINS
astroid.const.PY38_PLUS
astroid.const.Load
astroid.const.Store
astroid.const.Del
Refs #2141
frame()
raisesParentMissingError
andstatement()
raisesStatementMissing
formissing parents regardless of the value of the
future
argument (which gave this behavioralready).
The
future
argument to each method is deprecated and will be removed in astroid 4.0.Refs #1217
Remove deprecated
Ellipsis
,ExtSlice
,Index
nodes.Refs #2152
Remove deprecated
is_sys_guard
andis_typing_guard
methods.Refs #2153
Remove deprecated
doc
attribute forModule
,ClassDef
, andFunctionDef
.Use the
doc_node
attribute instead.Refs #2154
Add new
nodes.Try
to better match Python AST. Replaces theTryExcept
and
TryFinally
nodes which have been removed.Publicize
NodeNG.repr_name()
to facilitate finding a node's nice name.Refs pylint-dev/pylint#8598
Fix false positives for
no-member
andinvalid-name
when using the_name_
,_value_
and_ignore_
sunders in Enums.Closes pylint-dev/pylint#9015
v2.15.8
Compare Source
=============================
Release date: 2023-09-26
Fix a regression in 2.15.7 for
unsubscriptable-object
.Closes #2305
Closes pylint-dev/pylint#9069
Fix a regression in 2.15.7 for
unsubscriptable-object
.Closes #2305
Closes pylint-dev/pylint#9069
v2.15.7
Compare Source
=============================
Release date: 2023-09-23
Fix a crash when inferring a
typing.TypeVar
call.Closes pylint-dev/pylint#8802
Infer user-defined enum classes by checking if the class is a subtype of
enum.Enum
.Closes pylint-dev/pylint#8897
Fix inference of functions with
@functools.lru_cache
decorators withoutparentheses.
Closes pylint-dev/pylint#8868
Make
sys.argv
uninferable because it never is. (It's impossible to inferthe value it will have outside of static analysis where it's our own value.)
Refs pylint-dev/pylint#7710
v2.15.6
Compare Source
=============================
Release date: 2023-07-08
Harden
get_module_part()
against"."
.Closes pylint-dev/pylint#8749
Allow
AsStringVisitor
to visitobjects.PartialFunction
.Closes pylint-dev/pylint#8881
Avoid expensive list/tuple multiplication operations that would result in
MemoryError
.Closes pylint-dev/pylint#8748
Fix a regression in 2.12.0 where settings in AstroidManager would be ignored.
Most notably this addresses pylint-dev/pylint#7433.
Refs #2204
v2.15.5
Compare Source
=============================
Release date: 2023-05-14
Handle
objects.Super
inhelpers.object_type()
.Refs pylint-dev/pylint#8554
Recognize stub
pyi
Python files.Refs pylint-dev/pylint#4987
v2.15.4
Compare Source
=============================
Release date: 2023-04-24
Add visitor function for
TryStar
toAsStringVisitor
andadd
TryStar
toastroid.nodes.ALL_NODE_CLASSES
.Refs #2142
v2.15.3
Compare Source
=============================
Release date: 2023-04-16
Fix
infer_call_result()
crash on methods calledwith_metaclass()
.Closes #1735
Suppress
UserWarning
when finding module specs.Closes pylint-dev/pylint#7906
v2.15.2
Compare Source
=============================
Release date: 2023-04-03
Support more possible usages of
attrs
decorators.Closes pylint-dev/pylint#7884
v2.15.1
Compare Source
=============================
Release date: 2023-03-26
Restore behavior of setting a Call as a base for classes created using
six.with_metaclass()
,and harden support for using enums as metaclasses in this case.
Reverts #1622
Refs pylint-dev/pylint#5935
Refs pylint-dev/pylint#7506
v2.15.0
Compare Source
=============================
Release date: 2023-03-06
astroid now supports
TryStar
nodes from python 3.11 and should be fully compatible with python 3.11.Closes #2028
Formattedvalue.postinit
is now keyword only. This is to allow correct typing of theFormattedvalue
class.Refs #1516
Astroid
now supports custom import hooks.Refs pylint-dev/pylint#7306
astroid
now infers return values from match cases.Refs pylint-dev/pylint#5288
AstroidManager.clear_cache
now also clears the inference context cache.Refs #1780
max_inferable_values
can now be set onAstroidManager
instances, e.g.astroid.MANAGER
besides just the
AstroidManager
class itself.Closes #2280
Astroid
now retrieves the default values of keyword only arguments and sets them onArguments.kw_defaults
.Uninferable
now has the typeUninferableBase
. This is to facilitate correctly type annotatingcode that uses this singleton.
Closes #1680
Deprecate
modutils.is_standard_module()
. It will be removed in the next minor release.Functionality has been replaced by two new functions,
modutils.is_stdlib_module()
andmodutils.module_in_path()
.Closes #2012
Fix
are_exclusive
function when a walrus operator is used insideIfExp.test
field.Closes #2022
v2.14.2
Compare Source
=============================
Release date: 2023-02-12
'_infer_str_format_call' won't crash anymore when the string it analyses are uninferable.
Closes pylint-dev/pylint#8109
v2.14.1
Compare Source
=============================
Release date: 2023-01-31
CallContext
change as it caused aRecursionError
regression.v2.14.0
Compare Source
=============================
Release date: 2023-01-31
Add support for inferring binary union types added in Python 3.10.
Refs pylint-dev/pylint#8119
Capture and log messages emitted when inspecting a module for astroid.
Closes #1904
v2.13.5
Compare Source
=============================
Release date: 2023-01-31
CallContext
change as it caused aRecursionError
regression.v2.13.4
Compare Source
=============================
Release date: 2023-01-31
Fix issues with
typing_extensions.TypeVar
.Fix
ClassDef.fromlino
for PyPy 3.8 (v7.3.11) if class is wrapped by a decorator.Preserve parent CallContext when inferring nested functions.
Closes pylint-dev/pylint#8074
Add
Lock
to themultiprocessing
brain.Closes pylint-dev/pylint#3313
v2.13.3
Compare Source
=============================
Release date: 2023-01-20
Fix a regression in 2.13.2 where a RunTimeError could be raised unexpectedly.
Closes #1958
Fix overwritten attributes in inherited dataclasses not being ordered correctly.
Closes pylint-dev/pylint#7881
Fix a false positive when an attribute named
Enum
was confused withenum.Enum
.Calls to
Enum
are now inferred & the qualified name is checked.Refs pylint-dev/pylint#5719
Remove unnecessary typing_extensions dependency on Python 3.11 and newer
v2.13.2
Compare Source
=============================
Release date: 2023-01-08
Removed version conditions on typing_extensions dependency. Removed typing_extensions from
our tests requirements as it was preventing issues to appear in our continuous integration.
Closes #1945
v2.13.1
Compare Source
=============================
Release date: 2023-01-08
Bumping typing_extensions to 4.0.0 that is required when using
Self
Closes #1942
v2.13.0
Compare Source
=============================
Release date: 2023-01-07
Fixed importing of modules that have the same name as the file that is importing.
astroid
will now correctly handle animport math
statement in a file calledmath.py
by relying on the import system.
Refs pylint-dev/pylint#5151
Create
ContextManagerModel
and letGeneratorModel
inherit from it.Refs pylint-dev/pylint#2567
Added a
regex
brain.Refs pylint-dev/pylint#1911
Support "is None" constraints from if statements during inference.
Ref #791
Ref pylint-dev/pylint#157
Ref pylint-dev/pylint#1472
Ref pylint-dev/pylint#2016
Ref pylint-dev/pylint#2631
Ref pylint-dev/pylint#2880
v2.12.14
Compare Source
==============================
Release date: 2023-01-06
Handle the effect of properties on the
__init__
of a dataclass correctly.Closes pylint-dev/pylint#5225
Handle the effect of
kw_only=True
in dataclass fields correctly.Closes pylint-dev/pylint#7623
Handle the effect of
init=False
in dataclass fields correctly.Closes pylint-dev/pylint#7291
Fix crash if
numpy
module doesn't haveversion
attribute.Refs pylint-dev/pylint#7868
Handle
AttributeError
duringstr.format
template inference tip evaluationCloses pylint-dev/pylint#1902
Add the
masked_invalid
function in thenumpy.ma
brain.Closes pylint-dev/pylint#5715
v2.12.13
Compare Source
==============================
Release date: 2022-11-19
Prevent returning an empty list for
ClassDef.slots()
when the mro list contains one class & it is notobject
.Refs pylint-dev/pylint#5099
Prevent a crash when inferring calls to
str.format
with inferred argumentsthat would be invalid.
Closes #1856
Infer the
length
argument of therandom.sample
function.Refs pylint-dev/pylint#7706
Catch
ValueError
when indexing some builtin containers and sequences during inference.Closes #1843
v2.12.12
Compare Source
==============================
Release date: 2022-10-19
Add the
length
parameter tohash.digest
&hash.hexdigest
in thehashlib
brain.Refs pylint-dev/pylint#4039
Prevent a crash when a module's
__path__
attribute is unexpectedly missing.Refs pylint-dev/pylint#7592
Fix inferring attributes with empty annotation assignments if parent
class contains valid assignment.
Refs pylint-dev/pylint#7631
v2.12.11
Compare Source
==============================
Release date: 2022-10-10
Add
_value2member_map_
member to theenum
brain.Refs pylint-dev/pylint#3941
Improve detection of namespace packages for the modules with
__spec__
set to None.Closes pylint-dev/pylint#7488.
Fixed a regression in the creation of the
__init__
of dataclasses withmultiple inheritance.
Closes pylint-dev/pylint#7434
v2.12.10
Compare Source
==============================
Release date: 2022-09-17
Fixed a crash when introspecting modules compiled by
cffi
.Closes #1776
Closes pylint-dev/pylint#7399
decorators.cached
now gets its cache cleared by callingAstroidManager.clear_cache
.Refs #1780
v2.12.9
Compare Source
=============================
Release date: 2022-09-07
Fixed creation of the
__init__
ofdataclassess
with multiple inheritance.Closes pylint-dev/pylint#7427
Fixed a crash on
namedtuples
that usetypename
to specify their name.Closes pylint-dev/pylint#7429
v2.12.8
Compare Source
=============================
Release date: 2022-09-06
Fixed a crash in the
dataclass
brain forInitVars
without subscript typing.Closes pylint-dev/pylint#7422
Fixed parsing of default values in
dataclass
attributes.Closes pylint-dev/pylint#7425
v2.12.7
Compare Source
=============================
Release date: 2022-09-06
Fixed a crash in the
dataclass
brain for uninferable bases.Closes pylint-dev/pylint#7418
v2.12.6
Compare Source
=============================
Release date: 2022-09-05
Fix a crash involving
Uninferable
arguments tonamedtuple()
.Closes pylint-dev/pylint#7375
The
dataclass
brain now understands thekw_only
keyword in dataclass decorators.Closes pylint-dev/pylint#7290
v2.12.5
Compare Source
=============================
Release date: 2022-08-29
Prevent first-party imports from being resolved to
site-packages
.Refs pylint-dev/pylint#7365
Fix
astroid.interpreter._import.util.is_namespace()
incorrectlyreturning
True
for frozen stdlib modules on PyPy.Closes #1755
v2.12.4
Compare Source
=============================
Release date: 2022-08-25
Fixed a crash involving non-standard type comments such as
# type: # any comment
.Refs pylint-dev/pylint#7347
v2.12.3
Compare Source
=============================
Release date: 2022-08-23
Fixed crash in
ExplicitNamespacePackageFinder
involving_SixMetaPathImporter
.Closes #1708
Fix unhandled
FutureWarning
from pandas import in cython modulesCloses #1717
Fix false positive with inference of type-annotated Enum classes.
Refs pylint-dev/pylint#7265
Fix crash with inference of type-annotated Enum classes where the member has no value.
Fix a crash inferring invalid old-style string formatting with
%
.Closes #1737
Fix false positive with inference of
http
module when iteratingHTTPStatus
.Refs pylint-dev/pylint#7307
Bumped minimum requirement of
wrapt
to 1.14 on Python 3.11.Don't add dataclass fields annotated with
KW_ONLY
to the list of fields.Refs pylint-dev/pylint#5767
v2.12.2
Compare Source
=============================
Release date: 2022-07-12
Fixed crash in modulo operations for divisions by zero.
Closes #1700
Fixed crash with recursion limits during inference.
Closes #1646
v2.12.1
Compare Source
==============================
Release date: 2023-01-06
Handle the effect of properties on the
__init__
of a dataclass correctly.Closes pylint-dev/pylint#5225
Handle the effect of
kw_only=True
in dataclass fields correctly.Closes pylint-dev/pylint#7623
Handle the effect of
init=False
in dataclass fields correctly.Closes pylint-dev/pylint#7291
Fix crash if
numpy
module doesn't haveversion
attribute.Refs pylint-dev/pylint#7868
Handle
AttributeError
duringstr.format
template inference tip evaluationCloses pylint-dev/pylint#1902
Add the
masked_invalid
function in thenumpy.ma
brain.Closes pylint-dev/pylint#5715
v2.12.0
Compare Source
=============================
Release date: 2022-07-09
Fix signal has no
connect
member for PySide2 5.15.2+ and PySide6Closes #4040, #5378
astroid
now requires Python 3.7.2 to run.Avoid setting a Call as a base for classes created using
six.with_metaclass()
.Refs pylint-dev/pylint#5935
Fix detection of builtins on
PyPy
3.9.Fix
re
brain on Python3.11
. The flags now come fromre._compile
.Build
nodes.Module
for frozen modules which have location information in theirModuleSpec
.Closes #1512
The
astroid.mixins
module has been deprecated and marked for removal in 3.0.0.Closes #1633
Capture and log messages emitted by C extensions when importing them.
This prevents contaminating programmatic output, e.g. pylint's JSON reporter.
Closes pylint-dev/pylint#3518
Calls to
str.format
are now correctly inferred.Closes #104, Closes #1611
__new__
and__init__
have been added to theObjectModel
and are nowinferred as
BoundMethods
.Old style string formatting (using
%
operators) is now correctly inferred.Closes #151
Adds missing enums from
ssl
module.Closes pylint-dev/pylint#3691
Remove dependency on
pkg_resources
fromsetuptools
.Closes #1103
Allowed
AstroidManager.clear_cache
to reload necessary brain plugins.Fixed incorrect inferences after rebuilding the builtins module, e.g. by calling
AstroidManager.clear_cache
.Closes #1559
Arguments.defaults
is nowNone
for uninferable signatures.On Python versions >= 3.9,
astroid
now understands subscriptingbuiltin classes such as
enumerate
orstaticmethod
.Fixed inference of
Enums
when they are imported under an alias.Closes pylint-dev/pylint#5776
Rename
ModuleSpec
->module_type
constructor parameter to match attributename and improve typing. Use
type
instead.ObjectModel
andClassModel
now know about their__new__
and__call__
attributes.Fixed pylint
not-callable
false positive with nested-tuple assignment in a for-loop.Refs pylint-dev/pylint#5113
Instances of builtins created with
__new__(cls, value)
are now inferred.Infer the return value of the
.copy()
method ondict
,list
,set
,and
frozenset
.Closes #1403
Fixed inference of elements of living container objects such as tuples and sets in the
sys
andssl
modules.Add
pathlib
brain to handlepathlib.PurePath.parents
inference.Closes pylint-dev/pylint#5783
Avoid inferring the results of
**
operations involving values greater than1e5
to avoid expensive computation.
Closes pylint-dev/pylint#6745
Fix test for Python
3.11
. In some instanceserr.__traceback__
willbe uninferable now.
Add brain for numpy core module
einsumfunc
.Closes pylint-dev/pylint#5821
Infer the
DictUnpack
value forDict.getitem
calls.Closes #1195
Fix a crash involving properties within
try ... except
blocks.Closes pylint-dev/pylint#6592
Prevent creating
Instance
objects that proxy otherInstance
s when there isambiguity (or user error) in calling
__new__(cls)
.Refs pylint-dev/pylint#7109
v2.11.7
Compare Source
=============================
Release date: 2022-07-09
Added support for
usedforsecurity
keyword tohashlib
constructors.Closes pylint-dev/pylint#6017
Updated the stdlib brain for
subprocess.Popen
to accommodate Python 3.9+.Closes pylint-dev/pylint#7092
v2.11.6
Compare Source
=============================
Release date: 2022-06-13
The Qt brain now correctly treats calling
.disconnect()
(with noarguments) on a slot as valid.
The argparse brain no longer incorrectly adds
"Namespace"
to the localsof functions that return an
argparse.Namespace
object.Refs pylint-dev/pylint#6895
v2.11.5
Compare Source
=============================
Release date: 2022-05-09
Fix crash while obtaining
object_type()
of anUnknown
node.Refs pylint-dev/pylint#6539
Fix a bug where in attempting to handle the patching of
distutils
byvirtualenv
,library submodules called
distutils
(e.g.numpy.distutils
) were included also.Refs pylint-dev/pylint#6497
v2.11.4
Compare Source
=============================
Release date: 2022-05-02
Fix
col_offset
attribute for nodes involvingwith
onPyPy
.Fixed a crash involving two starred expressions: one inside a comprehension,
both inside a call.
Refs pylint-dev/pylint#6372
Made
FunctionDef.implicit_parameters
return 1 for methods by makingFunctionDef.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
Compare Source
=============================
Release date: 2022-04-19
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
Compare Source
=============================
Release date: 2022-03-26
Avoided adding the name of a parent namedtuple to its child's locals.
Refs pylint-dev/pylint#5982
v2.11.1
Compare Source
=============================
Release date: 2022-03-22
Promoted
getattr()
fromastroid.scoped_nodes.FunctionDef
to its parentastroid.scoped_nodes.Lambda
.Fixed crash on direct inference via
nodes.FunctionDef._infer
.Closes #817
v2.11.0
Compare Source
=============================
Release date: 2022-03-12
Add new (optional)
doc_node
attribute tonodes.Module
,nodes.ClassDef
,and
nodes.FunctionDef
.Accessing the
doc
attribute ofnodes.Module
,nodes.ClassDef
, andnodes.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
,and
nodes.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 itfor Python 3.8+.
Closes #1410
Set
end_lineno
andend_col_offset
attributes toNone
for all nodeswith PyPy 3.8. PyPy 3.8 assigns these attributes inconsistently which could lead
to unexpected errors. Overwriting them with
None
will cause a fallbackto the already supported way of PyPy 3.7.
Add missing
shape
parameter to numpyzeros_like
,ones_like
,and
full_like
methods.Closes pylint-dev/pylint#5871
Only pin
wrapt
on the major version.v2.10.0
Compare Source
=============================
Release date: 2022-02-27
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, whichresulted in instance arguments missing on these nodes.
Fixed a crash on
Super.getattr
when the attribute was previously uninferable due to a cachelimit 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 new
attrs
module alongside the existingattr
.Closes #1330
Use the
end_lineno
attribute for theNodeNG.tolineno
propertywhen it is available.
Closes #1350
Add
is_dataclass
attribute toClassDef
nodes.Use
sysconfig
instead ofdistutils
to determine the location ofpython 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
Compare Source
============================
Release date: 2022-01-09
Fixed regression where packages without a
__init__.py
file werenot recognized or imported correctly.
Closes #1327
v2.9.2
Compare Source
============================
Release date: 2022-01-04
astroid.scoped_nodes
where_is_metaclass
was not accessible anymore.
Closes #1325
v2.9.1
Compare Source
============================
Release date: 2021-12-31
NodeNG.frame()
andNodeNG.statement()
will start raisingParentMissingError
instead of
AttributeError
in astroid 3.0. This behaviour can already be triggeredby passing
future=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
Restore custom
distutils
handling for resolving paths to submodules.Closes pylint-dev/pylint#5645
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 accessed with an index operator ([]
)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
v2.9.0
Compare Source
============================
Release date: 2021-11-21
Add
end_lineno
andend_col_offset
attributes to astroid nodes.Always treat
__class_getitem__
as a classmethod.Add missing
as_string
visitor method forUnknown
node.Closes #1264
v2.8.6
Compare Source
============================
Release date: 2021-11-21
Fix crash on inference of subclasses created from
Class().__subclasses__
Closes pylint-dev/pylint#4982
Fix bug with Python 3.7.0 / 3.7.1 and
typing.NoReturn
.Closes #1239
v2.8.5
Compare Source
============================
Release date: 2021-11-12
Use more permissive versions for the
typed-ast
dependency (<2.0 instead of <1.5)Closes #1237
Fix crash on inference of
__len__
.Closes pylint-dev/pylint#5244
Added missing
kind
(forConst
) andconversion
(forFormattedValue
) fields to repr.Fix crash with assignment expressions, nested if expressions and filtering of statements
Closes pylint-dev/pylint#5178
Fix incorrect filtering of assignment expressions statements
v2.8.4
Compare Source
============================
Release date: 2021-10-25
Fix the
scope()
andframe()
methods ofNamedExpr
nodes.When these nodes occur in
Arguments
,Keyword
orComprehension
nodes thesemethods now correctly point to the outer-scope of the
FunctionDef
,ClassDef
, orComprehension
.Fix the
set_local
function forNamedExpr
nodes.When these nodes occur in
Arguments
,Keyword
, orComprehension
nodes thesenodes are now correctly added to the locals of the
FunctionDef
,ClassDef
, orComprehension
.v2.8.3
Compare Source
============================
Release date: 2021-10-17
Add support for wrapt 1.13
Fixes handling of nested partial functions
Closes pylint-dev/pylint#2462
Closes #1208
Fix regression with the import resolver
Closes pylint-dev/pylint#5131
Fix crash with invalid dataclass field call
Closes pylint-dev/pylint#5153
v2.8.2
Compare Source
============================
Release date: 2021-10-07
Same content than 2.8.2-dev0 / 2.8.1, released in order to fix a
mistake when creating the tag.
v2.8.1
Compare Source
============================
Release date: 2021-10-06
Adds support of type hints inside numpy's brains.
Closes pylint-dev/pylint#4326
Enable inference of dataclass import from pydantic.dataclasses.
This allows the dataclasses brain to recognize pydantic dataclasses.
Closes pylint-dev/pylint#4899
Fix regression on ClassDef inference
Closes pylint-dev/pylint#5030
Closes pylint-dev/pylint#5036
Fix regression on Compare node inference
Closes pylint-dev/pylint#5048
Extended attrs brain to support the provisional APIs
Astroid does not trigger it's own deprecation warning anymore.
Improve brain for
typing.Callable
andtyping.Type
.Fix bug with importing namespace packages with relative imports
Closes pylint-dev/pylint#5059
The
is_typing_guard
andis_sys_guard
functions are deprecated and willbe removed in 3.0.0. They are complex meta-inference functions that are better
suited for pylint. Import them from
pylint.checkers.utils
instead(requires pylint
2.12
).Suppress the conditional between applied brains and dynamic import authorized
modules. (Revert the "The transforms related to a module are applied only if this
module has not been explicitly authorized to be imported" of version 2.7.3)
Adds a brain to infer the
numpy.ma.masked_where
function.Closes pylint-dev/pylint#3342
v2.8.0
Compare Source
============================
Release date: 2021-09-14
Add additional deprecation warnings in preparation for astroid 3.0
Require attributes for some node classes with
__init__
call.name
(str
) forName
,AssignName
,DelName
attrname
(str
) forAttribute
,AssignAttr
,DelAttr
op
(str
) forAugAssign
,BinOp
,BoolOp
,UnaryOp
names
(list[tuple[str, str | None]]
) forImport
Support pyz imports
Closes pylint-dev/pylint#3887
Add
node_ancestors
method toNodeNG
for obtaining the ancestors of nodes.It's now possible to infer the value of comparison nodes
Closes #846
Fixed bug in inference of dataclass field calls.
Closes pylint-dev/pylint#4963
v2.7.3
Compare Source
============================
Release date: 2021-08-30
Configuration
📅 Schedule: Branch creation - "every weekend" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.