The Apache Airavata Python SDK for third party clients to integrate with Airavata middleware
airavata Includes gRPC generated stubs (protobuf models and service clients). Mainly contains data model and functions. You may need to import data model packages to integrate with clients.airavata_sdkclients Includes integration clients, which you want to import and integrate with your code to access airavata middleware.samples Includes set of sample implementation of integration clients to demonstrate the integration with airavata middlewaretransport Includes connection handling classes for gRPC channelsairavata_experiments Python APIs to run experiments from anywhere. Handles uploading data, running experiments, tracking progress, and fetching data from past runs.airavata_jupyter_magic Jupyter Plugin providing magic annotations (%) to shift notebook runtimes between resources (local/remote).The SDK connects to Airavata via gRPC (using grpcio) on a single port (default 9090). All API services are served by an Armeria server that provides both gRPC and REST (HTTP/JSON transcoding).
The default server settings are in airavata_sdk/__init__.py (Settings class) and can be overridden with environment variables (e.g., API_SERVER_HOSTNAME, API_SERVER_PORT).
python3 -m venv venv
source venv/bin/activate
pip install -e .
Settings class defaults:API_SERVER_HOSTNAME (default: api.gateway.cybershuttle.org)API_SERVER_PORT (default: 9090)AUTH_SERVER_URL, AUTH_REALM, AUTH_CLIENT_ID for Keycloak authenticationYou can generate a *.tar.gz distribution and install to any external project.
build and setuptools installedpython3 -m pip install --upgrade build setuptools
pyproject.toml is locatedpython3 -m build .
dist/
airavata_python_sdk-2.0.0-py2.py3-none-any.whl
airavata-python-sdk-2.0.0.tar.gz
Now, you should be able to install those packages into your project.