Update dependency astroid to v3 #60
Reference in New Issue
Block a user
No description provided.
Delete Branch "renovate/astroid-3.x"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
==2.15.8->==3.0.1Release Notes
pylint-dev/astroid (astroid)
v3.0.1Compare 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.0Compare Source
=============================
Release date: 2023-09-25
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
Nonefor the context argument. (Lintingastroiditself 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_classesand
astroid.scoped_nodesmodules have been removed in favor ofastroid.nodes.node_classesand
astroid.nodes.scoped_nodes.Closes #1072
Following a deprecation period starting in astroid 2.12.0, the
astroid.mixinsmodulehas been removed in favor of
astroid.nodes._base_nodes(private).Refs #1633
Return all existing arguments when calling
Arguments.arguments(). This also meansfind_argnamewill nowuse the whole list of arguments for its search.
Closes #2213
Exclude class attributes from the
__members__container of anEnumclass when they arenodes.AnnAssignnodes with no assigned value.Refs pylint-dev/pylint#7402
Remove
@cachedand@cachedpropertydecorator (just use@cached_propertyfrom the stdlib).Closes #1780
Refs #2140
Remove the
inferencemodule. Node inference methods are now in the moduledefining the node, rather than being associated to the node afterward.
Closes #679
Move
LookupMixIntoastroid.nodes._base_nodesand make it private.Remove the shims for
OperationError,BinaryOperationError, andUnaryOperationErrorin
exceptions. They were moved toutilin astroid 1.5.0.Move
safe_infer()fromhelperstoutil. This avoids some circular imports.Reduce file system access in
ast_from_file().Reduce time to
import astroidby 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
InferenceContextcall chains, thereby addressing performanceproblems when linting
sqlalchemy.Closes pylint-dev/pylint#8150
nodes.FunctionDefno 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_resultnow shares the same interface across all implementations. Namely:This is a breaking change for
nodes.FunctionDefwhere previouslycallerhad a default ofNone. PassingNoneagain 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_offsetandparentrequired arguments for
nodes.NodeNGand 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
astmodule.The following nodes were changed or updated:
nodes.AnnAssignnodes.Argumentsnodes.Assignnodes.AssignAttrnodes.AssignNamenodes.Attributenodes.AugAssignnodes.Awaitnodes.BaseContainernodes.BinOpnodes.Callnodes.ClassDefnodes.Comparenodes.Comprehensionnodes.Decoratorsnodes.Deletenodes.DelAttrnodes.DelNamenodes.Dictnodes.DictCompnodes.ExceptHandlernodes.Exprnodes.Fornodes.FunctionDefnodes.GeneratorExpnodes.Ifnodes.IfExpnodes.Keywordnodes.Lambdanodes.ListCompnodes.Modulenodes.Namenodes.NodeNGnodes.Raisenodes.Returnnodes.SetCompnodes.Slicenodes.Starredobjects.Super, we also added thecallparameter to its__init__method.nodes.Subscriptnodes.UnaryOpnodes.Whilenodes.YieldThese 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_orelsehas 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_descriptorandproxy_aliasutility functions.CallSite._unpack_argsandCallSite._unpack_keywordsnow usesafe_infer()forbetter inference and fewer false positives.
Closes pylint-dev/pylint#8544
Add
attr.Factoryto 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_METHODastroid.bases.BUILTINSastroid.const.BUILTINSastroid.const.PY38_PLUSastroid.const.Loadastroid.const.Storeastroid.const.DelRefs #2141
frame()raisesParentMissingErrorandstatement()raisesStatementMissingformissing parents regardless of the value of the
futureargument (which gave this behavioralready).
The
futureargument to each method is deprecated and will be removed in astroid 4.0.Refs #1217
Remove deprecated
Ellipsis,ExtSlice,Indexnodes.Refs #2152
Remove deprecated
is_sys_guardandis_typing_guardmethods.Refs #2153
Remove deprecated
docattribute forModule,ClassDef, andFunctionDef.Use the
doc_nodeattribute instead.Refs #2154
Add new
nodes.Tryto better match Python AST. Replaces theTryExceptand
TryFinallynodes 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-memberandinvalid-namewhen using the_name_,_value_and_ignore_sunders in Enums.Closes pylint-dev/pylint#9015
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), 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.
Kudos, SonarCloud Quality Gate passed!