ptyrad-1.0.0stuff
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{12..14} )
DISTUTILS_SINGLE_IMPL=1
inherit distutils-r1
DESCRIPTION="Ptychographic Reconstruction with Automatic Differentiation"
HOMEPAGE="
https://github.com/chiahao3/ptyrad
https://pypi.org/project/ptyrad/
"
# The PyPI sdist ships no tests; use the GitHub release archive so the
# tests/ tree is present for src_test.
SRC_URI="
https://github.com/chiahao3/ptyrad/archive/refs/tags/v${PV}.tar.gz
-> ${P}.gh.tar.gz
"
LICENSE="LGPL-3"
SLOT="0"
KEYWORDS="~amd64"
IUSE="examples"
# pytorch, torchvision and accelerate are themselves DISTUTILS_SINGLE_IMPL,
# so they take ${PYTHON_SINGLE_USEDEP}; the rest are ordinary multi-impl
# modules. numpy is imported directly throughout ptyrad but is absent from
# upstream's pyproject (it rides in transitively via torch) -- declare it.
# jupyter is pulled only to *run* the bundled starter notebooks; no ptyrad
# module imports it, so it is gated behind USE=examples.
RDEPEND="
>=sci-ml/pytorch-2.4[${PYTHON_SINGLE_USEDEP}]
sci-ml/torchvision[${PYTHON_SINGLE_USEDEP}]
sci-ml/accelerate[${PYTHON_SINGLE_USEDEP}]
$(python_gen_cond_dep '
dev-python/h5py[${PYTHON_USEDEP}]
dev-python/matplotlib[${PYTHON_USEDEP}]
dev-python/numpy[${PYTHON_USEDEP}]
dev-python/optuna[${PYTHON_USEDEP}]
dev-python/pydantic[${PYTHON_USEDEP}]
dev-python/pyyaml[${PYTHON_USEDEP}]
dev-python/scikit-learn[${PYTHON_USEDEP}]
dev-python/scipy[${PYTHON_USEDEP}]
dev-python/tifffile[${PYTHON_USEDEP}]
dev-python/zarr[${PYTHON_USEDEP}]
')
examples? (
$(python_gen_cond_dep '
dev-python/jupyter[${PYTHON_USEDEP}]
')
)
"
# The suite is plain pytest (tmp_path, parametrize, raises, subprocess) with
# no third-party plugins.
EPYTEST_PLUGINS=()
distutils_enable_tests pytest