caeli-data
The Python client of the Caeli data repository API (https://data.caeli.space). One door for every producer and reader of datasets: the inventory platform, pipelines and colleagues all use this library; nothing writes to the tables or the buckets directly.
pip install caeli-data # caeli-data[aws] also brings boto3, for Repository.from_secret
from caeli_data import Repository, TableRejected, IngestFailed
repo = Repository() # CAELI_API_URL (default https://data.caeli.space) and CAELI_API_KEY
repo.whoami() # {"name": "tim", "role": "admin", ...}
# a prepared Parquet file with any regions and months in it: split per partition region and month, every part loaded
jobs = repo.load_file("prepared.parquet", "cdse-sentinel-5p-l2-no2", software={"my-pipeline": "1.0"}, source_ref="download 4711")
print(jobs[0]["message"]) # "200000 rows appended in cdse_sentinel_5p_l2_no2, ... item N_EU__2026-09__v1 now ..."
# a pandas DataFrame straight in: columns ordered and cast to the registered schema, the helper column idx_month dropped
jobs = repo.load_dataframe(df, "cdse-sentinel-5p-l2-no2", software={"my-pipeline": "1.0"})
A complete month delivered again is a new version of that month: mode="replace", reason="re-import of 2026-09".
A service takes its key from Secrets Manager: Repository.from_secret("caeli/data-platform/api-key-inventory-platform").
The rules a table file must meet are in Caeli_data_repository_conventions (section 6); the library checks them before
uploading and says which rule a file breaks (TableRejected; for an extra column the message carries the schema change to make). IngestFailed means the platform failed; the same file
sent again is the same job, never a double load. Python 3.9 and later.
Rasters, the read side (catalogue, versions, downloads) and the command line follow in the next versions.
Metadata
Release files for caeli-data 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| caeli_data-0.2.1.tar.gz | 16.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| caeli_data-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 30.1 kB
Release files / caeli_data-0.2.1.tar.gz
| Download URL | caeli_data-0.2.1.tar.gz |
|---|---|
| Size | 16.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c4a3cc7f8d3f4ceee7966b0baa208ebb58fc224f6d7d613895abd0861bb9a7e8
|
|
BLAKE2b-256 checksum How to use checksums |
00f055ca9a0b1d7c24c3f9da405f2af2206c1ae554357b8f01951c02c24d7088
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.10
|
Release files / caeli_data-0.2.1-py3-none-any.whl
| Download URL | caeli_data-0.2.1-py3-none-any.whl |
|---|---|
| Size | 13.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fc79c2e5477349ade8a28719114b6ac31d840c592913b54e8b2879cac226319a
|
|
BLAKE2b-256 checksum How to use checksums |
668f62ddf98390022dc17fdac3b324f8e1ade5218dadff1f9b0150c3ffb1105d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.10
|
Security for caeli-data 0.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.