Metadata-Version: 2.3
Name: paramdb
Version: 0.15.3
Summary: Python package for storing and retrieving experiment parameters.
License: BSD-3-Clause
Author: Alex Hadley
Author-email: contact@alexhadley.net
Requires-Python: >=3.9,<4.0
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Provides-Extra: all
Provides-Extra: astropy
Provides-Extra: pandas
Provides-Extra: pydantic
Requires-Dist: astropy (>=6.0.1,<7.0.0) ; extra == "all" or extra == "astropy"
Requires-Dist: eval-type-backport (>=0.2.0,<0.3.0) ; extra == "all" or extra == "pydantic"
Requires-Dist: pandas (>=2.2.2,<3.0.0) ; extra == "all" or extra == "pandas"
Requires-Dist: pydantic (>=2.7.4,<3.0.0) ; extra == "all" or extra == "pydantic"
Requires-Dist: sqlalchemy (>=2.0.31,<3.0.0)
Requires-Dist: typing-extensions (>=4.12.2,<5.0.0)
Requires-Dist: zstandard (>=0.24.0,<0.25.0)
Project-URL: Repository, https://github.com/PainterQubits/paramdb
Description-Content-Type: text/markdown

# ParamDB

<!-- start badges -->

[![PyPI Latest Release](https://img.shields.io/pypi/v/paramdb)](https://pypi.org/project/paramdb/)
[![PyPI Python Versions](https://img.shields.io/pypi/pyversions/paramdb)](https://pypi.org/project/paramdb/)
[![License](https://img.shields.io/pypi/l/paramdb)](https://github.com/PainterQubits/paramdb/blob/main/LICENSE)
[![CI](https://github.com/PainterQubits/paramdb/actions/workflows/ci.yml/badge.svg)](https://github.com/PainterQubits/paramdb/actions/workflows/ci.yml)
[![Codecov](https://codecov.io/github/PainterQubits/paramdb/branch/main/graph/badge.svg?token=PQEJWLBTBK)](https://codecov.io/github/PainterQubits/paramdb)
[![Documentation Status](https://readthedocs.org/projects/paramdb/badge/?version=stable)](https://paramdb.readthedocs.io/en/stable/?badge=stable)

<!-- end badges -->

<!-- start intro -->

Python package for storing and retrieving experiment parameters.

<!-- end intro -->

## Installation

<!-- start installation -->

Install the latest version of ParamDB using pip:

```
pip install -U paramdb
```

ParamDB has several extras:

- `pandas` for [`pandas.DataFrame`] support via [`paramdb.ParamDataFrame`]
- `astropy` for [`astropy.units.Quantity`] support
- `pydantic` for type-validation support via [Pydantic]

To install all extras, use the `all` extra:

```
pip install -U "paramdb[all]"
```

[`pandas.DataFrame`]: https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html
[`paramdb.ParamDataFrame`]: https://paramdb.readthedocs.io/en/stable/api-reference.html#paramdb.ParamDataFrame
[`astropy.units.quantity`]: https://docs.astropy.org/en/stable/api/astropy.units.Quantity.html#astropy.units.Quantity
[Pydantic]: https://docs.pydantic.dev/latest/

<!-- end installation -->

## Usage

ParamDB has two main components:

- [**Parameter Data**]: Base classes that are used to defined the structure and
  functionality of parameter data.

- [**Database**]: A database object that commits and loads parameter data to a persistent
  file.

See the [api reference] for more information.

[**parameter data**]: https://paramdb.readthedocs.io/en/stable/parameter-data.html
[**database**]: https://paramdb.readthedocs.io/en/stable/database.html
[api reference]: https://paramdb.readthedocs.io/en/stable/api-reference.html

