Skip to main content

PyPI version PyPI - Python Version

DRS-cli

This repository contains a Bravado-based client for a mockup implementation of the Data Repository Service API schema of the Global Alliance for Genomics and Health, as described in the mock-DRS repository. The client was developed for the use within the TEStribute task distribution logic application.

Usage

To use the client import it as follows in your Python code after installation:

import drs_client

client = drs_client.Client("http://localhost:9101/ga4gh/drs/v1/")

It is possible to supply a Bearer token, which will then be added to the Authentication header (prepended by Bearer) for every outbound call:

client = tes_client.Client(
   url="https://path.to/swagger.json",
   jwt="SomET0kEn"
)

Note that the indicated URL is valid when mock-DRS was installed at the default location on your local machine. When a different DRS instance is supposed to be used, replace the full URL (including http:// or https://).

Access the mock-DRS GET /objects/{object_id} endpoint with, e.g.:

response = client.GetObject("a001")

Access the mock-DRS POST /update-db endpoint with, e.g.:

response = client.updateDatabaseObjects(
    clear_db=True,
    objects=[
        {
            "access_methods": [
                {
                    "access_id": "string",
                    "access_url": {"headers": ["Authorization"], "url": "string"},
                    "region": "us-east-1",
                    "type": "s3",
                }
            ],
            "aliases": ["string"],
            "checksums": [{"checksum": "string", "type": "string"}],
            "created": "string",
            "description": "string",
            "id": "string",
            "mime_type": "application/json",
            "name": "string",
            "size": 0,
            "updated": "string",
            "version": "string",
        },
    ],
)

the objects list can contain any number of such drs_object dicts and the clear_db indicates weather or not the db should be emptied before upload of specified objects.

For further details on populating the DRS via the POST /update-db endpoint, please see the documentation in the mock-DRS repository.

Note that all other endpoints are currently not implemented.

Installation

You can install DRS-cli in one of two ways:

Manual installation

git clone https://github.com/elixir-europe/DRS-cli.git
cd DRS-cli
python setup.py install

Installation via package manager

pip install -e git+https://github.com/elixir-europe/DRS-cli.git#egg=drs_client

or

pip install drs_client

Contributing

This project is a community effort and lives off your contributions, be it in the form of bug reports, feature requests, discussions, or fixes and other code changes. Please read the contributing guidelines if you want to contribute. And please mind the code of conduct for all interactions with the community.

Versioning

Development of the app is currently still in alpha stage, and current versioning is for internal use only. In the future, we are aiming to adopt semantic versioning that is synchronized to the versioning of TEStribute and [mock-TES] in order to ensure that these apps will be compatible as long as both their major and minor versions match.

License

This project is covered by the Apache License 2.0 also available shipped with this repository.

Contact

Please contact the project leader for inquiries, proposals, questions etc. that are not covered by the Contributing section.

Acknowledgments

The project is a collaborative effort under the umbrella of the ELIXIR Cloud and AAI group. It was started during the 2019 Google Summer of Code as part of the Global Alliance for Genomics and Health organization.

logo banner

Metadata

Release files for drs-client 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for drs-client 0.2.0
File Size Uploaded
drs_client-0.2.0.tar.gz 11.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for drs-client 0.2.0
File Interpreter ABI Platform
drs_client-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 20.1 kB

Release files / drs_client-0.2.0.tar.gz

Download URL drs_client-0.2.0.tar.gz
Size 11.5 kB
Tags Source
SHA-256 checksum
How to use checksums
5ce4fd2eec4f4d264acd8c34281fd99c9fea968b48173d850e054ccb71806af1
BLAKE2b-256 checksum
How to use checksums
156d68256c5a2f0eccdd156ba02423ee178cd9c13eb6a7445d851d27c32f702c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.6.8

Release files / drs_client-0.2.0-py3-none-any.whl

Download URL drs_client-0.2.0-py3-none-any.whl
Size 8.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fbd1f20dcdc5a9582a2fe1c3ba27cc8bd133e5394a90ed3b3edef15978472edc
BLAKE2b-256 checksum
How to use checksums
b87af23d244f2377cee3132f7498aa7a0e3f61ba05ce8dc25a89e90972fd8444
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.6.8

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page