[Debian-astro-maintainers] Bug#1091138: specutils: FTBFS: KeyError: 'setuptools_scm'

Lucas Nussbaum lucas at debian.org
Sun Dec 22 16:49:47 GMT 2024


Source: specutils
Version: 1.19.0-2
Severity: serious
Justification: FTBFS
Tags: trixie sid ftbfs
User: lucas at debian.org
Usertags: ftbfs-20241222 ftbfs-trixie

Hi,

During a rebuild of all packages in sid, your package failed to build
on amd64.


Relevant part (hopefully):
>  debian/rules binary
> dh binary --with python3 --buildsystem=pybuild
>    dh_update_autotools_config -O--buildsystem=pybuild
>    dh_autoreconf -O--buildsystem=pybuild
>    dh_auto_configure -O--buildsystem=pybuild
> I: pybuild base:311: python3.13 setup.py config 
> WARNING setuptools_scm.pyproject_reading toml section missing 'pyproject.toml does not contain a tool.setuptools_scm section'
> Traceback (most recent call last):
>   File "/usr/lib/python3/dist-packages/setuptools_scm/_integration/pyproject_reading.py", line 36, in read_pyproject
>     section = defn.get("tool", {})[tool_name]
>               ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
> KeyError: 'setuptools_scm'
> running config
> I: pybuild base:311: python3.12 setup.py config 
> WARNING setuptools_scm.pyproject_reading toml section missing 'pyproject.toml does not contain a tool.setuptools_scm section'
> Traceback (most recent call last):
>   File "/usr/lib/python3/dist-packages/setuptools_scm/_integration/pyproject_reading.py", line 36, in read_pyproject
>     section = defn.get("tool", {})[tool_name]
>               ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
> KeyError: 'setuptools_scm'
> running config
>    dh_auto_build -O--buildsystem=pybuild
> I: pybuild base:311: /usr/bin/python3.13 setup.py build 
> WARNING setuptools_scm.pyproject_reading toml section missing 'pyproject.toml does not contain a tool.setuptools_scm section'
> Traceback (most recent call last):
>   File "/usr/lib/python3/dist-packages/setuptools_scm/_integration/pyproject_reading.py", line 36, in read_pyproject
>     section = defn.get("tool", {})[tool_name]
>               ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
> KeyError: 'setuptools_scm'
> running build
> running build_py
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils
> copying specutils/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils
> copying specutils/version.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils
> copying specutils/conftest.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/spectra
> copying specutils/spectra/spectral_region.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/spectra
> copying specutils/spectra/spectrum1d.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/spectra
> copying specutils/spectra/spectrum_collection.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/spectra
> copying specutils/spectra/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/spectra
> copying specutils/spectra/spectrum_list.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/spectra
> copying specutils/spectra/spectral_axis.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/spectra
> copying specutils/spectra/spectrum_mixin.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/spectra
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/fitting
> copying specutils/fitting/continuum.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/fitting
> copying specutils/fitting/fitmodels.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/fitting
> copying specutils/fitting/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/fitting
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/manipulation
> copying specutils/manipulation/manipulation.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/manipulation
> copying specutils/manipulation/utils.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/manipulation
> copying specutils/manipulation/resample.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/manipulation
> copying specutils/manipulation/model_replace.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/manipulation
> copying specutils/manipulation/extract_spectral_region.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/manipulation
> copying specutils/manipulation/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/manipulation
> copying specutils/manipulation/estimate_uncertainty.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/manipulation
> copying specutils/manipulation/smoothing.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/manipulation
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/tests
> copying specutils/tests/test_continuum.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/tests
> copying specutils/tests/test_resample.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/tests
> copying specutils/tests/test_slicing.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/tests
> copying specutils/tests/test_regions.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/tests
> copying specutils/tests/test_model_replace.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/tests
> copying specutils/tests/test_region_extract.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/tests
> copying specutils/tests/test_spectrum1d_unit_pix2.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/tests
> copying specutils/tests/setup_package.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/tests
> copying specutils/tests/test_spectrum_collection.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/tests
> copying specutils/tests/test_arithmetic.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/tests
> copying specutils/tests/test_utils.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/tests
> copying specutils/tests/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/tests
> copying specutils/tests/test_correlation.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/tests
> copying specutils/tests/test_spectral_axis.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/tests
> copying specutils/tests/test_fitting.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/tests
> copying specutils/tests/test_loaders.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/tests
> copying specutils/tests/test_template_comparison.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/tests
> copying specutils/tests/test_manipulation.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/tests
> copying specutils/tests/test_io.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/tests
> copying specutils/tests/test_dc_common_loaders.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/tests
> copying specutils/tests/test_analysis.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/tests
> copying specutils/tests/test_unc.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/tests
> copying specutils/tests/test_spectrum1d.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/tests
> copying specutils/tests/conftest.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/tests
> copying specutils/tests/test_smoothing.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/tests
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/utils
> copying specutils/utils/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/utils
> copying specutils/utils/quantity_model.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/utils
> copying specutils/utils/wcs_utils.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/utils
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io
> copying specutils/io/_list_of_loaders.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io
> copying specutils/io/parsing_utils.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io
> copying specutils/io/registers.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io
> copying specutils/io/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/analysis
> copying specutils/analysis/utils.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/analysis
> copying specutils/analysis/correlation.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/analysis
> copying specutils/analysis/moment.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/analysis
> copying specutils/analysis/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/analysis
> copying specutils/analysis/template_comparison.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/analysis
> copying specutils/analysis/location.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/analysis
> copying specutils/analysis/flux.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/analysis
> copying specutils/analysis/width.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/analysis
> copying specutils/analysis/uncertainty.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/analysis
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/apogee.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/subaru_pfs_spec.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/wigglez.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/generic_ecsv_reader.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/gama.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/twoslaq_lrg.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/generic_cube.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/muscles_sed.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/wcs_fits.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/galah.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/desi.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/aaomega_2df.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/tabular_fits.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/jwst_reader.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/sdss.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/sami.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/ascii.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/sixdfgs_reader.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/manga.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/hst_cos.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/hst_stis.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/twodfgrs_reader.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/sdss_v.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/ozdes.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/dc_common.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/asdf
> copying specutils/io/asdf/converters.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/asdf
> copying specutils/io/asdf/extension.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/asdf
> copying specutils/io/asdf/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/asdf
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders/tests
> copying specutils/io/default_loaders/tests/test_apogee.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders/tests
> copying specutils/io/default_loaders/tests/test_desi.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders/tests
> copying specutils/io/default_loaders/tests/test_sdss_v.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders/tests
> copying specutils/io/default_loaders/tests/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders/tests
> copying specutils/io/default_loaders/tests/test_jwst_reader.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders/tests
> copying specutils/io/default_loaders/tests/generate_desi_test_data.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders/tests
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/asdf/tests
> copying specutils/io/asdf/tests/helpers.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/asdf/tests
> copying specutils/io/asdf/tests/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/asdf/tests
> copying specutils/io/asdf/tests/test_spectra.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/asdf/tests
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/asdf/schemas
> copying specutils/io/asdf/schemas/spectrum1d-1.0.0.yaml -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/asdf/schemas
> copying specutils/io/asdf/schemas/spectrum_list-1.0.0.yaml -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/asdf/schemas
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/asdf/manifests
> copying specutils/io/asdf/manifests/specutils-1.0.0.yaml -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/asdf/manifests
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders/tests/desi_test_data
> copying specutils/io/default_loaders/tests/desi_test_data/coadd-sv3-dark-26065.fits -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders/tests/desi_test_data
> copying specutils/io/default_loaders/tests/desi_test_data/spectra-5-169-thru20210419.fits -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders/tests/desi_test_data
> copying specutils/io/default_loaders/tests/desi_test_data/coadd-5-169-thru20210419.fits -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders/tests/desi_test_data
> copying specutils/io/default_loaders/tests/desi_test_data/spectra-sv3-dark-26065.fits -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/specutils/io/default_loaders/tests/desi_test_data
> I: pybuild base:311: /usr/bin/python3 setup.py build 
> WARNING setuptools_scm.pyproject_reading toml section missing 'pyproject.toml does not contain a tool.setuptools_scm section'
> Traceback (most recent call last):
>   File "/usr/lib/python3/dist-packages/setuptools_scm/_integration/pyproject_reading.py", line 36, in read_pyproject
>     section = defn.get("tool", {})[tool_name]
>               ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
> KeyError: 'setuptools_scm'
> running build
> running build_py
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils
> copying specutils/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils
> copying specutils/version.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils
> copying specutils/conftest.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/spectra
> copying specutils/spectra/spectral_region.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/spectra
> copying specutils/spectra/spectrum1d.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/spectra
> copying specutils/spectra/spectrum_collection.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/spectra
> copying specutils/spectra/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/spectra
> copying specutils/spectra/spectrum_list.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/spectra
> copying specutils/spectra/spectral_axis.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/spectra
> copying specutils/spectra/spectrum_mixin.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/spectra
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/fitting
> copying specutils/fitting/continuum.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/fitting
> copying specutils/fitting/fitmodels.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/fitting
> copying specutils/fitting/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/fitting
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/manipulation
> copying specutils/manipulation/manipulation.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/manipulation
> copying specutils/manipulation/utils.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/manipulation
> copying specutils/manipulation/resample.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/manipulation
> copying specutils/manipulation/model_replace.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/manipulation
> copying specutils/manipulation/extract_spectral_region.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/manipulation
> copying specutils/manipulation/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/manipulation
> copying specutils/manipulation/estimate_uncertainty.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/manipulation
> copying specutils/manipulation/smoothing.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/manipulation
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/tests
> copying specutils/tests/test_continuum.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/tests
> copying specutils/tests/test_resample.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/tests
> copying specutils/tests/test_slicing.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/tests
> copying specutils/tests/test_regions.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/tests
> copying specutils/tests/test_model_replace.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/tests
> copying specutils/tests/test_region_extract.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/tests
> copying specutils/tests/test_spectrum1d_unit_pix2.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/tests
> copying specutils/tests/setup_package.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/tests
> copying specutils/tests/test_spectrum_collection.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/tests
> copying specutils/tests/test_arithmetic.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/tests
> copying specutils/tests/test_utils.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/tests
> copying specutils/tests/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/tests
> copying specutils/tests/test_correlation.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/tests
> copying specutils/tests/test_spectral_axis.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/tests
> copying specutils/tests/test_fitting.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/tests
> copying specutils/tests/test_loaders.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/tests
> copying specutils/tests/test_template_comparison.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/tests
> copying specutils/tests/test_manipulation.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/tests
> copying specutils/tests/test_io.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/tests
> copying specutils/tests/test_dc_common_loaders.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/tests
> copying specutils/tests/test_analysis.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/tests
> copying specutils/tests/test_unc.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/tests
> copying specutils/tests/test_spectrum1d.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/tests
> copying specutils/tests/conftest.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/tests
> copying specutils/tests/test_smoothing.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/tests
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/utils
> copying specutils/utils/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/utils
> copying specutils/utils/quantity_model.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/utils
> copying specutils/utils/wcs_utils.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/utils
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io
> copying specutils/io/_list_of_loaders.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io
> copying specutils/io/parsing_utils.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io
> copying specutils/io/registers.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io
> copying specutils/io/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/analysis
> copying specutils/analysis/utils.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/analysis
> copying specutils/analysis/correlation.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/analysis
> copying specutils/analysis/moment.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/analysis
> copying specutils/analysis/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/analysis
> copying specutils/analysis/template_comparison.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/analysis
> copying specutils/analysis/location.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/analysis
> copying specutils/analysis/flux.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/analysis
> copying specutils/analysis/width.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/analysis
> copying specutils/analysis/uncertainty.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/analysis
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/apogee.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/subaru_pfs_spec.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/wigglez.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/generic_ecsv_reader.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/gama.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/twoslaq_lrg.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/generic_cube.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/muscles_sed.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/wcs_fits.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/galah.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/desi.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/aaomega_2df.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/tabular_fits.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/jwst_reader.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/sdss.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/sami.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/ascii.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/sixdfgs_reader.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/manga.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/hst_cos.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/hst_stis.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/twodfgrs_reader.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/sdss_v.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/ozdes.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders
> copying specutils/io/default_loaders/dc_common.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/asdf
> copying specutils/io/asdf/converters.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/asdf
> copying specutils/io/asdf/extension.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/asdf
> copying specutils/io/asdf/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/asdf
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders/tests
> copying specutils/io/default_loaders/tests/test_apogee.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders/tests
> copying specutils/io/default_loaders/tests/test_desi.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders/tests
> copying specutils/io/default_loaders/tests/test_sdss_v.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders/tests
> copying specutils/io/default_loaders/tests/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders/tests
> copying specutils/io/default_loaders/tests/test_jwst_reader.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders/tests
> copying specutils/io/default_loaders/tests/generate_desi_test_data.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders/tests
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/asdf/tests
> copying specutils/io/asdf/tests/helpers.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/asdf/tests
> copying specutils/io/asdf/tests/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/asdf/tests
> copying specutils/io/asdf/tests/test_spectra.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/asdf/tests
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/asdf/schemas
> copying specutils/io/asdf/schemas/spectrum1d-1.0.0.yaml -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/asdf/schemas
> copying specutils/io/asdf/schemas/spectrum_list-1.0.0.yaml -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/asdf/schemas
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/asdf/manifests
> copying specutils/io/asdf/manifests/specutils-1.0.0.yaml -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/asdf/manifests
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders/tests/desi_test_data
> copying specutils/io/default_loaders/tests/desi_test_data/coadd-sv3-dark-26065.fits -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders/tests/desi_test_data
> copying specutils/io/default_loaders/tests/desi_test_data/spectra-5-169-thru20210419.fits -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders/tests/desi_test_data
> copying specutils/io/default_loaders/tests/desi_test_data/coadd-5-169-thru20210419.fits -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders/tests/desi_test_data
> copying specutils/io/default_loaders/tests/desi_test_data/spectra-sv3-dark-26065.fits -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/specutils/io/default_loaders/tests/desi_test_data
>    dh_auto_test -O--buildsystem=pybuild
> I: pybuild base:311: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build; python3.13 -m pytest --remote-data=none --doctest-rst
> ============================= test session starts ==============================
> platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0
> rootdir: /<<PKGBUILDDIR>>
> configfile: setup.cfg
> plugins: doctestplus-1.3.0, mock-3.14.0, arraydiff-0.6.1, astropy-0.11.0, astropy-header-0.2.2, remotedata-0.4.1, cov-5.0.0, typeguard-4.4.1, asdf-4.0.0, hypothesis-6.122.1, filter-subpackage-0.2.0
> collected 677 items
> 
> specutils/io/asdf/tests/test_spectra.py xxxxxx.                          [  1%]
> specutils/io/default_loaders/tests/test_apogee.py sss                    [  1%]
> specutils/io/default_loaders/tests/test_desi.py ..................       [  4%]
> specutils/io/default_loaders/tests/test_jwst_reader.py ................. [  6%]
> xssss                                                                    [  7%]
> specutils/io/default_loaders/tests/test_sdss_v.py ...................... [ 10%]
> ................                                                         [ 12%]
> specutils/manipulation/model_replace.py .                                [ 13%]
> specutils/manipulation/resample.py ...                                   [ 13%]
> specutils/tests/test_analysis.py ....................................... [ 19%]
> .....................                                                    [ 22%]
> specutils/tests/test_arithmetic.py ...........                           [ 24%]
> specutils/tests/test_continuum.py .......                                [ 25%]
> specutils/tests/test_correlation.py ....                                 [ 25%]
> specutils/tests/test_dc_common_loaders.py ssssssssssssssssssssss         [ 28%]
> specutils/tests/test_fitting.py .....................                    [ 32%]
> specutils/tests/test_io.py ......                                        [ 32%]
> specutils/tests/test_loaders.py .ssss.sssssssssssssss...ssssssss........ [ 38%]
> ........................................................................ [ 49%]
> .......................................................sssssssssssssss.s [ 60%]
> sssssssssssssssssssssssssssssssssssssssssssssssss                        [ 67%]
> specutils/tests/test_manipulation.py ...                                 [ 67%]
> specutils/tests/test_model_replace.py .....                              [ 68%]
> specutils/tests/test_region_extract.py ..................                [ 71%]
> specutils/tests/test_regions.py ................                         [ 73%]
> specutils/tests/test_resample.py ..............x......                   [ 76%]
> specutils/tests/test_slicing.py ....                                     [ 77%]
> specutils/tests/test_smoothing.py ........................               [ 80%]
> specutils/tests/test_spectral_axis.py s................................. [ 85%]
> .......................                                                  [ 89%]
> specutils/tests/test_spectrum1d.py .................F.....s........      [ 93%]
> specutils/tests/test_spectrum1d_unit_pix2.py ..                          [ 94%]
> specutils/tests/test_spectrum_collection.py .........                    [ 95%]
> specutils/tests/test_template_comparison.py .............                [ 97%]
> specutils/tests/test_unc.py .x.                                          [ 97%]
> specutils/tests/test_utils.py ..............                             [100%]
> 
> =================================== FAILURES ===================================
> ___________________________ test_wcs_transformations ___________________________
> 
>     def test_wcs_transformations():
>         # Test with a GWCS
>         spec = Spectrum1D(spectral_axis=np.arange(1, 50) * u.nm,
>                           flux=np.ones(49) * u.Jy)
>     
> >       pix_axis = spec.wcs.world_to_pixel(np.arange(20, 30) * u.nm)
> 
> specutils/tests/test_spectrum1d.py:321: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> /usr/lib/python3/dist-packages/gwcs/api.py:325: in world_to_pixel
>     result = self.invert(*world_objects, with_units=True)
> /usr/lib/python3/dist-packages/gwcs/wcs.py:473: in invert
>     args = self.outside_footprint(args)
> /usr/lib/python3/dist-packages/gwcs/wcs.py:501: in outside_footprint
>     world_arrays = high_level_objects_to_values(*world_arrays, low_level_wcs=self)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> low_level_wcs = <WCS(output_frame=SpectralFrame, input_frame=CoordinateFrame, forward_transform=Model: SpectralTabular1D
> N_inputs: 1
> N... 36.
>  37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49.] nm
>   method: linear
>   fill_value: nan
>   bounds_error: True)>
> world_objects = (<Quantity [20., 21., 22., 23., 24., 25., 26., 27., 28., 29.] nm>,)
> serialized_classes = {'spectral': (<class 'astropy.coordinates.spectral_coordinate.SpectralCoord'>, (), {'unit': Unit("nm")})}
> components = [('spectral', 0, <function SpectralFrame._world_axis_object_components.<locals>.<lambda> at 0x7fc05c331ee0>)]
> 
>     def high_level_objects_to_values(*world_objects, low_level_wcs):
>         """
>         Convert the input high level object to low level values.
>     
>         This function uses the information in ``wcs.world_axis_object_classes`` and
>         ``wcs.world_axis_object_components`` to convert the high level objects
>         (such as `~.SkyCoord`) to low level "values" which should be scalars or
>         Numpy arrays.
>     
>         This is used in `.HighLevelWCSMixin.world_to_pixel`, but provided as a
>         separate function for use in other places where needed.
>     
>         Parameters
>         ----------
>         *world_objects: object
>             High level coordinate objects.
>     
>         low_level_wcs: `.BaseLowLevelWCS`
>             The WCS object to use to interpret the coordinates.
>         """
>         # Cache the classes and components since this may be expensive
>         serialized_classes = low_level_wcs.world_axis_object_classes
>         components = low_level_wcs.world_axis_object_components
>     
>         # Deserialize world_axis_object_classes using the default order
>         classes = OrderedDict()
>         for key in default_order(components):
>             if low_level_wcs.serialized_classes:
>                 classes[key] = deserialize_class(serialized_classes[key], construct=False)
>             else:
>                 classes[key] = serialized_classes[key]
>     
>         # Check that the number of classes matches the number of inputs
>         if len(world_objects) != len(classes):
>             raise ValueError(
>                 f"Number of world inputs ({len(world_objects)}) does not match expected"
>                 f" ({len(classes)})"
>             )
>     
>         # Determine whether the classes are uniquely matched, that is we check
>         # whether there is only one of each class.
>         world_by_key = {}
>         unique_match = True
>         for w in world_objects:
>             matches = []
>             for key, (klass, *_) in classes.items():
>                 if isinstance(w, klass):
>                     matches.append(key)
>             if len(matches) == 1:
>                 world_by_key[matches[0]] = w
>             else:
>                 unique_match = False
>                 break
>     
>         # If the match is not unique, the order of the classes needs to match,
>         # whereas if all classes are unique, we can still intelligently match
>         # them even if the order is wrong.
>     
>         objects = {}
>     
>         if unique_match:
>             for key, (klass, args, kwargs, *rest) in classes.items():
>                 if len(rest) == 0:
>                     klass_gen = klass
>                 elif len(rest) == 1:
>                     klass_gen = rest[0]
>                 else:
>                     raise ValueError(
>                         "Tuples in world_axis_object_classes should have length 3 or 4"
>                     )
>     
>                 # FIXME: For now SkyCoord won't auto-convert upon initialization
>                 # https://github.com/astropy/astropy/issues/7689
>                 from astropy.coordinates import SkyCoord
>     
>                 if isinstance(world_by_key[key], SkyCoord):
>                     if "frame" in kwargs:
>                         objects[key] = world_by_key[key].transform_to(kwargs["frame"])
>                     else:
>                         objects[key] = world_by_key[key]
>                 else:
>                     objects[key] = klass_gen(world_by_key[key], *args, **kwargs)
>     
>         else:
>             for ikey, key in enumerate(classes):
>                 klass, args, kwargs, *rest = classes[key]
>     
>                 if len(rest) == 0:
>                     klass_gen = klass
>                 elif len(rest) == 1:
>                     klass_gen = rest[0]
>                 else:
>                     raise ValueError(
>                         "Tuples in world_axis_object_classes should have length 3 or 4"
>                     )
>     
>                 w = world_objects[ikey]
>                 if not isinstance(w, klass):
> >                   raise ValueError(
>                         "Expected the following order of world arguments:"
>                         f" {', '.join([k.__name__ for (k, *_) in classes.values()])}"
>                     )
> E                   ValueError: Expected the following order of world arguments: SpectralCoord
> 
> /usr/lib/python3/dist-packages/astropy/wcs/wcsapi/high_level_api.py:233: ValueError
> =========================== short test summary info ============================
> FAILED specutils/tests/test_spectrum1d.py::test_wcs_transformations - ValueError: Expected the following order of world arguments: SpectralCoord
> ============ 1 failed, 544 passed, 123 skipped, 9 xfailed in 33.12s ============
> E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build; python3.13 -m pytest --remote-data=none --doctest-rst
> I: pybuild base:311: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build; python3.12 -m pytest --remote-data=none --doctest-rst
> ============================= test session starts ==============================
> platform linux -- Python 3.12.8, pytest-8.3.4, pluggy-1.5.0
> rootdir: /<<PKGBUILDDIR>>
> configfile: setup.cfg
> plugins: doctestplus-1.3.0, mock-3.14.0, arraydiff-0.6.1, astropy-0.11.0, astropy-header-0.2.2, remotedata-0.4.1, cov-5.0.0, typeguard-4.4.1, asdf-4.0.0, hypothesis-6.122.1, filter-subpackage-0.2.0
> collected 677 items
> 
> specutils/io/asdf/tests/test_spectra.py xxxxxx.                          [  1%]
> specutils/io/default_loaders/tests/test_apogee.py sss                    [  1%]
> specutils/io/default_loaders/tests/test_desi.py ..................       [  4%]
> specutils/io/default_loaders/tests/test_jwst_reader.py ................. [  6%]
> xssss                                                                    [  7%]
> specutils/io/default_loaders/tests/test_sdss_v.py ...................... [ 10%]
> ................                                                         [ 12%]
> specutils/manipulation/model_replace.py .                                [ 13%]
> specutils/manipulation/resample.py ...                                   [ 13%]
> specutils/tests/test_analysis.py ....................................... [ 19%]
> .....................                                                    [ 22%]
> specutils/tests/test_arithmetic.py ...........                           [ 24%]
> specutils/tests/test_continuum.py .......                                [ 25%]
> specutils/tests/test_correlation.py ....                                 [ 25%]
> specutils/tests/test_dc_common_loaders.py ssssssssssssssssssssss         [ 28%]
> specutils/tests/test_fitting.py .....................                    [ 32%]
> specutils/tests/test_io.py ......                                        [ 32%]
> specutils/tests/test_loaders.py .ssss.sssssssssssssss...ssssssss........ [ 38%]
> ........................................................................ [ 49%]
> .......................................................sssssssssssssss.s [ 60%]
> sssssssssssssssssssssssssssssssssssssssssssssssss                        [ 67%]
> specutils/tests/test_manipulation.py ...                                 [ 67%]
> specutils/tests/test_model_replace.py .....                              [ 68%]
> specutils/tests/test_region_extract.py ..................                [ 71%]
> specutils/tests/test_regions.py ................                         [ 73%]
> specutils/tests/test_resample.py ..............x......                   [ 76%]
> specutils/tests/test_slicing.py ....                                     [ 77%]
> specutils/tests/test_smoothing.py ........................               [ 80%]
> specutils/tests/test_spectral_axis.py s................................. [ 85%]
> .......................                                                  [ 89%]
> specutils/tests/test_spectrum1d.py .................F.....s........      [ 93%]
> specutils/tests/test_spectrum1d_unit_pix2.py ..                          [ 94%]
> specutils/tests/test_spectrum_collection.py .........                    [ 95%]
> specutils/tests/test_template_comparison.py .............                [ 97%]
> specutils/tests/test_unc.py .x.                                          [ 97%]
> specutils/tests/test_utils.py ..............                             [100%]
> 
> =================================== FAILURES ===================================
> ___________________________ test_wcs_transformations ___________________________
> 
>     def test_wcs_transformations():
>         # Test with a GWCS
>         spec = Spectrum1D(spectral_axis=np.arange(1, 50) * u.nm,
>                           flux=np.ones(49) * u.Jy)
>     
> >       pix_axis = spec.wcs.world_to_pixel(np.arange(20, 30) * u.nm)
> 
> specutils/tests/test_spectrum1d.py:321: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> /usr/lib/python3/dist-packages/gwcs/api.py:325: in world_to_pixel
>     result = self.invert(*world_objects, with_units=True)
> /usr/lib/python3/dist-packages/gwcs/wcs.py:473: in invert
>     args = self.outside_footprint(args)
> /usr/lib/python3/dist-packages/gwcs/wcs.py:501: in outside_footprint
>     world_arrays = high_level_objects_to_values(*world_arrays, low_level_wcs=self)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> low_level_wcs = <WCS(output_frame=SpectralFrame, input_frame=CoordinateFrame, forward_transform=Model: SpectralTabular1D
> N_inputs: 1
> N... 36.
>  37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49.] nm
>   method: linear
>   fill_value: nan
>   bounds_error: True)>
> world_objects = (<Quantity [20., 21., 22., 23., 24., 25., 26., 27., 28., 29.] nm>,)
> serialized_classes = {'spectral': (<class 'astropy.coordinates.spectral_coordinate.SpectralCoord'>, (), {'unit': Unit("nm")})}
> components = [('spectral', 0, <function SpectralFrame._world_axis_object_components.<locals>.<lambda> at 0x7f976ef0f7e0>)]
> 
>     def high_level_objects_to_values(*world_objects, low_level_wcs):
>         """
>         Convert the input high level object to low level values.
>     
>         This function uses the information in ``wcs.world_axis_object_classes`` and
>         ``wcs.world_axis_object_components`` to convert the high level objects
>         (such as `~.SkyCoord`) to low level "values" which should be scalars or
>         Numpy arrays.
>     
>         This is used in `.HighLevelWCSMixin.world_to_pixel`, but provided as a
>         separate function for use in other places where needed.
>     
>         Parameters
>         ----------
>         *world_objects: object
>             High level coordinate objects.
>     
>         low_level_wcs: `.BaseLowLevelWCS`
>             The WCS object to use to interpret the coordinates.
>         """
>         # Cache the classes and components since this may be expensive
>         serialized_classes = low_level_wcs.world_axis_object_classes
>         components = low_level_wcs.world_axis_object_components
>     
>         # Deserialize world_axis_object_classes using the default order
>         classes = OrderedDict()
>         for key in default_order(components):
>             if low_level_wcs.serialized_classes:
>                 classes[key] = deserialize_class(serialized_classes[key], construct=False)
>             else:
>                 classes[key] = serialized_classes[key]
>     
>         # Check that the number of classes matches the number of inputs
>         if len(world_objects) != len(classes):
>             raise ValueError(
>                 f"Number of world inputs ({len(world_objects)}) does not match expected"
>                 f" ({len(classes)})"
>             )
>     
>         # Determine whether the classes are uniquely matched, that is we check
>         # whether there is only one of each class.
>         world_by_key = {}
>         unique_match = True
>         for w in world_objects:
>             matches = []
>             for key, (klass, *_) in classes.items():
>                 if isinstance(w, klass):
>                     matches.append(key)
>             if len(matches) == 1:
>                 world_by_key[matches[0]] = w
>             else:
>                 unique_match = False
>                 break
>     
>         # If the match is not unique, the order of the classes needs to match,
>         # whereas if all classes are unique, we can still intelligently match
>         # them even if the order is wrong.
>     
>         objects = {}
>     
>         if unique_match:
>             for key, (klass, args, kwargs, *rest) in classes.items():
>                 if len(rest) == 0:
>                     klass_gen = klass
>                 elif len(rest) == 1:
>                     klass_gen = rest[0]
>                 else:
>                     raise ValueError(
>                         "Tuples in world_axis_object_classes should have length 3 or 4"
>                     )
>     
>                 # FIXME: For now SkyCoord won't auto-convert upon initialization
>                 # https://github.com/astropy/astropy/issues/7689
>                 from astropy.coordinates import SkyCoord
>     
>                 if isinstance(world_by_key[key], SkyCoord):
>                     if "frame" in kwargs:
>                         objects[key] = world_by_key[key].transform_to(kwargs["frame"])
>                     else:
>                         objects[key] = world_by_key[key]
>                 else:
>                     objects[key] = klass_gen(world_by_key[key], *args, **kwargs)
>     
>         else:
>             for ikey, key in enumerate(classes):
>                 klass, args, kwargs, *rest = classes[key]
>     
>                 if len(rest) == 0:
>                     klass_gen = klass
>                 elif len(rest) == 1:
>                     klass_gen = rest[0]
>                 else:
>                     raise ValueError(
>                         "Tuples in world_axis_object_classes should have length 3 or 4"
>                     )
>     
>                 w = world_objects[ikey]
>                 if not isinstance(w, klass):
> >                   raise ValueError(
>                         "Expected the following order of world arguments:"
>                         f" {', '.join([k.__name__ for (k, *_) in classes.values()])}"
>                     )
> E                   ValueError: Expected the following order of world arguments: SpectralCoord
> 
> /usr/lib/python3/dist-packages/astropy/wcs/wcsapi/high_level_api.py:233: ValueError
> =========================== short test summary info ============================
> FAILED specutils/tests/test_spectrum1d.py::test_wcs_transformations - ValueError: Expected the following order of world arguments: SpectralCoord
> ============ 1 failed, 544 passed, 123 skipped, 9 xfailed in 35.46s ============
> E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build; python3.12 -m pytest --remote-data=none --doctest-rst
> dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.13 3.12" returned exit code 13


The full build log is available from:
http://qa-logs.debian.net/2024/12/22/specutils_1.19.0-2_unstable.log

All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20241222;users=lucas@debian.org
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20241222&fusertaguser=lucas@debian.org&allbugs=1&cseverity=1&ctags=1&caffected=1#results

A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

If you reassign this bug to another package, please mark it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects

If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.



More information about the Debian-astro-maintainers mailing list