<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def convert_to_dataset(obj, *, group="posterior", coords=None, dims=None):
 """Convert a supported object to an xarray dataset. This function is idempotent, in that it will return xarray.Dataset functions unchanged. Raises `ValueError` if the desired group can not be extracted. Note this goes through a DataInference object. See `convert_to_inference_data` for more details. Raises ValueError if it can not work out the desired conversion. Parameters obj : dict, str, np.ndarray, xr.Dataset, pystan fit, pymc3 trace A supported object to convert to InferenceData: InferenceData: returns unchanged str: Attempts to load the netcdf dataset from disk pystan fit: Automatically extracts data pymc3 trace: Automatically extracts data xarray.Dataset: adds to InferenceData as only group dict: creates an xarray dataset as the only group numpy array: creates an xarray dataset as the only group, gives the array an arbitrary name group : str If `obj` is a dict or numpy array, assigns the resulting xarray dataset to this group. coords : dict[str, iterable] A dictionary containing the values that are used as index. The key is the name of the dimension, the values are the index values. dims : dict[str, List(str)] A mapping from variables to a list of coordinate names for the variable Returns ------- xarray.Dataset """

    inference_data = convert_to_inference_data(obj, group=group, coords=coords, dims=dims)
    dataset = getattr(inference_data, group, None)
    if dataset is None:
        raise ValueError(
            "Can not extract {group} from {obj}! See {filename} for other "
            "conversion utilities.".format(group=group, obj=obj, filename=__file__)
        )
    return dataset