deepesdl earthcode integration utility tool
Project description
deep-code
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:
- Publish to staging catalog
deep-code publish dataset-config.yaml workflow-config.yaml --environment=staging
- Publish to testing catalog
deep-code publish dataset-config.yaml workflow-config.yaml -e testing
- Publish to production catalog
deep-code publish dataset-config.yaml workflow-config.yaml
- Publish Dataset only
deep-code publish dataset-config.yaml -m dataset
deep-code publish --dataset-config dataset.yaml -m dataset
- Publish Workflow only
deep-code publish dataset-config.yaml -m workflow
deep-code publish --workflow-config workflow.yaml -m dataset
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file deep_code-0.1.6.tar.gz.
File metadata
- Download URL: deep_code-0.1.6.tar.gz
- Upload date:
- Size: 42.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d3402cdf76fb74d491c31f5c1c58e2d3a6e1076f2f3276a0f0768707905bef0f
|
|
| MD5 |
0e5d5b500afe63719d41b432c8ff55ee
|
|
| BLAKE2b-256 |
2c757065b4309aad6ced365446b1f7002cd56b4b07c9bab2cb804e755cdbd39e
|
File details
Details for the file deep_code-0.1.6-py3-none-any.whl.
File metadata
- Download URL: deep_code-0.1.6-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.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
69a1d901bfe90a93313a45964b99198c86c7a1908ff4996386a1f5f95b96fec3
|
|
| MD5 |
e38260816a74108aa32a80a082b32326
|
|
| BLAKE2b-256 |
fd7da9f958cd36933e15572af8a3dadf0220cf8370e2069b32d3cc5c8b3c4618
|