Bug#1095371: python-dtcwt: FTBFS: E AttributeError: `np.asfarray` was removed in the NumPy 2.0 release.
Santiago Vila
sanvila at debian.org
Fri Feb 7 12:12:24 GMT 2025
Package: src:python-dtcwt
Version: 0.14.0-1
Severity: serious
Tags: ftbfs trixie sid
Dear maintainer:
During a rebuild of all packages in unstable, your package failed to build:
--------------------------------------------------------------------------------
[...]
debian/rules clean
dh clean --with sphinxdoc --buildsystem=pybuild
dh_auto_clean -O--buildsystem=pybuild
I: pybuild base:311: python3.12 setup.py clean
/usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'tests_require'
warnings.warn(msg)
running clean
removing '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_dtcwt/build' (and everything under it)
'build/bdist.linux-x86_64' does not exist -- can't clean it
'build/scripts-3.12' does not exist -- can't clean it
I: pybuild base:311: python3.13 setup.py clean
/usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'tests_require'
warnings.warn(msg)
running clean
[... snipped ...]
dtcwt/compat.py:241: in dtwavexfm3
res = trans.forward(X, nlevels, include_scale, discard_level_1)
dtcwt/numpy/transform3d.py:82: in forward
X = np.atleast_3d(asfarray(X))
dtcwt/utils.py:105: in asfarray
return np.asfarray(X, dtype=X.dtype)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
attr = 'asfarray'
def __getattr__(attr):
# Warn for expired attributes
import warnings
if attr == "linalg":
import numpy.linalg as linalg
return linalg
elif attr == "fft":
import numpy.fft as fft
return fft
elif attr == "dtypes":
import numpy.dtypes as dtypes
return dtypes
elif attr == "random":
import numpy.random as random
return random
elif attr == "polynomial":
import numpy.polynomial as polynomial
return polynomial
elif attr == "ma":
import numpy.ma as ma
return ma
elif attr == "ctypeslib":
import numpy.ctypeslib as ctypeslib
return ctypeslib
elif attr == "exceptions":
import numpy.exceptions as exceptions
return exceptions
elif attr == "testing":
import numpy.testing as testing
return testing
elif attr == "matlib":
import numpy.matlib as matlib
return matlib
elif attr == "f2py":
import numpy.f2py as f2py
return f2py
elif attr == "typing":
import numpy.typing as typing
return typing
elif attr == "rec":
import numpy.rec as rec
return rec
elif attr == "char":
import numpy.char as char
return char
elif attr == "array_api":
raise AttributeError("`numpy.array_api` is not available from "
"numpy 2.0 onwards", name=None)
elif attr == "core":
import numpy.core as core
return core
elif attr == "strings":
import numpy.strings as strings
return strings
elif attr == "distutils":
if 'distutils' in __numpy_submodules__:
import numpy.distutils as distutils
return distutils
else:
raise AttributeError("`numpy.distutils` is not available from "
"Python 3.12 onwards", name=None)
if attr in __future_scalars__:
# And future warnings for those that will change, but also give
# the AttributeError
warnings.warn(
f"In the future `np.{attr}` will be defined as the "
"corresponding NumPy scalar.", FutureWarning, stacklevel=2)
if attr in __former_attrs__:
raise AttributeError(__former_attrs__[attr], name=None)
if attr in __expired_attributes__:
> raise AttributeError(
f"`np.{attr}` was removed in the NumPy 2.0 release. "
f"{__expired_attributes__[attr]}",
name=None
)
E AttributeError: `np.asfarray` was removed in the NumPy 2.0 release. Use `np.asarray` with a proper dtype instead.
/usr/lib/python3/dist-packages/numpy/__init__.py:400: AttributeError
______________________________ test_float32_recon ______________________________
def test_float32_recon():
# Check that an float32 input is correctly output as float32
> Yl, Yh = dtwavexfm3(ellipsoid.astype(np.float32))
tests/test_xfm3.py:145:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
dtcwt/compat.py:241: in dtwavexfm3
res = trans.forward(X, nlevels, include_scale, discard_level_1)
dtcwt/numpy/transform3d.py:82: in forward
X = np.atleast_3d(asfarray(X))
dtcwt/utils.py:105: in asfarray
return np.asfarray(X, dtype=X.dtype)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
attr = 'asfarray'
def __getattr__(attr):
# Warn for expired attributes
import warnings
if attr == "linalg":
import numpy.linalg as linalg
return linalg
elif attr == "fft":
import numpy.fft as fft
return fft
elif attr == "dtypes":
import numpy.dtypes as dtypes
return dtypes
elif attr == "random":
import numpy.random as random
return random
elif attr == "polynomial":
import numpy.polynomial as polynomial
return polynomial
elif attr == "ma":
import numpy.ma as ma
return ma
elif attr == "ctypeslib":
import numpy.ctypeslib as ctypeslib
return ctypeslib
elif attr == "exceptions":
import numpy.exceptions as exceptions
return exceptions
elif attr == "testing":
import numpy.testing as testing
return testing
elif attr == "matlib":
import numpy.matlib as matlib
return matlib
elif attr == "f2py":
import numpy.f2py as f2py
return f2py
elif attr == "typing":
import numpy.typing as typing
return typing
elif attr == "rec":
import numpy.rec as rec
return rec
elif attr == "char":
import numpy.char as char
return char
elif attr == "array_api":
raise AttributeError("`numpy.array_api` is not available from "
"numpy 2.0 onwards", name=None)
elif attr == "core":
import numpy.core as core
return core
elif attr == "strings":
import numpy.strings as strings
return strings
elif attr == "distutils":
if 'distutils' in __numpy_submodules__:
import numpy.distutils as distutils
return distutils
else:
raise AttributeError("`numpy.distutils` is not available from "
"Python 3.12 onwards", name=None)
if attr in __future_scalars__:
# And future warnings for those that will change, but also give
# the AttributeError
warnings.warn(
f"In the future `np.{attr}` will be defined as the "
"corresponding NumPy scalar.", FutureWarning, stacklevel=2)
if attr in __former_attrs__:
raise AttributeError(__former_attrs__[attr], name=None)
if attr in __expired_attributes__:
> raise AttributeError(
f"`np.{attr}` was removed in the NumPy 2.0 release. "
f"{__expired_attributes__[attr]}",
name=None
)
E AttributeError: `np.asfarray` was removed in the NumPy 2.0 release. Use `np.asarray` with a proper dtype instead.
/usr/lib/python3/dist-packages/numpy/__init__.py:400: AttributeError
____________________ test_level_4_recon_discarding_level_1 _____________________
def test_level_4_recon_discarding_level_1():
# Test for non-perfect but reasonable reconstruction
> Yl, Yh = dtwavexfm3(ellipsoid, 4, discard_level_1=True)
tests/test_xfm3.py:154:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
dtcwt/compat.py:241: in dtwavexfm3
res = trans.forward(X, nlevels, include_scale, discard_level_1)
dtcwt/numpy/transform3d.py:82: in forward
X = np.atleast_3d(asfarray(X))
dtcwt/utils.py:105: in asfarray
return np.asfarray(X, dtype=X.dtype)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
attr = 'asfarray'
def __getattr__(attr):
# Warn for expired attributes
import warnings
if attr == "linalg":
import numpy.linalg as linalg
return linalg
elif attr == "fft":
import numpy.fft as fft
return fft
elif attr == "dtypes":
import numpy.dtypes as dtypes
return dtypes
elif attr == "random":
import numpy.random as random
return random
elif attr == "polynomial":
import numpy.polynomial as polynomial
return polynomial
elif attr == "ma":
import numpy.ma as ma
return ma
elif attr == "ctypeslib":
import numpy.ctypeslib as ctypeslib
return ctypeslib
elif attr == "exceptions":
import numpy.exceptions as exceptions
return exceptions
elif attr == "testing":
import numpy.testing as testing
return testing
elif attr == "matlib":
import numpy.matlib as matlib
return matlib
elif attr == "f2py":
import numpy.f2py as f2py
return f2py
elif attr == "typing":
import numpy.typing as typing
return typing
elif attr == "rec":
import numpy.rec as rec
return rec
elif attr == "char":
import numpy.char as char
return char
elif attr == "array_api":
raise AttributeError("`numpy.array_api` is not available from "
"numpy 2.0 onwards", name=None)
elif attr == "core":
import numpy.core as core
return core
elif attr == "strings":
import numpy.strings as strings
return strings
elif attr == "distutils":
if 'distutils' in __numpy_submodules__:
import numpy.distutils as distutils
return distutils
else:
raise AttributeError("`numpy.distutils` is not available from "
"Python 3.12 onwards", name=None)
if attr in __future_scalars__:
# And future warnings for those that will change, but also give
# the AttributeError
warnings.warn(
f"In the future `np.{attr}` will be defined as the "
"corresponding NumPy scalar.", FutureWarning, stacklevel=2)
if attr in __former_attrs__:
raise AttributeError(__former_attrs__[attr], name=None)
if attr in __expired_attributes__:
> raise AttributeError(
f"`np.{attr}` was removed in the NumPy 2.0 release. "
f"{__expired_attributes__[attr]}",
name=None
)
E AttributeError: `np.asfarray` was removed in the NumPy 2.0 release. Use `np.asarray` with a proper dtype instead.
/usr/lib/python3/dist-packages/numpy/__init__.py:400: AttributeError
_______________________ test_level_4_discarding_level_1 ________________________
def test_level_4_discarding_level_1():
# Test that level >= 2 highpasses are identical
> Yl1, Yh1 = dtwavexfm3(ellipsoid, 4, discard_level_1=True)
tests/test_xfm3.py:163:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
dtcwt/compat.py:241: in dtwavexfm3
res = trans.forward(X, nlevels, include_scale, discard_level_1)
dtcwt/numpy/transform3d.py:82: in forward
X = np.atleast_3d(asfarray(X))
dtcwt/utils.py:105: in asfarray
return np.asfarray(X, dtype=X.dtype)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
attr = 'asfarray'
def __getattr__(attr):
# Warn for expired attributes
import warnings
if attr == "linalg":
import numpy.linalg as linalg
return linalg
elif attr == "fft":
import numpy.fft as fft
return fft
elif attr == "dtypes":
import numpy.dtypes as dtypes
return dtypes
elif attr == "random":
import numpy.random as random
return random
elif attr == "polynomial":
import numpy.polynomial as polynomial
return polynomial
elif attr == "ma":
import numpy.ma as ma
return ma
elif attr == "ctypeslib":
import numpy.ctypeslib as ctypeslib
return ctypeslib
elif attr == "exceptions":
import numpy.exceptions as exceptions
return exceptions
elif attr == "testing":
import numpy.testing as testing
return testing
elif attr == "matlib":
import numpy.matlib as matlib
return matlib
elif attr == "f2py":
import numpy.f2py as f2py
return f2py
elif attr == "typing":
import numpy.typing as typing
return typing
elif attr == "rec":
import numpy.rec as rec
return rec
elif attr == "char":
import numpy.char as char
return char
elif attr == "array_api":
raise AttributeError("`numpy.array_api` is not available from "
"numpy 2.0 onwards", name=None)
elif attr == "core":
import numpy.core as core
return core
elif attr == "strings":
import numpy.strings as strings
return strings
elif attr == "distutils":
if 'distutils' in __numpy_submodules__:
import numpy.distutils as distutils
return distutils
else:
raise AttributeError("`numpy.distutils` is not available from "
"Python 3.12 onwards", name=None)
if attr in __future_scalars__:
# And future warnings for those that will change, but also give
# the AttributeError
warnings.warn(
f"In the future `np.{attr}` will be defined as the "
"corresponding NumPy scalar.", FutureWarning, stacklevel=2)
if attr in __former_attrs__:
raise AttributeError(__former_attrs__[attr], name=None)
if attr in __expired_attributes__:
> raise AttributeError(
f"`np.{attr}` was removed in the NumPy 2.0 release. "
f"{__expired_attributes__[attr]}",
name=None
)
E AttributeError: `np.asfarray` was removed in the NumPy 2.0 release. Use `np.asarray` with a proper dtype instead.
/usr/lib/python3/dist-packages/numpy/__init__.py:400: AttributeError
=========================== short test summary info ============================
FAILED tests/test_againstmatlab.py::test_coldfilt - AttributeError: `np.asfar...
FAILED tests/test_againstmatlab.py::test_dtwavexfm2 - AttributeError: `np.asf...
FAILED tests/test_againstmatlab.py::test_dtwavexfm2b - AttributeError: `np.as...
FAILED tests/test_againstmatlab.py::test_rescale_highpass - AttributeError: `...
FAILED tests/test_againstmatlab.py::test_transform3d_numpy - AttributeError: ...
FAILED tests/test_coldfilt.py::test_odd_filter - AttributeError: `np.asfarray...
FAILED tests/test_coldfilt.py::test_different_size - AttributeError: `np.asfa...
FAILED tests/test_coldfilt.py::test_bad_input_size - AttributeError: `np.asfa...
FAILED tests/test_coldfilt.py::test_good_input_size - AttributeError: `np.asf...
FAILED tests/test_coldfilt.py::test_good_input_size_non_orthogonal - Attribut...
FAILED tests/test_coldfilt.py::test_output_size - AttributeError: `np.asfarra...
FAILED tests/test_colfilter.py::test_odd_size - AttributeError: `np.asfarray`...
FAILED tests/test_colfilter.py::test_even_size - AttributeError: `np.asfarray...
FAILED tests/test_colfilter.py::test_qshift - AttributeError: `np.asfarray` w...
FAILED tests/test_colfilter.py::test_biort - AttributeError: `np.asfarray` wa...
FAILED tests/test_colfilter.py::test_odd_size_non_array - AttributeError: `np...
FAILED tests/test_colfilter.py::test_even_size_non_array - AttributeError: `n...
FAILED tests/test_colifilt.py::test_odd_filter - AttributeError: `np.asfarray...
FAILED tests/test_colifilt.py::test_different_size_h - AttributeError: `np.as...
FAILED tests/test_colifilt.py::test_zero_input - AttributeError: `np.asfarray...
FAILED tests/test_colifilt.py::test_bad_input_size - AttributeError: `np.asfa...
FAILED tests/test_colifilt.py::test_good_input_size - AttributeError: `np.asf...
FAILED tests/test_colifilt.py::test_output_size - AttributeError: `np.asfarra...
FAILED tests/test_colifilt.py::test_non_orthogonal_input - AttributeError: `n...
FAILED tests/test_colifilt.py::test_output_size_non_mult_4 - AttributeError: ...
FAILED tests/test_colifilt.py::test_non_orthogonal_input_non_mult_4 - Attribu...
FAILED tests/test_ifm1.py::test_reconstruct - AttributeError: `np.asfarray` w...
FAILED tests/test_ifm1.py::test_reconstruct_2d - AttributeError: `np.asfarray...
FAILED tests/test_ifm1.py::test_float32_input - AttributeError: `np.asfarray`...
FAILED tests/test_ifm2.py::test_reconstruct - AttributeError: `np.asfarray` w...
FAILED tests/test_ifm2.py::test_reconstruct_crop - AttributeError: `np.asfarr...
FAILED tests/test_ifm2.py::test_reconstruct_custom_filter - AttributeError: `...
FAILED tests/test_ifm2.py::test_float32_input - AttributeError: `np.asfarray`...
FAILED tests/test_registration.py::test_estimatereg - AttributeError: `np.asf...
FAILED tests/test_utils.py::test_complex_type_for_complex - AttributeError: `...
FAILED tests/test_utils.py::test_complex_type_for_float - AttributeError: `np...
FAILED tests/test_xfm1.py::test_simple - AttributeError: `np.asfarray` was re...
FAILED tests/test_xfm1.py::test_simple_with_no_levels - AttributeError: `np.a...
FAILED tests/test_xfm1.py::test_simple_with_scale - AttributeError: `np.asfar...
FAILED tests/test_xfm1.py::test_simple_with_scale_and_no_levels - AttributeEr...
FAILED tests/test_xfm1.py::test_perfect_recon - AttributeError: `np.asfarray`...
FAILED tests/test_xfm1.py::test_simple_custom_filter - AttributeError: `np.as...
FAILED tests/test_xfm1.py::test_single_level - AttributeError: `np.asfarray` ...
FAILED tests/test_xfm1.py::test_non_multiple_of_two - AttributeError: `np.asf...
FAILED tests/test_xfm1.py::test_2d - AttributeError: `np.asfarray` was remove...
FAILED tests/test_xfm1.py::test_integer_input - AttributeError: `np.asfarray`...
FAILED tests/test_xfm1.py::test_integer_perfect_recon - AttributeError: `np.a...
FAILED tests/test_xfm1.py::test_float32_input - AttributeError: `np.asfarray`...
FAILED tests/test_xfm2.py::test_simple - AttributeError: `np.asfarray` was re...
FAILED tests/test_xfm2.py::test_specific_wavelet - AttributeError: `np.asfarr...
FAILED tests/test_xfm2.py::test_1d - AttributeError: `np.asfarray` was remove...
FAILED tests/test_xfm2.py::test_3d - AttributeError: `np.asfarray` was remove...
FAILED tests/test_xfm2.py::test_simple_w_scale - AttributeError: `np.asfarray...
FAILED tests/test_xfm2.py::test_odd_rows - AttributeError: `np.asfarray` was ...
FAILED tests/test_xfm2.py::test_odd_rows_w_scale - AttributeError: `np.asfarr...
FAILED tests/test_xfm2.py::test_odd_cols - AttributeError: `np.asfarray` was ...
FAILED tests/test_xfm2.py::test_odd_cols_w_scale - AttributeError: `np.asfarr...
FAILED tests/test_xfm2.py::test_odd_rows_and_cols - AttributeError: `np.asfar...
FAILED tests/test_xfm2.py::test_odd_rows_and_cols_w_scale - AttributeError: `...
FAILED tests/test_xfm2.py::test_rot_symm_modified - AttributeError: `np.asfar...
FAILED tests/test_xfm2.py::test_0_levels - AttributeError: `np.asfarray` was ...
FAILED tests/test_xfm2.py::test_0_levels_w_scale - AttributeError: `np.asfarr...
FAILED tests/test_xfm2.py::test_integer_input - AttributeError: `np.asfarray`...
FAILED tests/test_xfm2.py::test_integer_perfect_recon - AttributeError: `np.a...
FAILED tests/test_xfm2.py::test_float32_input - AttributeError: `np.asfarray`...
FAILED tests/test_xfm3.py::test_simple_level_1_xfm - AttributeError: `np.asfa...
FAILED tests/test_xfm3.py::test_simple_level_1_recon - AttributeError: `np.as...
FAILED tests/test_xfm3.py::test_simple_level_1_recon_haar - AttributeError: `...
FAILED tests/test_xfm3.py::test_simple_level_2_xfm - AttributeError: `np.asfa...
FAILED tests/test_xfm3.py::test_simple_level_2_recon - AttributeError: `np.as...
FAILED tests/test_xfm3.py::test_simple_level_4_xfm - AttributeError: `np.asfa...
FAILED tests/test_xfm3.py::test_simple_level_4_recon - AttributeError: `np.as...
FAILED tests/test_xfm3.py::test_simple_level_4_recon_custom_wavelets - Attrib...
FAILED tests/test_xfm3.py::test_simple_level_4_xfm_ext_mode_8 - AttributeErro...
FAILED tests/test_xfm3.py::test_simple_level_4_recon_ext_mode_8 - AttributeEr...
FAILED tests/test_xfm3.py::test_simple_level_4_xfm_ext_mode_4 - AttributeErro...
FAILED tests/test_xfm3.py::test_simple_level_4_recon_ext_mode_4 - AttributeEr...
FAILED tests/test_xfm3.py::test_integer_input - AttributeError: `np.asfarray`...
FAILED tests/test_xfm3.py::test_integer_perfect_recon - AttributeError: `np.a...
FAILED tests/test_xfm3.py::test_float32_input - AttributeError: `np.asfarray`...
FAILED tests/test_xfm3.py::test_float32_recon - AttributeError: `np.asfarray`...
FAILED tests/test_xfm3.py::test_level_4_recon_discarding_level_1 - AttributeE...
FAILED tests/test_xfm3.py::test_level_4_discarding_level_1 - AttributeError: ...
================== 83 failed, 42 passed, 214 skipped in 1.79s ==================
E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_dtcwt/build; python3.13 -m pytest tests
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.12 3.13" returned exit code 13
make: *** [debian/rules:12: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------
The above is just how the build ends and not necessarily the most relevant part.
If required, the full build log is available here:
https://people.debian.org/~sanvila/build-logs/202502/
About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.
If you could not reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.
If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:python-dtcwt, so that this is still
visible in the BTS web page for this package.
Thanks.
More information about the debian-science-maintainers
mailing list