docs: def swap_dims(self, dims_dict, inplace=None):
          """Returns a new object with swapped dimensions.
  
          Parameters
          ----------
          dims_dict : dict-like
              Dictionary whose keys are current dimension names and whose values
              are new names. Each value must already be a variable in the
              dataset.
          inplace : bool, optional
              If True, swap dimensions in-place. Otherwise, return a new dataset
              object.
  
          Returns
          -------
          renamed : Dataset
              Dataset with swapped dimensions.
  
          See Also
          --------
  
          Dataset.rename
          DataArray.swap_dims
          """
          # TODO: deprecate this method in favor of a (less confusing)
          # rename_dims() method that only renames dimensions.
          inplace = _check_inplace(inplace)
          for k, v in dims_dict.items():
              if k not in self.dims:
                  raise ValueError('cannot swap from dimension %r because it is '
                                   'not an existing dimension' % k)
              if self.variables[v].dims != (k,):
                  raise ValueError('replacement dimension %r is not a 1D '
                                   'variable along the old dimension %r'
                                   % (v, k))
  
          result_dims = set(dims_dict.get(dim, dim) for dim in self.dims)
  
          coord_names = self._coord_names.copy()
          coord_names.update(dims_dict.values())
  
          variables = OrderedDict()
          indexes = OrderedDict()
          for k, v in self.variables.items():
              dims = tuple(dims_dict.get(dim, dim) for dim in v.dims)
              if k in result_dims:
                  var = v.to_index_variable()
                  if k in self.indexes:
                      indexes[k] = self.indexes[k]
                  else:
                      indexes[k] = var.to_index()
              else:
                  var = v.to_base_variable()
              var.dims = dims
              variables[k] = var
  
          return self._replace_with_new_dims(variables, coord_names,
                                             indexes=indexes, inplace=inplace)