code: def eval_node(node: Union[ast.AST, None]):
      if node is None:
          return None
      if isinstance(node, ast.Expression):
          return eval_node(node.body)
      if isinstance(node, ast.BinOp):
          left = eval_node(node.left)
          right = eval_node(node.right)
          dunders = _find_dunder(node.op, BINARY_OP_DUNDERS)
          if dunders:
              return getattr(left, dunders[0])(right)
          raise ValueError(f"Unknown binary operation: {node.op}")
      if isinstance(node, ast.UnaryOp):
          value = eval_node(node.operand)
          dunders = _find_dunder(node.op, UNARY_OP_DUNDERS)
          if dunders:
              return getattr(value, dunders[0])()
          raise ValueError(f"Unknown unary operation: {node.op}")
      if isinstance(node, ast.Name):
          if node.id in KEYBINDING_FILTERS:
              return KEYBINDING_FILTERS[node.id]
          else:
              sep = "\n  - "
              known_filters = sep.join(sorted(KEYBINDING_FILTERS))
              raise NameError(
                  f"{node.id} is not a known shortcut filter."
                  f" Known filters are: {sep}{known_filters}."
              )
      raise ValueError("Unhandled node", ast.dump(node))
  
imports: import ast
  import re
  import signal
  import sys
  from typing import Callable, Dict, Union
  from prompt_toolkit.application.current import get_app
  from prompt_toolkit.enums import DEFAULT_BUFFER, SEARCH_BUFFER
  from prompt_toolkit.key_binding import KeyPressEvent
  from prompt_toolkit.filters import Condition, Filter, emacs_insert_mode, has_completions
  from prompt_toolkit.filters import has_focus
  from prompt_toolkit.filters import Always, Never, has_selection, has_suggestion, vi_insert_mode, vi_mode
  from prompt_toolkit.layout.layout import FocusableElement
  from IPython.core.getipython import get_ipython
  from IPython.core.guarded_eval import _find_dunder, BINARY_OP_DUNDERS, UNARY_OP_DUNDERS
  from IPython.terminal.shortcuts import auto_suggest
  from IPython.utils.decorators import undoc
label_desc: Use image node_id 16 for calling a global function with example usage: eval_node(node) and returns: None, eval_node, getattr, getattr, KEYBINDING_FILTERS