%global pypi_name ipax Name: python-%{pypi_name} Version: 0.13.0 Release: 1%{?dist} Summary: Array-API primal-dual interior-point solver for nonlinear optimisation License: Apache-2.0 URL: https://github.com/wahln/ipax Source0: %{pypi_source %{pypi_name}} BuildArch: noarch BuildRequires: python3-devel BuildRequires: pyproject-rpm-macros BuildRequires: python3-pytest BuildRequires: python3-hypothesis BuildRequires: python3-numpy BuildRequires: python3-scipy BuildRequires: python3-sympy BuildRequires: python3-array-api-strict %global _description %{expand: ipax is a primal-dual interior-point solver for large-scale nonlinear constrained optimisation, in the style of IPOPT, written against the Python array API standard so it runs on NumPy, PyTorch, CuPy or JAX arrays. pyRadPlan uses it as a pure-Python alternative to IPOPT for fluence optimisation.} %description %_description %package -n python3-%{pypi_name} Summary: %{summary} Recommends: python3-scipy %description -n python3-%{pypi_name} %_description %prep %autosetup -n %{pypi_name}-%{version} %generate_buildrequires %pyproject_buildrequires %build %pyproject_wheel %install %pyproject_install %pyproject_save_files %{pypi_name} %check # Optional array backends: CuPy and JAX are not in Fedora, and PyTorch is not pulled in # for a solver whose NumPy path is what pyRadPlan uses. %pyproject_check_import -e 'ipax.backend.*.cupy' -e 'ipax.backend.*.torch' \ -e 'ipax.problem.autodiff.jax' -e 'ipax.problem.autodiff.torch' # GPU and sparse-direct adapters (cuDSS, nvmath, feral) are not in Fedora and skip; # slow benchmarks are deselected. %pytest -p no:cacheprovider tests -m "not slow and not gpu and not sparse" -o addopts="-ra" %files -n python3-%{pypi_name} -f %{pyproject_files} %license LICENSE NOTICE %doc README.md %changelog * Fri Nov 06 2026 Morgan Hough - 0.13.0-1 - Initial package; pyRadPlan's interior-point fluence optimiser.