Skip to main content

Command line interface for interacting with the Terra Scientific Pipelines Service, or Teaspoons.

Project description

Terralab CLI

Quality Gate Status

Overview

The Terralab CLI provides a command-line interface with which to interact with the Terra Scientific Pipelines Service, or Teaspoons.

Currently, Terralab supports running Genotype Imputation (for public release in early 2025).

Note that in order to use Terralab and Teaspoons, you must have a Terra account.

User instructions coming soon.

Installation

You can install the Terralab CLI from PyPi using your favorite package management tool.

For example, run

pip install terralab-cli

Using the CLI

Once installed, to run the CLI, run the following command:

terralab COMMAND [ARGS]

For example, to list the pipelines you can run using Terralab, run the following command:

terralab pipelines list

(Internal) WIP documentation for the CLI.

Python CLI structure

The CLI code is structured as follows:

terra-scientific-pipelines-service-cli
├── terralab
│   └── commands
│   │   └── __init__.py
│   │   └── auth_commands.py
│   │   └── pipelines_commands.py
│   └── logic
│   │   └── __init__.py
│   │   └── auth_logic.py
│   │   └── pipelines_logic.py
│   └── __init__.py
│   └── auth_helper.py
│   └── cli.py
│   └── client.py
│   └── config.py
│   └── teaspoons
├── tests
│   └── commands
│   │   └── test_auth_commands.py
│   │   └── test_pipelines_commands.py
│   └── logic
│   │   └── test_auth_logic.py
│   │   └── test_pipelines_logic.py
│   └── __init__.py
│   └── auth_helper.py
│   └── cli.py
│   └── client.py
│   └── config.py
│   └── terralab
├── .gitignore
├── .terralab-cli-config
├── poetry.lock
├── pyproject.toml
├── README.md

In the terralab directory, we have the following files and subdirectories:

  • auth_helper.py contains the code for authenticating with the Terra Scientific Pipelines Service (Terra, via b2c).
  • cli.py is the entrypoint for the CLI. It configures logging and assembles the CLI sub-modules that are defined in commands/.
  • client.py contains the code for wrapping API calls to the Terra Scientific Pipelines Service.
  • config.py contains the code for managing the CLI configuration via environment variables.
  • utils.py contains utility functions that are used across the CLI.
  • The commands directory contains the CLI sub-modules. This is effectively the controller layer for the CLI.
  • The logic directory contains the business logic for the CLI, including calling Terra Scientific Pipelines Service APIs via the thin teaspoons_client, which is autogenerated and published by the Terra Scientific Pipelines Service repository.

In the tests directory, we have test files that can be run with pytest.

Development

You'll need to have poetry installed to manage python dependencies. Instructions for installing poetry can be found here.

To install the CLI locally, run the following commands from the root project directory:

poetry lock      # only needed if you updated dependencies in pyproject.toml
poetry install

You do not need to re-run these commands each time you update code locally, unless you've added dependencies in pyproject.toml.

If you do update dependencies in pyproject.toml, run poetry lock and check in the resulting changes to poetry.lock along with the rest of your code changes.

To run the tests, execute the following command from the root project (terra-scientific-pipelines-service-cli) directory:

poetry run pytest

To run tests with a coverage report printed to the terminal:

poetry run pytest --cov-report term --cov=terralab

To run the formatter, execute the following command from the root project directory:

poetry run black .

To run the linter with fixes, execute the following command from the root project directory:

poetry run ruff check --fix

To run the linter as a check without fixes, omit the --fix flag.

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

terralab_cli-0.0.4.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

terralab_cli-0.0.4-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

Details for the file terralab_cli-0.0.4.tar.gz.

File metadata

  • Download URL: terralab_cli-0.0.4.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for terralab_cli-0.0.4.tar.gz
Algorithm Hash digest
SHA256 0b323d0b637cc73e59dbf9055d7c3c233069a717c642eda53bb6dbc8c152578f
MD5 b10020c3576cb7826026fe9ddbd1f524
BLAKE2b-256 74a9b2bd96e6a95406843e188631966321270d876393acf58b4ed12a7b9b2c1a

See more details on using hashes here.

Provenance

The following attestation bundles were made for terralab_cli-0.0.4.tar.gz:

Publisher: bump-build-publish-cli.yml on DataBiosphere/terra-scientific-pipelines-service-cli

Attestations:

File details

Details for the file terralab_cli-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: terralab_cli-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 10.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for terralab_cli-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 641613f6015db7d146c0f3326ad84e4ea3a4cbdeb4c0e1f7fb931ad51cc47482
MD5 d8978067720c683df9fc1541a33acf02
BLAKE2b-256 c7031e7887ab1c5ad1dc0313016026fab41b8704a89dc84ffb1ceed4c717f2b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for terralab_cli-0.0.4-py3-none-any.whl:

Publisher: bump-build-publish-cli.yml on DataBiosphere/terra-scientific-pipelines-service-cli

Attestations:

Supported by

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