<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 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