def delete_dataset(self, dataset_ref, retry=None, delete_contents=False): # type: (DatasetReference, Optional[Retry], bool) -> None """Deletes a dataset. Args: dataset_ref: The dataset reference to delete. retry: If provided, what retry strategy to use (unused in this implementation). delete_contents: If true, delete the contents of the dataset first. If false and the dataset is nonempty, raise an error. """ del retry # Unused in this implementation. if self._safe_lookup(dataset_ref.project, dataset_ref.dataset_id) and not delete_contents: raise BadRequest( "Can't delete dataset {}; dataset is not empty".format( dataset_ref)) del self._datasets[dataset_ref.project][dataset_ref.dataset_id]
def check_definitions(self, measure_defs, start_date, end_date, verbose): """Checks SQL definitions for measures. """ # We don't validate JSON here, as this is already done as a # side-effect of parsing the command options. errors = [] for measure_def in measure_defs: measure_id = measure_def["id"] try: measure = create_or_update_measure(measure_def, end_date) calculation = MeasureCalculation( measure, start_date=start_date, end_date=end_date, verbose=verbose ) calculation.check_definition() except BadRequest as e: errors.append("* SQL error in `{}`: {}".format(measure_id, e.args[0])) except TypeError as e: errors.append("* JSON error in `{}`: {}".format(measure_id, e.args[0])) if errors: raise BadRequest("\n".join(errors))
def bad_request_occurred(self): raise BadRequest('Syntax error')