%global pypi_name tedana Name: python-%{pypi_name} Version: 26.0.3 Release: 1%{?dist} Summary: TE-dependent analysis of multi-echo fMRI License: LGPL-2.1-or-later URL: https://github.com/ME-ICA/tedana Source0: %{pypi_source %{pypi_name}} # Our own end-to-end test: a synthetic multi-echo series with known BOLD (R2*) # and S0 sources, run through the installed tedana. See the header of the file. Source1: tedana-synth-multiecho.py BuildArch: noarch BuildRequires: python3-devel BuildRequires: python3-pytest BuildRequires: python3-requests %global _description %{expand: tedana (TE-dependent analysis) denoises multi-echo fMRI. It fits T2* and S0 per voxel, combines the echoes into an optimally combined series, decomposes that with PCA and ICA, and classifies each component as BOLD-like (signal that scales with echo time, high kappa) or noise (TE-independent, high rho) before removing the noise components. It ships the tedana, t2smap and ica_reclassify commands and an interactive HTML report.} %description %_description %package -n python3-%{pypi_name} Summary: %{summary} # tedana/io.py imports requests; upstream's pyproject.toml does not list it. Requires: python3-requests %description -n python3-%{pypi_name} %_description %prep %autosetup -n %{pypi_name}-%{version} %generate_buildrequires export SETUPTOOLS_SCM_PRETEND_VERSION=%{version} %pyproject_buildrequires %build export SETUPTOOLS_SCM_PRETEND_VERSION=%{version} %pyproject_wheel %install %pyproject_install %pyproject_save_files -l tedana %check export MPLBACKEND=Agg # 1. upstream's unit tests. test_integration.py and the six tests below # download their data from osf.io, which a build root cannot reach; the # rest (213) run, and tests/tedana-multiecho.bats covers the real-data side. %pytest --skipintegration --ignore=tedana/tests/test_integration.py tedana/tests \ --deselect tedana/tests/test_external_metrics.py::test_fit_regressors \ --deselect tedana/tests/test_external_metrics.py::test_fit_mixing_to_regressors \ --deselect tedana/tests/test_external_metrics.py::test_compute_external_regressor_correlations \ --deselect tedana/tests/test_reporting.py::test_calculate_rejected_components_impact \ --deselect tedana/tests/test_reporting.py::test_calculate_rejected_components_impact_no_rej \ --deselect tedana/tests/test_reporting.py::test_calculate_rejected_components_impact_no_acc # 2. a real run of the installed command on synthetic multi-echo data export PATH=%{buildroot}%{_bindir}:$PATH cd %{_tmppath} %{py3_test_envvars} %{python3} %{SOURCE1} %{_tmppath}/tedana-synth rm -rf %{_tmppath}/tedana-synth %{py3_test_envvars} tedana --help >/dev/null %{py3_test_envvars} t2smap --help >/dev/null %{py3_test_envvars} ica_reclassify --help >/dev/null %files -n python3-%{pypi_name} -f %{pyproject_files} %license LICENSE %doc README.md # The unit tests need tedana/tests/data, which upstream's wheel leaves out, so # the installed copies could not run; they are exercised in %%check instead. %exclude %{python3_sitelib}/tedana/tests %{_bindir}/tedana %{_bindir}/t2smap %{_bindir}/ica_reclassify %changelog * Fri Oct 16 2026 Morgan Hough - 26.0.3-1 - New package