<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def delete_dataset(self, dataset_id, delete_contents=False, project_id=None):
 """Delete a BigQuery dataset. Parameters dataset_id : str Unique ``str`` identifying the dataset with the project (the referenceId of the dataset) Unique ``str`` identifying the BigQuery project contains the dataset delete_contents : bool, optional If True, forces the deletion of the dataset even when the dataset contains data (Default = False) project_id: str, optional Returns ------- Union[bool, dict[ ool indicating if the delete was successful or not, or response from BigQuery if swallow_results is set for False Raises ------- HttpError 404 when dataset with dataset_id does not exist """

        project_id = self._get_project_id(project_id)

        try:            
            datasets = self.bigquery.datasets()
            request = datasets.delete(projectId=project_id,
                                      datasetId=dataset_id,
                                      deleteContents=delete_contents)
            response = request.execute(num_retries=self.num_retries)
            if self.swallow_results:
                return True
            else:
                return response
        except HttpError as e:
            logger.error(
                'Cannot delete dataset {0}: {1}'.format(dataset_id, e))
            if self.swallow_results:
                return False
            else:
                return {}