コード例 #1
0
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)
コード例 #2
0
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)
コード例 #3
0
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)
コード例 #4
0
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'))
コード例 #5
0
 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)
コード例 #6
0
 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)
コード例 #7
0
ファイル: datasets.py プロジェクト: EQ4/acousticbrainz-server
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))
コード例 #8
0
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'))
コード例 #9
0
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))
コード例 #10
0
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))
コード例 #11
0
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'))
コード例 #12
0
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'))