datastores.Client#
- class datastores.Client#
ECMWF Data Stores Service (DSS) API Python client.
- Parameters:
url (
str
orNone
, default:None
) – API URL. If None, infer from ECMWF_DATASTORES_URL or ECMWF_DATASTORES_RC_FILE.key (
str
orNone
, default:None
) – API Key. If None, infer from ECMWF_DATASTORES_KEY or ECMWF_DATASTORES_RC_FILE.verify (
bool
, default:True
) – Whether to verify the TLS certificate at the remote end.timeout (
float
ortuple[float,float]
, default:60
) – How many seconds to wait for the server to send data, as a float, or a (connect, read) tuple.progress (
bool
, default:True
) – Whether to display the progress bar during download.cleanup (
bool
, default:False
) – Whether to delete requests after completion.sleep_max (
float
, default:120
) – Maximum time to wait (in seconds) while checking for a status change.retry_after (
float
, default:120
) – Time to wait (in seconds) between retries.maximum_tries (
int
, default:500
) – Maximum number of retries.session (
requests.Session
) – Requests session.
- apply_constraints(collection_id, request)#
Apply constraints to the parameters in a request.
- Parameters:
collection_id (
str
) – Collection ID (e.g.,"projections-cmip6"
).request (
dict[str,Any]
) – Request parameters.
- Returns:
Dictionary of valid values.
- Return type:
dict[str,Any]
- check_authentication()#
Verify authentication.
- Returns:
Content of the response.
- Return type:
dict[str,Any]
- Raises:
requests.HTTPError – If the authentication fails.
- delete(*request_ids)#
Delete requests.
- Parameters:
*request_ids (
str
) – Request IDs.- Returns:
Content of the response.
- Return type:
dict[str,Any]
- download_results(request_id, target=None)#
Download the results of a request.
- Parameters:
request_id (
str
) – Request ID.target (
str
orNone
) – Target path. If None, download to the working directory.
- Returns:
Path to the retrieved file.
- Return type:
str
- get_collection(collection_id)#
Retrieve a catalogue collection.
- Parameters:
collection_id (
str
) – Collection ID (e.g.,"projections-cmip6"
).- Return type:
- get_collections(limit=None, sortby=None, query=None, keywords=None)#
Retrieve catalogue collections.
- Parameters:
limit (
int | None
) – Number of collections per page.sortby (
{None, 'id', 'relevance', 'title', 'update'}
) – Field to sort results by.query (
str
orNone
) – Full-text search query.keywords (
list[str]
orNone
) – Filter by keywords.
- Return type:
- get_jobs(limit=None, sortby=None, status=None)#
Retrieve submitted jobs.
- Parameters:
limit (
int
orNone
) – Number of jobs per page.sortby (
{None, 'created', '-created'}
) – Field to sort results by.status (
None
or{'accepted', 'running', 'successful', 'failed', 'rejected'}
orlist
) – Status of the results.
- Return type:
- get_remote(request_id)#
Retrieve the remote object of a request.
- Parameters:
request_id (
str
) – Request ID.- Return type:
- get_results(request_id)#
Retrieve the results of a request.
- Parameters:
request_id (
str
) – Request ID.- Return type:
- retrieve(collection_id, request, target=None)#
Submit a request and retrieve the results.
- Parameters:
collection_id (
str
) – Collection ID (e.g.,"projections-cmip6"
).request (
dict[str,Any]
) – Request parameters.target (
str
orNone
) – Target path. If None, download to the working directory.
- Returns:
Path to the retrieved file.
- Return type:
str
- submit(collection_id, request)#
Submit a request.
- Parameters:
collection_id (
str
) – Collection ID (e.g.,"projections-cmip6"
).request (
dict[str,Any]
) – Request parameters.
- Return type:
- submit_and_wait_on_results(collection_id, request)#
Submit a request and wait for the results to be ready.
- Parameters:
collection_id (
str
) – Collection ID (e.g.,"projections-cmip6"
).request (
dict[str,Any]
) – Request parameters.
- Return type: