Skip to main content

deepesdl earthcode integration utility tool

Project description

deep-code

Build Status codecov Code style: black License

deep-code is a lightweight python tool that comprises a command line interface(CLI) and Python API providing utilities that aid integration of DeepESDL datasets, experiments with EarthCODE.

The first release will focus on implementing the publish feature of DeepESDL experiments/workflow as OGC API record and Datasets as an OSC stac collection.

Setup

Install

deep-code will be available in PyPI for now and will be available in conda-forge in the near future. Till the stable release, developers/contributors can follow the below steps to install deep-code.

Installing from the repository for Developers/Contributors

To install deep-code directly from the git repository, clone the repository, and execute the steps below:

conda env create
conda activate deep-code
pip install -e .

This installs all the dependencies of deep-code into a fresh conda environment, and installs deep-code from the repository into the same environment.

Testing

To run the unit test suite:

pytest

To analyze test coverage

pytest --cov=deep-code

To produce an HTML coverage report

pytest --cov-report html --cov=deep-code

deep_code usage

deep_code provides a command-line tool called deep-code, which has several subcommands providing different utility functions. Use the --help option with these subcommands to get more details on usage.

The CLI retrieves the Git username and personal access token from a hidden file named .gitaccess. Ensure this file is located in the same directory where you execute the CLI command.

.gitaccess example

github-username: your-git-user
github-token: personal access token

deep-code generate-config

Generates starter configuration templates for publishing to EarthCODE openscience catalog.

Usage

deep-code generate-config [OPTIONS]

Options

 --output-dir, -o : Output directory (default: current)

Examples:

deep-code generate-config
deep-code generate-config -o ./configs

deep-code publish

Publishes metadata of experiment, workflow and dataset to the EarthCODE open-science catalog

Usage

deep-code publish DATASET_CONFIG WORKFLOW_CONFIG [--environment ENVIRONMENT] [--mode 
all|dataset|workflow]

Arguments

DATASET_CONFIG - Path to the dataset configuration YAML file
(e.g., dataset-config.yaml)

WORKFLOW_CONFIG - Path to the workflow configuration YAML file
(e.g., workflow-config.yaml)

Options

--dataset-config, - Explict path to dataset config
--workflow-config, - Explicit path to workflow config
--environment, -e - Target catalog environment:
production (default) | staging | testing
--mode, -m Publishing mode:
all (default) | dataset | workflow

Examples:

  1. Publish to staging catalog
deep-code publish dataset-config.yaml workflow-config.yaml --environment=staging
  1. Publish to testing catalog
deep-code publish dataset-config.yaml workflow-config.yaml -e testing
  1. Publish to production catalog
deep-code publish dataset-config.yaml workflow-config.yaml
  1. Publish Dataset only
deep-code publish dataset-config.yaml -m dataset

deep-code publish --dataset-config dataset.yaml -m dataset
  1. Publish Workflow only
deep-code publish workflow-config.yaml -m workflow

deep-code publish --workflow-config workflow.yaml -m workflow

dataset-config.yaml example

dataset_id: esa-cci-permafrost-1x1151x1641-1.0.0.zarr
collection_id: esa-cci-permafrost
osc_themes:
  - cryosphere
osc_region: global
# non-mandatory
documentation_link: https://deepesdl.readthedocs.io/en/latest/datasets/esa-cci-permafrost-1x1151x1641-0-0-2-zarr
access_link: s3://deep-esdl-public/esa-cci-permafrost-1x1151x1641-1.0.0.zarr
dataset_status: completed

dataset-id has to be a valid dataset-id from deep-esdl-public s3 bucket or your team bucket.

workflow-config.yaml example

workflow_id: "esa-cci-permafrost"
properties:
  title: "ESA CCI permafrost"
  description: "cube generation workflow for esa-cci-permafrost"
  keywords:
    - Earth Science
  themes:
      - cryosphere
  license: proprietary
  jupyter_kernel_info:
    name: deepesdl-xcube-1.8.3
    python_version: 3.11
    env_file: "https://github.com/deepesdl/cube-gen/blob/main/Permafrost/environment.yml"
jupyter_notebook_url: "https://github.com/deepesdl/cube-gen/blob/main/Permafrost/Create-CCI-Permafrost-cube-EarthCODE.ipynb"
contact:
  - name: Tejas Morbagal Harish
    organization: Brockmann Consult GmbH
    links:
      - rel: "about"
        type: "text/html"
        href: "https://www.brockmann-consult.de/"

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

deep_code-0.1.7.tar.gz (42.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

deep_code-0.1.7-py3-none-any.whl (51.6 kB view details)

Uploaded Python 3

File details

Details for the file deep_code-0.1.7.tar.gz.

File metadata

  • Download URL: deep_code-0.1.7.tar.gz
  • Upload date:
  • Size: 42.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for deep_code-0.1.7.tar.gz
Algorithm Hash digest
SHA256 6ffc359fa6a8eaf044089e81be28a52377b089d46606a44a82824acf493f6889
MD5 575ad075120a8003618a56e4920dc198
BLAKE2b-256 509f3c4c2469660cdc4801369829e6845fc85e94219ea553b0463f665b7c1186

See more details on using hashes here.

File details

Details for the file deep_code-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: deep_code-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 51.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for deep_code-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 31311b001bc8c1ebf8f589543e0b76c91784f6ebb70ba0736c4b05792a6f1202
MD5 eb738b29d8146d8c0e960966a7735e01
BLAKE2b-256 0c6dd3405f4345201711c88e102612d550d8d8291a7e6acf4ef885bee4cb8cd5

See more details on using hashes here.

Supported by

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