docs: def get_dim_indexers(data_obj, indexers):
      """Given a xarray data object and label based indexers, return a mapping
      of label indexers with only dimension names as keys.
  
      It groups multiple level indexers given on a multi-index dimension
      into a single, dictionary indexer for that dimension (Raise a ValueError
      if it is not possible).
      """
      invalid = [k for k in indexers
                 if k not in data_obj.dims and k not in data_obj._level_coords]
      if invalid:
          raise ValueError("dimensions or multi-index levels %r do not exist"
                           % invalid)
  
      level_indexers = defaultdict(dict)
      dim_indexers = {}
      for key, label in indexers.items():
          dim, = data_obj[key].dims
          if key != dim:
              # assume here multi-index level indexer
              level_indexers[dim][key] = label
          else:
              dim_indexers[key] = label
  
      for dim, level_labels in level_indexers.items():
          if dim_indexers.get(dim, False):
              raise ValueError("cannot combine multi-index level indexers "
                               "with an indexer for dimension %s" % dim)
          dim_indexers[dim] = level_labels
  
      return dim_indexers