code: def federation_statistics_table(
      cls, timer_aggregator: _TimerItem = None
  ):
      import beautifultable
  
      total = _TimerItem()
      get_table = beautifultable.BeautifulTable(110)
      get_table.columns.header = [
          "name",
          "n",
          "sum(s)",
          "mean(s)",
          "max(s)",
      ]
      for name, item in cls._GET_STATS.items():
          get_table.rows.append([name, *item.as_list()])
          total.union(item)
      get_table.rows.sort("sum(s)", reverse=True)
      get_table.border.left = ""
      get_table.border.right = ""
      get_table.border.bottom = ""
      get_table.border.top = ""
      remote_table = beautifultable.BeautifulTable(110)
      remote_table.columns.header = [
          "name",
          "n",
          "sum(s)",
          "mean(s)",
          "max(s)",
      ]
      for name, item in cls._REMOTE_STATS.items():
          remote_table.rows.append([name, *item.as_list()])
          total.union(item)
      remote_table.rows.sort("sum(s)", reverse=True)
      remote_table.border.left = ""
      remote_table.border.right = ""
      remote_table.border.bottom = ""
      remote_table.border.top = ""
  
      base_table = beautifultable.BeautifulTable(120)
      base_table.rows.append(["get", get_table])
      base_table.rows.append(["remote", remote_table])
      base_table.rows.append(["total", total])
  
      if timer_aggregator:
          timer_aggregator.union(total)
      return str(base_table)
  
imports: import hashlib
  import inspect
  import logging
  import time
  import typing
  from functools import wraps
label_desc: Use image node_id 1 for calling the _FederationTimer obj's underlying member method code with example usage: obj.federation_statistics_table(cls, timer_aggregator) and returns: str