code: def print_panoptic_table(
      pq_results: dict,
      classwise_results: Optional[dict] = None,
      logger: Optional[Union["MMLogger", str]] = None,
  ) -> None:
      """Print the panoptic evaluation results table.
  
      Args:
          pq_results(dict): The Panoptic Quality results.
          classwise_results(dict, optional): The classwise Panoptic Quality.
              results. The keys are class names and the values are metrics.
              Defaults to None.
          logger (:obj:`MMLogger` | str, optional): Logger used for printing
              related information during evaluation. Default: None.
      """
  
      headers = ["", "PQ", "SQ", "RQ", "categories"]
      data = [headers]
      for name in ["All", "Things", "Stuff"]:
          numbers = [
              f"{(pq_results[name][k] * 100):0.3f}"
              for k in ["pq", "sq", "rq"]
          ]
          row = [name] + numbers + [pq_results[name]["n"]]
          data.append(row)
      table = AsciiTable(data)
      print_log(
          "Panoptic Evaluation Results:\n" + table.table, logger=logger
      )
  
      if classwise_results is not None:
          class_metrics = [
              (name,)
              + tuple(
                  f"{(metrics[k] * 100):0.3f}"
                  for k in ["pq", "sq", "rq"]
              )
              for name, metrics in classwise_results.items()
          ]
          num_columns = min(8, len(class_metrics) * 4)
          results_flatten = list(itertools.chain(*class_metrics))
          headers = ["category", "PQ", "SQ", "RQ"] * (num_columns // 4)
          results_2d = itertools.zip_longest(
              *[
                  results_flatten[i::num_columns]
                  for i in range(num_columns)
              ]
          )
          data = [headers]
          data += [result for result in results_2d]
          table = AsciiTable(data)
          print_log(
              "Classwise Panoptic Evaluation Results:\n" + table.table,
              logger=logger,
          )
  
imports: import datetime
  import itertools
  import os.path
  import tempfile
  from typing import Dict, Optional, Sequence, Tuple, Union
  import mmcv
  import numpy
  from mmengine.evaluator import BaseMetric
  from mmengine.fileio import dump, get_local_path, load
  from mmengine.logging import MMLogger, print_log
  from terminaltables import AsciiTable
  from mmdet.datasets.api_wrappers import COCOPanoptic
  from mmdet.registry import METRICS
  from ..functional import INSTANCE_OFFSET, pq_compute_multi_core, pq_compute_single_core
label_desc: Use image node_id 2 for calling a global function with example usage: print_panoptic_table(pq_results, classwise_results, logger) without return types