Metadata-Version: 2.4
Name: LRFutils
Version: 0.2.0
Summary: Small tools for everyday scientific work: run archives, editable matplotlib figures, terminal helpers
Author-email: Vincent Foriel <vincent.foriel@gmail.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/VForiel/LRFutils
Project-URL: Documentation, https://lrfutils.readthedocs.io
Project-URL: Changelog, https://lrfutils.readthedocs.io/en/latest/changelog.html
Project-URL: Issues, https://github.com/VForiel/LRFutils/issues
Keywords: science,archiving,matplotlib,reproducibility
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: matplotlib>=3.5
Requires-Dist: numpy>=1.22
Requires-Dist: PyYAML>=6.0
Provides-Extra: dev
Requires-Dist: pytest>=7; extra == "dev"
Provides-Extra: docs
Requires-Dist: sphinx>=7; extra == "docs"
Requires-Dist: sphinx-breeze-theme>=0.13; extra == "docs"
Requires-Dist: myst-parser>=3; extra == "docs"
Dynamic: license-file

# LRFutils

[![PyPI](https://img.shields.io/pypi/v/LRFutils)](https://pypi.org/project/LRFutils/)
[![Documentation](https://readthedocs.org/projects/lrfutils/badge/?version=latest)](https://lrfutils.readthedocs.io)
[![Sponsor](https://img.shields.io/badge/sponsor-%E2%9D%A4-bf3989)](https://github.com/sponsors/VForiel)

Small tools for everyday scientific work, by Vincent Foriel.

- `LRFutils.archive`: one dated directory per run, named after its parameters, with a `metadata.yml` manifest
  (date, Python version, Git commit and branch, parameters).
- `LRFutils.pltedit`: matplotlib figures saved as editable `.plt` files, reopened in Python or in the `pltedit`
  desktop editor.
- `LRFutils.progress`, `logs`, `color`, `term`: progress bars, logs and coloured text for scripts.

```console
pip install LRFutils
```

```python
from LRFutils import archive, pltedit

run = archive.new("scan", wavelength_nm=1550)       # archives/2026-10-28_1a2b3c4/0001-scan-wavelength_nm=1550/
pltedit.save(fig, run.path / "spectrum.plt")
```

Documentation: https://lrfutils.readthedocs.io

LRFutils 0.2 replaces [VFSciTools](https://github.com/VForiel/VFSciTools): `vfscitools.archive` and `pltedit` are now
`LRFutils.archive` and `LRFutils.pltedit`, with the same behaviour and file formats.

## Development

```console
python -m venv .venv
.venv/Scripts/python -m pip install -e ".[dev,docs]"      # .venv/bin/python on Linux and macOS
.venv/Scripts/python -m pytest
.venv/Scripts/python -m sphinx -W -b html docs docs/_build/html
```

A GitHub release publishes the package on PyPI (`.github/workflows/publish.yml`); Read the Docs builds the documentation
of every push to `main`.

MIT license.

If LRFutils helps your work, you can [sponsor its development](https://github.com/sponsors/VForiel) ❤️
