summaryrefslogtreecommitdiff
path: root/pylint/pyreverse/utils.py
diff options
context:
space:
mode:
authorAndreas Finkler <3929834+DudeNr33@users.noreply.github.com>2022-05-27 18:22:09 +0200
committerGitHub <noreply@github.com>2022-05-27 18:22:09 +0200
commitb454b12f5909e15b677033dc8a0934f4f0abdd8b (patch)
treeb15ad219a09f68952b7a450ad78b626cca467945 /pylint/pyreverse/utils.py
parenta7ff1fd597f32686403b9f3a160b03dd55617d00 (diff)
downloadpylint-git-b454b12f5909e15b677033dc8a0934f4f0abdd8b.tar.gz
Remove unnecessary base class and dead code in `pylint.pyreverse.utils` (#6712)
* Remove unnecessary base class and dead code * Add ChangeLog and whatsnew entry
Diffstat (limited to 'pylint/pyreverse/utils.py')
-rw-r--r--pylint/pyreverse/utils.py49
1 files changed, 6 insertions, 43 deletions
diff --git a/pylint/pyreverse/utils.py b/pylint/pyreverse/utils.py
index c4c1c619a..7052791ec 100644
--- a/pylint/pyreverse/utils.py
+++ b/pylint/pyreverse/utils.py
@@ -17,9 +17,7 @@ import astroid
from astroid import nodes
if TYPE_CHECKING:
- from pylint.pyreverse.diadefslib import DiaDefGenerator
from pylint.pyreverse.diagrams import ClassDiagram, PackageDiagram
- from pylint.pyreverse.inspector import Linker
_CallbackT = Callable[
[nodes.NodeNG],
@@ -121,8 +119,8 @@ class FilterMixIn:
return not self.__mode & VIS_MOD[visibility]
-class ASTWalker:
- """A walker visiting a tree in preorder, calling on the handler:.
+class LocalsVisitor:
+ """Visit a project by traversing the locals dictionary.
* visit_<class name> on entering a node, where class name is the class of
the node in lower case
@@ -131,36 +129,21 @@ class ASTWalker:
the node in lower case
"""
- def __init__(self, handler: DiaDefGenerator | Linker | LocalsVisitor) -> None:
- self.handler = handler
+ def __init__(self) -> None:
self._cache: dict[type[nodes.NodeNG], _CallbackTupleT] = {}
-
- def walk(self, node: nodes.NodeNG, _done: set[nodes.NodeNG] | None = None) -> None:
- """Walk on the tree from <node>, getting callbacks from handler."""
- if _done is None:
- _done = set()
- if node in _done:
- raise AssertionError((id(node), node, node.parent))
- _done.add(node)
- self.visit(node)
- for child_node in node.get_children():
- assert child_node is not node
- self.walk(child_node, _done)
- self.leave(node)
- assert node.parent is not node
+ self._visited: set[nodes.NodeNG] = set()
def get_callbacks(self, node: nodes.NodeNG) -> _CallbackTupleT:
"""Get callbacks from handler for the visited node."""
klass = node.__class__
methods = self._cache.get(klass)
if methods is None:
- handler = self.handler
kid = klass.__name__.lower()
e_method = getattr(
- handler, f"visit_{kid}", getattr(handler, "visit_default", None)
+ self, f"visit_{kid}", getattr(self, "visit_default", None)
)
l_method = getattr(
- handler, f"leave_{kid}", getattr(handler, "leave_default", None)
+ self, f"leave_{kid}", getattr(self, "leave_default", None)
)
self._cache[klass] = (e_method, l_method)
else:
@@ -168,26 +151,6 @@ class ASTWalker:
return e_method, l_method
def visit(self, node: nodes.NodeNG) -> Any:
- """Walk on the tree from <node>, getting callbacks from handler."""
- method = self.get_callbacks(node)[0]
- if method is not None:
- method(node)
-
- def leave(self, node: nodes.NodeNG) -> None:
- """Walk on the tree from <node>, getting callbacks from handler."""
- method = self.get_callbacks(node)[1]
- if method is not None:
- method(node)
-
-
-class LocalsVisitor(ASTWalker):
- """Visit a project by traversing the locals dictionary."""
-
- def __init__(self) -> None:
- super().__init__(self)
- self._visited: set[nodes.NodeNG] = set()
-
- def visit(self, node: nodes.NodeNG) -> Any:
"""Launch the visit starting from the given node."""
if node in self._visited:
return None