Metadata-Version: 2.5
Name: rootfilespec
Version: 0.1.0
Summary: A format specification for ROOT files
Project-URL: Homepage, https://github.com/nsmith-/rootfilespec
Project-URL: Bug Tracker, https://github.com/nsmith-/rootfilespec/issues
Project-URL: Discussions, https://github.com/nsmith-/rootfilespec/discussions
Project-URL: Changelog, https://github.com/nsmith-/rootfilespec/releases
Author-email: Nick Smith <nick.smith@cern.ch>
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
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: Typing :: Typed
Requires-Python: >=3.10
Requires-Dist: cramjam
Requires-Dist: numpy
Requires-Dist: typing-extensions
Requires-Dist: xxhash
Description-Content-Type: text/markdown

# rootfilespec

[![Actions Status][actions-badge]][actions-link]
[![Documentation Status][rtd-badge]][rtd-link]

[![PyPI version][pypi-version]][pypi-link]
[![Conda-Forge][conda-badge]][conda-link]
[![PyPI platforms][pypi-platforms]][pypi-link]

[![GitHub Discussion][github-discussions-badge]][github-discussions-link]

<!-- SPHINX-START -->

<!-- prettier-ignore-start -->
[actions-badge]:            https://github.com/nsmith-/rootfilespec/workflows/CI/badge.svg
[actions-link]:             https://github.com/nsmith-/rootfilespec/actions
[conda-badge]:              https://img.shields.io/conda/vn/conda-forge/rootfilespec
[conda-link]:               https://github.com/conda-forge/rootfilespec-feedstock
[github-discussions-badge]: https://img.shields.io/static/v1?label=Discussions&message=Ask&color=blue&logo=github
[github-discussions-link]:  https://github.com/nsmith-/rootfilespec/discussions
[pypi-link]:                https://pypi.org/project/rootfilespec/
[pypi-platforms]:           https://img.shields.io/pypi/pyversions/rootfilespec
[pypi-version]:             https://img.shields.io/pypi/v/rootfilespec
[rtd-badge]:                https://readthedocs.org/projects/rootfilespec/badge/?version=latest
[rtd-link]:                 https://rootfilespec.readthedocs.io/en/latest/?badge=latest

<!-- prettier-ignore-end -->

The rootfilespec package is designed to efficiently parse ROOT file binary data
into python datastructures. It does not drive I/O and expects materialized bytes
buffers as input. It also does not return any types beyond python dataclasses of
primitive types (and numpy arrays thereof). The goal of the project is to
provide a stable and feature-complete read/write backend for packages such as
uproot.

RNTuple: rootfilespec reads format 1.0.2.x, as written by ROOT 6.40.04, and
earlier versions of epoch 1. Its reference is the
[RNTuple specification v1.0.2.1](https://github.com/ariostas/root-io-spec/blob/d1618ad96c7e55277b291eb9e3af4ee8d0c359d9/spec/05-rntuple/BinaryFormatSpecification.md)
that ROOT 6.40.04 ships, read with root-io-spec's
[errata](https://github.com/ariostas/root-io-spec/blob/d1618ad96c7e55277b291eb9e3af4ee8d0c359d9/spec/05-rntuple/ERRATA.md)
(ROOT writes 1.0.2.0 into the anchor: erratum 1). An RNTuple that sets a feature
flag is refused, as the specification requires of a reader that does not
implement it.

Further details on the design decisions can be found in
[docs/design.md](docs/design.md).
