Metadata-Version: 2.1
Name: graxpy
Version: 0.1.0
Summary: X-ray grating simulations
Author-email: Simone Vadilonga <simone.vadilonga@helmholtz-berlin.de>
Maintainer-email: "Simone Vadilonga (Helmholtz-Zentrum Berlin)" <simone.vadilonga@helmholtz-berlin.de>
License: MIT
Project-URL: RETICOLO DOI, https://doi.org/10.5281/zenodo.14631950
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3 :: Only
Requires-Python: <3.14,>=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.24
Requires-Dist: pandas>=2.0
Requires-Dist: scipy>=1.10
Requires-Dist: matplotlib>=3.7
Requires-Dist: tqdm>=4.66
Requires-Dist: xrt>=1.6
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == "dev"
Requires-Dist: pytest-cov>=5.0; extra == "dev"
Requires-Dist: ruff>=0.5; extra == "dev"
Provides-Extra: docs
Requires-Dist: sphinx>=7.0; extra == "docs"
Requires-Dist: myst-parser>=2.0; extra == "docs"
Requires-Dist: furo>=2024.8.6; extra == "docs"
Requires-Dist: sphinxcontrib-bibtex>=2.6; extra == "docs"
Provides-Extra: numba
Requires-Dist: numba>=0.59; extra == "numba"
Provides-Extra: opt
Requires-Dist: ax-platform>=0.5; extra == "opt"

# grax

`grax` is an independent Python package for diffraction-grating simulations in
X-ray optics, inspired by RETICOLO v9 and extended with higher-level workflows
for practical studies.

## Documentation

Full user and API documentation is published online.

- User guide and tutorials: see the project documentation site
- API reference: see the API section in the documentation site

For local docs builds from this repository, use:

```bash
tools/build_docs.sh --html
```

## Installation

`graxpy` supports Python `3.12` and `3.13` only.

```bash
python -m pip install graxpy
```

For local editable installs:

```bash
python -m pip install -e .
```

## Repository at a glance

- `src/grax/`: core package source code
- `examples/`: runnable examples
- `docs/`: documentation sources

## Attribution

`grax` is inspired by RETICOLO v9. This project is an independent Python
implementation and is not an official RETICOLO distribution. RETICOLO is not
bundled as part of the public `graxpy` package distribution.

- RETICOLO DOI: <https://doi.org/10.5281/zenodo.14631950>
- RETICOLO license (CC BY 4.0): <https://creativecommons.org/licenses/by/4.0/>

## License

Copyright (c) 2026 Simone Vadilonga, Helmholtz-Zentrum Berlin.

Licensed under the EUPL-1.2. See [LICENSE](LICENSE).
