code: def is_smartquotable(node: Node) -> bool:
      """Check whether the node is smart-quotable or not."""
      for pnode in traverse_parent(node.parent):
          if isinstance(pnode, NON_SMARTQUOTABLE_PARENT_NODES):
              return False
          if pnode.get("support_smartquotes", None) is False:
              return False
  
      if getattr(node, "support_smartquotes", None) is False:
          return False
  
      return True
  
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 23 for calling a global function with example usage: is_smartquotable(node) and returns: True, False, False, False