summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--astroid/__init__.py1
-rw-r--r--astroid/as_string.py4
-rw-r--r--astroid/bases.py2
-rw-r--r--astroid/brain/brain_attrs.py4
-rw-r--r--astroid/brain/brain_boto3.py2
-rw-r--r--astroid/brain/brain_builtin_inference.py11
-rw-r--r--astroid/brain/brain_collections.py2
-rw-r--r--astroid/brain/brain_dataclasses.py4
-rw-r--r--astroid/brain/brain_fstrings.py2
-rw-r--r--astroid/brain/brain_functools.py4
-rw-r--r--astroid/brain/brain_hypothesis.py2
-rw-r--r--astroid/brain/brain_multiprocessing.py2
-rw-r--r--astroid/brain/brain_numpy_core_function_base.py2
-rw-r--r--astroid/brain/brain_numpy_core_multiarray.py2
-rw-r--r--astroid/brain/brain_numpy_core_numeric.py2
-rw-r--r--astroid/brain/brain_numpy_ndarray.py2
-rw-r--r--astroid/brain/brain_numpy_utils.py2
-rw-r--r--astroid/brain/brain_random.py2
-rw-r--r--astroid/brain/brain_type.py4
-rw-r--r--astroid/brain/brain_typing.py11
-rw-r--r--astroid/brain/brain_uuid.py4
-rw-r--r--astroid/brain/helpers.py2
-rw-r--r--astroid/builder.py2
-rw-r--r--astroid/context.py2
-rw-r--r--astroid/helpers.py3
-rw-r--r--astroid/inference.py2
-rw-r--r--astroid/interpreter/objectmodel.py14
-rw-r--r--astroid/nodes.py281
-rw-r--r--astroid/nodes/__init__.py94
-rw-r--r--astroid/objects.py3
-rw-r--r--astroid/protocols.py3
-rw-r--r--astroid/raw_building.py3
-rw-r--r--doc/api/base_nodes.rst32
-rw-r--r--tests/testdata/python3/data/module.py2
-rw-r--r--tests/unittest_lookup.py7
-rw-r--r--tests/unittest_modutils.py4
-rw-r--r--tests/unittest_nodes.py2
-rw-r--r--tests/unittest_protocols.py2
-rw-r--r--tests/unittest_python3.py4
-rw-r--r--tests/unittest_scoped_nodes.py3
-rw-r--r--tests/unittest_utils.py3
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):