Skip to main content

An API server for parsing workflows written in workflow languages

Project description

Agodashi

pytest flake8 isort mypy Apache License

Agodashi is a simple REST API server. It takes a workflow file written in workflow language as input and returns workflow type, workflow version and workflow parameters template. Currently, supported workflow languages are as follows:

In the future, we plan to support the following languages.

Install and Run

Agodashi supports Python 3.6 or newer.

$ pip3 install agodashi
$ agodashi

Docker

We also expect to launch using Docker.

# Launch
$ docker-compose up -d

# Launch confirmation
$ docker-compose logs

Usage

As API specifications, please check SwaggerUI - Agodashi API Spec

The help for the Agodashi startup command is as follows.

$ agodashi --help
usage: agodashi [-h] [--host] [-p] [--debug]

An API server for parsing workflows written in workflow languages

optional arguments:
  -h, --help    show this help message and exit
  --host        Host address of Flask. (default: 127.0.0.1)
  -p , --port   Port of Flask. (default: 8080)
  --debug       Enable debug mode of Flask.

As the simplest example of a REST API Request, here is the result of a POST /inspect-workflow.

POST /inspect-workflow -F 'wf_url=https://raw.githubusercontent.com/suecharo/agodashi/master/tests/resources/cwl/trimming_and_qc_packed.cwl'

{
  "wf_params": "nthreads: 2  # default value of type \"int\". (optional)\nfastq_2:  # type \"File\"\n    class: File\n    path: a/file/path\nfastq_1:  # type \"File\"\n    class: File\n    path: a/file/path\n",
  "wf_type": "CWL",
  "wf_version": "v1.0"
}

Development

You can start the development environment as follows.

$ docker-compose -f docker-compose.dev.yml up -d --build
$ docker-compose -f docker-compose.dev.yml exec app bash

We use flake8, isort, and mypy as the Linter.

$ bash ./tests/lint_and_style_check/flake8.sh
$ bash ./tests/lint_and_style_check/isort.sh
$ bash ./tests/lint_and_style_check/mypy.sh

We use pytest as a Test Tool.

$ pytest .

License

Apache-2.0. See the LICENSE.

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

agodashi-1.0.1.tar.gz (7.0 kB view hashes)

Uploaded Source

Built Distribution

agodashi-1.0.1-py3-none-any.whl (12.4 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