docs: def _get_indexers_coords_and_indexes(self, indexers):
          """  Extract coordinates from indexers.
          Returns an OrderedDict mapping from coordinate name to the
          coordinate variable.
  
          Only coordinate with a name different from any of self.variables will
          be attached.
          """
          from .dataarray import DataArray
  
          coord_list = []
          indexes = OrderedDict()
          for k, v in indexers.items():
              if isinstance(v, DataArray):
                  v_coords = v.coords
                  if v.dtype.kind == 'b':
                      if v.ndim != 1:  # we only support 1-d boolean array
                          raise ValueError(
                              '{:d}d-boolean array is used for indexing along '
                              'dimension {!r}, but only 1d boolean arrays are '
                              'supported.'.format(v.ndim, k))
                      # Make sure in case of boolean DataArray, its
                      # coordinate also should be indexed.
                      v_coords = v[v.values.nonzero()[0]].coords
  
                  coord_list.append({d: v_coords[d].variable for d in v.coords})
                  indexes.update(v.indexes)
  
          # we don't need to call align() explicitly or check indexes for
          # alignment, because merge_variables already checks for exact alignment
          # between dimension coordinates
          coords = merge_variables(coord_list)
          assert_coordinate_consistent(self, coords)
  
          # silently drop the conflicted variables.
          attached_coords = OrderedDict(
              (k, v) for k, v in coords.items() if k not in self._variables
          )
          attached_indexes = OrderedDict(
              (k, v) for k, v in indexes.items() if k not in self._variables
          )
          return attached_coords, attached_indexes