Skip to main content

Reproducible Open Benchmarks - Flask Web API

Project description

https://img.shields.io/badge/License-MIT-yellow.svg https://github.com/scailfin/flowserv-core/workflows/build/badge.svg https://codecov.io/gh/scailfin/rob-webapi-flask/branch/master/graph/badge.svg
ROB Web Service Implementation (using Flask)

About

This is the default RESTful Web API implementation for the Reproducible Open Benchmarks for Data Analysis Platform (ROB) using the Flask web framework.

Installation and Configuration

The following installation instructions assume that you install all packages in a local folder ~/projects/rob.

# -- Change the working directory

cd ~/projects/rob

The Reproducible Open Benchmarks platform is implemented in Python. We recommend using a virtual environment for the installation.

# -- Create a new virtual environment
virtualenv venv
# -- Activate the virtual environment
source venv/bin/activate

The Flask Web API for ROB requires the flowserv package. The following steps will install all packages from the respective GitHub repositories:

git clone git@github.com:scailfin/flowserv-core.git
pip install -e flowserv-core
git clone git@github.com:scailfin/rob-webapi-flask.git
pip install -e rob-webapi-flask

The primary configuration parameters are defined in the ROB Configuration documentation. Two additional environment variables are defined by the Web API:

  • ROB_WEBAPI_LOG: Directory path for API logs (default: $FLOWSERV_API_DIR/log)

  • ROB_WEBAPI_CONTENTLENGTH: Maximum size of uploaded files (default: 16MB)

If you run the Flask application from the command line in developer mode using flask run, you also need to set the following environment variables:

export FLASK_APP=robflask.api
export FLASK_ENV=development

There are also more detailed instructions on the Demo Setup site to setup and run the Web API.

Command Line Interface

The robflask package includes a command line tool to setup the ROB database and for creating and manipulating benchmarks.

Initialize the ROB database

Initialize database and base directories for the Reproducible Open Benchmarks (ROB) Web API. The configuration parameters for the database are taken from the respective environment variables. Creates the API base directory if it does not exist.

Usage: robadm init [OPTIONS]

Options:
  -d, --dir FILE  Base directory for API files (overrides FLOWSERV_API_DIR).
  --help          Show this message and exit.

Create and delete Benchmarks

Create a new benchmark.

Usage: robadm benchmarks create [OPTIONS]

Options:
  -n, --name TEXT          Unique benchmark name.  [required]
  -d, --description TEXT   Short benchmark description.
  -i, --instructions FILE  File containing instructions for participants.
  -s, --src DIRECTORY      Benchmark template directory.
  -u, --url TEXT           Benchmark template Git repository URL.
  -f, --specfile FILE      Optional path to benchmark specification file.
  --help                   Show this message and exit.

Delete a given benchmark.

Usage: robadm benchmarks delete [OPTIONS] IDENTIFIER

Options:
  --help  Show this message and exit.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rob-flask-0.2.1.tar.gz (22.0 kB view hashes)

Uploaded Source

Built Distribution

rob_flask-0.2.1-py3-none-any.whl (30.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page