Skip to main content

CyberGIS-Compute Python SDK

GitHub Docs PyPi Status

Docs Deployed PythonCodeQuality PythonCodeTest

CyberGIS-Compute is a scalable middleware framework for enabling high-performance and data-intensive geospatial research and education on CyberGISX. This API can be used to send supported jobs to various supported HPC & computing resources.


Installation

Requirements

  • Python3 + pip3
  • Jupyter server (Hub/Lab) with fixed domain
  • System environment variables:
    • JUPYTERHUB_API_TOKEN: user access token, comes with JupyterHub/Lab.
    • JUPYTER_INSTANCE_URL: server url

From Pip:

pip install cybergis-compute-client

From Github:

git clone https://github.com/cybergis/cybergis-compute-python-sdk.git
cd cybergis-compute-python-sdk
python3 setup.py install

Hello World Example

In this example, you will be using the SDK's Pilot UI to run the hello world GitHub project on the Keeling Computing Cluster.

  1. Run the Pilot UI
from cybergis_compute_client import CyberGISCompute

cybergis = CyberGISCompute(url="xxx") # replace xxx with CyberGIS-Compute server url
cybergis.show_ui() # run Pilot UI
  1. Select hello world from 📦 Job Template
  2. Select keeling_community from 🖥 Computing Resource
  3. Configure the following, or leave it as default
    • Slurm Computing Configurations
    • Input Parameters
    • Receive Email
  4. Select a file to upload under Upload Data
  5. Click Submit

❓ If you wonder where the customized configuration options comes from, they are defined in the manifest.json file of each project. Please refer to https://github.com/cybergis/cybergis-compute-hello-world/blob/main/manifest.json


SDK Usage

cybergis = CyberGISCompute(url="xxx")
  1. Query and resume jobs that you own.
# CyberGISCompute.list_job -> return a list of jobs that you submitted
cybergis.list_job()

# CyberGISCompute.get_job_by_id -> return a Job object referred by that id
cybergis.get_job_by_id(id)
  1. Query CyberGIS-Compute server support information
# CyberGISCompute.list_hpc -> prints a list of hpc resources that the server supports
cybergis.list_hpc()

# CyberGISCompute.list_git -> prints a list of Git projects that the server supports
cybergis.list_git()
  1. Use Pilot UI
# Renders a IPython Widget UI in Jupyter (async)
# CyberGISCompute.create_job_by_ui -> return None
cybergis.show_ui()

# Get the job submitted by the UI (after you press the submit button)
# CyberGISCompute.get_latest_created_job -> return Job object
cybergis.get_latest_created_job()
  1. Submit job using programming style (in progress)
# the Job object is an interface for a job
# CyberGISCompute.create_job -> return Job object & print the job's information
job = cybergis.create_job(hpc="some HPC")

# Job.submit -> print the job's information
job.submit()

Related Documentation and Projects

Release files for cybergis-compute-client 0.2.6

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

Source distribution (sdist)

Source distribution for cybergis-compute-client 0.2.6
File Size Uploaded
cybergis_compute_client-0.2.6.tar.gz 4.6 MB Details

Release files / cybergis_compute_client-0.2.6.tar.gz

Download URL cybergis_compute_client-0.2.6.tar.gz
Size 4.6 MB
Tags Source
SHA-256 checksum
How to use checksums
17c9d542828f7e9216a07a6c43367917392805c8d7f5f7045bef7384439fef68
BLAKE2b-256 checksum
How to use checksums
8df585f9f9867519d7a3d900461311b6005a454e52e07f1b185f8df08c59c431
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.8.10

Release history Release notifications | RSS feed

This release

0.2.6 This release

1 release file

0.2.5

1 release file

0.2.4

2 release files

0.2.3

1 release file

0.2.2

1 release file

0.2.1

1 release file

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