code: def _workers_to_parts(futures):
      """
      Builds an ordered dict mapping each worker to their list
      of parts
      :param futures: list of (worker, part) tuples
      :return:
      """
      w_to_p_map = OrderedDict.fromkeys(Comms.get_workers())
      for w, p in futures:
          if w_to_p_map[w] is None:
              w_to_p_map[w] = []
          w_to_p_map[w].append(p)
      keys_to_delete = [w for (w, p) in w_to_p_map.items() if p is None]
      for k in keys_to_delete:
          del w_to_p_map[k]
      return w_to_p_map
  
imports: from collections.abc import Sequence
  from collections import OrderedDict
  from dask_cudf.core import DataFrame
  from dask_cudf.core import Series
  import cugraph.dask.comms.comms
  from cugraph.dask.common.read_utils import MissingUCXPy
  from cugraph.dask.common.part_utils import _extract_partitions
  from dask.distributed import default_client
  from toolz import first
  from functools import reduce
label_desc: Use image node_id 2 for calling a global function with example usage: _workers_to_parts(futures) and returns: w_to_p_map