Skip to main content

DesignSafe API

Project description

DesignSafe API (dapi)

build and test License Docs

dapi is a library that simplifies the process of submitting, running, and monitoring TAPIS v3 jobs on DesignSafe via Jupyter Notebooks.

dapi

Features

Jobs

  • Get TAPIS v3 templates for jobs: No need to fiddle with complex API requests. dapi abstracts away the complexities.

  • Seamless Integration with DesignSafe Jupyter Notebooks: Launch DesignSafe applications directly from the Jupyter environment.

Database

Connects to SQL databases on DesignSafe:

Database dbname env_prefix
NGL ngl NGL_
Earthake Recovery eq EQ_
Vp vp VP_

Define the following environment variables:

{env_prefix}DB_USER
{env_prefix}DB_PASSWORD
{env_prefix}DB_HOST
{env_prefix}DB_PORT

For e.g., to add the environment variable NGL_DB_USER edit ~/.bashrc, ~/.zshrc, or a similar shell-specific configuration file for the current user and add export NGL_DB_USER="dspublic".

Installation

Install dapi via pip

pip3 install dapi

To install the current development version of the library use:

pip install git+https://github.com/DesignSafe-CI/dapi.git --quiet

Example usage:

Storing credentials

Dapi uses the Tapis v3 SDK to authenticate with the DesignSafe API. To store your credentials, create a .env file in the root of your project with the following content:

DESIGNSAFE_USERNAME=<your_designsafe_username>
DESIGNSAFE_PASSWORD=<your_designsafe_password>

Jobs

On DesignSafe Jupyter:

Install the latest version of dapi and restart the kernel (Kernel >> Restart Kernel):

# Remove any previous installations
!pip uninstall dapi -y
# Install
!pip install dapi --quiet
  • Import dapi library
import dapi
  • To list all functions in dapi
dir(dapi)

Database

from dapi.db import DSDatabase

db = DSDatabase("ngl")
sql = 'SELECT * FROM SITE'
df = db.read_sql(sql)
print(df)

# Optionally, close the database connection when done
db.close()

Support

For any questions, issues, or feedback submit an issue

Development

To develop or test the library locally. Install Poetry. In the current repository run the following commands

poetry shell
poetry install
poetry build

To run the unit test

poetry run pytest -v

License

dapi is licensed under the MIT License.

Authors

  • Krishna Kumar, University of Texas at Austin
  • Prof. Pedro Arduino, University of Washington
  • Prof. Scott Brandenberg, University of California Los Angeles

Documentation

View dapi API doc

Running documentation locally

To serve the MkDocs documentation locally:

poetry install
poetry run mkdocs serve

This will start a local server at http://127.0.0.1:8000/dapi/ where you can view the documentation.

API docs

To generate API docs:

pdoc --html --output-dir api-docs dapi --force

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dapi-0.3.5.tar.gz (37.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dapi-0.3.5-py3-none-any.whl (42.2 kB view details)

Uploaded Python 3

File details

Details for the file dapi-0.3.5.tar.gz.

File metadata

  • Download URL: dapi-0.3.5.tar.gz
  • Upload date:
  • Size: 37.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for dapi-0.3.5.tar.gz
Algorithm Hash digest
SHA256 e47d6f6025e0e6eeeadc65793d07595ada7ea830b3d3b8f68a117057435f67ea
MD5 3da1688d5223b1ad608581cd584e2c27
BLAKE2b-256 6f1802e561c25cc3cc8dd6d30578a2649921860709f1ce5f4d9cce8727bbb13c

See more details on using hashes here.

Provenance

The following attestation bundles were made for dapi-0.3.5.tar.gz:

Publisher: pypi.yml on DesignSafe-CI/dapi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dapi-0.3.5-py3-none-any.whl.

File metadata

  • Download URL: dapi-0.3.5-py3-none-any.whl
  • Upload date:
  • Size: 42.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for dapi-0.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 b284283b06d481112751eceef1f907dd030bf800fe18514051e50d29c4d357bf
MD5 9f3200e98d3e87b510f2f2edcd5bb1dd
BLAKE2b-256 2a8000fedc64f59e3cacae2d80c66c19dc025cb522fb57ab768b8ca9fbcb9ad4

See more details on using hashes here.

Provenance

The following attestation bundles were made for dapi-0.3.5-py3-none-any.whl:

Publisher: pypi.yml on DesignSafe-CI/dapi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page