Metadata-Version: 2.4
Name: labrecipe
Version: 0.1.1
Summary: Recipe-driven, reproducible analysis of experimental data
Project-URL: Repository, https://github.com/JK1234567899999/labrecipe
Project-URL: Documentation, https://labrecipe.readthedocs.io/
Project-URL: Issues, https://github.com/JK1234567899999/labrecipe/issues
Project-URL: Changelog, https://github.com/JK1234567899999/labrecipe/blob/main/CHANGELOG.md
Author: LabRecipe contributors
License-Expression: Apache-2.0
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Typing :: Typed
Requires-Python: >=3.12
Requires-Dist: click>=8.4
Requires-Dist: matplotlib>=3.9
Requires-Dist: numpy>=2.0
Requires-Dist: pandas>=2.2
Requires-Dist: pint>=0.24
Requires-Dist: pydantic>=2.10
Requires-Dist: pyyaml>=6.0
Requires-Dist: scipy>=1.15
Provides-Extra: dev
Requires-Dist: build>=1.2; extra == 'dev'
Requires-Dist: mypy>=1.13; extra == 'dev'
Requires-Dist: pytest>=8.3; extra == 'dev'
Requires-Dist: ruff>=0.8; extra == 'dev'
Requires-Dist: twine>=6; extra == 'dev'
Provides-Extra: docs
Requires-Dist: myst-parser<6,>=4; extra == 'docs'
Requires-Dist: pydata-sphinx-theme<1,>=0.16; extra == 'docs'
Requires-Dist: sphinx<10,>=8; extra == 'docs'
Provides-Extra: excel
Requires-Dist: defusedxml>=0.7.1; extra == 'excel'
Requires-Dist: openpyxl>=3.1.5; extra == 'excel'
Description-Content-Type: text/markdown

# LabRecipe

LabRecipe is an open-source Python 3.12+ package for recipe-driven, reproducible analysis of
one local experimental CSV, TSV, or explicitly bounded named-sheet XLSX dataset. A strict
YAML recipe names data roles and units, explicit preprocessing, transparent analyses, figures,
and output policies; one run produces a traceable evidence bundle.

LabRecipe never silently sorts, drops, interpolates, coerces dtypes, infers units, smooths,
chooses a baseline, or tunes a parameter. Raw input bytes are immutable and hashed before
parsing. Every derived stage, metric, figure, diagnostic, and artifact remains traceable to
the raw hash and fully resolved recipe.

## Install

~~~console
python -m pip install labrecipe
~~~

For bounded XLSX input:

~~~console
python -m pip install "labrecipe[excel]"
~~~

## Tested quickstart

From a repository checkout, run the committed analytical linear control into a new directory:

~~~console
labrecipe validate examples/clean_time_series/recipe.yaml
labrecipe inspect examples/clean_time_series/recipe.yaml
labrecipe plan examples/clean_time_series/recipe.yaml
labrecipe run examples/clean_time_series/recipe.yaml --output clean-bundle
~~~

The same engine is available from Python:

~~~python
from labrecipe import run_recipe

result = run_recipe(
    "examples/clean_time_series/recipe.yaml",
    "clean-bundle-api",
)
print(result.manifest.identity.run_id)
~~~

Both workflows publish only a complete, hash-validated bundle and refuse to replace an
existing target.

## What version 0.1 covers

- strict, safely loaded, versioned recipes with complete submitted/resolved identities;
- immutable CSV/TSV and optional bounded XLSX ingestion with structured quality diagnostics;
- explicit group-safe transforms for missingness, structure, units, smoothing, signal
  processing, normalization, and baseline correction;
- contextual summaries, distributions, scatter/correlation, and conservative outlier/change
  candidates that are never promoted automatically to physical conclusions;
- evidence-bearing PNG and optional SVG/PDF figures;
- deterministic serialization, artifact-specific numerical tolerances, complete provenance,
  and atomic no-overwrite publication;
- equivalent validate, inspect, plan/explain, and run behavior through Python and CLI.

Single-dataset local batch analysis is the v1 boundary. Instrument control, arbitrary
executable recipe content, external plugins, multi-file cohort workflows, and GUI/cloud
services are not part of this release.

## Documentation and examples

- [Quickstart](docs/quickstart.md)
- [Recipe schema](docs/recipe-schema.md)
- [CLI and Python API](docs/cli-api.md)
- [Method assumptions](docs/methods.md)
- [Troubleshooting](docs/troubleshooting.md)
- [Reproducibility contract](docs/reproducibility.md)
- [Representative example corpus](examples/README.md)

## Contributing and citation

See [CONTRIBUTING.md](CONTRIBUTING.md) and [DEVELOPMENT.md](DEVELOPMENT.md) before proposing a
change. Security issues follow [SECURITY.md](SECURITY.md). Cite the software using
[CITATION.cff](CITATION.cff).

LabRecipe is licensed under Apache-2.0.
