Metadata-Version: 2.4
Name: pyfive
Version: 1.1.2
Summary: A pure python HDF5 reader
Author-email: Pyfive Development Team <valeriu.predoi@ncas.ac.uk>, Valeriu Predoi <valeriu.predoi@ncas.ac.uk>, David Hassell <david.hassell@ncas.ac.uk>, Bryan Lawrence <bryan.lawrence@ncas.ac.uk>, Jonathan Helmus <jjhelmus@gmail.com>, Kai Muehlbauer <kai.muehlbauer@uni-bonn.de>
License-Expression: BSD-3-Clause
Project-URL: Code, https://github.com/jjhelmus/pyfive
Project-URL: Issues, https://github.com/jjhelmus/pyfive/issues
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Natural Language :: English
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
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: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Atmospheric Science
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: numpy>=2
Requires-Dist: typing-extensions
Provides-Extra: test
Requires-Dist: dask; extra == "test"
Requires-Dist: flask; extra == "test"
Requires-Dist: flask-cors; extra == "test"
Requires-Dist: h5netcdf; extra == "test"
Requires-Dist: h5py; extra == "test"
Requires-Dist: moto; extra == "test"
Requires-Dist: netCDF4!=1.7.4; extra == "test"
Requires-Dist: pre-commit; extra == "test"
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Requires-Dist: pytest-html; extra == "test"
Requires-Dist: pytest-rerunfailures; extra == "test"
Requires-Dist: pytest-xdist; extra == "test"
Requires-Dist: python-neo-lzf; extra == "test"
Requires-Dist: s3fs>=2025.9.0; extra == "test"
Provides-Extra: doc
Requires-Dist: autodocsumm; extra == "doc"
Requires-Dist: sphinx; extra == "doc"
Requires-Dist: sphinx_rtd_theme; extra == "doc"
Dynamic: license-file

[![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://GitHub.com/Naereen/StrapDown.js/graphs/commit-activity)
[![made-with-python](https://img.shields.io/badge/Made%20with-Python-1f425f.svg)](https://www.python.org/)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.18599472.svg)](https://doi.org/10.5281/zenodo.18599472)
[![JOSS paper](https://joss.theoj.org/papers/10.21105/joss.09688/status.svg)](https://joss.theoj.org/papers/10.21105/joss.09688)
[![Documentation Status](https://app.readthedocs.org/projects/pyfive/badge/?version=latest)](https://pyfive.readthedocs.io/en/latest/?badge=latest)
[![Test](https://github.com/NCAS-CMS/pyfive/actions/workflows/pytest.yml/badge.svg)](https://github.com/NCAS-CMS/pyfive/actions/workflows/pytest.yml)
[![codecov](https://codecov.io/gh/NCAS-CMS/pyfive/graph/badge.svg?token=3In5JuzeGK)](https://codecov.io/gh/NCAS-CMS/pyfive)
[![Anaconda-Server Badge](https://anaconda.org/conda-forge/pyfive/badges/version.svg)](https://anaconda.org/conda-forge/pyfive)

![pyfive-logo](https://raw.githubusercontent.com/NCAS-CMS/pyfive/main/doc/figures/Pyfive-logo.png)

[Latest doc builds on RTD](https://app.readthedocs.org/projects/pyfive/builds/)

pyfive : A pure Python HDF5 file reader
=======================================

``pyfive`` is an open source library for reading HDF5 files written using
pure Python (no C extensions). The package is still in development and not all
features of HDF5 files are supported.

``pyfive`` aims to support the same API as [`h5py`](https://github.com/h5py/h5py) for reading files.
Cases where a file uses a feature that is supported by ``h5py`` but not ``pyfive`` are considered bugs
and should be reported in our [Issues](https://github.com/NCAS-CMS/pyfive/issues).
Writing HDF5 output is not a goal of ``pyfive`` and portions of the API which apply only to writing will not be implemented.

Dependencies
============

``pyfive`` is tested against Python versions 3.10 to 3.14.
It may also work with other Python versions.

The only dependencies to run the software besides Python is ``numpy``.

Install
=======

pyfive can be installed using ``pip`` using the command::

    pip install pyfive

``conda`` packages are also available from conda-forge::

    conda install -c conda-forge pyfive

To install from source in your home directory use::

    pip install --user ./pyfive

The library can also be imported directly from the source directory.


Development
===========

git
---

You can check out the latest ``pyfive`` souces with the command::

    git clone https://github.com/NCAS-CMS/pyfive.git

testing
-------

``pyfive`` comes with a test suite in the ``tests`` directory.
These tests can be exercised using the ``pytest`` command from the root directory (requires installation of the ``pytest`` package).

Conda-forge feedstock
=====================

Package repository [conda-forge feedstock](https://github.com/conda-forge/pyfive-feedstock)

Codecov
=======

Test coverage assessement is done using [codecov](https://app.codecov.io/gh/NCAS-CMS/pyfive/)

Documentation
=============

Build locally with Sphinx:

    $ sphinx-build -Ea doc doc/build
