Metadata-Version: 2.4
Name: esgf-pyclient
Version: 0.3.2
Summary: A library interacting with ESGF services within Python
Home-page: http://esgf-pyclient.readthedocs.org
Download-URL: https://github.com/ESGF/esgf-pyclient
Author: Ag Stephens
Author-email: Ag.Stephens@stfc.ac.uk
License: BSD
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: BSD License
Classifier: Topic :: Scientific/Engineering
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.11.0
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: defusedxml
Requires-Dist: jinja2
Requires-Dist: requests
Requires-Dist: requests_cache
Requires-Dist: webob
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Requires-Dist: defusedxml; extra == "dev"
Requires-Dist: jinja2; extra == "dev"
Requires-Dist: requests; extra == "dev"
Requires-Dist: requests_cache; extra == "dev"
Requires-Dist: webob; extra == "dev"
Requires-Dist: myproxyclient>=2.1.1; extra == "dev"
Requires-Dist: nbval; extra == "dev"
Requires-Dist: sphinx; extra == "dev"
Requires-Dist: sphinx_mdinclude; extra == "dev"
Requires-Dist: nbsphinx; extra == "dev"
Requires-Dist: pandoc; extra == "dev"
Requires-Dist: nbconvert; extra == "dev"
Requires-Dist: ipykernel; extra == "dev"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: download-url
Dynamic: home-page
Dynamic: license
Dynamic: license-file
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

[![Documentation Status](https://img.shields.io/badge/docs-latest-brightgreen.svg)](https://esgf-pyclient.readthedocs.io/en/latest/?badge=latest)
[![Build Status](https://github.com/ESGF/esgf-pyclient/workflows/build%20%E2%9A%99%EF%B8%8F/badge.svg)](https://github.com/ESGF/esgf-pyclient/actions)
[![GitHub license](https://img.shields.io/github/license/ESGF/esgf-pyclient.svg)](https://github.com/ESGF/esgf-pyclient/blob/master/LICENSE)

# esgf-pyclient

ESGF PyClient is a Python package designed for interacting with the [Earth System Grid Federation](https://esgf.llnl.gov/) system.

> [!WARNING]
> This package interacts with the
> [legacy ESGF Search API](https://esgf.github.io/esg-search/ESGF_Search_RESTful_API.html),
> which is deprecated and servers may be shut down permanently.
> Users are encouraged to switch to
> [intake-esgf](https://intake-esgf.readthedocs.io/), or use
> [pystac-client](https://pystac-client.readthedocs.io/) to interact with the
> new STAC-based search API. The new STAC servers are available at:
> 
> - https://discovery.east.esgf.io
> - https://discovery.west.esgf.io
>
> Progress reports on the development of the new ESGF infrastructure can
> be found on the [ESGF Roadmap GitHub
> repository](https://github.com/ESGF/esgf-roadmap/blob/main/status/README.md).

This package contains API code for calling the
[legacy ESGF Search API](https://esgf.github.io/esg-search/ESGF_Search_RESTful_API.html)
from Python code. It may be used to access data that is only findable
through the legacy ESGF Search API, such as CMIP5, CORDEX, and older
obs4MIPs data.

You can try it online using Binder, or view the notebooks on NBViewer:
[![Binder Launcher](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/ESGF/esgf-pyclient.git/master?filepath=notebooks)
[![NBViewer](https://raw.githubusercontent.com/jupyter/design/master/logos/Badges/nbviewer_badge.svg)](https://nbviewer.jupyter.org/github/ESGF/esgf-pyclient/tree/master/notebooks/)

Please submit bugs and feature requests through the bug tracker on
[GitHub](https://github.com/ESGF/esgf-pyclient). Pull requests are
always welcome.

Full [documentation](http://esgf-pyclient.readthedocs.org) is available
on ReadTheDocs or in the docs directory.

## Available servers

At the time of writing (September 9, 2026), servers providing search
using this API may be found at the following URLs:

- <https://esgf-node.ornl.gov/esgf-1-5-bridge> (partially supports the legacy ESGF Search API, issues can be reported [here](https://github.com/esgf2-us/esg_fastapi/issues))
- <https://esgf.ceda.ac.uk/esg-search/search>
- <https://esgf-data.dkrz.de/esg-search/search>
- <https://esg-dn1.nsc.liu.se/esg-search/search>

while the following servers appear to be online, but return an error
page:

- <https://esgf-node.ipsl.upmc.fr/esg-search/search>
- <https://esgf.nci.org.au/esg-search/search>
- <https://esgf.nccs.nasa.gov/esg-search/search>
- <https://esgdata.gfdl.noaa.gov/esg-search/search>

Note that logging in using OpenID with the
[`pyesgf.logon`](https://esgf-pyclient.readthedocs.io/en/latest/api.html#module-pyesgf-logon)
module is no longer required to access ESGF data.
All servers supporting this feature have been taken offline.
