Skip to main content

xcube datastore for accessing GediDB datastore using the `gedidb` API

Project description

xcube-gedidb

Unittest xcube-gedidb codecov xcube-gedidb Code style: black License

The xcube-gedidb Python package provides an xcube data store that enables access to datasets hosted by the Global Ecosystem Dynamics Investigation (GEDI). The data store is called "gedidb" and implemented as an xcube plugin.

It uses the gedidb package as a dependency, which is licensed under the European Union Public License v1.2.

Setup

Installing the xcube-gedidb plugin from the repository

To install xcube-gedidb directly from the git repository, clone the repository, cd into xcube-gedidb as follows and follow the steps below:

git clone https://github.com/xcube-dev/xcube-gedidb.git
cd xcube-gedidb
conda env create -f environment.yml
conda activate xcube-gedidb
pip install .

This sets up a new conda environment, installs all the dependencies required for xcube-gedidb, and then installs xcube-gedidb directly from the repository into the environment.

Installing the xcube-gedidb plugin from the PyPi

This method assumes that you have an existing environment created from the environment.yml, and you want to install xcube-gedidb into it. With the existing environment activated, execute this command:

pip install xcube-gedi

If xcube and any other necessary dependencies are not already installed, they will be installed automatically.

Testing

To run the unit test suite:

pytest

Some notes on the strategy of unit-testing for some tests

The unit test suite uses pytest-recording to mock https requests via the Python library requests for some of the unit tests. During development an actual HTTP request is performed and the responses are saved in cassettes/*.yaml files. During testing, only the cassettes/*.yaml files are used without an actual HTTP request. During development, to save the responses to cassettes/*.yaml, run:

pytest -v -s --record-mode new_episodes

Note that --record-mode new_episodes overwrites all cassettes. If one only wants to write cassettes which are not saved already, --record-mode once can be used. pytest-recording supports all records modes given by [VCR.py](https://vcrpy.readthedocs.io/en/latest/usage.html#record-modes. After recording the cassettes, testing can be then performed as usual.

Citation:

This project uses the gediDB API (Besnard et al., 2025) as a dependency.

Besnard, S., Dombrowski, F., & Holcomb, A. (2025). gediDB (2025.2.0). Zenodo. https://doi.org/10.5281/zenodo.13885229

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

xcube_gedidb-0.1.1.tar.gz (10.8 kB view details)

Uploaded Source

Built Distribution

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

xcube_gedidb-0.1.1-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

File details

Details for the file xcube_gedidb-0.1.1.tar.gz.

File metadata

  • Download URL: xcube_gedidb-0.1.1.tar.gz
  • Upload date:
  • Size: 10.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.23

File hashes

Hashes for xcube_gedidb-0.1.1.tar.gz
Algorithm Hash digest
SHA256 10bf85e2bd6aa5b55f11e4a90287b1aedf1fda28eff9d6cb7f678e7f1aaae597
MD5 c778b923ca3b900a9122dd54cfd7de35
BLAKE2b-256 8ac539562b7add07f27c36de62c775bef3e5a844d9e80628ff01e04a8f365b60

See more details on using hashes here.

File details

Details for the file xcube_gedidb-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: xcube_gedidb-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 12.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.23

File hashes

Hashes for xcube_gedidb-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7862de8f93bb95b6d94ed78433946c8ad1198fdd89f01cf90b348cbcd0832445
MD5 151e26ec545878755697f3849b542123
BLAKE2b-256 400b34f9fd36ab090c9629ceda53a04146a0321b68c5d88790567242c3055ebe

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