Metadata-Version: 2.4
Name: pyfdb
Version: 5.21.4.20
Summary: Python interface to FDB
Author-email: European Centre for Medium-Range Weather Forecasts (ECMWF) <software.support@ecmwf.int>
License-Expression: Apache-2.0
Project-URL: Documentation, https://github.com/ecmwf/fdb
Project-URL: Homepage, https://github.com/ecmwf/fdb
Project-URL: Issues, https://github.com/ecmwf/fdb/issues
Project-URL: Repository, https://github.com/ecmwf/fdb
Keywords: python,fdb,tools
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
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
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: findlibs>=0.1.2
Requires-Dist: PyYAML>=6.0.3
Requires-Dist: fdb5lib==5.21.4.20
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Requires-Dist: pytest-flakes; extra == "test"
Requires-Dist: gitpython; extra == "test"
Requires-Dist: Sybil[pytest]; extra == "test"
Provides-Extra: docs
Requires-Dist: Sphinx; extra == "docs"
Requires-Dist: breathe; extra == "docs"
Requires-Dist: sphinx-book-theme; extra == "docs"
Requires-Dist: requests; extra == "docs"
Requires-Dist: sphinxcontrib-mermaid; extra == "docs"
Requires-Dist: autoapi; extra == "docs"
Requires-Dist: sphinx-autoapi; extra == "docs"
Provides-Extra: dev
Requires-Dist: isort; extra == "dev"
Requires-Dist: black; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: license
Dynamic: license-file
Dynamic: license-expression
Dynamic: requires-dist
Dynamic: requires-python

[![Static Badge](https://github.com/ecmwf/codex/raw/refs/heads/main/Project%20Maturity/emerging_badge.svg)](https://github.com/ecmwf/codex/raw/refs/heads/main/Project%20Maturity#emerging)

> \[!IMPORTANT\]
> This software is **Emerging** and subject to ECMWF's guidelines on [Software Maturity](https://github.com/ecmwf/codex/raw/refs/heads/main/Project%20Maturity).

# PyFDB

`PyFDB` is the Python interface to the [FDB](https://github.com/ecmwf/fdb), a
domain‑specific object store designed to efficiently archive, index, list, and
retrieve GRIB fields produced by numerical weather prediction workflows. It
provides a thin, idiomatic Python layer over the `FDB` client library installed
on your system, so you can drive FDB operations directly from Python scripts
and notebooks. 

The [FDB](https://github.com/ecmwf/fdb) itself is part of `ECMWF`’s
high‑performance data infrastructure: it stores each GRIB message as a field,
indexes it by meteorological metadata (e.g., `parameter`, `level`, `date/time`),
and serves recent outputs to post‑processing tasks and users. In operational
use, FDB acts as a hot cache in front of the long‑term MARS archive, enabling
fast access to newly generated data. 

If you’re new to `FDB`, you may want to skim the `FDB` documentation for concepts
(keys, requests, schema, spaces) and the overall architecture before
proceeding. 

## Installation via PyPI

Install the package from PyPI in your `venv`:

```
uv venv
source .venv/bin/activate
uv pip install pyfdb
```

This will bring in some necessary binary dependencies for you.
Set the `FDB_HOME` environment variable accordingly:

```
export FDB_HOME=<path_to_fdb_home>
```

## Documentation

For implementation details and tooling, see the [FDB project pages](https://sites.ecmwf.int/docs/fdb).

To build the latest documentation locally, follow the guide at [FDB](https://github.com/ecmwf/fdb).


## License

[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/ecmwf/fdb/blob/develop/LICENSE)
