Skip to main content

The Universal Data Client command-line tool

Project description

UDC

The Universal Data Client

What is UDC?

Universal Data is an open source initiative to build a decentralized, cryptographically-secure ecosystem containerizing both structured and unstructured data.

UDC is the initial (alpha) client for that system. It currently supports both Quilt and Benchling URIs. For example:

  • udc list "quilt+s3://quilt-example#package=examples/wellplates"
  • udc patch "benchling+https://dtt.benchling.com?name=Update#type=Entry&id=etr_123"

Installation

NOTE: UDC requires Python 3.10 or higher. You can check your version with python3 --version. If you have an older version, you will need to update your environment to a newer version of Python.

Production Package

From PyPi:

python3 -m pip install udc # OR
python3 -m pip install --upgrade udc
which udc

Development Branch

python3 -m pip install git+https://github.com/data-yaml/udc.git@main

Cloned

When cloned from GitHub:

poetry install

<--

alias udc="poetry run udc"

-->

Usage

udc # prints help

List contents of a specific package instance

udc list "quilt+s3://quilt-example#package=examples/wellplates@6782cf98a2"

e.g.,

"quilt+s3://quilt-example#package=examples/wellplates@6782cf98a2&path=README.md"
"quilt+s3://quilt-example#package=examples/wellplates@6782cf98a2&path=autoplate_H1N1.csv"
"quilt+s3://quilt-example#package=examples/wellplates@6782cf98a2&path=data_products.ipynb"
"quilt+s3://quilt-example#package=examples/wellplates@6782cf98a2&path=neutralisation-altair.json"
"quilt+s3://quilt-example#package=examples/wellplates@6782cf98a2&path=neutralisation.json"
"quilt+s3://quilt-example#package=examples/wellplates@6782cf98a2&path=quilt_summarize.json"
"quilt+s3://quilt-example#package=examples/wellplates@6782cf98a2&path=render.html"

List all versions of a package

udc list "quilt+s3://quilt-example#package=examples/wellplates" | head -n 1

e.g.,

"quilt+s3://quilt-example#package=examples/wellplates@6782cf98a2c600f4c519efd5de868d5ef1e05ac92fcb0fa56044bb8c925c5f02"

List all packages in a registry

udc list quilt+s3://quilt-example | head -n 1

e.g.,

"quilt+s3://quilt-example#package=akarve/amazon-reviews:latest"

Get a package into a specific directory

You can also use put (replace) and patch (merge) if you have write access.

udc get "quilt+s3://quilt-example#package=examples/wellplates@6782cf98a2" --dir /tmp/wellplates

Checking the download directory:

ls /tmp/wellplates

Should reveal the following output:

README.md
autoplate_H1N1.csv
data_products.ipynb
neutralisation-altair.json
neutralisation.json
quilt_summarize.json
render.html

Development

Testing

make test

Continuous Monitoring

make watch

Create Package

WARNING: Do this only if you are the maintainer of the package.

Be sure you to first set your ~/.pypirc using poetry config pypi-token.pypi <pypi-api-token>

# merge PR
make tag
make pypi
poetry publish

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

udc-0.3.3.tar.gz (12.1 kB view hashes)

Uploaded Source

Built Distribution

udc-0.3.3-py3-none-any.whl (14.0 kB view hashes)

Uploaded Python 3

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