%global pypi_name cubids Name: python-%{pypi_name} Version: 1.3.0 Release: 2%{?dist} Summary: Curation of BIDS datasets License: MIT URL: https://github.com/PennLINC/cubids Source0: %{pypi_source %{pypi_name}} BuildArch: noarch BuildRequires: python3-devel %global _description %{expand: CuBIDS (Curation of BIDS) summarizes a BIDS dataset's acquisition parameters into key groups and parameter groups, finds heterogeneity and lets you rename, merge or purge variants, with DataLad support for tracking the changes. BIDS (the Brain Imaging Data Structure) is the standard layout for neuroimaging datasets used by OpenNeuro, fMRIPrep and most current pipelines.} %description %{_description} %package -n python3-%{pypi_name} Summary: %{summary} %description -n python3-%{pypi_name} %{_description} %prep %autosetup -p1 -n cubids-%{version} # Fedora rejects ambiguous #!/usr/bin/env python shebangs in installed modules. grep -rlI '^#!/usr/bin/env python$' . | xargs -r sed -i '1s|^#!/usr/bin/env python$|#!%{python3}|' # Old versioneer.py uses configparser.SafeConfigParser and readfp, both removed in Python 3.12. if [ -f versioneer.py ] && grep -q SafeConfigParser versioneer.py; then sed -i 's/SafeConfigParser/ConfigParser/g; s/\.readfp(/.read_file(/g' versioneer.py if grep -qE 'SafeConfigParser|readfp\(' versioneer.py; then exit 1; fi fi # numpy<=2.4.6 and pandas<=3.0.6 are upper caps at the versions upstream last tested; # rawhide has numpy 2.5. %%check reads sidecar metadata through CuBIDS with whatever is installed. sed -i -E 's/^ "numpy<=2.4.6",$/ "numpy",/; s/^ "pandas<=3.0.6",$/ "pandas",/' pyproject.toml if grep -qE '"(numpy|pandas)<=' pyproject.toml; then exit 1; fi %generate_buildrequires export SETUPTOOLS_SCM_PRETEND_VERSION=%{version} %pyproject_buildrequires %build export SETUPTOOLS_SCM_PRETEND_VERSION=%{version} %pyproject_wheel %install %pyproject_install # Build helpers some DataLad-template projects install at top level; not part of the package. rm -rf %{buildroot}%{python3_sitelib}/_datalad_buildsupport %{buildroot}%{python3_sitelib}/tools %{buildroot}%{python3_sitelib}/benchmarks %{buildroot}%{python3_sitelib}/tests %{buildroot}%{python3_sitelib}/tests.py # Old setup.py data_files can drop these at the top of site-packages (osfclient does). rm -f %{buildroot}%{python3_sitelib}/{LICENSE,VERSION,requirements.txt} %pyproject_save_files -L cubids %check %pyproject_check_import -e 'cubids.tests*' -e 'cubids.*.tests*' -e '*.test_*' -e '*.conftest' -e '*.pytest_plugin' %{py3_test_envvars} %{python3} - <<'EOF' import json, tempfile, pathlib root = pathlib.Path(tempfile.mkdtemp(), 'bids') for sub in ('01', '02'): d = root / f'sub-{sub}' / 'anat'; d.mkdir(parents=True) (d / f'sub-{sub}_T1w.nii.gz').write_bytes(b'') (d / f'sub-{sub}_T1w.json').write_text(json.dumps({'RepetitionTime': 2.3, 'EchoTime': 0.003, 'FlipAngle': 9})) (root / 'dataset_description.json').write_text(json.dumps({'Name': 't', 'BIDSVersion': '1.9.0'})) from cubids.cubids import CuBIDS c = CuBIDS(str(root)) fields = c.get_all_metadata_fields() print('cubids metadata fields:', fields) assert {'RepetitionTime', 'EchoTime', 'FlipAngle'} <= set(fields), fields EOF %{py3_test_envvars} %{buildroot}%{_bindir}/cubids --help > /dev/null %files -n python3-%{pypi_name} -f %{pyproject_files} %license LICENSE %{_bindir}/cubids %changelog * Mon Oct 12 2026 Morgan Hough - 1.3.0-2 - Relax the numpy and pandas upper caps (rawhide has numpy 2.5); %%check reads metadata through CuBIDS. * Mon Oct 12 2026 Morgan Hough - 1.3.0-1 - Initial package, for the DataLad extension stack and dandi.