AgavePy is an open-source Python SDK that lets you to use Tapis (v2) services to manage data, perform computational analysis workflows, build automations, and more, all from within Python scripts or the Python interactive REPL.
You can view and fork the source code for AgavePy on GitHub. Join our community of users to provide feedback, request features, and submit your own contributions.
Tapis is an open source Science-as-a-Service API that powers research computing and data management workflows. Tapis unites high-performance computing (HPC), high-throughput computing (HTC), Cloud, and Big Data resources under a single, web-friendly REST API featuring fine-grained access control, detailed provenance, reproducibility, and scalability.
Example: List contents of a Tapis storageSystem path¶
To illustrate how one can use AgavePy, consider this example. Here, the
Agave.files.list() function is used to return a Python list of the
contents of a directory on a Tapis storage system.
>>> from agavepy import Agave >>> ag = Agave.restore() >>> files = ag.files.list(storageSystem='tacc-public-demo', filePath='/examples')
This same function can be accomplished by making an authenticated HTTP GET to the files API:
curl -XGET -H "Authentication: Bearer 24cace8cea8cd541012a323d9ebd2b6" \ 'https://api.tacc.utexas.edu/files/v2/listings/system/files/v2/listings/system/tacc-public-demo/examples'
It could also be done using the Tapis CLI:
tapis files list agave://tacc-public-demo/examples
Making a direct API call requires more experience working with web services, but is extremely flexible. Using the CLI is very accessible, though it is a bit more opinionated and is also suited to interactive or script usage. AgavePy aims for the middle ground, providing an expressive, embeddable interface to Tapis that is closely aligned with the platform API’s syntax and usage.
Ultimately, your use case informs your choice of tooling - If you are interested in these other paths for working with Tapis, they are amply documented:
- Tapis API docs : Research computing web services
- Abaco API docs : Functions-as-a-Service for orchestration and integration
- Tapis CLI docs : Shell environment for Tapis and Abaco