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.

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.4.9.tar.gz (37.4 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.4.9-py3-none-any.whl (42.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for dapi-0.4.9.tar.gz
Algorithm Hash digest
SHA256 1e4d0a47bd7ab47aadd6e49bd588d42a439c6fe36c73ab2d200cd5658159353e
MD5 c3840db63038c5dc1d056d6d55a05643
BLAKE2b-256 c2c84aa3e6afffa7025d33da0a724a3b1f577136daeeb550ca8b712a9f8d58c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for dapi-0.4.9.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.4.9-py3-none-any.whl.

File metadata

  • Download URL: dapi-0.4.9-py3-none-any.whl
  • Upload date:
  • Size: 42.3 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.4.9-py3-none-any.whl
Algorithm Hash digest
SHA256 a792f19aefb5c5df4c467da9de88395427b3d245b827a0c120ab4646bc75d331
MD5 8be5413e9326cc40b21b4a3b9ae80382
BLAKE2b-256 a07ee701f0cbc547792a099ee6eeee098777edd799c6bac70026e71a782a515c

See more details on using hashes here.

Provenance

The following attestation bundles were made for dapi-0.4.9-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