This repository contains a Bravado-based client for a modified version of the Task Execution Service API schema of the Global Alliance for Genomics and Health, as described in the mock-TES repository. The client was developed for the use within the TEStribute task distribution logic application.
To use the client import it as follows in your Python code after installation:
import tes_client
client = tes_client.Client("http://localhost:9001/ga4gh/tes/v1/")
It is possible to supply a Bearer token, which will then be added to the
Authentication
header (prepended by Bearer
) for every outbound call:
client = tes_client.Client(
url="https://path.to/swagger.json",
jwt="SomET0kEn"
)
Note that the indicated URL is valid when mock-TES was installed at the default location on your local machine. When a different TES instance is supposed to be used, replace the full URL (including
http://
orhttps://
).
Access the mock-TES POST /tasks/task-info
endpoint with, e.g.:
response = client.getTaskInfo(
cpu_cores=4,
ram_gb=8,
disk_gb=100,
execution_time_min=10,
)
Access the mock-TES POST /update-config
endpoint with, e.g.:
response = client.updateTaskInfoConfig(
currency="USD",
time_unit="MINUTES",
unit_costs={
"cpu_usage": 1,
"memory_consumption": 4,
"data_storage": 10,
"data_transfer": 20,
},
)
Note that the original TES endpoints are currently not implemented.
You can install TES-cli
in one of two ways:
git clone /~https://github.com/elixir-europe/TES-cli.git
cd TES-cli
python setup.py install
pip install drs_client
or (for development version)
pip install -e git+/~https://github.com/elixir-europe/TES-cli.git#egg=tes_client
This project is a community effort and lives off your contributions, be it in the form of bug reports, feature requests, discussions, or fixes and other code changes. Please read the contributing guidelines if you want to contribute. And please mind the code of conduct for all interactions with the community.
Development of the app is currently still in alpha stage, and current versioning is for internal use only. In the future, we are aiming to adopt semantic versioning that is synchronized to the versioning of TEStribute and mock-TES in order to ensure that these apps will be compatible as long as both their major and minor versions match.
This project is covered by the Apache License 2.0 also available shipped with this repository.
Please contact the project leader for inquiries, proposals, questions etc. that are not covered by the Contributing section.
The project is a collaborative effort under the umbrella of the ELIXIR Cloud and AAI group. It was started during the 2019 Google Summer of Code as part of the Global Alliance for Genomics and Health organization.