def evaluate(dataset_id): """Endpoint for submitting dataset for evaluation.""" ds = get_dataset(dataset_id) if not ds["public"]: flash.warn("Can't add private datasets into evaluation queue.") return redirect(url_for(".eval_info", dataset_id=dataset_id)) if db.dataset_eval.job_exists(dataset_id): flash.warn("Evaluation job for this dataset has been already created.") return redirect(url_for(".eval_info", dataset_id=dataset_id)) form = forms.DatasetEvaluationForm() if form.validate_on_submit(): try: if form.filter_type.data == forms.DATASET_EVAL_NO_FILTER: form.filter_type.data = None db.dataset_eval.evaluate_dataset( dataset_id=ds["id"], normalize=form.normalize.data, eval_location=form.evaluation_location.data, filter_type=form.filter_type.data, ) flash.info("Dataset %s has been added into evaluation queue." % ds["id"]) except db.dataset_eval.IncompleteDatasetException as e: flash.error( "Cannot add this dataset because of a validation error: %s" % e) except db.dataset_eval.JobExistsException: flash.warn( "An evaluation job for this dataset has been already created.") return redirect(url_for(".eval_info", dataset_id=dataset_id)) return render_template("datasets/evaluate.html", dataset=ds, form=form)
def evaluate(dataset_id): """Endpoint for submitting dataset for evaluation.""" ds = get_dataset(dataset_id) if not ds["public"]: flash.warn("Can't add private datasets into evaluation queue.") return redirect(url_for(".eval_info", dataset_id=dataset_id)) if db.dataset_eval.job_exists(dataset_id): flash.warn("Evaluation job for this dataset has been already created.") return redirect(url_for(".eval_info", dataset_id=dataset_id)) form = forms.DatasetEvaluationForm() if form.validate_on_submit(): try: if form.filter_type.data == forms.DATASET_EVAL_NO_FILTER: form.filter_type.data = None db.dataset_eval.evaluate_dataset( dataset_id=ds["id"], normalize=form.normalize.data, filter_type=form.filter_type.data, ) flash.info("Dataset %s has been added into evaluation queue." % ds["id"]) except db.dataset_eval.IncompleteDatasetException: # TODO(roman): Show more informative error message. flash.error("Can't add this dataset into evaluation queue because it's incomplete.") except db.dataset_eval.JobExistsException: flash.warn("Evaluation job for this dataset has been already created.") return redirect(url_for(".eval_info", dataset_id=dataset_id)) return render_template("datasets/evaluate.html", dataset=ds, form=form)
def evaluate(dataset_id): """Endpoint for submitting dataset for evaluation.""" ds = get_dataset(dataset_id) if not ds["public"]: flash.warn("Can't add private datasets into evaluation queue.") return redirect(url_for(".eval_info", dataset_id=dataset_id)) if db.dataset_eval.job_exists(dataset_id): flash.warn( "An evaluation job for this dataset has been already created.") return redirect(url_for(".eval_info", dataset_id=dataset_id)) # Validate dataset structure before choosing evaluation preferences try: db.dataset_eval.validate_dataset_structure(ds) except db.dataset_eval.IncompleteDatasetException as e: flash.error( "Cannot add this dataset because of a validation error: %s" % e) return redirect(url_for("datasets.view", dataset_id=dataset_id)) form = forms.DatasetEvaluationForm() if form.validate_on_submit(): try: if form.filter_type.data == forms.DATASET_EVAL_NO_FILTER: form.filter_type.data = None c_values = None gamma_values = None preprocessing_values = None if form.svm_filtering.data: c_values = [int(i) for i in form.c_value.data.split(",")] gamma_values = [ int(i) for i in form.gamma_value.data.split(",") ] preprocessing_values = form.preprocessing_values.data db.dataset_eval.evaluate_dataset( dataset_id=ds["id"], normalize=form.normalize.data, eval_location=form.evaluation_location.data, c_values=c_values, gamma_values=gamma_values, preprocessing_values=preprocessing_values, filter_type=form.filter_type.data, ) flash.info("Dataset %s has been added into evaluation queue." % ds["id"]) except db.dataset_eval.IncompleteDatasetException as e: flash.error( "Cannot add this dataset because of a validation error: %s" % e) except db.dataset_eval.JobExistsException: flash.warn( "An evaluation job for this dataset has been already created.") return redirect(url_for(".eval_info", dataset_id=dataset_id)) return render_template("datasets/evaluate.html", dataset=ds, form=form)
def musicbrainz_post(): """Callback endpoint.""" if provider.validate_post_login(): login_user(provider.get_user()) next = session.get('next') if next: return redirect(next) else: flash.error("Login failed.") return redirect(url_for('index.index'))
def add(self): form = forms.AddAdminForm() if form.validate_on_submit(): try: db.user.set_admin(form.musicbrainz_id.data, admin=True, force=form.force.data) flash.success("Added an admin: %s." % form.musicbrainz_id.data) except db.exceptions.DatabaseException as e: flash.error("Error: %s" % e) return redirect(url_for(".add")) return redirect(url_for(".index")) return self.render("admin/admins/add.html", form=form)
def evaluate(dataset_id): ds = get_dataset(dataset_id) if not ds["public"]: flash.warn("Can't add private datasets into evaluation queue.") else: try: db.dataset_eval.evaluate_dataset(ds["id"]) flash.info("Dataset %s has been added into evaluation queue." % ds["id"]) except db.dataset_eval.IncompleteDatasetException: # TODO(roman): Show more informative error message. flash.error("Can't add dataset into evaluation queue because it's incomplete.") except db.dataset_eval.JobExistsException: flash.warn("Evaluation job for this dataset has been already created.") return redirect(url_for(".eval_info", dataset_id=dataset_id))
def gdpr_notice(): if request.method == 'GET': return render_template('index/gdpr.html', next=request.args.get('next')) elif request.method == 'POST': if request.form.get('gdpr-options') == 'agree': try: db_user.agree_to_gdpr(current_user.musicbrainz_id) except db.exceptions.DatabaseException: flash.error('Could not store agreement to GDPR terms') next = request.form.get('next') if next: return redirect(next) return redirect(url_for('index.index')) elif request.form.get('gdpr-options') == 'disagree': return redirect(url_for('login.logout', next=request.args.get('next'))) else: flash.error('You must agree to or decline our terms') return render_template('index/gdpr.html', next=request.args.get('next'))
def evaluate(dataset_id): ds = get_dataset(dataset_id) if not ds["public"]: flash.warn("Can't add private datasets into evaluation queue.") else: try: db.dataset_eval.evaluate_dataset(ds["id"]) flash.info("Dataset %s has been added into evaluation queue." % ds["id"]) except db.dataset_eval.IncompleteDatasetException: # TODO(roman): Show more informative error message. flash.error( "Can't add dataset into evaluation queue because it's incomplete." ) except db.dataset_eval.JobExistsException: flash.warn( "Evaluation job for this dataset has been already created.") return redirect(url_for(".eval_info", dataset_id=dataset_id))
def download_dataset(dataset_id): """Download the full contents of a dataset, including lowlevel files. The dataset is given as a zip file. If the number of items in a dataset is more than config.DATASET_DOWNLOAD_RECORDINGS_LIMIT then redirect back to the dataset page and don't download it. """ if current_app.config["DATASET_DOWNLOAD_RECORDINGS_LIMIT"] <= 0: flash.error("Downloading complete dataset is disabled") return redirect(url_for(".view", dataset_id=dataset_id)) ds = get_dataset(dataset_id) if ds["num_recordings"] > current_app.config["DATASET_DOWNLOAD_RECORDINGS_LIMIT"]: flash.error("Downloading complete dataset is disabled for datasets with " "more than %d recordings." % current_app.config["DATASET_DOWNLOAD_RECORDINGS_LIMIT"]) return redirect(url_for(".view", dataset_id=dataset_id)) dataset_name = slugify(ds["name"]) zip_file = generate_zip_from_dataset(ds) return send_file(zip_file, as_attachment=True, attachment_filename="acousticbrainz-dataset-{}-{}.zip".format(dataset_id, dataset_name))
def gdpr_notice(): if request.method == 'GET': return render_template('index/gdpr.html', next=request.args.get('next')) elif request.method == 'POST': if request.form.get('gdpr-options') == 'agree': try: db_user.agree_to_gdpr(current_user.musicbrainz_id) except db.exceptions.DatabaseException: flash.error('Could not store agreement to GDPR terms') next = request.form.get('next') if next: return redirect(next) return redirect(url_for('index.index')) elif request.form.get('gdpr-options') == 'disagree': return redirect( url_for('login.logout', next=request.args.get('next'))) else: flash.error('You must agree to or decline our terms') return render_template('index/gdpr.html', next=request.args.get('next'))
def gdpr_notice(): form = GdprForm() if form.validate_on_submit(): if form.preference.data == 'agree': try: db_user.agree_to_gdpr(current_user.musicbrainz_id) except db.exceptions.DatabaseException: flash.error('Could not store agreement to GDPR terms') next = request.form.get('next') if next: return redirect(next) return redirect(url_for('index.index')) elif form.preference.data == 'disagree': return redirect( url_for('login.logout', next=request.args.get('next'))) else: flash.error('You must agree to or decline our terms') return render_template('index/gdpr.html', form=form, next=request.args.get('next')) else: return render_template('index/gdpr.html', form=form, next=request.args.get('next'))