From b61cffd82cb2925e02b3427cecc3b807e562b9b1 Mon Sep 17 00:00:00 2001 From: Takeshi KOMIYA Date: Tue, 4 Dec 2018 23:03:05 +0900 Subject: [PATCH] refactor NodeMatcher for mypy friendly --- sphinx/util/nodes.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/sphinx/util/nodes.py b/sphinx/util/nodes.py index bb6d807fe..6576a4cd0 100644 --- a/sphinx/util/nodes.py +++ b/sphinx/util/nodes.py @@ -68,18 +68,19 @@ class NodeMatcher: if self.classes and not isinstance(node, self.classes): return False - if self.attrs and isinstance(node, nodes.Text): - return False + if self.attrs: + if not isinstance(node, nodes.Element): + return False - for key, value in self.attrs.items(): - if key not in node: - return False - elif value is Any: - continue - elif node.get(key) != value: - return False - else: - return True + for key, value in self.attrs.items(): + if key not in node: + return False + elif value is Any: + continue + elif node.get(key) != value: + return False + + return True except Exception: # for non-Element nodes return False