Workflow as a Service
This is a client and server implementation of the GA4GH Workflow Execution Service 1.0.0 API.
It provides Arvados and Toil backends. It
also works with any cwl-runner that supports the CWL standard command line
interface: http://www.commonwl.org/v1.0/CommandLineTool.html#Executing_CWL_documents_as_scripts
Installation:
pip install wes-service
Usage
Client configuration
Command line parameter or environment variable.
--host or WES_API_HOST
The host to contact.
--proto or WES_API_PROTO
The protocol (http or https) to use.
--auth or WES_API_AUTH
Credentials. Format is 'Header: value' or just 'value'. If header name is not provided, value goes in the 'Authorization'.
Get service info
$ wes-client --info
Submit a workflow to run:
Attachments must be accessible from the filesystem. Workflow runners may also support http URLs or other storage systems.
$ wes-client --host localhost:8080 --proto http \
--attachments="testdata/dockstore-tool-md5sum.cwl,testdata/md5sum.input" \
testdata/md5sum.cwl testdata/md5sum.cwl.json
List workflows
$ wes-client --list
Get workflow status
$ wes-client --get <run-id>
Get stderr log from workflow:
$ wes-client --log <run-id>
Server Configuration
Run a standalone server with default cwl-runner backend:
$ wes-server
Run a standalone server with Arvados backend:
$ pip install arvados-cwl-runner
$ wes-server --backend=wes_service.arvados_wes
Run a standalone server with Toil backend:
$ pip install toil[all]
$ wes-server --backend=wes_service.toil_wes --opt extra=--clean=never
Use alternate executable with cwl-runner backend
$ pip install cwltool
$ wes-server --backend=wes_service.cwl_runner --opt runner=cwltool --opt extra=--debug
Pass parameters to cwl-runner
Use "--opt" following by "key=value"
$ wes-server --backend=wes_service.cwl_runner --opt extra=--workDir=/tmp/work
Development
If you would like to develop against workflow-service make sure you pass the provided test and it is flake8 compliant
Install from Source
$ virtualenv venv && source venv/bin/activate && pip install toil[all] && pip install . --process-dependency-links && pip install -r dev-requirements.txt
Running Tests
From path workflow-service run
$ pytest && flake8
Metadata
Release files for wes-service 5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| wes_service-5.0.tar.gz | 32.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| wes_service-5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 64.3 kB
Release files / wes_service-5.0.tar.gz
| Download URL | wes_service-5.0.tar.gz |
|---|---|
| Size | 32.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
38a3132d2600c5358175c2435c8a8c3a1454d9b14a3ebbef8275ac697778e95f
|
|
BLAKE2b-256 checksum How to use checksums |
e179a4a8d4f26613517c8571c132d3df83791f23e4169a8d12cc806f6b455a73
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.8
|
Release files / wes_service-5.0-py3-none-any.whl
| Download URL | wes_service-5.0-py3-none-any.whl |
|---|---|
| Size | 31.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
74ad1907d4a514539069a5023edea590488a71224608e282f856cdcfaf7756e3
|
|
BLAKE2b-256 checksum How to use checksums |
c1775626535f4dc9ecc6ba8c7e151bb7e347bf70609887fb8fa480bb806ce955
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.8
|
Security for wes-service 5.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.