code: def memory_summary(
      address=None,
      redis_password=ray_constants.REDIS_DEFAULT_PASSWORD,
      group_by="NODE_ADDRESS",
      sort_by="OBJECT_SIZE",
      units="B",
      line_wrap=True,
      stats_only=False,
      num_entries=None,
  ):
      from ray.dashboard.memory_utils import memory_summary
  
      state = get_state_from_address(address)
      reply = get_memory_info_reply(state)
  
      if stats_only:
          return store_stats_summary(reply)
      return memory_summary(
          state, group_by, sort_by, line_wrap, units, num_entries
      ) + store_stats_summary(reply)
  
file_path: ray/python/ray/_private/internal_api.py
imports: import ray
  import ray._private.profiling
  import ray._private.services
  import ray._private.utils
  import ray._private.worker
  from ray._private import ray_constants
  from ray._private.state import GlobalState
  from ray._raylet import GcsClientOptions
label_desc: Use image node_id 3 for calling a global function with example usage: memory_summary(address, redis_password, group_by, sort_by, units, line_wrap, stats_only, num_entries) and returns: unknown, store_stats_summary