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 details)

Uploaded Source

Built Distribution

agodashi-1.0.1-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

File details

Details for the file agodashi-1.0.1.tar.gz.

File metadata

  • Download URL: agodashi-1.0.1.tar.gz
  • Upload date:
  • Size: 7.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.6.9

File hashes

Hashes for agodashi-1.0.1.tar.gz
Algorithm Hash digest
SHA256 9158cfeee33e7909c2a6b993ed0d8b2812512f3158ce41cd1a80c2476d141781
MD5 befa128341c12982af324a1672c63a87
BLAKE2b-256 3a7740914209c90a7de86c8b438b7e2246f74ce4de330edb17e3038aaf34d997

See more details on using hashes here.

File details

Details for the file agodashi-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: agodashi-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 12.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.6.9

File hashes

Hashes for agodashi-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2086ae10c3663769dc8d882f5f182f7fa877452328036c726654495e1db3ac5a
MD5 b519f9df0806e9b9049901c57dcc476b
BLAKE2b-256 dbc836303f7f5f4ab5582151f5cce127637bb26aeb7e6ffef123d8c69328bf9f

See more details on using hashes here.

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