code: def print_table(header: List[str], items: List[Dict[str, str]]):
      """Print a table with `header`, and one row per item."""
      # `items` contains a list of dictionaries, convert to `rows`, which is a list of arrays
      rows = [[item.get(key, "") for key in header] for item in items]
  
      # Compute the maximum width needed for each column
      widths = [
          max(len(row[i]) for row in [header] + rows)
          for i in range(len(header))
      ]
  
      fmt_str = "".join(
          "{:" + str(widths[i] + 2) + "}" for i in range(len(header))
      )
      hlog(fmt_str.format(*header))
      hlog("-" * sum(width + 2 for width in widths))
      for row in rows:
          hlog(fmt_str.format(*row))
  
file_path: H2O/h2o_hf/helm/src/helm/proxy/cli.py
imports: import argparse
  from typing import List, Dict
  import re
  import sys
  from helm.common.hierarchical_logger import hlog
  from helm.common.authentication import Authentication
  from .accounts import Usage, Account
  from .services.remote_service import RemoteService, add_service_args, create_remote_service, create_authentication
label_desc: Use image node_id 4 for calling a global function with example usage: print_table(header, items) without return types