Skip to main content
Archived

This project has been archived by its maintainers, and is no longer receiving any updates.

cads-api-client

CADS API Python client

Technical documentation: https://ecmwf-projects.github.io/cads-api-client/

Configuration

The ApiClient requires the url to the API root and a valid API key. You can also set the CADS_API_URL and CADS_API_KEY environment variables, or use a configuration file. The configuration file must be located at ~/.cads-api-client.json, or at the path specified by the CADS_API_RC environment variable.

$ cat $HOME/.cads-api-client.json
{"url": "https://cds.climate.copernicus.eu/api", "key": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}

It is possible (though not recommended) to use the API key of one of the test users:

00112233-4455-6677-c899-aabbccddeeff

This key is used for anonymous tests and is designed to be the least performant option for accessing the system.

Quick Start

Configure the logging level to display INFO messages:

>>> import logging
>>> logging.basicConfig(level="INFO")

Instantiate the API client and verify the authentication:

>>> import os
>>> from cads_api_client import ApiClient
>>> client = ApiClient(
...     url=os.getenv("CADS_API_URL"),
...     key=os.getenv("CADS_API_KEY"),
... )
>>> client.check_authentication()
{...}

Explore a collection:

>>> collection_id = "reanalysis-era5-pressure-levels"
>>> collection = client.get_collection(collection_id)
>>> collection.end_datetime
datetime.datetime(...)

>>> request = {
...     "product_type": "reanalysis",
...     "variable": "temperature",
...     "year": "2022",
...     "month": "01",
...     "day": "01",
...     "pressure_level": "1000",
...     "time": "00:00",
... }
>>> collection.process.apply_constraints(**request)
{...}

Retrieve data:

>>> client.retrieve(collection_id, target="tmp1-era5.grib", **request)  # blocks
'tmp1-era5.grib'

>>> remote = client.submit(collection_id, **request)  # doesn't block
>>> remote.request_uid
'...'
>>> remote.status
'...'
>>> remote.download("tmp2-era5.grib")  # blocks
'tmp2-era5.grib'

Interact with a previously submitted job:

>>> remote = client.get_remote(remote.request_uid)
>>> remote.delete()
{...}

Workflow for developers/contributors

For best experience create a new conda environment (e.g. DEVELOP) with Python 3.11:

conda create -n DEVELOP -c conda-forge python=3.11
conda activate DEVELOP

Before pushing to GitHub, run the following commands:

  1. Update conda environment: make conda-env-update
  2. Install this package: pip install -e .
  3. Sync with the latest template (optional): make template-update
  4. Run quality assurance checks: make qa
  5. Run tests: make unit-tests
  6. Run the static type checker: make type-check
  7. Build the documentation (see Sphinx tutorial): make docs-build

License

Copyright 2022, European Union.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Release files for cads-api-client 1.5.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cads-api-client 1.5.4
File Size Uploaded
cads_api_client-1.5.4.tar.gz 43.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cads-api-client 1.5.4
File Interpreter ABI Platform
cads_api_client-1.5.4-py3-none-any.whl Python 3 none any Details

Total release size: 70.6 kB

Release files / cads_api_client-1.5.4.tar.gz

Download URL cads_api_client-1.5.4.tar.gz
Size 43.3 kB
Tags Source
SHA-256 checksum
How to use checksums
f06a405eac585131cb140180cbc2bf9c2784b3dbd6278411d3e9f53d78b7f933
BLAKE2b-256 checksum
How to use checksums
205053f97758b826e2bab731880f4a2ead4d4ec36184a2eab92e239caa016d8c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.1.1 CPython/3.12.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 13, 2024.

Transparency log

Release files / cads_api_client-1.5.4-py3-none-any.whl

Download URL cads_api_client-1.5.4-py3-none-any.whl
Size 27.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fe557f5ef726b34c5cb4aa2c73379ac207c521b25bb08069806cc0519278a488
BLAKE2b-256 checksum
How to use checksums
592a30210f8b55d14247c698d53a90c6707b540aa76022342777ef0a18660a19
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.1.1 CPython/3.12.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 13, 2024.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page