| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242 |
- # Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
- # For details: https://github.com/pylint-dev/astroid/blob/main/LICENSE
- # Copyright (c) https://github.com/pylint-dev/astroid/blob/main/CONTRIBUTORS.txt
- """Python Abstract Syntax Tree New Generation.
- The aim of this module is to provide a common base representation of
- python source code for projects such as pychecker, pyreverse,
- pylint... Well, actually the development of this library is essentially
- governed by pylint's needs.
- It mimics the class defined in the python's _ast module with some
- additional methods and attributes. New nodes instances are not fully
- compatible with python's _ast.
- Instance attributes are added by a
- builder object, which can either generate extended ast (let's call
- them astroid ;) by visiting an existent ast tree or by inspecting living
- object.
- Main modules are:
- * nodes and scoped_nodes for more information about methods and
- attributes added to different node classes
- * the manager contains a high level object to get astroid trees from
- source files and living objects. It maintains a cache of previously
- constructed tree for quick access
- * builder contains the class responsible to build astroid trees
- """
- # isort: off
- # We have an isort: off on 'astroid.nodes' because of a circular import.
- from astroid.nodes import node_classes, scoped_nodes
- # isort: on
- from astroid import raw_building
- from astroid.__pkginfo__ import __version__, version
- from astroid.bases import BaseInstance, BoundMethod, Instance, UnboundMethod
- from astroid.brain.helpers import register_module_extender
- from astroid.builder import extract_node, parse
- from astroid.const import Context
- from astroid.exceptions import (
- AstroidBuildingError,
- AstroidError,
- AstroidImportError,
- AstroidIndexError,
- AstroidSyntaxError,
- AstroidTypeError,
- AstroidValueError,
- AttributeInferenceError,
- DuplicateBasesError,
- InconsistentMroError,
- InferenceError,
- InferenceOverwriteError,
- MroError,
- NameInferenceError,
- NoDefault,
- NotFoundError,
- ParentMissingError,
- ResolveError,
- StatementMissing,
- SuperArgumentTypeError,
- SuperError,
- TooManyLevelsError,
- UnresolvableName,
- UseInferenceDefault,
- )
- from astroid.inference_tip import _inference_tip_cached, inference_tip
- from astroid.objects import ExceptionInstance
- # isort: off
- # It's impossible to import from astroid.nodes with a wildcard, because
- # there is a cyclic import that prevent creating an __all__ in astroid/nodes
- # and we need astroid/scoped_nodes and astroid/node_classes to work. So
- # importing with a wildcard would clash with astroid/nodes/scoped_nodes
- # and astroid/nodes/node_classes.
- from astroid.astroid_manager import MANAGER
- from astroid.nodes import (
- CONST_CLS,
- AnnAssign as _DEPRECATED_AnnAssign,
- Arguments as _DEPRECATED_Arguments,
- Assert as _DEPRECATED_Assert,
- Assign as _DEPRECATED_Assign,
- AssignAttr as _DEPRECATED_AssignAttr,
- AssignName as _DEPRECATED_AssignName,
- AsyncFor as _DEPRECATED_AsyncFor,
- AsyncFunctionDef as _DEPRECATED_AsyncFunctionDef,
- AsyncWith as _DEPRECATED_AsyncWith,
- Attribute as _DEPRECATED_Attribute,
- AugAssign as _DEPRECATED_AugAssign,
- Await as _DEPRECATED_Await,
- BinOp as _DEPRECATED_BinOp,
- BoolOp as _DEPRECATED_BoolOp,
- Break as _DEPRECATED_Break,
- Call as _DEPRECATED_Call,
- ClassDef as _DEPRECATED_ClassDef,
- Compare as _DEPRECATED_Compare,
- Comprehension as _DEPRECATED_Comprehension,
- ComprehensionScope as _DEPRECATED_ComprehensionScope,
- Const as _DEPRECATED_Const,
- Continue as _DEPRECATED_Continue,
- Decorators as _DEPRECATED_Decorators,
- DelAttr as _DEPRECATED_DelAttr,
- Delete as _DEPRECATED_Delete,
- DelName as _DEPRECATED_DelName,
- Dict as _DEPRECATED_Dict,
- DictComp as _DEPRECATED_DictComp,
- DictUnpack as _DEPRECATED_DictUnpack,
- EmptyNode as _DEPRECATED_EmptyNode,
- EvaluatedObject as _DEPRECATED_EvaluatedObject,
- ExceptHandler as _DEPRECATED_ExceptHandler,
- Expr as _DEPRECATED_Expr,
- For as _DEPRECATED_For,
- FormattedValue as _DEPRECATED_FormattedValue,
- FunctionDef as _DEPRECATED_FunctionDef,
- GeneratorExp as _DEPRECATED_GeneratorExp,
- Global as _DEPRECATED_Global,
- If as _DEPRECATED_If,
- IfExp as _DEPRECATED_IfExp,
- Import as _DEPRECATED_Import,
- ImportFrom as _DEPRECATED_ImportFrom,
- Interpolation as _DEPRECATED_Interpolation,
- JoinedStr as _DEPRECATED_JoinedStr,
- Keyword as _DEPRECATED_Keyword,
- Lambda as _DEPRECATED_Lambda,
- List as _DEPRECATED_List,
- ListComp as _DEPRECATED_ListComp,
- Match as _DEPRECATED_Match,
- MatchAs as _DEPRECATED_MatchAs,
- MatchCase as _DEPRECATED_MatchCase,
- MatchClass as _DEPRECATED_MatchClass,
- MatchMapping as _DEPRECATED_MatchMapping,
- MatchOr as _DEPRECATED_MatchOr,
- MatchSequence as _DEPRECATED_MatchSequence,
- MatchSingleton as _DEPRECATED_MatchSingleton,
- MatchStar as _DEPRECATED_MatchStar,
- MatchValue as _DEPRECATED_MatchValue,
- Module as _DEPRECATED_Module,
- Name as _DEPRECATED_Name,
- NamedExpr as _DEPRECATED_NamedExpr,
- NodeNG as _DEPRECATED_NodeNG,
- Nonlocal as _DEPRECATED_Nonlocal,
- ParamSpec as _DEPRECATED_ParamSpec,
- Pass as _DEPRECATED_Pass,
- Raise as _DEPRECATED_Raise,
- Return as _DEPRECATED_Return,
- Set as _DEPRECATED_Set,
- SetComp as _DEPRECATED_SetComp,
- Slice as _DEPRECATED_Slice,
- Starred as _DEPRECATED_Starred,
- Subscript as _DEPRECATED_Subscript,
- TemplateStr as _DEPRECATED_TemplateStr,
- Try as _DEPRECATED_Try,
- TryStar as _DEPRECATED_TryStar,
- Tuple as _DEPRECATED_Tuple,
- TypeAlias as _DEPRECATED_TypeAlias,
- TypeVar as _DEPRECATED_TypeVar,
- TypeVarTuple as _DEPRECATED_TypeVarTuple,
- UnaryOp as _DEPRECATED_UnaryOp,
- Unknown as _DEPRECATED_Unknown,
- While as _DEPRECATED_While,
- With as _DEPRECATED_With,
- Yield as _DEPRECATED_Yield,
- YieldFrom as _DEPRECATED_YieldFrom,
- are_exclusive,
- builtin_lookup,
- unpack_infer,
- function_to_method,
- )
- # isort: on
- from astroid.util import Uninferable
- __all__ = [
- "CONST_CLS",
- "MANAGER",
- "AstroidBuildingError",
- "AstroidError",
- "AstroidImportError",
- "AstroidIndexError",
- "AstroidSyntaxError",
- "AstroidTypeError",
- "AstroidValueError",
- "AttributeInferenceError",
- "BaseInstance",
- "BoundMethod",
- "Context",
- "DuplicateBasesError",
- "ExceptionInstance",
- "InconsistentMroError",
- "InferenceError",
- "InferenceOverwriteError",
- "Instance",
- "MroError",
- "NameInferenceError",
- "NoDefault",
- "NotFoundError",
- "ParentMissingError",
- "ResolveError",
- "StatementMissing",
- "SuperArgumentTypeError",
- "SuperError",
- "TooManyLevelsError",
- "UnboundMethod",
- "Uninferable",
- "UnresolvableName",
- "UseInferenceDefault",
- "__version__",
- "_inference_tip_cached",
- "are_exclusive",
- "builtin_lookup",
- "extract_node",
- "function_to_method",
- "inference_tip",
- "node_classes",
- "parse",
- "raw_building",
- "register_module_extender",
- "scoped_nodes",
- "unpack_infer",
- "version",
- ]
- def __getattr__(name: str):
- if (val := globals().get(f"_DEPRECATED_{name}")) is None:
- msg = f"module '{__name__}' has no attribute '{name}"
- raise AttributeError(msg)
- # pylint: disable-next=import-outside-toplevel
- import warnings
- msg = (
- f"importing '{name}' from 'astroid' is deprecated and will be removed in v5, "
- "import it from 'astroid.nodes' instead"
- )
- warnings.warn(msg, DeprecationWarning, stacklevel=2)
- return val
|