code: def get_dataframe_table(dataframe_name, dataframe_dict):
      """
      given a dict of columns and feats, construct the html table for it
      """
      index = dataframe_dict["index"]
      targets = dataframe_dict["targets"]
      columns = dataframe_dict["columns"].difference(targets)
      feats = dataframe_dict["feats"].difference(targets)
  
      # If the index is used, make sure it's the first element in the table
      clean_index = html.escape(index)
      if index in columns:
          rows = [
              COL_TEMPLATE.format(clean_index, clean_index + " (index)")
          ]
          columns.discard(index)
      elif index in targets:
          rows = [
              TARGET_TEMPLATE.format(
                  clean_index, clean_index + " (index)"
              )
          ]
          targets.discard(index)
      else:
          rows = []
  
      for col in list(columns) + list(feats) + list(targets):
          template = COL_TEMPLATE
          if col in targets:
              template = TARGET_TEMPLATE
  
          col = html.escape(col)
          rows.append(template.format(col, col))
  
      table = TABLE_TEMPLATE.format(
          dataframe_name=dataframe_name,
          table_cols="\n".join(rows),
      )
      return table
  
imports: import html
  from featuretools.feature_base.feature_base import AggregationFeature, DirectFeature, FeatureOutputSlice, IdentityFeature, TransformFeature
  from featuretools.feature_base.feature_descriptions import describe_feature
  from featuretools.utils.plot_utils import check_graphviz, get_graphviz_format, save_graph
label_desc: Use image node_id 4 for calling a global function with example usage: get_dataframe_table(dataframe_name, dataframe_dict) and returns: table