Skip to main content

Human Cell Atlas Data Storage System Command Line Interface

Project description

This repository contains a command line interface (CLI) and Python library for interacting with the Data Coordination Platform (DCP) of the Human Cell Atlas (HCA). Currently it allows interaction with the Upload Service and Data Storage Service (DSS).

Installation

pip install hca.

Usage

The hca package installs a command-line utility hca.

To see the list of commands you can use, type hca --help. Commands are grouped into major categories that roughly correspond to DCP system components, e.g. DSS, Staging Service. To get detailed help for a particular command group type, e.g. hca upload --help.

Configuration management

The HCA CLI supports ingesting configuration from a configurable array of sources. Each source is a JSON file. Configuration sources that follow the first source update the configuration using recursive dictionary merging. Sources are enumerated in the following order (i.e., in order of increasing priority):

  • Site-wide configuration source, /etc/hca/config.json

  • User configuration source, ~/.config/hca/config.json

  • Any sources listed in the colon-delimited variable HCA_CONFIG_FILE

  • Command line options

Array merge operators: When loading a chain of configuration sources, the HCA CLI uses recursive dictionary merging to combine the sources. Additionally, when the original config value is a list, the package supports array manipulation operators, which let you extend and modify arrays defined in underlying configurations. See https://github.com/kislyuk/tweak#array-merge-operators for a list of these operators.

Development

To develop on the CLI, first run pip install -r requirements-dev.txt. You can install your locally modified copy of the hca package by running make install in the repository root directory.

To use the command line interface with a local or test DSS, first run hca (or scripts/hca if you want to use the package in place from the repository root directory). This will create the file ~/.config/hca/config.json, which you can modify to update the value of DSSClient.swagger_url to point to the URL of the Swagger definition served by your DSS deployment. Lastly, the CLI enforces HTTPS connection to the DSS API. If you are connecting to a local DSS, make this change in dcp-cli/hca/util/__init__.py in the SwaggerClient object:

scheme = "http"

You can also layer a minimal config file on top of the default config.json using the HCA_CONFIG_FILE environment variable, for example:

export SWAGGER_URL="https://dss.staging.data.humancellatlas.org/v1/swagger.json"
jq -n .DSSClient.swagger_url=env.SWAGGER_URL > ~/.config/hca/config.staging.json
export HCA_CONFIG_FILE=~/.config/hca/config.staging.json

To use the Python interface with a local or test DSS, configure an HCAConfig object with a swagger_url field, and pass it as a parameter to the API client’s constructor:

config = HCAConfig()
config['DSSClient'].swagger_url = "https://dss.example.com/v1/swagger.json"
client = DSSClient(config=config)
res = client.post_search(...)

Testing

Before you run tests, first run hca dss login. This will pop up a browser and get you to authenticate with Google. Use an email from one of the whitelisted domains (in DSS_SUBSCRIPTION_AUTHORIZED_DOMAINS_ARRAY from here).

Then make test.

Bugs

Please report bugs, issues, feature requests, etc. on GitHub.

License

Licensed under the terms of the MIT License.

https://img.shields.io/travis/HumanCellAtlas/dcp-cli.svg https://codecov.io/github/HumanCellAtlas/dcp-cli/coverage.svg?branch=master https://img.shields.io/pypi/v/hca.svg https://img.shields.io/pypi/l/hca.svg https://readthedocs.org/projects/hca/badge/?version=latest

Project details


Release history Release notifications | RSS feed

This version

4.1.3

Download files

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

Source Distribution

hca-4.1.3.tar.gz (43.3 kB view details)

Uploaded Source

Built Distribution

hca-4.1.3-py2.py3-none-any.whl (52.1 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file hca-4.1.3.tar.gz.

File metadata

  • Download URL: hca-4.1.3.tar.gz
  • Upload date:
  • Size: 43.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/2.7

File hashes

Hashes for hca-4.1.3.tar.gz
Algorithm Hash digest
SHA256 92c071261c424ccbaf649e065f913ab951a54a6e982c6e66e8447371fb7c0b88
MD5 4878017ff7f419e97c4cbd18c6776456
BLAKE2b-256 75c0856a172e37bd51339d5834c0b9987b5e88f5617e4a272b5044c6926eada4

See more details on using hashes here.

File details

Details for the file hca-4.1.3-py2.py3-none-any.whl.

File metadata

  • Download URL: hca-4.1.3-py2.py3-none-any.whl
  • Upload date:
  • Size: 52.1 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/2.7

File hashes

Hashes for hca-4.1.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 f730ae47c8b13e9ed16773f475c591a13c3301aded872a94539a3ddf895e6c62
MD5 737440d01c82cd8cc5508ba0aee853fe
BLAKE2b-256 0cc8d51c048dd090632cdea415c1678751b860261104cfce7b49b5684850da7a

See more details on using hashes here.

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