code: def prepare_table_header(titles, widths):
      """Build docutil empty table"""
      ncols = len(titles)
      assert len(widths) == ncols
  
      tgroup = nodes.tgroup(cols=ncols)
      for width in widths:
          tgroup += nodes.colspec(colwidth=width)
      header = nodes.row()
      for title in titles:
          header += nodes.entry("", nodes.paragraph(text=title))
      tgroup += nodes.thead("", header)
  
      tbody = nodes.tbody()
      tgroup += tbody
  
      return nodes.table("", tgroup), tbody
  
imports: import importlib
  import re
  import sys
  import warnings
  from os.path import abspath, dirname
  from docutils import nodes, utils, frontend
  from docutils.parsers.rst import Directive
  from docutils.parsers.rst.directives import flag
  from myst_parser.docutils_ import Parser
  from sphinx import addnodes
  from tools.schemapi.utils import fix_docstring_issues, SchemaInfo
label_desc: Use image node_id 2 for calling a global function with example usage: prepare_table_header(titles, widths) and returns: nodes,  tbody