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.
Agodashi supports Python 3.6 or newer.
$ pip3 install agodashi
$ agodashi
We also expect to launch using Docker.
# Launch
$ docker-compose up -d
# Launch confirmation
$ docker-compose logs
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"
}
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 .
Apache-2.0. See the LICENSE.