class_docstr: A helper class for Node.findall().
  
  It checks that the given node is an instance of the specified node-classes and
  has the specified node-attributes.
  
  For example, following example searches ``reference`` node having ``refdomain``
  and ``reftype`` attributes::
  
      matcher = NodeMatcher(nodes.reference, refdomain='std', reftype='citation')
      doctree.findall(matcher)
      # => [<reference ...>, <reference ...>, ...]
  
  A special value ``typing.Any`` matches any kind of node-attributes.  For example,
  following example searches ``reference`` node having ``refdomain`` attributes::
  
      from __future__ import annotations
  from typing import TYPE_CHECKING, Any
      matcher = NodeMatcher(nodes.reference, refdomain=Any)
      doctree.findall(matcher)
      # => [<reference ...>, <reference ...>, ...]
class_docstr_tok: ["A","helper","class","for","Node.findall","(",")",".","It","checks","that","the","given","node","is","an","instance","of","the","specified","node-classes","and","has","the","specified","node-attributes",".","For","example",",","following","example","searches","``","reference","``","node","having","``","refdomain","``","and","``","reftype","``","attributes",":",":","matcher","=","NodeMatcher","(","nodes.reference",",","refdomain='std","'",",","reftype='citation","'",")","doctree.findall","(","matcher",")","#","=",">","[","<","reference","...",">",",","<","reference","...",">",",","...","]","A","special","value","``","typing.Any","``","matches","any","kind","of","node-attributes",".","For","example",",","following","example","searches","``","reference","``","node","having","``","refdomain","``","attributes",":",":","from","__future__","import","annotations","from","typing","import","TYPE_CHECKING",",","Any","matcher","=","NodeMatcher","(","nodes.reference",",","refdomain=Any",")","doctree.findall","(","matcher",")","#","=",">","[","<","reference","...",">",",","<","reference","...",">",",","...","]"]
code: def __call__(self, node: Node) -> bool:
      return self.match(node)
  
imports: from __future__ import annotations
  import contextlib
  import re
  import unicodedata
  from typing import TYPE_CHECKING, Any, Callable
  from docutils import nodes
  from sphinx import addnodes
  from sphinx.locale import __
  from sphinx.util import logging
label_desc: Use image node_id 3 for calling the NodeMatcher obj's underlying member method code with example usage: obj.__call__(node) and returns: self