This repository is a pip installable Command Line Interface (CLI) and Python library (API) for interacting with the Data Coordination Platform (DCP) of the Human Cell Atlas (HCA).
The HCA CLI is compatible with python versions 3.5+ (we are no longer compatible with python2.7, and our last compatible python2.7 version was hca==6.4.0).
pip install hca.
To see the list of commands you can use, type
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,
- User configuration source,
- Any sources listed in the colon-delimited variable
- 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.
Service to Service Authorization
Google service credentials must be whitelisted before they will authenticate with the HCA CLI.
Set the environment variable GOOGLE_APPLICATION_CREDENTIALS to the path of your Google service credentials file to authenticate.
One can also use:
hca dss login.
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
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
scheme = "http"
To use the Python interface with a local or test DSS, pass the URL of the Swagger definition to the
constructor via the
client = DSSClient(swagger_url="https://dss.example.com/v1/swagger.json")
You can also layer a minimal config file on top of the default
config.json using the
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
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
Primary CI testing is through Travis CI; there is also additional testing with the Gitlab/Allspark that runs tests for Windows. If submitting PRs that have the potential of being platform dependent, please ensure the status Windows Testing is verified before merging.
Please report bugs, issues, feature requests, etc. on GitHub.
See our Security Policy.
Licensed under the terms of the MIT License.