[Debian-astro-maintainers] Bug#1000603: specutils FTBFS with Python 3.10

Adrian Bunk bunk at debian.org
Thu Nov 25 19:04:15 GMT 2021


Source: specutils
Version: 1.4.1-1
Severity: serious
Tags: ftbfs

https://buildd.debian.org/status/logs.php?pkg=specutils&ver=1.4.1-1%2Bb1

...
=================================== FAILURES ===================================
__________________________ test_continuum_calculation __________________________

    def test_continuum_calculation():
        """
        This test fits the first simulated spectrum from the fixture.  The
        initial guesses are manually set here with bounds that essentially make
        sense as the functionality of the test is to make sure the fit works and
        we get a reasonable answer out **given** good initial guesses.
        """
    
        x_single_continuum, y_single_continuum = single_peak_continuum()
        spectrum = Spectrum1D(flux=y_single_continuum*u.Jy, spectral_axis=x_single_continuum*u.um)
        g1_fit = fit_generic_continuum(spectrum)
    
>       spectrum_normalized = spectrum / g1_fit(spectrum.spectral_axis)

specutils/tests/test_continuum.py:60: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
specutils/spectra/spectrum1d.py:568: in __truediv__
    return self.divide(other)
/usr/lib/python3/dist-packages/astropy/nddata/mixins/ndarithmetic.py:536: in divide
    return self._prepare_then_do_arithmetic(np.true_divide, operand,
/usr/lib/python3/dist-packages/astropy/nddata/mixins/ndarithmetic.py:610: in _prepare_then_do_arithmetic
    operand2 = cls(operand2)
specutils/spectra/spectrum1d.py:288: in __init__
    spec_axis = self.wcs.pixel_to_world(np.arange(self.flux.shape[-1]))
specutils/utils/wcs_utils.py:217: in pixel_to_world
    return super().pixel_to_world(*args, **kwargs).to(
/usr/lib/python3/dist-packages/gwcs/api.py:299: in pixel_to_world
    return self(*pixels, with_units=True)
/usr/lib/python3/dist-packages/gwcs/wcs.py:379: in __call__
    result = self.output_frame.coordinates(result)
/usr/lib/python3/dist-packages/gwcs/coordinate_frames.py:463: in coordinates
    return coord.SpectralCoord(*args).to(self.unit[0])
/usr/lib/python3/dist-packages/astropy/units/decorators.py:304: in wrapper
    return_ = wrapped_function(*func_args, **func_kwargs)
/usr/lib/python3/dist-packages/astropy/coordinates/spectral_coordinate.py:193: in __new__
    obj = super().__new__(cls, value, unit=unit, **kwargs)
/usr/lib/python3/dist-packages/astropy/coordinates/spectral_quantity.py:57: in __new__
    obj = super().__new__(cls, value, unit=unit, **kwargs)
/usr/lib/python3/dist-packages/astropy/units/quantity.py:425: in __new__
    value = value.view(cls)
/usr/lib/python3/dist-packages/astropy/coordinates/spectral_coordinate.py:242: in __array_finalize__
    super().__array_finalize__(obj)
/usr/lib/python3/dist-packages/astropy/coordinates/spectral_quantity.py:72: in __array_finalize__
    super().__array_finalize__(obj)
/usr/lib/python3/dist-packages/astropy/units/quantity.py:550: in __array_finalize__
    self._set_unit(unit)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <[AttributeError("SpectralCoord instance has no attribute 'radial_velocity'") raised in repr()] SpectralCoord object at 0x7f389f6d3d10>
unit = Unit(dimensionless)

    def _set_unit(self, unit):
        if unit is None or not unit.is_equivalent(self._equivalent_unit):
>           raise UnitTypeError(
                "{} instances require units equivalent to '{}'"
                .format(type(self).__name__, self._equivalent_unit) +
                (", but no unit was given." if unit is None else
                 f", so cannot set it to '{unit}'."))
E           astropy.units.core.UnitTypeError: SpectralCoord instances require units equivalent to '(Unit("Hz"), Unit("m"), Unit("J"), Unit("1 / m"), Unit("km / s"))', so cannot set it to ''.

/usr/lib/python3/dist-packages/astropy/units/quantity.py:1933: UnitTypeError
__________________________ test_continuum_full_window __________________________

    def test_continuum_full_window():
        """
        This test fits the first simulated spectrum from the fixture, but
        with the fit_continuum function instead of fit_generic_continuum. Uses
        a window to select the entire spectrum and checks that it recovers the
        original, non-windowed fit.
        """
    
        x_single_continuum, y_single_continuum = single_peak_continuum()
        spectrum = Spectrum1D(flux=y_single_continuum*u.Jy, spectral_axis=x_single_continuum*u.um)
    
        # Smooth in the same way fit_generic_continuum does.
        spectrum_smoothed = median_smooth(spectrum, 3)
    
        # Check that a full width window recovers the original, non-windowed fit.
        g1_fit = fit_continuum(spectrum_smoothed, window=(0.*u.um, 10.*u.um))
        g1_fit_orig = fit_continuum(spectrum_smoothed)
    
>       sp_normalized = spectrum / g1_fit(spectrum.spectral_axis)

specutils/tests/test_continuum.py:88: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
specutils/spectra/spectrum1d.py:568: in __truediv__
    return self.divide(other)
/usr/lib/python3/dist-packages/astropy/nddata/mixins/ndarithmetic.py:536: in divide
    return self._prepare_then_do_arithmetic(np.true_divide, operand,
/usr/lib/python3/dist-packages/astropy/nddata/mixins/ndarithmetic.py:610: in _prepare_then_do_arithmetic
    operand2 = cls(operand2)
specutils/spectra/spectrum1d.py:288: in __init__
    spec_axis = self.wcs.pixel_to_world(np.arange(self.flux.shape[-1]))
specutils/utils/wcs_utils.py:217: in pixel_to_world
    return super().pixel_to_world(*args, **kwargs).to(
/usr/lib/python3/dist-packages/gwcs/api.py:299: in pixel_to_world
    return self(*pixels, with_units=True)
/usr/lib/python3/dist-packages/gwcs/wcs.py:379: in __call__
    result = self.output_frame.coordinates(result)
/usr/lib/python3/dist-packages/gwcs/coordinate_frames.py:463: in coordinates
    return coord.SpectralCoord(*args).to(self.unit[0])
/usr/lib/python3/dist-packages/astropy/units/decorators.py:304: in wrapper
    return_ = wrapped_function(*func_args, **func_kwargs)
/usr/lib/python3/dist-packages/astropy/coordinates/spectral_coordinate.py:193: in __new__
    obj = super().__new__(cls, value, unit=unit, **kwargs)
/usr/lib/python3/dist-packages/astropy/coordinates/spectral_quantity.py:57: in __new__
    obj = super().__new__(cls, value, unit=unit, **kwargs)
/usr/lib/python3/dist-packages/astropy/units/quantity.py:425: in __new__
    value = value.view(cls)
/usr/lib/python3/dist-packages/astropy/coordinates/spectral_coordinate.py:242: in __array_finalize__
    super().__array_finalize__(obj)
/usr/lib/python3/dist-packages/astropy/coordinates/spectral_quantity.py:72: in __array_finalize__
    super().__array_finalize__(obj)
/usr/lib/python3/dist-packages/astropy/units/quantity.py:550: in __array_finalize__
    self._set_unit(unit)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <[AttributeError("SpectralCoord instance has no attribute 'radial_velocity'") raised in repr()] SpectralCoord object at 0x7f389fa62ab0>
unit = Unit(dimensionless)

    def _set_unit(self, unit):
        if unit is None or not unit.is_equivalent(self._equivalent_unit):
>           raise UnitTypeError(
                "{} instances require units equivalent to '{}'"
                .format(type(self).__name__, self._equivalent_unit) +
                (", but no unit was given." if unit is None else
                 f", so cannot set it to '{unit}'."))
E           astropy.units.core.UnitTypeError: SpectralCoord instances require units equivalent to '(Unit("Hz"), Unit("m"), Unit("J"), Unit("1 / m"), Unit("km / s"))', so cannot set it to ''.

/usr/lib/python3/dist-packages/astropy/units/quantity.py:1933: UnitTypeError
...
=========================== short test summary info ============================
FAILED specutils/tests/test_continuum.py::test_continuum_calculation - astrop...
FAILED specutils/tests/test_continuum.py::test_continuum_full_window - astrop...
FAILED specutils/tests/test_continuum.py::test_continuum_spectral_region - as...
FAILED specutils/tests/test_continuum.py::test_continuum_window_no_noise - as...
FAILED specutils/tests/test_continuum.py::test_double_continuum_window - astr...
FAILED specutils/tests/test_continuum.py::test_double_continuum_window_alternate
FAILED specutils/tests/test_correlation.py::test_autocorrelation - astropy.un...
FAILED specutils/tests/test_correlation.py::test_correlation - astropy.units....
FAILED specutils/tests/test_correlation.py::test_correlation_zero_padding - a...
FAILED specutils/tests/test_correlation.py::test_correlation_random_lines - a...
FAILED specutils/tests/test_loaders.py::test_tabular_fits_writer[wavelength]
FAILED specutils/tests/test_loaders.py::test_tabular_fits_writer[frequency]
FAILED specutils/tests/test_loaders.py::test_tabular_fits_writer[energy] - As...
FAILED specutils/tests/test_loaders.py::test_tabular_fits_writer[wavenumber]
==== 14 failed, 336 passed, 101 skipped, 7 xfailed, 193 warnings in 44.14s =====
E: pybuild pybuild:354: test: plugin distutils failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build; python3.9 -m pytest --remote-data=none --doctest-rst
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.10 3.9" returned exit code 13
make: *** [debian/rules:8: binary-arch] Error 25



More information about the Debian-astro-maintainers mailing list