docs: def reset_coords(self, names=None, drop=False, inplace=None):
          """Given names of coordinates, reset them to become variables.
  
          Parameters
          ----------
          names : str or list of str, optional
              Name(s) of non-index coordinates in this dataset to reset into
              variables. By default, all non-index coordinates are reset.
          drop : bool, optional
              If True, remove coordinates instead of converting them into
              variables.
          inplace : bool, optional
              If True, modify this dataset inplace. Otherwise, create a new
              object.
  
          Returns
          -------
          Dataset, or DataArray if ``drop == True``
          """
          inplace = _check_inplace(inplace)
          if inplace and not drop:
              raise ValueError('cannot reset coordinates in-place on a '
                               'DataArray without ``drop == True``')
          if names is None:
              names = set(self.coords) - set(self.dims)
          dataset = self.coords.to_dataset().reset_coords(names, drop)
          if drop:
              if inplace:
                  self._coords = dataset._variables
              else:
                  return self._replace(coords=dataset._variables)
          else:
              if self.name is None:
                  raise ValueError('cannot reset_coords with drop=False '
                                   'on an unnamed DataArrray')
              dataset[self.name] = self.variable
              return dataset