Skip to main content

gxy-wes

A tiny, dependency-light client and command line tool for Galaxy's GA4GH Workflow Execution Service (WES) API. It depends only on requests, so it runs cleanly under uvx and is meant for documentation examples and quick interactive exploration of a Galaxy WES endpoint.

It walks the same flow the Galaxy developer docs describe: discover the service, stage an input dataset, submit a workflow, poll the run, and read outputs and per-task logs.

Scope

This project exists to demonstrate the WES API — it is not meant for production or user-facing applications.

  • For user-facing applications, use Planemo.
  • For production applications, build on the BioBlend abstractions.

Install

Run it without installing using uv:

$ uvx gxy-wes service-info --galaxy-url http://localhost:8080

Or install it:

$ pip install gxy-wes

Authentication

Every endpoint except service-info needs a Galaxy API key, sent as the x-api-key header. Pass --api-key or set GXY_WES_API_KEY; set the server with --galaxy-url or GXY_WES_URL. Get a key with:

$ curl -s -u you@example.com:password \
    http://localhost:8080/api/authenticate/baseauth

Usage

Each WES endpoint is a subcommand:

$ gxy-wes service-info
$ gxy-wes stage --content $'hello\nworld\n'          # -> {history_id, hda_id}
$ gxy-wes submit --workflow simple.gxwf.yml \
    --params '{"input1": {"src": "hda", "id": "<hda_id>"}}' \
    --engine-parameters '{"history_id": "<history_id>"}'
$ gxy-wes status <run_id>
$ gxy-wes get <run_id>
$ gxy-wes tasks <run_id>
$ gxy-wes task <run_id> 1
$ gxy-wes list
$ gxy-wes cancel <run_id>
$ gxy-wes job-output <job_id> --which stderr

The demo subcommand runs the whole example end to end against a live Galaxy (stage an input, submit the bundled Format2 workflow, poll, print outputs and tasks):

$ export GXY_WES_API_KEY=...
$ uvx gxy-wes demo --galaxy-url http://localhost:8080

As a library

from gxy_wes import WesClient

client = WesClient("http://localhost:8080", api_key="...")
info = client.service_info()
run = client.submit_run(
    workflow_type="gx_workflow_format2",
    workflow_path="simple.gxwf.yml",
    params={"input1": {"src": "hda", "id": hda_id}},
    engine_parameters={"history_id": history_id},
)
status = client.get_run_status(run["run_id"])

Notes

  • workflow_type is one of Galaxy's formats: gx_workflow_format2 (Format2 YAML) or gx_workflow_ga (native .ga JSON). It is detected from the workflow content when you pass --workflow.
  • WES has no data-staging endpoint; dataset inputs must already exist in Galaxy and are referenced as {"src": "hda", "id": ...}. The stage subcommand uses Galaxy's native API to create those.
  • Run success is determined by the WES run state (COMPLETE), not by per-task exit codes — a failed job can be a normal part of a valid workflow.

License

MIT. See LICENSE.

Metadata

Release files for gxy-wes 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gxy-wes 0.1.0
File Size Uploaded
gxy_wes-0.1.0.tar.gz 13.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gxy-wes 0.1.0
File Interpreter ABI Platform
gxy_wes-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 24.5 kB

Release files / gxy_wes-0.1.0.tar.gz

Download URL gxy_wes-0.1.0.tar.gz
Size 13.1 kB
Tags Source
SHA-256 checksum
How to use checksums
0503179b3eeab46e07b134ff3669b440f2a2a3469c18420be22a9c0cb52f97ea
BLAKE2b-256 checksum
How to use checksums
9a8ba5806285d12c66695eecb938c338d5eaf0f41277e6a24650a4d98aca3ee4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 8, 2026.

Transparency log

Release files / gxy_wes-0.1.0-py3-none-any.whl

Download URL gxy_wes-0.1.0-py3-none-any.whl
Size 11.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d9e8b19be0225a06c722ffdfbd2199ad11f1e6ea03f4ef02587d30dac070390d
BLAKE2b-256 checksum
How to use checksums
7063ff91ddf461de3d143d39bbd53beb1a342f196ee1a178e8fbdc20af278b2b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 8, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page