diff options
41 files changed, 169 insertions, 370 deletions
diff --git a/astroid/__init__.py b/astroid/__init__.py index 724dec07..ada4072b 100644 --- a/astroid/__init__.py +++ b/astroid/__init__.py @@ -158,6 +158,7 @@ from astroid.nodes import ( # pylint: disable=redefined-builtin (Ellipsis) ) # isort: on + from astroid.util import Uninferable # load brain plugins diff --git a/astroid/as_string.py b/astroid/as_string.py index d081e725..efa35a04 100644 --- a/astroid/as_string.py +++ b/astroid/as_string.py @@ -30,7 +30,7 @@ from typing import TYPE_CHECKING if TYPE_CHECKING: - from .node_classes import ( + from astroid.nodes.node_classes import ( Match, MatchAs, MatchCase, @@ -626,7 +626,7 @@ class AsStringVisitor: """Return an astroid.MatchAs node as string.""" # pylint: disable=import-outside-toplevel # Prevent circular dependency - from astroid.node_classes import MatchClass, MatchMapping, MatchSequence + from astroid.nodes.node_classes import MatchClass, MatchMapping, MatchSequence if isinstance(node.parent, (MatchSequence, MatchMapping, MatchClass)): return node.name.accept(self) if node.name else "_" diff --git a/astroid/bases.py b/astroid/bases.py index 796d9e47..f4826a27 100644 --- a/astroid/bases.py +++ b/astroid/bases.py @@ -435,7 +435,7 @@ class BoundMethod(UnboundMethod): needs to be a tuple of classes """ # pylint: disable=import-outside-toplevel; circular import - from astroid import node_classes + from astroid.nodes import node_classes # Verify the metaclass try: diff --git a/astroid/brain/brain_attrs.py b/astroid/brain/brain_attrs.py index 062e4a1b..d7b9d3fd 100644 --- a/astroid/brain/brain_attrs.py +++ b/astroid/brain/brain_attrs.py @@ -7,8 +7,8 @@ Without this hook pylint reports unsupported-assignment-operation for attrs classes """ from astroid.manager import AstroidManager -from astroid.node_classes import AnnAssign, Assign, AssignName, Call, Unknown -from astroid.scoped_nodes import ClassDef +from astroid.nodes.node_classes import AnnAssign, Assign, AssignName, Call, Unknown +from astroid.nodes.scoped_nodes import ClassDef ATTRIB_NAMES = frozenset(("attr.ib", "attrib", "attr.attrib")) ATTRS_NAMES = frozenset(("attr.s", "attrs", "attr.attrs", "attr.attributes")) diff --git a/astroid/brain/brain_boto3.py b/astroid/brain/brain_boto3.py index 0a41915c..27247a3b 100644 --- a/astroid/brain/brain_boto3.py +++ b/astroid/brain/brain_boto3.py @@ -4,7 +4,7 @@ """Astroid hooks for understanding boto3.ServiceRequest()""" from astroid import extract_node from astroid.manager import AstroidManager -from astroid.scoped_nodes import ClassDef +from astroid.nodes.scoped_nodes import ClassDef BOTO_SERVICE_FACTORY_QUALIFIED_NAME = "boto3.resources.base.ServiceResource" diff --git a/astroid/brain/brain_builtin_inference.py b/astroid/brain/brain_builtin_inference.py index 9ce5874d..0967c1c9 100644 --- a/astroid/brain/brain_builtin_inference.py +++ b/astroid/brain/brain_builtin_inference.py @@ -21,15 +21,7 @@ from functools import partial -from astroid import ( - arguments, - helpers, - inference_tip, - nodes, - objects, - scoped_nodes, - util, -) +from astroid import arguments, helpers, inference_tip, nodes, objects, util from astroid.builder import AstroidBuilder from astroid.exceptions import ( AstroidTypeError, @@ -40,6 +32,7 @@ from astroid.exceptions import ( UseInferenceDefault, ) from astroid.manager import AstroidManager +from astroid.nodes import scoped_nodes OBJECT_DUNDER_NEW = "object.__new__" diff --git a/astroid/brain/brain_collections.py b/astroid/brain/brain_collections.py index f96b4aa0..47699ca3 100644 --- a/astroid/brain/brain_collections.py +++ b/astroid/brain/brain_collections.py @@ -15,7 +15,7 @@ from astroid.builder import extract_node, parse from astroid.const import PY39_PLUS from astroid.exceptions import AttributeInferenceError from astroid.manager import AstroidManager -from astroid.scoped_nodes import ClassDef +from astroid.nodes.scoped_nodes import ClassDef def _collections_transform(): diff --git a/astroid/brain/brain_dataclasses.py b/astroid/brain/brain_dataclasses.py index 09463ecf..cd87c183 100644 --- a/astroid/brain/brain_dataclasses.py +++ b/astroid/brain/brain_dataclasses.py @@ -4,7 +4,7 @@ Astroid hook for the dataclasses library """ from astroid.manager import AstroidManager -from astroid.node_classes import ( +from astroid.nodes.node_classes import ( AnnAssign, Assign, Attribute, @@ -13,7 +13,7 @@ from astroid.node_classes import ( Subscript, Unknown, ) -from astroid.scoped_nodes import ClassDef +from astroid.nodes.scoped_nodes import ClassDef DATACLASSES_DECORATORS = frozenset(("dataclasses.dataclass", "dataclass")) diff --git a/astroid/brain/brain_fstrings.py b/astroid/brain/brain_fstrings.py index 06691281..4eea455d 100644 --- a/astroid/brain/brain_fstrings.py +++ b/astroid/brain/brain_fstrings.py @@ -9,7 +9,7 @@ import collections.abc from astroid.manager import AstroidManager -from astroid.node_classes import FormattedValue +from astroid.nodes.node_classes import FormattedValue def _clone_node_with_lineno(node, parent, lineno): diff --git a/astroid/brain/brain_functools.py b/astroid/brain/brain_functools.py index ffab123c..5ea0eee4 100644 --- a/astroid/brain/brain_functools.py +++ b/astroid/brain/brain_functools.py @@ -13,8 +13,8 @@ from astroid.exceptions import InferenceError, UseInferenceDefault from astroid.inference_tip import inference_tip from astroid.interpreter import objectmodel from astroid.manager import AstroidManager -from astroid.node_classes import AssignName, Attribute, Call, Name -from astroid.scoped_nodes import FunctionDef +from astroid.nodes.node_classes import AssignName, Attribute, Call, Name +from astroid.nodes.scoped_nodes import FunctionDef from astroid.util import Uninferable LRU_CACHE = "functools.lru_cache" diff --git a/astroid/brain/brain_hypothesis.py b/astroid/brain/brain_hypothesis.py index 8f49a7b4..06a01dd7 100644 --- a/astroid/brain/brain_hypothesis.py +++ b/astroid/brain/brain_hypothesis.py @@ -16,7 +16,7 @@ defined using the `@hypothesis.strategies.composite` decorator. For example: """ from astroid.manager import AstroidManager -from astroid.scoped_nodes import FunctionDef +from astroid.nodes.scoped_nodes import FunctionDef COMPOSITE_NAMES = ( "composite", diff --git a/astroid/brain/brain_multiprocessing.py b/astroid/brain/brain_multiprocessing.py index b5132512..ca663d41 100644 --- a/astroid/brain/brain_multiprocessing.py +++ b/astroid/brain/brain_multiprocessing.py @@ -13,7 +13,7 @@ from astroid.brain.helpers import register_module_extender from astroid.builder import parse from astroid.exceptions import InferenceError from astroid.manager import AstroidManager -from astroid.scoped_nodes import FunctionDef +from astroid.nodes.scoped_nodes import FunctionDef def _multiprocessing_transform(): diff --git a/astroid/brain/brain_numpy_core_function_base.py b/astroid/brain/brain_numpy_core_function_base.py index ff6b03cb..95a65cb5 100644 --- a/astroid/brain/brain_numpy_core_function_base.py +++ b/astroid/brain/brain_numpy_core_function_base.py @@ -14,7 +14,7 @@ import functools from astroid.brain.brain_numpy_utils import infer_numpy_member, looks_like_numpy_member from astroid.inference_tip import inference_tip from astroid.manager import AstroidManager -from astroid.node_classes import Attribute +from astroid.nodes.node_classes import Attribute METHODS_TO_BE_INFERRED = { "linspace": """def linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0): diff --git a/astroid/brain/brain_numpy_core_multiarray.py b/astroid/brain/brain_numpy_core_multiarray.py index f5fbea0a..0a977241 100644 --- a/astroid/brain/brain_numpy_core_multiarray.py +++ b/astroid/brain/brain_numpy_core_multiarray.py @@ -16,7 +16,7 @@ from astroid.brain.helpers import register_module_extender from astroid.builder import parse from astroid.inference_tip import inference_tip from astroid.manager import AstroidManager -from astroid.node_classes import Attribute, Name +from astroid.nodes.node_classes import Attribute, Name def numpy_core_multiarray_transform(): diff --git a/astroid/brain/brain_numpy_core_numeric.py b/astroid/brain/brain_numpy_core_numeric.py index 48bd2dbc..56c7ede9 100644 --- a/astroid/brain/brain_numpy_core_numeric.py +++ b/astroid/brain/brain_numpy_core_numeric.py @@ -16,7 +16,7 @@ from astroid.brain.helpers import register_module_extender from astroid.builder import parse from astroid.inference_tip import inference_tip from astroid.manager import AstroidManager -from astroid.node_classes import Attribute +from astroid.nodes.node_classes import Attribute def numpy_core_numeric_transform(): diff --git a/astroid/brain/brain_numpy_ndarray.py b/astroid/brain/brain_numpy_ndarray.py index d56f0c3d..ea4fb809 100644 --- a/astroid/brain/brain_numpy_ndarray.py +++ b/astroid/brain/brain_numpy_ndarray.py @@ -12,7 +12,7 @@ from astroid.builder import extract_node from astroid.inference_tip import inference_tip from astroid.manager import AstroidManager -from astroid.node_classes import Attribute +from astroid.nodes.node_classes import Attribute def infer_numpy_ndarray(node, context=None): diff --git a/astroid/brain/brain_numpy_utils.py b/astroid/brain/brain_numpy_utils.py index 4c859994..64a720b3 100644 --- a/astroid/brain/brain_numpy_utils.py +++ b/astroid/brain/brain_numpy_utils.py @@ -9,7 +9,7 @@ """Different utilities for the numpy brains""" from astroid.builder import extract_node -from astroid.node_classes import Attribute, Import, Name, NodeNG +from astroid.nodes.node_classes import Attribute, Import, Name, NodeNG def infer_numpy_member(src, node, context=None): diff --git a/astroid/brain/brain_random.py b/astroid/brain/brain_random.py index abe3492e..7b99c21a 100644 --- a/astroid/brain/brain_random.py +++ b/astroid/brain/brain_random.py @@ -6,7 +6,7 @@ from astroid import helpers from astroid.exceptions import UseInferenceDefault from astroid.inference_tip import inference_tip from astroid.manager import AstroidManager -from astroid.node_classes import ( +from astroid.nodes.node_classes import ( Attribute, Call, Const, diff --git a/astroid/brain/brain_type.py b/astroid/brain/brain_type.py index 7d042651..d0eddd22 100644 --- a/astroid/brain/brain_type.py +++ b/astroid/brain/brain_type.py @@ -27,7 +27,7 @@ def _looks_like_type_subscript(node): Try to figure out if a Name node is used inside a type related subscript :param node: node to check - :type node: astroid.node_classes.NodeNG + :type node: astroid.nodes.node_classes.NodeNG :return: true if the node is a Name node inside a type related subscript :rtype: bool """ @@ -41,7 +41,7 @@ def infer_type_sub(node, context=None): Infer a type[...] subscript :param node: node to infer - :type node: astroid.node_classes.NodeNG + :type node: astroid.nodes.node_classes.NodeNG :param context: inference context :type context: astroid.context.InferenceContext :return: the inferred node diff --git a/astroid/brain/brain_typing.py b/astroid/brain/brain_typing.py index 775611ab..a58bc599 100644 --- a/astroid/brain/brain_typing.py +++ b/astroid/brain/brain_typing.py @@ -14,7 +14,7 @@ import typing from functools import partial -from astroid import context, extract_node, inference_tip, node_classes +from astroid import context, extract_node, inference_tip from astroid.const import PY37_PLUS, PY38_PLUS, PY39_PLUS from astroid.exceptions import ( AttributeInferenceError, @@ -22,7 +22,7 @@ from astroid.exceptions import ( UseInferenceDefault, ) from astroid.manager import AstroidManager -from astroid.node_classes import ( +from astroid.nodes.node_classes import ( Assign, AssignName, Attribute, @@ -31,8 +31,9 @@ from astroid.node_classes import ( Name, NodeNG, Subscript, + Tuple, ) -from astroid.scoped_nodes import ClassDef, FunctionDef +from astroid.nodes.scoped_nodes import ClassDef, FunctionDef from astroid.util import Uninferable TYPING_NAMEDTUPLE_BASENAMES = {"NamedTuple", "typing.NamedTuple"} @@ -301,9 +302,7 @@ def infer_typing_alias( maybe_type_var = node.args[1] if ( not PY39_PLUS - and not ( - isinstance(maybe_type_var, node_classes.Tuple) and not maybe_type_var.elts - ) + and not (isinstance(maybe_type_var, Tuple) and not maybe_type_var.elts) or PY39_PLUS and isinstance(maybe_type_var, Const) and maybe_type_var.value > 0 diff --git a/astroid/brain/brain_uuid.py b/astroid/brain/brain_uuid.py index 546557cb..18ae4a09 100644 --- a/astroid/brain/brain_uuid.py +++ b/astroid/brain/brain_uuid.py @@ -8,8 +8,8 @@ """Astroid hooks for the UUID module.""" from astroid.manager import AstroidManager -from astroid.node_classes import Const -from astroid.scoped_nodes import ClassDef +from astroid.nodes.node_classes import Const +from astroid.nodes.scoped_nodes import ClassDef def _patch_uuid_class(node): diff --git a/astroid/brain/helpers.py b/astroid/brain/helpers.py index f0bf0ccf..0990715b 100644 --- a/astroid/brain/helpers.py +++ b/astroid/brain/helpers.py @@ -1,4 +1,4 @@ -from astroid.scoped_nodes import Module +from astroid.nodes.scoped_nodes import Module def register_module_extender(manager, module_name, get_extension_mod): diff --git a/astroid/builder.py b/astroid/builder.py index 9d3d4137..19570055 100644 --- a/astroid/builder.py +++ b/astroid/builder.py @@ -29,7 +29,7 @@ from astroid import bases, modutils, nodes, raw_building, rebuilder, util from astroid._ast import get_parser_module from astroid.exceptions import AstroidBuildingError, AstroidSyntaxError, InferenceError from astroid.manager import AstroidManager -from astroid.node_classes import NodeNG +from astroid.nodes.node_classes import NodeNG objects = util.lazy_import("objects") diff --git a/astroid/context.py b/astroid/context.py index ac48f1b2..6cb4cd64 100644 --- a/astroid/context.py +++ b/astroid/context.py @@ -17,7 +17,7 @@ import pprint from typing import TYPE_CHECKING, MutableMapping, Optional, Sequence, Tuple if TYPE_CHECKING: - from astroid.node_classes import NodeNG + from astroid.nodes.node_classes import NodeNG _INFERENCE_CACHE = {} diff --git a/astroid/helpers.py b/astroid/helpers.py index 20793194..e6ae3abf 100644 --- a/astroid/helpers.py +++ b/astroid/helpers.py @@ -20,7 +20,7 @@ Various helper utilities. from astroid import bases from astroid import context as contextmod -from astroid import manager, nodes, raw_building, scoped_nodes, util +from astroid import manager, nodes, raw_building, util from astroid.const import BUILTINS from astroid.exceptions import ( AstroidTypeError, @@ -29,6 +29,7 @@ from astroid.exceptions import ( MroError, _NonDeducibleTypeHierarchy, ) +from astroid.nodes import scoped_nodes def _build_proxy_class(cls_name, builtins): diff --git a/astroid/inference.py b/astroid/inference.py index 994e2aae..80f7860d 100644 --- a/astroid/inference.py +++ b/astroid/inference.py @@ -181,7 +181,7 @@ def _higher_function_scope(node): :param node: A scope node. :returns: ``None``, if no parent function scope was found, - otherwise an instance of :class:`astroid.scoped_nodes.Function`, + otherwise an instance of :class:`astroid.nodes.scoped_nodes.Function`, which encloses the given node. """ current = node diff --git a/astroid/interpreter/objectmodel.py b/astroid/interpreter/objectmodel.py index 641312bb..a7d86e61 100644 --- a/astroid/interpreter/objectmodel.py +++ b/astroid/interpreter/objectmodel.py @@ -38,9 +38,10 @@ from typing import Optional import astroid from astroid import context as contextmod -from astroid import node_classes, util +from astroid import util from astroid.exceptions import AttributeInferenceError, InferenceError, NoDefault from astroid.manager import AstroidManager +from astroid.nodes import node_classes objects = util.lazy_import("objects") @@ -469,7 +470,8 @@ class ClassModel(ObjectModel): thus it might miss a couple of them. """ # pylint: disable=import-outside-toplevel; circular import - from astroid import bases, scoped_nodes + from astroid import bases + from astroid.nodes import scoped_nodes if not self._instance.newstyle: raise AttributeInferenceError( @@ -749,8 +751,8 @@ class PropertyModel(ObjectModel): # pylint: disable=import-outside-toplevel def _init_function(self, name): - from astroid.node_classes import Arguments - from astroid.scoped_nodes import FunctionDef + from astroid.nodes.node_classes import Arguments + from astroid.nodes.scoped_nodes import FunctionDef args = Arguments() args.postinit( @@ -771,7 +773,7 @@ class PropertyModel(ObjectModel): @property def attr_fget(self): - from astroid.scoped_nodes import FunctionDef + from astroid.nodes.scoped_nodes import FunctionDef func = self._instance @@ -793,7 +795,7 @@ class PropertyModel(ObjectModel): @property def attr_fset(self): - from astroid.scoped_nodes import FunctionDef + from astroid.nodes.scoped_nodes import FunctionDef func = self._instance diff --git a/astroid/nodes.py b/astroid/nodes.py deleted file mode 100644 index a9bee41c..00000000 --- a/astroid/nodes.py +++ /dev/null @@ -1,281 +0,0 @@ -# Copyright (c) 2006-2011, 2013 LOGILAB S.A. (Paris, FRANCE) <contact@logilab.fr> -# Copyright (c) 2010 Daniel Harding <dharding@gmail.com> -# Copyright (c) 2014-2020 Claudiu Popa <pcmanticore@gmail.com> -# Copyright (c) 2014 Google, Inc. -# Copyright (c) 2015-2016 Ceridwen <ceridwenv@gmail.com> -# Copyright (c) 2016 Jared Garst <jgarst@users.noreply.github.com> -# Copyright (c) 2017 Ashley Whetter <ashley@awhetter.co.uk> -# Copyright (c) 2017 rr- <rr-@sakuya.pl> -# Copyright (c) 2018 Bryce Guinta <bryce.paul.guinta@gmail.com> -# Copyright (c) 2021 Pierre Sassoulas <pierre.sassoulas@gmail.com> -# Copyright (c) 2021 Marc Mueller <30130371+cdce8p@users.noreply.github.com> - -# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html -# For details: https://github.com/PyCQA/astroid/blob/main/LICENSE - -"""Every available node class. - -.. seealso:: - :doc:`ast documentation <green_tree_snakes:nodes>` - -All nodes inherit from :class:`~astroid.node_classes.NodeNG`. -""" - -# Nodes not present in the builtin ast module: DictUnpack, Unknown, and EvaluatedObject. - -from astroid.node_classes import ( # pylint: disable=redefined-builtin (Ellipsis) - AnnAssign, - Arguments, - Assert, - Assign, - AssignAttr, - AssignName, - AsyncFor, - AsyncWith, - Attribute, - AugAssign, - Await, - BinOp, - BoolOp, - Break, - Call, - Compare, - Comprehension, - Const, - Continue, - Decorators, - DelAttr, - Delete, - DelName, - Dict, - DictUnpack, - Ellipsis, - EmptyNode, - EvaluatedObject, - ExceptHandler, - Expr, - ExtSlice, - For, - FormattedValue, - Global, - If, - IfExp, - Import, - ImportFrom, - Index, - JoinedStr, - Keyword, - List, - Match, - MatchAs, - MatchCase, - MatchClass, - MatchMapping, - MatchOr, - MatchSequence, - MatchSingleton, - MatchStar, - MatchValue, - Name, - NamedExpr, - NodeNG, - Nonlocal, - Pass, - Raise, - Return, - Set, - Slice, - Starred, - Subscript, - TryExcept, - TryFinally, - Tuple, - UnaryOp, - Unknown, - While, - With, - Yield, - YieldFrom, - const_factory, -) -from astroid.scoped_nodes import ( - AsyncFunctionDef, - ClassDef, - DictComp, - FunctionDef, - GeneratorExp, - Lambda, - ListComp, - Module, - SetComp, -) - -ALL_NODE_CLASSES = ( - AnnAssign, - Arguments, - Assert, - Assign, - AssignAttr, - AssignName, - AsyncFor, - AsyncFunctionDef, - AsyncWith, - Attribute, - AugAssign, - Await, - BinOp, - BoolOp, - Break, - Call, - ClassDef, - Compare, - Comprehension, - Const, - const_factory, - Continue, - Decorators, - DelAttr, - Delete, - DelName, - Dict, - DictComp, - DictUnpack, - Ellipsis, - EmptyNode, - EvaluatedObject, - ExceptHandler, - Expr, - ExtSlice, - For, - FormattedValue, - FunctionDef, - GeneratorExp, - Global, - If, - IfExp, - Import, - ImportFrom, - Index, - JoinedStr, - Keyword, - Lambda, - List, - ListComp, - Match, - MatchAs, - MatchCase, - MatchClass, - MatchMapping, - MatchOr, - MatchSequence, - MatchSingleton, - MatchStar, - MatchValue, - Module, - Name, - NamedExpr, - NodeNG, - Nonlocal, - Pass, - Raise, - Return, - Set, - SetComp, - Slice, - Starred, - Subscript, - TryExcept, - TryFinally, - Tuple, - UnaryOp, - Unknown, - While, - With, - Yield, - YieldFrom, -) - -__all__ = ( - "AnnAssign", - "Arguments", - "Assert", - "Assign", - "AssignAttr", - "AssignName", - "AsyncFor", - "AsyncFunctionDef", - "AsyncWith", - "Attribute", - "AugAssign", - "Await", - "BinOp", - "BoolOp", - "Break", - "Call", - "ClassDef", - "Compare", - "Comprehension", - "Const", - "const_factory", - "Continue", - "Decorators", - "DelAttr", - "Delete", - "DelName", - "Dict", - "DictComp", - "DictUnpack", - "Ellipsis", - "EmptyNode", - "EvaluatedObject", - "ExceptHandler", - "Expr", - "ExtSlice", - "For", - "FormattedValue", - "FunctionDef", - "GeneratorExp", - "Global", - "If", - "IfExp", - "Import", - "ImportFrom", - "Index", - "JoinedStr", - "Keyword", - "Lambda", - "List", - "ListComp", - "Match", - "MatchAs", - "MatchCase", - "MatchClass", - "MatchMapping", - "MatchOr", - "MatchSequence", - "MatchSingleton", - "MatchStar", - "MatchValue", - "Module", - "Name", - "NamedExpr", - "NodeNG", - "Nonlocal", - "Pass", - "Raise", - "Return", - "Set", - "SetComp", - "Slice", - "Starred", - "Subscript", - "TryExcept", - "TryFinally", - "Tuple", - "UnaryOp", - "Unknown", - "While", - "With", - "Yield", - "YieldFrom", -) diff --git a/astroid/nodes/__init__.py b/astroid/nodes/__init__.py index 4ba12933..abb01d7a 100644 --- a/astroid/nodes/__init__.py +++ b/astroid/nodes/__init__.py @@ -11,7 +11,7 @@ # Copyright (c) 2021 Marc Mueller <30130371+cdce8p@users.noreply.github.com> # Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html -# For details: https://github.com/PyCQA/astroid/blob/master/LICENSE +# For details: https://github.com/PyCQA/astroid/blob/main/LICENSE """Every available node class. @@ -204,13 +204,91 @@ ALL_NODE_CLASSES = ( YieldFrom, ) -# Can't create a proper __all__ with string because of a cyclic import for ClassDef -__all__ = [ - "CONST_CLS", - "builtin_lookup", +__all__ = ( + "AnnAssign", "are_exclusive", + "Arguments", + "Assert", + "Assign", + "AssignAttr", + "AssignName", + "AsyncFor", + "AsyncFunctionDef", + "AsyncWith", + "Attribute", + "AugAssign", + "Await", + "BinOp", + "BoolOp", + "Break", + "builtin_lookup", + "Call", + "ClassDef", + "Compare", + "Comprehension", + "Const", "const_factory", - "unpack_infer", + "Continue", + "Decorators", + "DelAttr", + "Delete", + "DelName", + "Dict", + "DictComp", + "DictUnpack", + "Ellipsis", + "EmptyNode", + "EvaluatedObject", + "ExceptHandler", + "Expr", + "ExtSlice", + "For", + "FormattedValue", + "FunctionDef", "function_to_method", -] -__all__ += [c.__name__ for c in ALL_NODE_CLASSES] + "GeneratorExp", + "Global", + "If", + "IfExp", + "Import", + "ImportFrom", + "Index", + "JoinedStr", + "Keyword", + "Lambda", + "List", + "ListComp", + "Match", + "MatchAs", + "MatchCase", + "MatchClass", + "MatchMapping", + "MatchOr", + "MatchSequence", + "MatchSingleton", + "MatchStar", + "MatchValue", + "Module", + "Name", + "NamedExpr", + "NodeNG", + "Nonlocal", + "Pass", + "Raise", + "Return", + "Set", + "SetComp", + "Slice", + "Starred", + "Subscript", + "TryExcept", + "TryFinally", + "Tuple", + "UnaryOp", + "Unknown", + "unpack_infer", + "While", + "With", + "Yield", + "YieldFrom", +) diff --git a/astroid/objects.py b/astroid/objects.py index 9e0c0194..9b16db2d 100644 --- a/astroid/objects.py +++ b/astroid/objects.py @@ -22,7 +22,7 @@ leads to an inferred FrozenSet: """ -from astroid import bases, decorators, node_classes, scoped_nodes, util +from astroid import bases, decorators, util from astroid.const import BUILTINS from astroid.exceptions import ( AttributeInferenceError, @@ -31,6 +31,7 @@ from astroid.exceptions import ( SuperError, ) from astroid.manager import AstroidManager +from astroid.nodes import node_classes, scoped_nodes objectmodel = util.lazy_import("interpreter.objectmodel") diff --git a/astroid/protocols.py b/astroid/protocols.py index d8b1cf74..5f979518 100644 --- a/astroid/protocols.py +++ b/astroid/protocols.py @@ -35,7 +35,7 @@ from typing import Generator, Optional from astroid import arguments, bases from astroid import context as contextmod -from astroid import decorators, helpers, node_classes, nodes, util +from astroid import decorators, helpers, nodes, util from astroid.const import Context from astroid.exceptions import ( AstroidIndexError, @@ -44,6 +44,7 @@ from astroid.exceptions import ( InferenceError, NoDefault, ) +from astroid.nodes import node_classes if sys.version_info >= (3, 8): from typing import Literal diff --git a/astroid/raw_building.py b/astroid/raw_building.py index 8eac5081..8aadd0e7 100644 --- a/astroid/raw_building.py +++ b/astroid/raw_building.py @@ -32,8 +32,9 @@ import types import warnings from typing import List, Optional -from astroid import bases, node_classes, nodes +from astroid import bases, nodes from astroid.manager import AstroidManager +from astroid.nodes import node_classes # the keys of CONST_CLS eg python builtin types _CONSTANTS = tuple(node_classes.CONST_CLS) diff --git a/doc/api/base_nodes.rst b/doc/api/base_nodes.rst index 70a35a5e..c8e980c7 100644 --- a/doc/api/base_nodes.rst +++ b/doc/api/base_nodes.rst @@ -6,42 +6,42 @@ These are abstract node classes that :ref:`other nodes <nodes>` inherit from. .. autosummary:: astroid.mixins.AssignTypeMixin - astroid.node_classes._BaseContainer + astroid.nodes.node_classes._BaseContainer astroid.mixins.BlockRangeMixIn - astroid.scoped_nodes.ComprehensionScope + astroid.nodes.scoped_nodes.ComprehensionScope astroid.mixins.FilterStmtsMixin astroid.mixins.ImportFromMixin - astroid.scoped_nodes._ListComp - astroid.scoped_nodes.LocalsDictNodeNG - astroid.node_classes.LookupMixIn - astroid.node_classes.NodeNG + astroid.nodes.scoped_nodes._ListComp + astroid.nodes.scoped_nodes.LocalsDictNodeNG + astroid.nodes.node_classes.LookupMixIn + astroid.nodes.node_classes.NodeNG astroid.mixins.ParentAssignTypeMixin - astroid.node_classes.Statement - astroid.node_classes.Pattern + astroid.nodes.node_classes.Statement + astroid.nodes.node_classes.Pattern .. autoclass:: astroid.mixins.AssignTypeMixin -.. autoclass:: astroid.node_classes._BaseContainer +.. autoclass:: astroid.nodes.node_classes._BaseContainer .. autoclass:: astroid.mixins.BlockRangeMixIn -.. autoclass:: astroid.scoped_nodes.ComprehensionScope +.. autoclass:: astroid.nodes.scoped_nodes.ComprehensionScope .. autoclass:: astroid.mixins.FilterStmtsMixin .. autoclass:: astroid.mixins.ImportFromMixin -.. autoclass:: astroid.scoped_nodes._ListComp +.. autoclass:: astroid.nodes.scoped_nodes._ListComp -.. autoclass:: astroid.scoped_nodes.LocalsDictNodeNG +.. autoclass:: astroid.nodes.scoped_nodes.LocalsDictNodeNG -.. autoclass:: astroid.node_classes.LookupMixIn +.. autoclass:: astroid.nodes.node_classes.LookupMixIn -.. autoclass:: astroid.node_classes.NodeNG +.. autoclass:: astroid.nodes.node_classes.NodeNG .. autoclass:: astroid.mixins.ParentAssignTypeMixin -.. autoclass:: astroid.node_classes.Statement +.. autoclass:: astroid.nodes.node_classes.Statement -.. autoclass:: astroid.node_classes.Pattern +.. autoclass:: astroid.nodes.node_classes.Pattern diff --git a/tests/testdata/python3/data/module.py b/tests/testdata/python3/data/module.py index 25913cbf..af4a75f7 100644 --- a/tests/testdata/python3/data/module.py +++ b/tests/testdata/python3/data/module.py @@ -2,7 +2,7 @@ """ __revision__ = '$Id: module.py,v 1.2 2005-11-02 11:56:54 syt Exp $' -from astroid.node_classes import Name as NameNode +from astroid.nodes.node_classes import Name as NameNode from astroid import modutils from astroid.utils import * import os.path diff --git a/tests/unittest_lookup.py b/tests/unittest_lookup.py index b49deecd..d3e3adcb 100644 --- a/tests/unittest_lookup.py +++ b/tests/unittest_lookup.py @@ -18,12 +18,13 @@ import functools import unittest -from astroid import builder, nodes, scoped_nodes, test_utils +from astroid import builder, nodes, test_utils from astroid.exceptions import ( AttributeInferenceError, InferenceError, NameInferenceError, ) +from astroid.nodes.scoped_nodes import builtin_lookup from . import resources @@ -388,8 +389,8 @@ class LookupTest(resources.SysPathSetup, unittest.TestCase): self.assertEqual(len(path.lookup("__path__")[1]), 1) def test_builtin_lookup(self): - self.assertEqual(scoped_nodes.builtin_lookup("__dict__")[1], ()) - intstmts = scoped_nodes.builtin_lookup("int")[1] + self.assertEqual(builtin_lookup("__dict__")[1], ()) + intstmts = builtin_lookup("int")[1] self.assertEqual(len(intstmts), 1) self.assertIsInstance(intstmts[0], nodes.ClassDef) self.assertEqual(intstmts[0].name, "int") diff --git a/tests/unittest_modutils.py b/tests/unittest_modutils.py index de5b6281..2c04b424 100644 --- a/tests/unittest_modutils.py +++ b/tests/unittest_modutils.py @@ -109,8 +109,8 @@ class GetModulePartTest(unittest.TestCase): def test_known_values_get_module_part_3(self): """relative import from given file""" self.assertEqual( - modutils.get_module_part("node_classes.AssName", modutils.__file__), - "node_classes", + modutils.get_module_part("nodes.node_classes.AssName", modutils.__file__), + "nodes.node_classes", ) def test_known_values_get_compiled_module_part(self): diff --git a/tests/unittest_nodes.py b/tests/unittest_nodes.py index dde4dfbc..5424b945 100644 --- a/tests/unittest_nodes.py +++ b/tests/unittest_nodes.py @@ -509,7 +509,7 @@ class ImportNodeTest(resources.SysPathSetup, unittest.TestCase): self.assertEqual(ast.as_string(), "from astroid import modutils") ast = self.module["NameNode"] self.assertEqual( - ast.as_string(), "from astroid.node_classes import Name as NameNode" + ast.as_string(), "from astroid.nodes.node_classes import Name as NameNode" ) ast = self.module["os"] self.assertEqual(ast.as_string(), "import os.path") diff --git a/tests/unittest_protocols.py b/tests/unittest_protocols.py index c1fe3db8..3250ca78 100644 --- a/tests/unittest_protocols.py +++ b/tests/unittest_protocols.py @@ -22,7 +22,7 @@ import astroid from astroid import extract_node, nodes, util from astroid.const import PY38_PLUS, PY310_PLUS from astroid.exceptions import InferenceError -from astroid.node_classes import AssignName, Const, Name, Starred +from astroid.nodes.node_classes import AssignName, Const, Name, Starred @contextlib.contextmanager diff --git a/tests/unittest_python3.py b/tests/unittest_python3.py index 4430bf4d..ba0dd4fa 100644 --- a/tests/unittest_python3.py +++ b/tests/unittest_python3.py @@ -20,8 +20,8 @@ from textwrap import dedent from astroid import nodes from astroid.builder import AstroidBuilder, extract_node -from astroid.node_classes import Assign, Const, Expr, Name, YieldFrom -from astroid.scoped_nodes import ClassDef, FunctionDef +from astroid.nodes.node_classes import Assign, Const, Expr, Name, YieldFrom +from astroid.nodes.scoped_nodes import ClassDef, FunctionDef from astroid.test_utils import require_version diff --git a/tests/unittest_scoped_nodes.py b/tests/unittest_scoped_nodes.py index a868e564..8ea6b2a2 100644 --- a/tests/unittest_scoped_nodes.py +++ b/tests/unittest_scoped_nodes.py @@ -40,7 +40,7 @@ from functools import partial import pytest -from astroid import MANAGER, builder, nodes, objects, scoped_nodes, test_utils, util +from astroid import MANAGER, builder, nodes, objects, test_utils, util from astroid.bases import BUILTINS, BoundMethod, Generator, Instance, UnboundMethod from astroid.exceptions import ( AttributeInferenceError, @@ -53,6 +53,7 @@ from astroid.exceptions import ( ResolveError, TooManyLevelsError, ) +from astroid.nodes import scoped_nodes from . import resources diff --git a/tests/unittest_utils.py b/tests/unittest_utils.py index dacdccc8..631f3e7f 100644 --- a/tests/unittest_utils.py +++ b/tests/unittest_utils.py @@ -13,9 +13,10 @@ import unittest -from astroid import builder, node_classes, nodes +from astroid import builder, nodes from astroid import util as astroid_util from astroid.exceptions import InferenceError +from astroid.nodes import node_classes class InferenceUtil(unittest.TestCase): |