[Debian-med-packaging] Bug#1081694: FTBFS with Python 3.13

Stefano Rivera stefanor at debian.org
Fri Sep 13 21:31:59 BST 2024


Source: dipy
Version: 1.9.0-5
Severity: normal
Tags: upstream patch
User: debian-python at lists.debian.org
Usertags: python3.13
Forwarded: https://github.com/dipy/dipy/pull/3210

This package failed build from source when test-built against a version of
python3-defaults that includes 3.13 as a supported version.

To reproduce this issue, build against python3-defaults (python3-all-dev etc.)
from Debian experimental.

What's new in Python 3.13:
https://docs.python.org/3.13/whatsnew/3.13.html

Log snippet:

# Run tests later on
# cd build to prevent use of local/not-built source tree
set -ex \
; for PYTHON in 3.13 3.12 \
; do	PYPKG="/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python$PYTHON/dist-packages" \
;	export PYTHONPATH="$PYPKG" \
;	echo "I: Running Dipy unittests using $PYTHON" \
;	cd "$PYPKG" \
;	PATH=/<<PKGBUILDDIR>>/debian/python3-dipy/usr/bin:$PATH \
	xvfb-run -a -s "-screen 0 1280x1024x24 -noreset" \
		python$PYTHON -m pytest -v -k 'not dipy/utils/tests/test_tractogram.py and not test_io_info and not test_concatenate_flow and not test_convert_tractogram_flow and not test_spike and not test_normalization and not test_kernel_input and not test_fbc and not test_concatenate and not dipy/align/tests/test_streamwarp.py and not dipy/denoise/tests/test_lpca.py and not dipy/reconst/tests/test_sfm.py and not dipy/workflows/tests/test_reconst_csa_csd.py and not dipy/workflows/tests/test_reconst_rumba.py' dipy \
;	rm .pytest_cache -rf \
; done
+ PYPKG=/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages
+ export PYTHONPATH=/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages
+ echo I: Running Dipy unittests using 3.13
I: Running Dipy unittests using 3.13
+ cd /<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages
+ PATH=/<<PKGBUILDDIR>>/debian/python3-dipy/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games xvfb-run -a -s -screen 0 1280x1024x24 -noreset python3.13 -m pytest -v -k not dipy/utils/tests/test_tractogram.py and not test_io_info and not test_concatenate_flow and not test_convert_tractogram_flow and not test_spike and not test_normalization and not test_kernel_input and not test_fbc and not test_concatenate and not dipy/align/tests/test_streamwarp.py and not dipy/denoise/tests/test_lpca.py and not dipy/reconst/tests/test_sfm.py and not dipy/workflows/tests/test_reconst_csa_csd.py and not dipy/workflows/tests/test_reconst_rumba.py dipy
============================= test session starts ==============================
platform linux -- Python 3.13.0rc2, pytest-8.3.2, pluggy-1.5.0 -- /usr/bin/python3.13
cachedir: .pytest_cache
rootdir: /<<PKGBUILDDIR>>
configfile: pyproject.toml
plugins: typeguard-4.3.0
collecting ... collected 1000 items / 9 deselected / 991 selected

dipy/align/tests/test_api.py::test_syn_registration SKIPPED (test ne...) [  0%]
dipy/align/tests/test_api.py::test_register_dwi_to_template SKIPPED      [  0%]
dipy/align/tests/test_api.py::test_affine_registration SKIPPED (test...) [  0%]
dipy/align/tests/test_api.py::test_single_transforms SKIPPED (test n...) [  0%]
dipy/align/tests/test_api.py::test_register_series SKIPPED (test nee...) [  0%]
dipy/align/tests/test_api.py::test_register_dwi_series_and_motion_correction SKIPPED [  0%]
dipy/align/tests/test_api.py::test_streamline_registration SKIPPED (...) [  0%]
dipy/align/tests/test_api.py::test_register_dwi_series_multi_b0 SKIPPED  [  0%]
dipy/align/tests/test_crosscorr.py::test_cc_factors_2d PASSED            [  0%]
dipy/align/tests/test_crosscorr.py::test_cc_factors_3d PASSED            [  1%]
dipy/align/tests/test_crosscorr.py::test_compute_cc_steps_2d PASSED      [  1%]
dipy/align/tests/test_crosscorr.py::test_compute_cc_steps_3d PASSED      [  1%]
dipy/align/tests/test_expectmax.py::test_compute_em_demons_step_2d PASSED [  1%]
dipy/align/tests/test_expectmax.py::test_compute_em_demons_step_3d PASSED [  1%]
dipy/align/tests/test_expectmax.py::test_quantize_positive_2d PASSED     [  1%]
dipy/align/tests/test_expectmax.py::test_quantize_positive_3d PASSED     [  1%]
dipy/align/tests/test_expectmax.py::test_compute_masked_class_stats_2d PASSED [  1%]
dipy/align/tests/test_expectmax.py::test_compute_masked_class_stats_3d PASSED [  1%]
dipy/align/tests/test_imaffine.py::test_transform_centers_of_mass_3d PASSED [  1%]
dipy/align/tests/test_imaffine.py::test_transform_geometric_centers_3d PASSED [  2%]
dipy/align/tests/test_imaffine.py::test_transform_origins_3d PASSED      [  2%]
dipy/align/tests/test_imaffine.py::test_affreg_all_transforms PASSED     [  2%]
dipy/align/tests/test_imaffine.py::test_affreg_defaults PASSED           [  2%]
dipy/align/tests/test_imaffine.py::test_mi_gradient PASSED               [  2%]
dipy/align/tests/test_imaffine.py::test_affine_map PASSED                [  2%]
dipy/align/tests/test_imaffine.py::test_MIMetric_invalid_params PASSED   [  2%]
dipy/align/tests/test_imwarp.py::test_mult_aff PASSED                    [  2%]
dipy/align/tests/test_imwarp.py::test_diffeomorphic_map_2d PASSED        [  2%]
dipy/align/tests/test_imwarp.py::test_diffeomorphic_map_simplification_2d PASSED [  2%]
dipy/align/tests/test_imwarp.py::test_diffeomorphic_map_simplification_3d PASSED [  3%]
dipy/align/tests/test_imwarp.py::test_optimizer_exceptions PASSED        [  3%]
dipy/align/tests/test_imwarp.py::test_get_direction_and_spacings PASSED  [  3%]
dipy/align/tests/test_imwarp.py::test_ssd_2d_demons PASSED               [  3%]
dipy/align/tests/test_imwarp.py::test_ssd_2d_gauss_newton PASSED         [  3%]
dipy/align/tests/test_imwarp.py::test_ssd_3d_demons PASSED               [  3%]
dipy/align/tests/test_imwarp.py::test_ssd_3d_gauss_newton PASSED         [  3%]
dipy/align/tests/test_imwarp.py::test_cc_2d PASSED                       [  3%]
dipy/align/tests/test_imwarp.py::test_cc_3d PASSED                       [  3%]
dipy/align/tests/test_imwarp.py::test_em_3d_gauss_newton PASSED          [  3%]
dipy/align/tests/test_imwarp.py::test_em_2d_gauss_newton PASSED          [  4%]
dipy/align/tests/test_imwarp.py::test_em_3d_demons PASSED                [  4%]
dipy/align/tests/test_imwarp.py::test_em_2d_demons PASSED                [  4%]
dipy/align/tests/test_imwarp.py::test_coordinate_mapping PASSED          [  4%]
dipy/align/tests/test_metrics.py::test_exceptions PASSED                 [  4%]
dipy/align/tests/test_metrics.py::test_EMMetric_image_dynamics PASSED    [  4%]
dipy/align/tests/test_metrics.py::test_em_demons_step_2d PASSED          [  4%]
dipy/align/tests/test_metrics.py::test_em_demons_step_3d PASSED          [  4%]
dipy/align/tests/test_parzenhist.py::test_cubic_spline PASSED            [  4%]
dipy/align/tests/test_parzenhist.py::test_cubic_spline_derivative PASSED [  4%]
dipy/align/tests/test_parzenhist.py::test_parzen_joint_histogram PASSED  [  5%]
dipy/align/tests/test_parzenhist.py::test_parzen_densities PASSED        [  5%]
dipy/align/tests/test_parzenhist.py::test_joint_pdf_gradients_dense PASSED [  5%]
dipy/align/tests/test_parzenhist.py::test_joint_pdf_gradients_sparse PASSED [  5%]
dipy/align/tests/test_parzenhist.py::test_sample_domain_regular PASSED   [  5%]
dipy/align/tests/test_parzenhist.py::test_exceptions PASSED              [  5%]
dipy/align/tests/test_reslice.py::test_resample PASSED                   [  5%]
dipy/align/tests/test_scalespace.py::test_scale_space PASSED             [  5%]
dipy/align/tests/test_scalespace.py::test_scale_space_exceptions PASSED  [  5%]
dipy/align/tests/test_streamlinear.py::test_rigid_parallel_lines PASSED  [  5%]
dipy/align/tests/test_streamlinear.py::test_rigid_real_bundles PASSED    [  6%]
dipy/align/tests/test_streamlinear.py::test_rigid_partial_real_bundles PASSED [  6%]
dipy/align/tests/test_streamlinear.py::test_stream_rigid PASSED          [  6%]
dipy/align/tests/test_streamlinear.py::test_min_vs_min_fast_precision PASSED [  6%]
dipy/align/tests/test_streamlinear.py::test_same_number_of_points PASSED [  6%]
dipy/align/tests/test_streamlinear.py::test_efficient_bmd PASSED         [  6%]
dipy/align/tests/test_streamlinear.py::test_openmp_locks PASSED          [  6%]
dipy/align/tests/test_streamlinear.py::test_from_to_rigid PASSED         [  6%]
dipy/align/tests/test_streamlinear.py::test_matrix44 PASSED              [  6%]
dipy/align/tests/test_streamlinear.py::test_abstract_metric_class PASSED [  6%]
dipy/align/tests/test_streamlinear.py::test_evolution_of_previous_iterations PASSED [  7%]
dipy/align/tests/test_streamlinear.py::test_similarity_real_bundles PASSED [  7%]
dipy/align/tests/test_streamlinear.py::test_affine_real_bundles PASSED   [  7%]
dipy/align/tests/test_streamlinear.py::test_vectorize_streamlines PASSED [  7%]
dipy/align/tests/test_streamlinear.py::test_x0_input PASSED              [  7%]
dipy/align/tests/test_streamlinear.py::test_compose_decompose_matrix44 PASSED [  7%]
dipy/align/tests/test_streamlinear.py::test_cascade_of_optimizations_and_threading PASSED [  7%]
dipy/align/tests/test_streamlinear.py::test_wrong_num_threads PASSED     [  7%]
dipy/align/tests/test_streamlinear.py::test_get_unique_pairs PASSED      [  7%]
dipy/align/tests/test_streamlinear.py::test_groupwise_slr PASSED         [  7%]
dipy/align/tests/test_streamwarp.py::test_bundlewarp PASSED              [  8%]
dipy/align/tests/test_streamwarp.py::test_bundlewarp_vector_filed PASSED [  8%]
dipy/align/tests/test_streamwarp.py::test_bundle_shape_profile PASSED    [  8%]
dipy/align/tests/test_sumsqdiff.py::test_compute_residual_displacement_field_ssd_2d PASSED [  8%]
dipy/align/tests/test_sumsqdiff.py::test_compute_residual_displacement_field_ssd_3d PASSED [  8%]
dipy/align/tests/test_sumsqdiff.py::test_solve_2d_symmetric_positive_definite PASSED [  8%]
dipy/align/tests/test_sumsqdiff.py::test_solve_3d_symmetric_positive_definite PASSED [  8%]
dipy/align/tests/test_sumsqdiff.py::test_compute_energy_ssd_2d PASSED    [  8%]
dipy/align/tests/test_sumsqdiff.py::test_compute_energy_ssd_3d PASSED    [  8%]
dipy/align/tests/test_sumsqdiff.py::test_compute_ssd_demons_step_2d PASSED [  8%]
dipy/align/tests/test_sumsqdiff.py::test_compute_ssd_demons_step_3d PASSED [  9%]
dipy/align/tests/test_transforms.py::test_number_of_parameters PASSED    [  9%]
dipy/align/tests/test_transforms.py::test_param_to_matrix_2d PASSED      [  9%]
dipy/align/tests/test_transforms.py::test_param_to_matrix_3d PASSED      [  9%]
dipy/align/tests/test_transforms.py::test_identity_parameters PASSED     [  9%]
dipy/align/tests/test_transforms.py::test_jacobian_functions PASSED      [  9%]
dipy/align/tests/test_transforms.py::test_invalid_transform PASSED       [  9%]
dipy/align/tests/test_vector_fields.py::test_random_displacement_field_2d PASSED [  9%]
dipy/align/tests/test_vector_fields.py::test_random_displacement_field_3d PASSED [  9%]
dipy/align/tests/test_vector_fields.py::test_harmonic_fields_2d PASSED   [  9%]
dipy/align/tests/test_vector_fields.py::test_harmonic_fields_3d PASSED   [ 10%]
dipy/align/tests/test_vector_fields.py::test_circle PASSED               [ 10%]
dipy/align/tests/test_vector_fields.py::test_sphere PASSED               [ 10%]
dipy/align/tests/test_vector_fields.py::test_warping_2d PASSED           [ 10%]
dipy/align/tests/test_vector_fields.py::test_warping_3d PASSED           [ 10%]
dipy/align/tests/test_vector_fields.py::test_affine_transforms_2d PASSED [ 10%]
dipy/align/tests/test_vector_fields.py::test_affine_transforms_3d PASSED [ 10%]
dipy/align/tests/test_vector_fields.py::test_compose_vector_fields_2d PASSED [ 10%]
dipy/align/tests/test_vector_fields.py::test_compose_vector_fields_3d PASSED [ 10%]
dipy/align/tests/test_vector_fields.py::test_invert_vector_field_2d PASSED [ 10%]
dipy/align/tests/test_vector_fields.py::test_invert_vector_field_3d PASSED [ 11%]
dipy/align/tests/test_vector_fields.py::test_resample_vector_field_2d PASSED [ 11%]
dipy/align/tests/test_vector_fields.py::test_resample_vector_field_3d PASSED [ 11%]
dipy/align/tests/test_vector_fields.py::test_downsample_scalar_field_2d PASSED [ 11%]
dipy/align/tests/test_vector_fields.py::test_downsample_displacement_field_2d PASSED [ 11%]
dipy/align/tests/test_vector_fields.py::test_downsample_scalar_field_3d PASSED [ 11%]
dipy/align/tests/test_vector_fields.py::test_downsample_displacement_field_3d PASSED [ 11%]
dipy/align/tests/test_vector_fields.py::test_reorient_vector_field_2d PASSED [ 11%]
dipy/align/tests/test_vector_fields.py::test_reorient_vector_field_3d PASSED [ 11%]
dipy/align/tests/test_vector_fields.py::test_reorient_random_vector_fields PASSED [ 12%]
dipy/align/tests/test_vector_fields.py::test_gradient_2d PASSED          [ 12%]
dipy/align/tests/test_vector_fields.py::test_gradient_3d PASSED          [ 12%]
dipy/align/tests/test_whole_brain_slr.py::test_whole_brain_slr PASSED    [ 12%]
dipy/align/tests/test_whole_brain_slr.py::test_slr_one_streamline PASSED [ 12%]
dipy/core/tests/test_geometry.py::test_vector_norm PASSED                [ 12%]
dipy/core/tests/test_geometry.py::test_sphere_cart PASSED                [ 12%]
dipy/core/tests/test_geometry.py::test_invert_transform PASSED           [ 12%]
dipy/core/tests/test_geometry.py::test_nearest_pos_semi_def PASSED       [ 12%]
dipy/core/tests/test_geometry.py::test_cart_distance PASSED              [ 12%]
dipy/core/tests/test_geometry.py::test_sphere_distance PASSED            [ 13%]
dipy/core/tests/test_geometry.py::test_vector_cosine PASSED              [ 13%]
dipy/core/tests/test_geometry.py::test_lambert_equal_area_projection_polar PASSED [ 13%]
dipy/core/tests/test_geometry.py::test_lambert_equal_area_projection_cart PASSED [ 13%]
dipy/core/tests/test_geometry.py::test_circumradius PASSED               [ 13%]
dipy/core/tests/test_geometry.py::test_vec2vec_rotmat PASSED             [ 13%]
dipy/core/tests/test_geometry.py::test_compose_transformations PASSED    [ 13%]
dipy/core/tests/test_geometry.py::test_compose_decompose_matrix PASSED   [ 13%]
dipy/core/tests/test_geometry.py::test_perpendicular_directions PASSED   [ 13%]
dipy/core/tests/test_geometry.py::test_dist_to_corner PASSED             [ 13%]
dipy/core/tests/test_geometry.py::test_is_hemispherical PASSED           [ 14%]
dipy/core/tests/test_gradients.py::test_unique_bvals_deprecated PASSED   [ 14%]
dipy/core/tests/test_gradients.py::test_mask_non_weighted_bvals PASSED   [ 14%]
dipy/core/tests/test_gradients.py::test_btable_prepare PASSED            [ 14%]
dipy/core/tests/test_gradients.py::test_GradientTable PASSED             [ 14%]
dipy/core/tests/test_gradients.py::test_GradientTable_btensor_calculation PASSED [ 14%]
dipy/core/tests/test_gradients.py::test_gradient_table_from_qvals_bvecs PASSED [ 14%]
dipy/core/tests/test_gradients.py::test_gradient_table_from_gradient_strength_bvecs PASSED [ 14%]
dipy/core/tests/test_gradients.py::test_gradient_table_from_bvals_bvecs PASSED [ 14%]
dipy/core/tests/test_gradients.py::test_gradient_table_special_bvals_bvecs_case PASSED [ 14%]
dipy/core/tests/test_gradients.py::test_b0s PASSED                       [ 15%]
dipy/core/tests/test_gradients.py::test_gtable_from_files PASSED         [ 15%]
dipy/core/tests/test_gradients.py::test_deltas PASSED                    [ 15%]
dipy/core/tests/test_gradients.py::test_qvalues PASSED                   [ 15%]
dipy/core/tests/test_gradients.py::test_reorient_bvecs PASSED            [ 15%]
dipy/core/tests/test_gradients.py::test_nan_bvecs PASSED                 [ 15%]
dipy/core/tests/test_gradients.py::test_generate_bvecs PASSED            [ 15%]
dipy/core/tests/test_gradients.py::test_getitem_idx PASSED               [ 15%]
dipy/core/tests/test_gradients.py::test_round_bvals PASSED               [ 15%]
dipy/core/tests/test_gradients.py::test_unique_bvals_tolerance PASSED    [ 15%]
dipy/core/tests/test_gradients.py::test_get_bval_indices PASSED          [ 16%]
dipy/core/tests/test_gradients.py::test_unique_bvals_magnitude PASSED    [ 16%]
dipy/core/tests/test_gradients.py::test_check_multi_b PASSED             [ 16%]
dipy/core/tests/test_gradients.py::test_btens_to_params PASSED           [ 16%]
dipy/core/tests/test_gradients.py::test_params_to_btens PASSED           [ 16%]
dipy/core/tests/test_gradients.py::test_orientation_from_to_string PASSED [ 16%]
dipy/core/tests/test_gradients.py::test_reorient_vectors PASSED          [ 16%]
dipy/core/tests/test_gradients.py::test_affine_input_change PASSED       [ 16%]
dipy/core/tests/test_graph.py::test_graph PASSED                         [ 16%]
dipy/core/tests/test_interpolation.py::test_trilinear_interpolate PASSED [ 16%]
dipy/core/tests/test_interpolation.py::test_interpolate_scalar_2d PASSED [ 17%]
dipy/core/tests/test_interpolation.py::test_interpolate_scalar_nn_2d PASSED [ 17%]
dipy/core/tests/test_interpolation.py::test_interpolate_scalar_nn_3d PASSED [ 17%]
dipy/core/tests/test_interpolation.py::test_interpolate_scalar_3d PASSED [ 17%]
dipy/core/tests/test_interpolation.py::test_interpolate_vector_3d PASSED [ 17%]
dipy/core/tests/test_interpolation.py::test_interpolate_vector_2d PASSED [ 17%]
dipy/core/tests/test_interpolation.py::test_NearestNeighborInterpolator PASSED [ 17%]
dipy/core/tests/test_interpolation.py::test_TriLinearInterpolator PASSED [ 17%]
dipy/core/tests/test_interpolation.py::test_trilinear_interp_cubic_voxels PASSED [ 17%]
dipy/core/tests/test_interpolation.py::test_interp_rbf PASSED            [ 17%]
dipy/core/tests/test_ndindex.py::test_ndindex PASSED                     [ 18%]
dipy/core/tests/test_ndindex.py::test_ndindex_0d PASSED                  [ 18%]
dipy/core/tests/test_optimize.py::test_optimize_new_scipy PASSED         [ 18%]
dipy/core/tests/test_optimize.py::test_sklearn_linear_solver PASSED      [ 18%]
dipy/core/tests/test_optimize.py::test_nonnegativeleastsquares PASSED    [ 18%]
dipy/core/tests/test_optimize.py::test_spdot PASSED                      [ 18%]
dipy/core/tests/test_optimize.py::test_sparse_nnls PASSED                [ 18%]
dipy/core/tests/test_rng.py::test_wichmann_hill2006 PASSED               [ 18%]
dipy/core/tests/test_rng.py::test_wichmann_hill1982 PASSED               [ 18%]
dipy/core/tests/test_rng.py::test_LEcuyer PASSED                         [ 18%]
dipy/core/tests/test_sphere.py::test_sphere_construct_args PASSED        [ 19%]
dipy/core/tests/test_sphere.py::test_sphere_edges_faces PASSED           [ 19%]
dipy/core/tests/test_sphere.py::test_sphere_not_unit PASSED              [ 19%]
dipy/core/tests/test_sphere.py::test_bad_edges_faces PASSED              [ 19%]
dipy/core/tests/test_sphere.py::test_sphere_construct PASSED             [ 19%]
dipy/core/tests/test_sphere.py::test_unique_edges PASSED                 [ 19%]
dipy/core/tests/test_sphere.py::test_unique_sets PASSED                  [ 19%]
dipy/core/tests/test_sphere.py::test_faces_from_sphere_vertices SKIPPED  [ 19%]
dipy/core/tests/test_sphere.py::test_sphere_attrs PASSED                 [ 19%]
dipy/core/tests/test_sphere.py::test_edges_faces SKIPPED (Requires S...) [ 19%]
dipy/core/tests/test_sphere.py::test_sphere_subdivide SKIPPED (Requi...) [ 20%]
dipy/core/tests/test_sphere.py::test_sphere_find_closest PASSED          [ 20%]
dipy/core/tests/test_sphere.py::test_hemisphere_find_closest PASSED      [ 20%]
dipy/core/tests/test_sphere.py::test_hemisphere_subdivide SKIPPED (R...) [ 20%]
dipy/core/tests/test_sphere.py::test_hemisphere_constructor PASSED       [ 20%]
dipy/core/tests/test_sphere.py::test_mirror SKIPPED (Requires SCIPY....) [ 20%]
dipy/core/tests/test_sphere.py::test_hemisphere_faces SKIPPED (Requi...) [ 20%]
dipy/core/tests/test_sphere.py::test_get_force PASSED                    [ 20%]
dipy/core/tests/test_sphere.py::test_disperse_charges PASSED             [ 20%]
dipy/core/tests/test_sphere.py::test_disperse_charges_alt PASSED         [ 20%]
dipy/core/tests/test_sphere.py::test_fibonacci_sphere PASSED             [ 21%]
dipy/core/tests/test_subdivide_octahedron.py::test_create_unit_sphere PASSED [ 21%]
dipy/data/tests/test_data.py::test_sphere_dtypes PASSED                  [ 21%]
dipy/data/tests/test_fetcher.py::test_check_md5 PASSED                   [ 21%]
dipy/data/tests/test_fetcher.py::test_make_fetcher PASSED                [ 21%]
dipy/data/tests/test_fetcher.py::test_fetch_data SKIPPED (test skewe...) [ 21%]
dipy/denoise/tests/test_ascm.py::test_ascm_static PASSED                 [ 21%]
dipy/denoise/tests/test_ascm.py::test_ascm_random_noise PASSED           [ 21%]
dipy/denoise/tests/test_ascm.py::test_ascm_rmse_with_nlmeans PASSED      [ 21%]
dipy/denoise/tests/test_ascm.py::test_sharpness PASSED                   [ 21%]
dipy/denoise/tests/test_ascm.py::test_ascm_accuracy PASSED               [ 22%]
dipy/denoise/tests/test_denoise.py::test_denoise PASSED                  [ 22%]
dipy/denoise/tests/test_gibbs.py::test_parallel PASSED                   [ 22%]
dipy/denoise/tests/test_gibbs.py::test_inplace PASSED                    [ 22%]
dipy/denoise/tests/test_gibbs.py::test_gibbs_2d PASSED                   [ 22%]
dipy/denoise/tests/test_gibbs.py::test_gibbs_3d PASSED                   [ 22%]
dipy/denoise/tests/test_gibbs.py::test_gibbs_4d PASSED                   [ 22%]
dipy/denoise/tests/test_gibbs.py::test_swapped_gibbs_2d PASSED           [ 22%]
dipy/denoise/tests/test_gibbs.py::test_swapped_gibbs_3d PASSED           [ 22%]
dipy/denoise/tests/test_gibbs.py::test_swapped_gibbs_4d PASSED           [ 23%]
dipy/denoise/tests/test_gibbs.py::test_gibbs_errors PASSED               [ 23%]
dipy/denoise/tests/test_gibbs.py::test_gibbs_subfunction PASSED          [ 23%]
dipy/denoise/tests/test_gibbs.py::test_non_square_image PASSED           [ 23%]
dipy/denoise/tests/test_kernel.py::test_enhancement_kernel PASSED        [ 23%]
dipy/denoise/tests/test_lpca.py::test_lpca_static PASSED                 [ 23%]
dipy/denoise/tests/test_lpca.py::test_lpca_random_noise PASSED           [ 23%]
dipy/denoise/tests/test_lpca.py::test_lpca_boundary_behaviour PASSED     [ 23%]
dipy/denoise/tests/test_lpca.py::test_lpca_rmse PASSED                   [ 23%]
dipy/denoise/tests/test_lpca.py::test_lpca_sharpness PASSED              [ 23%]
dipy/denoise/tests/test_lpca.py::test_lpca_dtype PASSED                  [ 24%]
dipy/denoise/tests/test_lpca.py::test_lpca_wrong PASSED                  [ 24%]
dipy/denoise/tests/test_lpca.py::test_phantom PASSED                     [ 24%]
dipy/denoise/tests/test_lpca.py::test_lpca_ill_conditioned PASSED        [ 24%]
dipy/denoise/tests/test_lpca.py::test_lpca_radius_wrong_shape PASSED     [ 24%]
dipy/denoise/tests/test_lpca.py::test_lpca_sigma_wrong_shape PASSED      [ 24%]
dipy/denoise/tests/test_lpca.py::test_lpca_no_gtab_no_sigma PASSED       [ 24%]
dipy/denoise/tests/test_lpca.py::test_pca_classifier PASSED              [ 24%]
dipy/denoise/tests/test_lpca.py::test_mppca_in_phantom PASSED            [ 24%]
dipy/denoise/tests/test_lpca.py::test_create_patch_radius_arr PASSED     [ 24%]
dipy/denoise/tests/test_lpca.py::test_compute_patch_size PASSED          [ 25%]
dipy/denoise/tests/test_lpca.py::test_compute_num_samples PASSED         [ 25%]
dipy/denoise/tests/test_lpca.py::test_compute_suggested_patch_radius PASSED [ 25%]
dipy/denoise/tests/test_lpca.py::test_mppca_returned_sigma PASSED        [ 25%]
dipy/denoise/tests/test_nlmeans.py::test_nlmeans_padding PASSED          [ 25%]
dipy/denoise/tests/test_nlmeans.py::test_nlmeans_static PASSED           [ 25%]
dipy/denoise/tests/test_nlmeans.py::test_nlmeans_wrong PASSED            [ 25%]
dipy/denoise/tests/test_nlmeans.py::test_nlmeans_random_noise PASSED     [ 25%]
dipy/denoise/tests/test_nlmeans.py::test_nlmeans_boundary PASSED         [ 25%]
dipy/denoise/tests/test_nlmeans.py::test_nlmeans_4D_and_mask PASSED      [ 25%]
dipy/denoise/tests/test_nlmeans.py::test_nlmeans_dtype PASSED            [ 26%]
dipy/denoise/tests/test_nlmeans.py::test_nlmeans_4d_3dsigma_and_threads PASSED [ 26%]
dipy/denoise/tests/test_noise_estimate.py::test_inv_nchi PASSED          [ 26%]
dipy/denoise/tests/test_noise_estimate.py::test_piesno PASSED            [ 26%]
dipy/denoise/tests/test_noise_estimate.py::test_piesno_type PASSED       [ 26%]
dipy/denoise/tests/test_noise_estimate.py::test_estimate_sigma PASSED    [ 26%]
dipy/denoise/tests/test_noise_estimate.py::test_pca_noise_estimate PASSED [ 26%]
dipy/denoise/tests/test_non_local_means.py::test_nlmeans_static PASSED   [ 26%]
dipy/denoise/tests/test_non_local_means.py::test_nlmeans_random_noise PASSED [ 26%]
dipy/denoise/tests/test_non_local_means.py::test_scalar_sigma PASSED     [ 26%]
dipy/denoise/tests/test_non_local_means.py::test_nlmeans_boundary PASSED [ 27%]
dipy/denoise/tests/test_non_local_means.py::test_nlmeans_wrong PASSED    [ 27%]
dipy/denoise/tests/test_non_local_means.py::test_nlmeans_4D_and_mask PASSED [ 27%]
dipy/denoise/tests/test_non_local_means.py::test_nlmeans_dtype PASSED    [ 27%]
dipy/denoise/tests/test_patch2self.py::test_patch2self_random_noise PASSED [ 27%]
dipy/denoise/tests/test_patch2self.py::test_patch2self_boundary PASSED   [ 27%]
dipy/denoise/tests/test_patch2self.py::test_phantom PASSED               [ 27%]
dipy/direction/tests/test_bootstrap_direction_getter.py::test_bdg_initial_direction PASSED [ 27%]
dipy/direction/tests/test_bootstrap_direction_getter.py::test_bdg_get_direction PASSED [ 27%]
dipy/direction/tests/test_bootstrap_direction_getter.py::test_bdg_residual PASSED [ 27%]
dipy/direction/tests/test_bootstrap_direction_getter.py::test_boot_pmf PASSED [ 28%]
dipy/direction/tests/test_peaks.py::test_peak_directions_nl PASSED       [ 28%]
dipy/direction/tests/test_peaks.py::test_OdfFit PASSED                   [ 28%]
dipy/direction/tests/test_peaks.py::test_peak_directions PASSED          [ 28%]
dipy/direction/tests/test_peaks.py::test_peak_directions_thorough PASSED [ 28%]
dipy/direction/tests/test_peaks.py::test_difference_with_minmax PASSED   [ 28%]
dipy/direction/tests/test_peaks.py::test_degenerate_cases PASSED         [ 28%]
dipy/direction/tests/test_peaks.py::test_peaksFromModel PASSED           [ 28%]
dipy/direction/tests/test_peaks.py::test_peaksFromModelParallel PASSED   [ 28%]
dipy/direction/tests/test_peaks.py::test_peaks_shm_coeff PASSED          [ 28%]
dipy/direction/tests/test_peaks.py::test_reshape_peaks_for_visualization PASSED [ 29%]
dipy/direction/tests/test_pmf.py::test_pmf_val PASSED                    [ 29%]
dipy/direction/tests/test_pmf.py::test_pmf_from_sh PASSED                [ 29%]
dipy/direction/tests/test_pmf.py::test_pmf_from_array PASSED             [ 29%]
dipy/direction/tests/test_prob_direction_getter.py::test_ProbabilisticDirectionGetter PASSED [ 29%]
dipy/direction/tests/test_prob_direction_getter.py::test_DeterministicMaximumDirectionGetter PASSED [ 29%]
dipy/direction/tests/test_ptt_direction_getter.py::test_ptt_tracking SKIPPED [ 29%]
dipy/direction/tests/test_ptt_direction_getter.py::test_PTTDirectionGetter PASSED [ 29%]
dipy/io/tests/test_dpy.py::test_dpy PASSED                               [ 29%]
dipy/io/tests/test_io.py::test_imports PASSED                            [ 29%]
dipy/io/tests/test_io_gradients.py::test_read_bvals_bvecs PASSED         [ 30%]
dipy/io/tests/test_io_peaks.py::test_io_peaks PASSED                     [ 30%]
dipy/io/tests/test_io_peaks.py::test_io_save_peaks_error PASSED          [ 30%]
dipy/io/tests/test_stateful_tractogram.py::test_direct_trx_loading SKIPPED [ 30%]
dipy/io/tests/test_stateful_tractogram.py::test_trk_equal_in_vox_space SKIPPED [ 30%]
dipy/io/tests/test_stateful_tractogram.py::test_tck_equal_in_vox_space SKIPPED [ 30%]
dipy/io/tests/test_stateful_tractogram.py::test_trx_equal_in_vox_space SKIPPED [ 30%]
dipy/io/tests/test_stateful_tractogram.py::test_fib_equal_in_vox_space SKIPPED [ 30%]
dipy/io/tests/test_stateful_tractogram.py::test_dpy_equal_in_vox_space SKIPPED [ 30%]
dipy/io/tests/test_stateful_tractogram.py::test_trk_equal_in_rasmm_space SKIPPED [ 30%]
dipy/io/tests/test_stateful_tractogram.py::test_tck_equal_in_rasmm_space SKIPPED [ 31%]
dipy/io/tests/test_stateful_tractogram.py::test_trx_equal_in_rasmm_space SKIPPED [ 31%]
dipy/io/tests/test_stateful_tractogram.py::test_fib_equal_in_rasmm_space SKIPPED [ 31%]
dipy/io/tests/test_stateful_tractogram.py::test_dpy_equal_in_rasmm_space SKIPPED [ 31%]
dipy/io/tests/test_stateful_tractogram.py::test_trk_equal_in_voxmm_space SKIPPED [ 31%]
dipy/io/tests/test_stateful_tractogram.py::test_tck_equal_in_voxmm_space SKIPPED [ 31%]
dipy/io/tests/test_stateful_tractogram.py::test_trx_equal_in_voxmm_space SKIPPED [ 31%]
dipy/io/tests/test_stateful_tractogram.py::test_fib_equal_in_voxmm_space SKIPPED [ 31%]
dipy/io/tests/test_stateful_tractogram.py::test_dpy_equal_in_voxmm_space SKIPPED [ 31%]
dipy/io/tests/test_stateful_tractogram.py::test_switch_voxel_sizes_from_rasmm SKIPPED [ 31%]
dipy/io/tests/test_stateful_tractogram.py::test_switch_voxel_sizes_from_voxmm SKIPPED [ 32%]
dipy/io/tests/test_stateful_tractogram.py::test_to_rasmm_equivalence SKIPPED [ 32%]
dipy/io/tests/test_stateful_tractogram.py::test_to_voxmm_equivalence SKIPPED [ 32%]
dipy/io/tests/test_stateful_tractogram.py::test_to_vox_equivalence SKIPPED [ 32%]
dipy/io/tests/test_stateful_tractogram.py::test_to_corner_equivalence SKIPPED [ 32%]
dipy/io/tests/test_stateful_tractogram.py::test_to_center_equivalence SKIPPED [ 32%]
dipy/io/tests/test_stateful_tractogram.py::test_empty_sft_case SKIPPED   [ 32%]
dipy/io/tests/test_stateful_tractogram.py::test_trk_iterative_saving_loading SKIPPED [ 32%]
dipy/io/tests/test_stateful_tractogram.py::test_tck_iterative_saving_loading SKIPPED [ 32%]
dipy/io/tests/test_stateful_tractogram.py::test_trx_iterative_saving_loading SKIPPED [ 32%]
dipy/io/tests/test_stateful_tractogram.py::test_fib_iterative_saving_loading SKIPPED [ 33%]
dipy/io/tests/test_stateful_tractogram.py::test_dpy_iterative_saving_loading SKIPPED [ 33%]
dipy/io/tests/test_stateful_tractogram.py::test_iterative_to_vox_transformation SKIPPED [ 33%]
dipy/io/tests/test_stateful_tractogram.py::test_iterative_to_voxmm_transformation SKIPPED [ 33%]
dipy/io/tests/test_stateful_tractogram.py::test_empty_space_change SKIPPED [ 33%]
dipy/io/tests/test_stateful_tractogram.py::test_empty_shift_change SKIPPED [ 33%]
dipy/io/tests/test_stateful_tractogram.py::test_empty_remove_invalid SKIPPED [ 33%]
dipy/io/tests/test_stateful_tractogram.py::test_shift_corner_from_rasmm SKIPPED [ 33%]
dipy/io/tests/test_stateful_tractogram.py::test_shift_corner_from_voxmm SKIPPED [ 33%]
dipy/io/tests/test_stateful_tractogram.py::test_iterative_shift_corner SKIPPED [ 34%]
dipy/io/tests/test_stateful_tractogram.py::test_replace_streamlines SKIPPED [ 34%]
dipy/io/tests/test_stateful_tractogram.py::test_subsample_streamlines SKIPPED [ 34%]
dipy/io/tests/test_stateful_tractogram.py::test_reassign_both_data_sep_to_empty SKIPPED [ 34%]
dipy/io/tests/test_stateful_tractogram.py::test_reassign_both_data_sep SKIPPED [ 34%]
dipy/io/tests/test_stateful_tractogram.py::test_bounding_bbox_valid[Origin.NIFTI] SKIPPED [ 34%]
dipy/io/tests/test_stateful_tractogram.py::test_bounding_bbox_valid[Origin.TRACKVIS] SKIPPED [ 34%]
dipy/io/tests/test_stateful_tractogram.py::test_random_point_color SKIPPED [ 34%]
dipy/io/tests/test_stateful_tractogram.py::test_random_point_gray SKIPPED [ 34%]
dipy/io/tests/test_stateful_tractogram.py::test_random_streamline_color SKIPPED [ 34%]
dipy/io/tests/test_stateful_tractogram.py::test_out_of_grid[100-True] SKIPPED [ 35%]
dipy/io/tests/test_stateful_tractogram.py::test_out_of_grid[-100-True] SKIPPED [ 35%]
dipy/io/tests/test_stateful_tractogram.py::test_out_of_grid[0-False] SKIPPED [ 35%]
dipy/io/tests/test_stateful_tractogram.py::test_data_per_point_consistency_addition SKIPPED [ 35%]
dipy/io/tests/test_stateful_tractogram.py::test_data_per_streamline_consistency_addition SKIPPED [ 35%]
dipy/io/tests/test_stateful_tractogram.py::test_space_consistency_addition SKIPPED [ 35%]
dipy/io/tests/test_stateful_tractogram.py::test_origin_consistency_addition SKIPPED [ 35%]
dipy/io/tests/test_stateful_tractogram.py::test_space_attributes_consistency_addition SKIPPED [ 35%]
dipy/io/tests/test_stateful_tractogram.py::test_equality SKIPPED ("T...) [ 35%]
dipy/io/tests/test_stateful_tractogram.py::test_basic_slicing SKIPPED    [ 35%]
dipy/io/tests/test_stateful_tractogram.py::test_space_side_effect_slicing SKIPPED [ 36%]
dipy/io/tests/test_stateful_tractogram.py::test_origin_side_effect_slicing SKIPPED [ 36%]
dipy/io/tests/test_stateful_tractogram.py::test_advanced_slicing SKIPPED [ 36%]
dipy/io/tests/test_stateful_tractogram.py::test_basic_addition SKIPPED   [ 36%]
dipy/io/tests/test_stateful_tractogram.py::test_space_side_effect_addition SKIPPED [ 36%]
dipy/io/tests/test_stateful_tractogram.py::test_origin_side_effect_addition SKIPPED [ 36%]
dipy/io/tests/test_stateful_tractogram.py::test_invalid_streamlines SKIPPED [ 36%]
dipy/io/tests/test_stateful_tractogram.py::test_invalid_streamlines_epsilon SKIPPED [ 36%]
dipy/io/tests/test_stateful_tractogram.py::test_create_from_sft SKIPPED  [ 36%]
dipy/io/tests/test_stateful_tractogram.py::test_init_dtype_dict_attributes SKIPPED [ 36%]
dipy/io/tests/test_stateful_tractogram.py::test_set_dtype_dict_attributes SKIPPED [ 37%]
dipy/io/tests/test_stateful_tractogram.py::test_set_partial_dtype_dict_attributes SKIPPED [ 37%]
dipy/io/tests/test_stateful_tractogram.py::test_non_existing_dtype_dict_attributes SKIPPED [ 37%]
dipy/io/tests/test_stateful_tractogram.py::test_from_sft_dtype_dict_attributes SKIPPED [ 37%]
dipy/io/tests/test_stateful_tractogram.py::test_slicing_dtype_dict_attributes SKIPPED [ 37%]
dipy/io/tests/test_streamline.py::test_io_trk SKIPPED ("Tests Data f...) [ 37%]
dipy/io/tests/test_streamline.py::test_io_tck SKIPPED ("Tests Data f...) [ 37%]
dipy/io/tests/test_streamline.py::test_io_trx SKIPPED ("Tests Data f...) [ 37%]
dipy/io/tests/test_streamline.py::test_io_vtk SKIPPED (Requires FURY)    [ 37%]
dipy/io/tests/test_streamline.py::test_io_vtp SKIPPED (Requires FURY)    [ 37%]
dipy/io/tests/test_streamline.py::test_io_dpy SKIPPED ("Tests Data f...) [ 38%]
dipy/io/tests/test_streamline.py::test_low_io_vtk SKIPPED (Requires ...) [ 38%]
dipy/io/tests/test_streamline.py::test_io_trk_load SKIPPED ("Tests D...) [ 38%]
dipy/io/tests/test_streamline.py::test_io_trk_save SKIPPED ("Tests D...) [ 38%]
dipy/io/tests/test_utils.py::test_decfa SKIPPED ("Tests Data failed ...) [ 38%]
dipy/io/tests/test_utils.py::test_reference_info_validity SKIPPED ("...) [ 38%]
dipy/io/tests/test_utils.py::test_reference_trk_file_info_identical SKIPPED [ 38%]
dipy/io/tests/test_utils.py::test_reference_trx_file_info_identical SKIPPED [ 38%]
dipy/io/tests/test_utils.py::test_reference_obj_info_identical SKIPPED   [ 38%]
dipy/io/tests/test_utils.py::test_reference_header_info_identical SKIPPED [ 38%]
dipy/io/tests/test_utils.py::test_all_zeros_affine SKIPPED ("Tests D...) [ 39%]
dipy/io/tests/test_utils.py::test_read_img_arr_or_path SKIPPED ("Tes...) [ 39%]
dipy/nn/tests/test_cnn_1denoiser.py::test_default_Cnn1DDenoiser_sequential SKIPPED [ 39%]
dipy/nn/tests/test_cnn_1denoiser.py::test_default_Cnn1DDenoiser_flow SKIPPED [ 39%]
dipy/nn/tests/test_deepn4.py::test_default_weights SKIPPED (Requires...) [ 39%]
dipy/nn/tests/test_deepn4.py::test_default_weights_batch SKIPPED (Re...) [ 39%]
dipy/nn/tests/test_evac.py::test_default_weights SKIPPED (Requires T...) [ 39%]
dipy/nn/tests/test_evac.py::test_default_weights_batch SKIPPED (Requ...) [ 39%]
dipy/nn/tests/test_evac.py::test_T1_error SKIPPED (Requires TensorFlow)  [ 39%]
dipy/nn/tests/test_histo_resdnn.py::test_default_weights SKIPPED (Re...) [ 39%]
dipy/nn/tests/test_histo_resdnn.py::test_predict_shape_and_masking SKIPPED [ 40%]
dipy/nn/tests/test_histo_resdnn.py::test_wrong_sh_order_weights SKIPPED  [ 40%]
dipy/nn/tests/test_histo_resdnn.py::test_wrong_sh_order_input SKIPPED    [ 40%]
dipy/nn/tests/test_synb0.py::test_default_weights SKIPPED (Requires ...) [ 40%]
dipy/nn/tests/test_synb0.py::test_default_weights_batch SKIPPED (Req...) [ 40%]
dipy/nn/tests/test_tf.py::test_default_mnist_sequential SKIPPED (Req...) [ 40%]
dipy/nn/tests/test_tf.py::test_default_mnist_slp SKIPPED (Requires T...) [ 40%]
dipy/nn/tests/test_tf.py::test_default_mnist_mlp SKIPPED (Requires T...) [ 40%]
dipy/nn/tests/test_utils.py::test_norm PASSED                            [ 40%]
dipy/nn/tests/test_utils.py::test_transform PASSED                       [ 40%]
dipy/reconst/tests/test_cache.py::test_basic_cache PASSED                [ 41%]
dipy/reconst/tests/test_cross_validation.py::test_coeff_of_determination PASSED [ 41%]
dipy/reconst/tests/test_cross_validation.py::test_dti_xval PASSED        [ 41%]
dipy/reconst/tests/test_cross_validation.py::test_csd_xval PASSED        [ 41%]
dipy/reconst/tests/test_cross_validation.py::test_no_predict PASSED      [ 41%]
dipy/reconst/tests/test_csdeconv.py::test_auto_response_deprecated PASSED [ 41%]
dipy/reconst/tests/test_csdeconv.py::test_response_from_mask_deprecated PASSED [ 41%]
dipy/reconst/tests/test_csdeconv.py::test_recursive_response_calibration PASSED [ 41%]
dipy/reconst/tests/test_csdeconv.py::test_mask_for_response_ssst PASSED  [ 41%]
dipy/reconst/tests/test_csdeconv.py::test_mask_for_response_ssst_nvoxels PASSED [ 41%]
dipy/reconst/tests/test_csdeconv.py::test_response_from_mask_ssst PASSED [ 42%]
dipy/reconst/tests/test_csdeconv.py::test_auto_response_ssst PASSED      [ 42%]
dipy/reconst/tests/test_csdeconv.py::test_csdeconv PASSED                [ 42%]
dipy/reconst/tests/test_csdeconv.py::test_odfdeconv PASSED               [ 42%]
dipy/reconst/tests/test_csdeconv.py::test_odf_sh_to_sharp PASSED         [ 42%]
dipy/reconst/tests/test_csdeconv.py::test_forward_sdeconv_mat PASSED     [ 42%]
dipy/reconst/tests/test_csdeconv.py::test_r2_term_odf_sharp PASSED       [ 42%]
dipy/reconst/tests/test_csdeconv.py::test_csd_predict PASSED             [ 42%]
dipy/reconst/tests/test_csdeconv.py::test_csd_predict_multi PASSED       [ 42%]
dipy/reconst/tests/test_csdeconv.py::test_sphere_scaling_csdmodel PASSED [ 42%]
dipy/reconst/tests/test_csdeconv.py::test_default_lambda_csdmodel PASSED [ 43%]
dipy/reconst/tests/test_csdeconv.py::test_csd_superres PASSED            [ 43%]
dipy/reconst/tests/test_csdeconv.py::test_csd_convergence PASSED         [ 43%]
dipy/reconst/tests/test_cti.py::test_cti_prediction PASSED               [ 43%]
dipy/reconst/tests/test_cti.py::test_split_cti_param PASSED              [ 43%]
dipy/reconst/tests/test_cti.py::test_cti_fits PASSED                     [ 43%]
dipy/reconst/tests/test_cti.py::test_cti_errors PASSED                   [ 43%]
dipy/reconst/tests/test_cti.py::test_cti_design_matrix PASSED            [ 43%]
dipy/reconst/tests/test_dki.py::test_positive_evals PASSED               [ 43%]
dipy/reconst/tests/test_dki.py::test_split_dki_param PASSED              [ 43%]
dipy/reconst/tests/test_dki.py::test_dki_fits PASSED                     [ 44%]
dipy/reconst/tests/test_dki.py::test_apparent_kurtosis_coef PASSED       [ 44%]
dipy/reconst/tests/test_dki.py::test_dki_predict PASSED                  [ 44%]
dipy/reconst/tests/test_dki.py::test_carlson_rf PASSED                   [ 44%]
dipy/reconst/tests/test_dki.py::test_carlson_rd PASSED                   [ 44%]
dipy/reconst/tests/test_dki.py::test_Wrotate_single_fiber PASSED         [ 44%]
dipy/reconst/tests/test_dki.py::test_Wrotate_crossing_fibers PASSED      [ 44%]
dipy/reconst/tests/test_dki.py::test_Wcons PASSED                        [ 44%]
dipy/reconst/tests/test_dki.py::test_spherical_dki_statistics PASSED     [ 44%]
dipy/reconst/tests/test_dki.py::test_compare_MK_method PASSED            [ 45%]
dipy/reconst/tests/test_dki.py::test_single_voxel_DKI_stats PASSED       [ 45%]
dipy/reconst/tests/test_dki.py::test_compare_RK_methods PASSED           [ 45%]
dipy/reconst/tests/test_dki.py::test_MK_singularities PASSED             [ 45%]
dipy/reconst/tests/test_dki.py::test_dki_errors PASSED                   [ 45%]
dipy/reconst/tests/test_dki.py::test_kurtosis_maximum PASSED             [ 45%]
dipy/reconst/tests/test_dki.py::test_multi_voxel_kurtosis_maximum PASSED [ 45%]
dipy/reconst/tests/test_dki.py::test_kurtosis_fa PASSED                  [ 45%]
dipy/reconst/tests/test_dki_micro.py::test_single_fiber_model PASSED     [ 45%]
dipy/reconst/tests/test_dki_micro.py::test_wmti_model_multi_voxel PASSED [ 45%]
dipy/reconst/tests/test_dki_micro.py::test_dki_micro_predict_single_voxel PASSED [ 46%]
dipy/reconst/tests/test_dki_micro.py::test_dki_micro_predict_multi_voxel PASSED [ 46%]
dipy/reconst/tests/test_dki_micro.py::test_dki_micro_awf_only PASSED     [ 46%]
dipy/reconst/tests/test_dsi.py::test_dsi PASSED                          [ 46%]
dipy/reconst/tests/test_dsi.py::test_multivox_dsi PASSED                 [ 46%]
dipy/reconst/tests/test_dsi.py::test_multib0_dsi PASSED                  [ 46%]
dipy/reconst/tests/test_dsi_deconv.py::test_dsi PASSED                   [ 46%]
dipy/reconst/tests/test_dsi_deconv.py::test_multivox_dsi PASSED          [ 46%]
dipy/reconst/tests/test_dsi_metrics.py::test_dsi_metrics PASSED          [ 46%]
dipy/reconst/tests/test_dti.py::test_roll_evals PASSED                   [ 46%]
dipy/reconst/tests/test_dti.py::test_tensor_algebra PASSED               [ 47%]
dipy/reconst/tests/test_dti.py::test_odf_with_zeros PASSED               [ 47%]
dipy/reconst/tests/test_dti.py::test_tensor_model PASSED                 [ 47%]
dipy/reconst/tests/test_dti.py::test_indexing_on_tensor_fit PASSED       [ 47%]
dipy/reconst/tests/test_dti.py::test_fa_of_zero PASSED                   [ 47%]
dipy/reconst/tests/test_dti.py::test_ga_of_zero PASSED                   [ 47%]
dipy/reconst/tests/test_dti.py::test_diffusivities PASSED                [ 47%]
dipy/reconst/tests/test_dti.py::test_color_fa PASSED                     [ 47%]
dipy/reconst/tests/test_dti.py::test_wls_and_ls_fit PASSED               [ 47%]
dipy/reconst/tests/test_dti.py::test_masked_array_with_tensor PASSED     [ 47%]
dipy/reconst/tests/test_dti.py::test_fit_method_error PASSED             [ 48%]
dipy/reconst/tests/test_dti.py::test_lower_triangular PASSED             [ 48%]
dipy/reconst/tests/test_dti.py::test_from_lower_triangular PASSED        [ 48%]
dipy/reconst/tests/test_dti.py::test_all_constant PASSED                 [ 48%]
dipy/reconst/tests/test_dti.py::test_all_zeros PASSED                    [ 48%]
dipy/reconst/tests/test_dti.py::test_mask PASSED                         [ 48%]
dipy/reconst/tests/test_dti.py::test_nnls_jacobian_func PASSED           [ 48%]
dipy/reconst/tests/test_dti.py::test_nlls_fit_tensor PASSED              [ 48%]
dipy/reconst/tests/test_dti.py::test_restore PASSED                      [ 48%]
dipy/reconst/tests/test_dti.py::test_adc PASSED                          [ 48%]
dipy/reconst/tests/test_dti.py::test_predict PASSED                      [ 49%]
dipy/reconst/tests/test_dti.py::test_eig_from_lo_tri PASSED              [ 49%]
dipy/reconst/tests/test_dti.py::test_min_signal_alone PASSED             [ 49%]
dipy/reconst/tests/test_dti.py::test_decompose_tensor_nan PASSED         [ 49%]
dipy/reconst/tests/test_dti.py::test_design_matrix_lte PASSED            [ 49%]
dipy/reconst/tests/test_eudx_dg.py::test_EuDXDirectionGetter PASSED      [ 49%]
dipy/reconst/tests/test_forecast.py::test_forecast_positive_constrain SKIPPED [ 49%]
dipy/reconst/tests/test_forecast.py::test_forecast_csd PASSED            [ 49%]
dipy/reconst/tests/test_forecast.py::test_forecast_odf PASSED            [ 49%]
dipy/reconst/tests/test_forecast.py::test_forecast_indices PASSED        [ 49%]
dipy/reconst/tests/test_forecast.py::test_forecast_predict PASSED        [ 50%]
dipy/reconst/tests/test_forecast.py::test_multivox_forecast PASSED       [ 50%]
dipy/reconst/tests/test_fwdti.py::test_fwdti_singlevoxel PASSED          [ 50%]
dipy/reconst/tests/test_fwdti.py::test_fwdti_precision PASSED            [ 50%]
dipy/reconst/tests/test_fwdti.py::test_fwdti_multi_voxel PASSED          [ 50%]
dipy/reconst/tests/test_fwdti.py::test_fwdti_predictions PASSED          [ 50%]
dipy/reconst/tests/test_fwdti.py::test_fwdti_errors PASSED               [ 50%]
dipy/reconst/tests/test_fwdti.py::test_fwdti_restore PASSED              [ 50%]
dipy/reconst/tests/test_fwdti.py::test_cholesky_functions PASSED         [ 50%]
dipy/reconst/tests/test_fwdti.py::test_fwdti_jac_multi_voxel PASSED      [ 50%]
dipy/reconst/tests/test_fwdti.py::test_standalone_functions PASSED       [ 51%]
dipy/reconst/tests/test_fwdti.py::test_md_regularization PASSED          [ 51%]
dipy/reconst/tests/test_fwdti.py::test_negative_s0 PASSED                [ 51%]
dipy/reconst/tests/test_gqi.py::test_gqi PASSED                          [ 51%]
dipy/reconst/tests/test_gqi.py::test_mvoxel_gqi PASSED                   [ 51%]
dipy/reconst/tests/test_ivim.py::test_single_voxel_fit PASSED            [ 51%]
dipy/reconst/tests/test_ivim.py::test_multivoxel PASSED                  [ 51%]
dipy/reconst/tests/test_ivim.py::test_ivim_errors PASSED                 [ 51%]
dipy/reconst/tests/test_ivim.py::test_mask PASSED                        [ 51%]
dipy/reconst/tests/test_ivim.py::test_with_higher_S0 PASSED              [ 51%]
dipy/reconst/tests/test_ivim.py::test_b0_threshold_greater_than0 PASSED  [ 52%]
dipy/reconst/tests/test_ivim.py::test_bounds_x0 PASSED                   [ 52%]
dipy/reconst/tests/test_ivim.py::test_predict PASSED                     [ 52%]
dipy/reconst/tests/test_ivim.py::test_fit_object PASSED                  [ 52%]
dipy/reconst/tests/test_ivim.py::test_shape PASSED                       [ 52%]
dipy/reconst/tests/test_ivim.py::test_multiple_b0 PASSED                 [ 52%]
dipy/reconst/tests/test_ivim.py::test_no_b0 PASSED                       [ 52%]
dipy/reconst/tests/test_ivim.py::test_noisy_fit PASSED                   [ 52%]
dipy/reconst/tests/test_ivim.py::test_S0 PASSED                          [ 52%]
dipy/reconst/tests/test_ivim.py::test_perfusion_fraction PASSED          [ 52%]
dipy/reconst/tests/test_ivim.py::test_D_star PASSED                      [ 53%]
dipy/reconst/tests/test_ivim.py::test_D PASSED                           [ 53%]
dipy/reconst/tests/test_ivim.py::test_estimate_linear_fit PASSED         [ 53%]
dipy/reconst/tests/test_ivim.py::test_estimate_f_D_star PASSED           [ 53%]
dipy/reconst/tests/test_ivim.py::test_fit_one_stage PASSED               [ 53%]
dipy/reconst/tests/test_ivim.py::test_leastsq_failing PASSED             [ 53%]
dipy/reconst/tests/test_ivim.py::test_leastsq_error PASSED               [ 53%]
dipy/reconst/tests/test_ivim.py::test_perfusion_fraction_vp SKIPPED      [ 53%]
dipy/reconst/tests/test_ivim.py::test_D_star_vp SKIPPED (REQUIRES CVXPY) [ 53%]
dipy/reconst/tests/test_ivim.py::test_D_vp SKIPPED (REQUIRES CVXPY)      [ 53%]
dipy/reconst/tests/test_mapmri.py::test_orthogonality_basis_functions PASSED [ 54%]
dipy/reconst/tests/test_mapmri.py::test_mapmri_number_of_coefficients PASSED [ 54%]
dipy/reconst/tests/test_mapmri.py::test_mapmri_initialize_radial_error PASSED [ 54%]
dipy/reconst/tests/test_mapmri.py::test_mapmri_initialize_gcv PASSED     [ 54%]
dipy/reconst/tests/test_mapmri.py::test_mapmri_initialize_pos_radius PASSED [ 54%]
dipy/reconst/tests/test_mapmri.py::test_mapmri_signal_fitting PASSED     [ 54%]
dipy/reconst/tests/test_mapmri.py::test_mapmri_isotropic_static_scale_factor PASSED [ 54%]
dipy/reconst/tests/test_mapmri.py::test_mapmri_signal_fitting_over_radial_order PASSED [ 54%]
dipy/reconst/tests/test_mapmri.py::test_mapmri_pdf_integral_unity PASSED [ 54%]
dipy/reconst/tests/test_mapmri.py::test_mapmri_compare_fitted_pdf_with_multi_tensor PASSED [ 54%]
dipy/reconst/tests/test_mapmri.py::test_mapmri_metrics_anisotropic PASSED [ 55%]
dipy/reconst/tests/test_mapmri.py::test_mapmri_metrics_isotropic PASSED  [ 55%]
dipy/reconst/tests/test_mapmri.py::test_mapmri_laplacian_anisotropic PASSED [ 55%]
dipy/reconst/tests/test_mapmri.py::test_mapmri_laplacian_isotropic PASSED [ 55%]
dipy/reconst/tests/test_mapmri.py::test_signal_fitting_equality_anisotropic_isotropic PASSED [ 55%]
dipy/reconst/tests/test_mapmri.py::test_mapmri_isotropic_design_matrix_separability PASSED [ 55%]
dipy/reconst/tests/test_mapmri.py::test_estimate_radius_with_rtap PASSED [ 55%]
dipy/reconst/tests/test_mapmri.py::test_positivity_constraint SKIPPED    [ 55%]
dipy/reconst/tests/test_mapmri.py::test_plus_constraint SKIPPED (Req...) [ 55%]
dipy/reconst/tests/test_mapmri.py::test_laplacian_regularization PASSED  [ 56%]
dipy/reconst/tests/test_mapmri.py::test_mapmri_odf PASSED                [ 56%]
dipy/reconst/tests/test_mcsd.py::test_mcsd_model_delta SKIPPED (Requ...) [ 56%]
dipy/reconst/tests/test_mcsd.py::test_MultiShellDeconvModel_response SKIPPED [ 56%]
dipy/reconst/tests/test_mcsd.py::test_MultiShellDeconvModel SKIPPED      [ 56%]
dipy/reconst/tests/test_mcsd.py::test_MSDeconvFit SKIPPED (Requires ...) [ 56%]
dipy/reconst/tests/test_mcsd.py::test_multi_shell_fiber_response PASSED  [ 56%]
dipy/reconst/tests/test_mcsd.py::test_mask_for_response_msmt PASSED      [ 56%]
dipy/reconst/tests/test_mcsd.py::test_mask_for_response_msmt_nvoxels PASSED [ 56%]
dipy/reconst/tests/test_mcsd.py::test_response_from_mask_msmt PASSED     [ 56%]
dipy/reconst/tests/test_mcsd.py::test_auto_response_msmt PASSED          [ 57%]
dipy/reconst/tests/test_msdki.py::test_msdki_predict PASSED              [ 57%]
dipy/reconst/tests/test_msdki.py::test_errors PASSED                     [ 57%]
dipy/reconst/tests/test_msdki.py::test_design_matrix PASSED              [ 57%]
dipy/reconst/tests/test_msdki.py::test_msignal PASSED                    [ 57%]
dipy/reconst/tests/test_msdki.py::test_msdki_statistics PASSED           [ 57%]
dipy/reconst/tests/test_msdki.py::test_kurtosis_to_smt2_conversion PASSED [ 57%]
dipy/reconst/tests/test_msdki.py::test_smt2_metrics PASSED               [ 57%]
dipy/reconst/tests/test_msdki.py::test_smt2_specific_cases PASSED        [ 57%]
dipy/reconst/tests/test_multi_voxel.py::test_squash PASSED               [ 57%]
dipy/reconst/tests/test_multi_voxel.py::test_CallableArray PASSED        [ 58%]
dipy/reconst/tests/test_multi_voxel.py::test_multi_voxel_fit PASSED      [ 58%]
dipy/reconst/tests/test_odf.py::test_OdfFit PASSED                       [ 58%]
dipy/reconst/tests/test_odf.py::test_minmax_normalize PASSED             [ 58%]
dipy/reconst/tests/test_odf.py::test_gfa PASSED                          [ 58%]
dipy/reconst/tests/test_peak_finding.py::test_local_maxima PASSED        [ 58%]
dipy/reconst/tests/test_peak_finding.py::test_remove_similar_peaks PASSED [ 58%]
dipy/reconst/tests/test_peak_finding.py::test_search_descending PASSED   [ 58%]
dipy/reconst/tests/test_qtdmri.py::test_input_parameters PASSED          [ 58%]
dipy/reconst/tests/test_qtdmri.py::test_orthogonality_temporal_basis_functions PASSED [ 58%]
dipy/reconst/tests/test_qtdmri.py::test_anisotropic_isotropic_equivalence PASSED [ 59%]
dipy/reconst/tests/test_qtdmri.py::test_cartesian_normalization PASSED   [ 59%]
dipy/reconst/tests/test_qtdmri.py::test_spherical_normalization PASSED   [ 59%]
dipy/reconst/tests/test_qtdmri.py::test_anisotropic_reduced_MSE PASSED   [ 59%]
dipy/reconst/tests/test_qtdmri.py::test_number_of_coefficients PASSED    [ 59%]
dipy/reconst/tests/test_qtdmri.py::test_calling_cartesian_laplacian_with_precomputed_matrices PASSED [ 59%]
dipy/reconst/tests/test_qtdmri.py::test_calling_spherical_laplacian_with_precomputed_matrices PASSED [ 59%]
dipy/reconst/tests/test_qtdmri.py::test_q0_constraint_and_unity_of_ODFs SKIPPED [ 59%]
dipy/reconst/tests/test_qtdmri.py::test_laplacian_reduces_laplacian_norm SKIPPED [ 59%]
dipy/reconst/tests/test_qtdmri.py::test_spherical_laplacian_reduces_laplacian_norm SKIPPED [ 59%]
dipy/reconst/tests/test_qtdmri.py::test_laplacian_GCV_higher_weight_with_noise SKIPPED [ 60%]
dipy/reconst/tests/test_qtdmri.py::test_l1_increases_sparsity SKIPPED    [ 60%]
dipy/reconst/tests/test_qtdmri.py::test_spherical_l1_increases_sparsity SKIPPED [ 60%]
dipy/reconst/tests/test_qtdmri.py::test_l1_CV SKIPPED (REQUIRES CVXPY)   [ 60%]
dipy/reconst/tests/test_qtdmri.py::test_elastic_GCV_CV SKIPPED (REQU...) [ 60%]
dipy/reconst/tests/test_qtdmri.py::test_visualise_gradient_table_G_Delta_rainbow SKIPPED [ 60%]
dipy/reconst/tests/test_qti.py::test_from_3x3_to_6x1 PASSED              [ 60%]
dipy/reconst/tests/test_qti.py::test_from_6x1_to_3x3 PASSED              [ 60%]
dipy/reconst/tests/test_qti.py::test_from_6x6_to_21x1 PASSED             [ 60%]
dipy/reconst/tests/test_qti.py::test_from_21x1_to_6x6 PASSED             [ 60%]
dipy/reconst/tests/test_qti.py::test_cvxpy_1x6_to_3x3 PASSED             [ 61%]
dipy/reconst/tests/test_qti.py::test_cvxpy_1x21_to_6x6 PASSED            [ 61%]
dipy/reconst/tests/test_qti.py::test_helper_tensors PASSED               [ 61%]
dipy/reconst/tests/test_qti.py::test_dtd_covariance PASSED               [ 61%]
dipy/reconst/tests/test_qti.py::test_qti_signal PASSED                   [ 61%]
dipy/reconst/tests/test_qti.py::test_design_matrix PASSED                [ 61%]
dipy/reconst/tests/test_qti.py::test_ls_sdp_fits PASSED                  [ 61%]
dipy/reconst/tests/test_qti.py::test_qti_model PASSED                    [ 61%]
dipy/reconst/tests/test_qti.py::test_qti_fit PASSED                      [ 61%]
dipy/reconst/tests/test_reco_utils.py::test_adj_countarrs PASSED         [ 61%]
dipy/reconst/tests/test_reco_utils.py::test_argmax_from_countarrs PASSED [ 62%]
dipy/reconst/tests/test_rumba.py::test_rumba PASSED                      [ 62%]
dipy/reconst/tests/test_rumba.py::test_predict PASSED                    [ 62%]
dipy/reconst/tests/test_rumba.py::test_recursive_rumba PASSED            [ 62%]
dipy/reconst/tests/test_rumba.py::test_multishell_rumba PASSED           [ 62%]
dipy/reconst/tests/test_rumba.py::test_mvoxel_rumba PASSED               [ 62%]
dipy/reconst/tests/test_rumba.py::test_global_fit PASSED                 [ 62%]
dipy/reconst/tests/test_rumba.py::test_mvoxel_global_fit PASSED          [ 62%]
dipy/reconst/tests/test_rumba.py::test_generate_kernel PASSED            [ 62%]
dipy/reconst/tests/test_sfm.py::test_design_matrix PASSED                [ 62%]
dipy/reconst/tests/test_sfm.py::test_sfm PASSED                          [ 63%]
dipy/reconst/tests/test_sfm.py::test_predict PASSED                      [ 63%]
dipy/reconst/tests/test_sfm.py::test_sfm_background PASSED               [ 63%]
dipy/reconst/tests/test_sfm.py::test_sfm_stick PASSED                    [ 63%]
dipy/reconst/tests/test_sfm.py::test_sfm_sklearnlinearsolver PASSED      [ 63%]
dipy/reconst/tests/test_sfm.py::test_exponential_iso PASSED              [ 63%]
dipy/reconst/tests/test_shm.py::test_order_from_ncoeff PASSED            [ 63%]
dipy/reconst/tests/test_shm.py::test_sph_harm_ind_list PASSED            [ 63%]
dipy/reconst/tests/test_shm.py::test_real_sh_descoteaux_from_index PASSED [ 63%]
dipy/reconst/tests/test_shm.py::test_gen_dirac PASSED                    [ 63%]
dipy/reconst/tests/test_shm.py::test_real_sym_sh_mrtrix PASSED           [ 64%]
dipy/reconst/tests/test_shm.py::test_real_sym_sh_basis PASSED            [ 64%]
dipy/reconst/tests/test_shm.py::test_real_sh_descoteaux1 PASSED          [ 64%]
dipy/reconst/tests/test_shm.py::test_real_sh_tournier PASSED             [ 64%]
dipy/reconst/tests/test_shm.py::test_real_sh_descoteaux2 PASSED          [ 64%]
dipy/reconst/tests/test_shm.py::test_sh_to_sf_matrix PASSED              [ 64%]
dipy/reconst/tests/test_shm.py::test_smooth_pinv PASSED                  [ 64%]
dipy/reconst/tests/test_shm.py::test_normalize_data PASSED               [ 64%]
dipy/reconst/tests/test_shm.py::TestQballModel::test_single_voxel_fit PASSED [ 64%]
dipy/reconst/tests/test_shm.py::TestQballModel::test_mulit_voxel_fit PASSED [ 64%]
dipy/reconst/tests/test_shm.py::TestQballModel::test_sh_order PASSED     [ 65%]
dipy/reconst/tests/test_shm.py::TestQballModel::test_gfa PASSED          [ 65%]
dipy/reconst/tests/test_shm.py::TestQballModel::test_min_signal_default PASSED [ 65%]
dipy/reconst/tests/test_shm.py::test_SphHarmFit PASSED                   [ 65%]
dipy/reconst/tests/test_shm.py::TestOpdtModel::test_single_voxel_fit PASSED [ 65%]
dipy/reconst/tests/test_shm.py::TestOpdtModel::test_mulit_voxel_fit PASSED [ 65%]
dipy/reconst/tests/test_shm.py::TestOpdtModel::test_sh_order PASSED      [ 65%]
dipy/reconst/tests/test_shm.py::TestOpdtModel::test_gfa PASSED           [ 65%]
dipy/reconst/tests/test_shm.py::TestOpdtModel::test_min_signal_default PASSED [ 65%]
dipy/reconst/tests/test_shm.py::TestCsaOdfModel::test_single_voxel_fit PASSED [ 65%]
dipy/reconst/tests/test_shm.py::TestCsaOdfModel::test_mulit_voxel_fit PASSED [ 66%]
dipy/reconst/tests/test_shm.py::TestCsaOdfModel::test_sh_order PASSED    [ 66%]
dipy/reconst/tests/test_shm.py::TestCsaOdfModel::test_gfa PASSED         [ 66%]
dipy/reconst/tests/test_shm.py::TestCsaOdfModel::test_min_signal_default PASSED [ 66%]
dipy/reconst/tests/test_shm.py::test_hat_and_lcr PASSED                  [ 66%]
dipy/reconst/tests/test_shm.py::test_bootstrap_array PASSED              [ 66%]
dipy/reconst/tests/test_shm.py::test_ResidualBootstrapWrapper PASSED     [ 66%]
dipy/reconst/tests/test_shm.py::test_sf_to_sh PASSED                     [ 66%]
dipy/reconst/tests/test_shm.py::test_faster_sph_harm PASSED              [ 66%]
dipy/reconst/tests/test_shm.py::test_anisotropic_power PASSED            [ 67%]
dipy/reconst/tests/test_shm.py::test_calculate_max_order PASSED          [ 67%]
dipy/reconst/tests/test_shm.py::test_convert_sh_to_full_basis PASSED     [ 67%]
dipy/reconst/tests/test_shm.py::test_convert_sh_from_legacy PASSED       [ 67%]
dipy/reconst/tests/test_shm.py::test_convert_sh_to_legacy PASSED         [ 67%]
dipy/reconst/tests/test_shm.py::test_convert_sh_descoteaux_tournier PASSED [ 67%]
dipy/reconst/tests/test_shore.py::test_shore_error PASSED                [ 67%]
dipy/reconst/tests/test_shore.py::test_shore_positive_constrain SKIPPED  [ 67%]
dipy/reconst/tests/test_shore.py::test_shore_fitting_no_constrain_e0 PASSED [ 67%]
dipy/reconst/tests/test_shore.py::test_shore_fitting_constrain_e0 SKIPPED [ 67%]
dipy/reconst/tests/test_shore_metrics.py::test_shore_metrics PASSED      [ 68%]
dipy/reconst/tests/test_shore_odf.py::test_shore_odf PASSED              [ 68%]
dipy/reconst/tests/test_shore_odf.py::test_multivox_shore PASSED         [ 68%]
dipy/reconst/tests/test_utils.py::test_roi_in_volume PASSED              [ 68%]
dipy/reconst/tests/test_utils.py::test_mask_from_roi PASSED              [ 68%]
dipy/reconst/tests/test_utils.py::test_convert_tensor PASSED             [ 68%]
dipy/reconst/tests/test_vec_val_vect.py::test_vec_val_vect PASSED        [ 68%]
dipy/reconst/tests/test_vec_val_vect.py::test_vec_val_vect_dumber PASSED [ 68%]
dipy/segment/tests/test_adjustment.py::test_adjustment PASSED            [ 68%]
dipy/segment/tests/test_bundles.py::test_rb_check_defaults PASSED        [ 68%]
dipy/segment/tests/test_bundles.py::test_rb_disable_slr PASSED           [ 69%]
dipy/segment/tests/test_bundles.py::test_rb_slr_threads PASSED           [ 69%]
dipy/segment/tests/test_bundles.py::test_rb_no_verbose_and_mam PASSED    [ 69%]
dipy/segment/tests/test_bundles.py::test_rb_clustermap PASSED            [ 69%]
dipy/segment/tests/test_bundles.py::test_rb_no_neighb PASSED             [ 69%]
dipy/segment/tests/test_bundles.py::test_rb_reduction_mam PASSED         [ 69%]
dipy/segment/tests/test_clustering.py::test_cluster_attributes_and_constructor PASSED [ 69%]
dipy/segment/tests/test_clustering.py::test_cluster_assign PASSED        [ 69%]
dipy/segment/tests/test_clustering.py::test_cluster_iter PASSED          [ 69%]
dipy/segment/tests/test_clustering.py::test_cluster_getitem PASSED       [ 69%]
dipy/segment/tests/test_clustering.py::test_cluster_str_and_repr PASSED  [ 70%]
dipy/segment/tests/test_clustering.py::test_cluster_centroid_attributes_and_constructor PASSED [ 70%]
dipy/segment/tests/test_clustering.py::test_cluster_centroid_assign PASSED [ 70%]
dipy/segment/tests/test_clustering.py::test_cluster_centroid_iter PASSED [ 70%]
dipy/segment/tests/test_clustering.py::test_cluster_centroid_getitem PASSED [ 70%]
dipy/segment/tests/test_clustering.py::test_cluster_map_attributes_and_constructor PASSED [ 70%]
dipy/segment/tests/test_clustering.py::test_cluster_map_add_cluster PASSED [ 70%]
dipy/segment/tests/test_clustering.py::test_cluster_map_remove_cluster PASSED [ 70%]
dipy/segment/tests/test_clustering.py::test_cluster_map_clear PASSED     [ 70%]
dipy/segment/tests/test_clustering.py::test_cluster_map_iter PASSED      [ 70%]
dipy/segment/tests/test_clustering.py::test_cluster_map_getitem PASSED   [ 71%]
dipy/segment/tests/test_clustering.py::test_cluster_map_str_and_repr PASSED [ 71%]
dipy/segment/tests/test_clustering.py::test_cluster_map_size PASSED      [ 71%]
dipy/segment/tests/test_clustering.py::test_cluster_map_clusters_sizes PASSED [ 71%]
dipy/segment/tests/test_clustering.py::test_cluster_map_get_small_and_large_clusters PASSED [ 71%]
dipy/segment/tests/test_clustering.py::test_cluster_map_comparison_with_int PASSED [ 71%]
dipy/segment/tests/test_clustering.py::test_cluster_map_comparison_with_object PASSED [ 71%]
dipy/segment/tests/test_clustering.py::test_cluster_map_centroid_attributes_and_constructor PASSED [ 71%]
dipy/segment/tests/test_clustering.py::test_cluster_map_centroid_add_cluster PASSED [ 71%]
dipy/segment/tests/test_clustering.py::test_cluster_map_centroid_remove_cluster PASSED [ 71%]
dipy/segment/tests/test_clustering.py::test_cluster_map_centroid_iter PASSED [ 72%]
dipy/segment/tests/test_clustering.py::test_cluster_map_centroid_getitem PASSED [ 72%]
dipy/segment/tests/test_clustering.py::test_cluster_map_centroid_comparison_with_int PASSED [ 72%]
dipy/segment/tests/test_clustering.py::test_subclassing_clustering PASSED [ 72%]
dipy/segment/tests/test_feature.py::test_identity_feature PASSED         [ 72%]
dipy/segment/tests/test_feature.py::test_feature_resample PASSED         [ 72%]
dipy/segment/tests/test_feature.py::test_feature_center_of_mass PASSED   [ 72%]
dipy/segment/tests/test_feature.py::test_feature_midpoint PASSED         [ 72%]
dipy/segment/tests/test_feature.py::test_feature_arclength PASSED        [ 72%]
dipy/segment/tests/test_feature.py::test_feature_vector_of_endpoints PASSED [ 72%]
dipy/segment/tests/test_feature.py::test_feature_extract PASSED          [ 73%]
dipy/segment/tests/test_feature.py::test_subclassing_feature PASSED      [ 73%]
dipy/segment/tests/test_feature.py::test_using_python_feature_with_cython_metric PASSED [ 73%]
dipy/segment/tests/test_fss.py::test_fss_radius_search PASSED            [ 73%]
dipy/segment/tests/test_fss.py::test_fss_varying_radius PASSED           [ 73%]
dipy/segment/tests/test_fss.py::test_fss_single_point_slines PASSED      [ 73%]
dipy/segment/tests/test_fss.py::test_fss_empty_results PASSED            [ 73%]
dipy/segment/tests/test_fss.py::test_fss_invalid_max_radius PASSED       [ 73%]
dipy/segment/tests/test_fss.py::test_fss_invalid_radius PASSED           [ 73%]
dipy/segment/tests/test_fss.py::test_fss_invalid_mpts PASSED             [ 73%]
dipy/segment/tests/test_mask.py::test_mask PASSED                        [ 74%]
dipy/segment/tests/test_mask.py::test_bounding_box PASSED                [ 74%]
dipy/segment/tests/test_mask.py::test_median_otsu PASSED                 [ 74%]
dipy/segment/tests/test_metric.py::test_metric_minimum_average_direct_flip PASSED [ 74%]
dipy/segment/tests/test_metric.py::test_metric_cosine PASSED             [ 74%]
dipy/segment/tests/test_metric.py::test_subclassing_metric PASSED        [ 74%]
dipy/segment/tests/test_metric.py::test_distance_matrix PASSED           [ 74%]
dipy/segment/tests/test_metric.py::test_mean_distances PASSED            [ 74%]
dipy/segment/tests/test_mrf.py::test_grayscale_image PASSED              [ 74%]
dipy/segment/tests/test_mrf.py::test_grayscale_iter PASSED               [ 74%]
dipy/segment/tests/test_mrf.py::test_square_iter PASSED                  [ 75%]
dipy/segment/tests/test_mrf.py::test_icm_square PASSED                   [ 75%]
dipy/segment/tests/test_mrf.py::test_classify PASSED                     [ 75%]
dipy/segment/tests/test_qbx.py::test_3D_points PASSED                    [ 75%]
dipy/segment/tests/test_qbx.py::test_3D_segments PASSED                  [ 75%]
dipy/segment/tests/test_qbx.py::test_with_simulated_bundles PASSED       [ 75%]
dipy/segment/tests/test_qbx.py::test_with_simulated_bundles2 PASSED      [ 75%]
dipy/segment/tests/test_qbx.py::test_circle_parallel_fornix PASSED       [ 75%]
dipy/segment/tests/test_qbx.py::test_raise_mdf PASSED                    [ 75%]
dipy/segment/tests/test_qbx.py::test_qbx_and_merge PASSED                [ 75%]
dipy/segment/tests/test_quickbundles.py::test_quickbundles_empty_data PASSED [ 76%]
dipy/segment/tests/test_quickbundles.py::test_quickbundles_wrong_metric PASSED [ 76%]
dipy/segment/tests/test_quickbundles.py::test_quickbundles_shape_incompatibility PASSED [ 76%]
dipy/segment/tests/test_quickbundles.py::test_quickbundles_2D PASSED     [ 76%]
dipy/segment/tests/test_quickbundles.py::test_quickbundles_streamlines PASSED [ 76%]
dipy/segment/tests/test_quickbundles.py::test_quickbundles_with_python_metric PASSED [ 76%]
dipy/segment/tests/test_quickbundles.py::test_quickbundles_with_not_order_invariant_metric PASSED [ 76%]
dipy/segment/tests/test_quickbundles.py::test_quickbundles_memory_leaks PASSED [ 76%]
dipy/sims/tests/test_phantom.py::test_phantom PASSED                     [ 76%]
dipy/sims/tests/test_phantom.py::test_add_noise PASSED                   [ 76%]
dipy/sims/tests/test_voxel.py::test_check_directions PASSED              [ 77%]
dipy/sims/tests/test_voxel.py::test_sticks_and_ball PASSED               [ 77%]
dipy/sims/tests/test_voxel.py::test_single_tensor PASSED                 [ 77%]
dipy/sims/tests/test_voxel.py::test_multi_tensor PASSED                  [ 77%]
dipy/sims/tests/test_voxel.py::test_snr PASSED                           [ 77%]
dipy/sims/tests/test_voxel.py::test_all_tensor_evecs PASSED              [ 77%]
dipy/sims/tests/test_voxel.py::test_kurtosis_elements PASSED             [ 77%]
dipy/sims/tests/test_voxel.py::test_DKI_simulations_aligned_fibers PASSED [ 77%]
dipy/sims/tests/test_voxel.py::test_DKI_crossing_fibers_simulations PASSED [ 77%]
dipy/sims/tests/test_voxel.py::test_single_tensor_btens PASSED           [ 78%]
dipy/sims/tests/test_voxel.py::test_multi_tensor_btens PASSED            [ 78%]
dipy/stats/tests/test_analysis.py::test_gaussian_weights PASSED          [ 78%]
dipy/stats/tests/test_analysis.py::test_afq_profile PASSED               [ 78%]
dipy/stats/tests/test_resampling.py::test_bootstrap PASSED               [ 78%]
dipy/stats/tests/test_resampling.py::test_jackknife PASSED               [ 78%]
dipy/testing/tests/test_decorators.py::test_skipper PASSED               [ 78%]
dipy/testing/tests/test_memory.py::test_get_type_refcount PASSED         [ 78%]
dipy/testing/tests/test_testing.py::test_assert PASSED                   [ 78%]
dipy/testing/tests/test_testing.py::test_clear_and_catch_warnings PASSED [ 78%]
dipy/tracking/tests/test_distances.py::test_LSCv2 PASSED                 [ 79%]
dipy/tracking/tests/test_distances.py::test_bundles_distances_mam PASSED [ 79%]
dipy/tracking/tests/test_distances.py::test_bundles_distances_mdf PASSED [ 79%]
dipy/tracking/tests/test_distances.py::test_mam_distances PASSED         [ 79%]
dipy/tracking/tests/test_distances.py::test_approx_ei_traj PASSED        [ 79%]
dipy/tracking/tests/test_distances.py::test_approx_mdl_traj PASSED       [ 79%]
dipy/tracking/tests/test_distances.py::test_point_track_sq_distance PASSED [ 79%]
dipy/tracking/tests/test_distances.py::test_track_roi_intersection_check PASSED [ 79%]
dipy/tracking/tests/test_distances.py::test_minimum_distance PASSED      [ 79%]
dipy/tracking/tests/test_distances.py::test_most_similar_mam PASSED      [ 79%]
dipy/tracking/tests/test_distances.py::test_cut_plane PASSED             [ 80%]
dipy/tracking/tests/test_learning.py::test_det_corr_tracks PASSED        [ 80%]
dipy/tracking/tests/test_life.py::test_streamline_gradients PASSED       [ 80%]
dipy/tracking/tests/test_life.py::test_streamline_tensors PASSED         [ 80%]
dipy/tracking/tests/test_life.py::test_streamline_signal PASSED          [ 80%]
dipy/tracking/tests/test_life.py::test_voxel2streamline PASSED           [ 80%]
dipy/tracking/tests/test_life.py::test_FiberModel_init PASSED            [ 80%]
dipy/tracking/tests/test_life.py::test_FiberFit PASSED                   [ 80%]
dipy/tracking/tests/test_life.py::test_fit_data PASSED                   [ 80%]
dipy/tracking/tests/test_mesh.py::test_triangles_area PASSED             [ 80%]
dipy/tracking/tests/test_mesh.py::test_surface_seeds PASSED              [ 81%]
dipy/tracking/tests/test_mesh.py::test_vertices_to_triangles PASSED      [ 81%]
dipy/tracking/tests/test_metrics.py::test_downsample_deprecated PASSED   [ 81%]
dipy/tracking/tests/test_metrics.py::test_splines PASSED                 [ 81%]
dipy/tracking/tests/test_metrics.py::test_segment_intersection PASSED    [ 81%]
dipy/tracking/tests/test_metrics.py::test_normalized_3vec PASSED         [ 81%]
dipy/tracking/tests/test_metrics.py::test_inner_3vecs PASSED             [ 81%]
dipy/tracking/tests/test_metrics.py::test_add_sub_3vecs PASSED           [ 81%]
dipy/tracking/tests/test_metrics.py::test_winding PASSED                 [ 81%]
dipy/tracking/tests/test_propagation.py::test_offset PASSED              [ 81%]
dipy/tracking/tests/test_propagation.py::test_eudx_both_directions_errors PASSED [ 82%]
dipy/tracking/tests/test_stopping_criterion.py::test_binary_stopping_criterion PASSED [ 82%]
dipy/tracking/tests/test_stopping_criterion.py::test_threshold_stopping_criterion PASSED [ 82%]
dipy/tracking/tests/test_stopping_criterion.py::test_act_stopping_criterion PASSED [ 82%]
dipy/tracking/tests/test_stopping_criterion.py::test_cmc_stopping_criterion PASSED [ 82%]
dipy/tracking/tests/test_streamline.py::test_set_number_of_points PASSED [ 82%]
dipy/tracking/tests/test_streamline.py::test_set_number_of_points_memory_leaks PASSED [ 82%]
dipy/tracking/tests/test_streamline.py::test_length PASSED               [ 82%]
dipy/tracking/tests/test_streamline.py::test_length_memory_leaks PASSED  [ 82%]
dipy/tracking/tests/test_streamline.py::test_unlist_relist_streamlines PASSED [ 82%]
dipy/tracking/tests/test_streamline.py::test_transform_streamlines_dtype_in_place PASSED [ 83%]
dipy/tracking/tests/test_streamline.py::test_transform_streamlines_dtype PASSED [ 83%]
dipy/tracking/tests/test_streamline.py::test_transform_empty_streamlines PASSED [ 83%]
dipy/tracking/tests/test_streamline.py::test_deform_streamlines PASSED   [ 83%]
dipy/tracking/tests/test_streamline.py::test_center_and_transform PASSED [ 83%]
dipy/tracking/tests/test_streamline.py::test_select_random_streamlines PASSED [ 83%]
dipy/tracking/tests/test_streamline.py::test_compress_streamlines PASSED [ 83%]
dipy/tracking/tests/test_streamline.py::test_compress_streamlines_identical_points PASSED [ 83%]
dipy/tracking/tests/test_streamline.py::test_compress_streamlines_memory_leaks PASSED [ 83%]
dipy/tracking/tests/test_streamline.py::test_select_by_rois PASSED       [ 83%]
dipy/tracking/tests/test_streamline.py::test_orient_by_rois PASSED       [ 84%]
dipy/tracking/tests/test_streamline.py::test_orient_by_streamline PASSED [ 84%]
dipy/tracking/tests/test_streamline.py::test_values_from_volume PASSED   [ 84%]
dipy/tracking/tests/test_streamline.py::test_streamlines_generator PASSED [ 84%]
dipy/tracking/tests/test_streamline.py::test_cluster_confidence PASSED   [ 84%]
dipy/tracking/tests/test_track_volumes.py::test_track_volumes PASSED     [ 84%]
dipy/tracking/tests/test_tracking.py::test_stop_conditions PASSED        [ 84%]
dipy/tracking/tests/test_tracking.py::test_save_seeds PASSED             [ 84%]
dipy/tracking/tests/test_tracking.py::test_tracking_max_angle PASSED     [ 84%]
dipy/tracking/tests/test_tracking.py::test_probabilistic_odf_weighted_tracker PASSED [ 84%]
dipy/tracking/tests/test_tracking.py::test_particle_filtering_tractography PASSED [ 85%]
dipy/tracking/tests/test_tracking.py::test_maximum_deterministic_tracker PASSED [ 85%]
dipy/tracking/tests/test_tracking.py::test_bootstap_peak_tracker PASSED  [ 85%]
dipy/tracking/tests/test_tracking.py::test_closest_peak_tracker PASSED   [ 85%]
dipy/tracking/tests/test_tracking.py::test_eudx_tracker PASSED           [ 85%]
dipy/tracking/tests/test_tracking.py::test_affine_transformations PASSED [ 85%]
dipy/tracking/tests/test_tracking.py::test_random_seed_initialization PASSED [ 85%]
dipy/tracking/tests/test_tracking.py::test_tracking_with_initial_directions PASSED [ 85%]
dipy/tracking/tests/test_utils.py::test_density_map PASSED               [ 85%]
dipy/tracking/tests/test_utils.py::test_to_voxel_coordinates_precision PASSED [ 85%]
dipy/tracking/tests/test_utils.py::test_connectivity_matrix PASSED       [ 86%]
dipy/tracking/tests/test_utils.py::test_ndbincount PASSED                [ 86%]
dipy/tracking/tests/test_utils.py::test_reduce_labels PASSED             [ 86%]
dipy/tracking/tests/test_utils.py::test_target PASSED                    [ 86%]
dipy/tracking/tests/test_utils.py::test_target_lb PASSED                 [ 86%]
dipy/tracking/tests/test_utils.py::test_target_line_based_out_of_bounds PASSED [ 86%]
dipy/tracking/tests/test_utils.py::test_near_roi PASSED                  [ 86%]
dipy/tracking/tests/test_utils.py::test_streamline_mapping PASSED        [ 86%]
dipy/tracking/tests/test_utils.py::test_length PASSED                    [ 86%]
dipy/tracking/tests/test_utils.py::test_seeds_from_mask PASSED           [ 86%]
dipy/tracking/tests/test_utils.py::test_random_seeds_from_mask PASSED    [ 87%]
dipy/tracking/tests/test_utils.py::test_connectivity_matrix_shape PASSED [ 87%]
dipy/tracking/tests/test_utils.py::test_unique_rows PASSED               [ 87%]
dipy/tracking/tests/test_utils.py::test_reduce_rois PASSED               [ 87%]
dipy/tracking/tests/test_utils.py::test_path_length PASSED               [ 87%]
dipy/tracking/tests/test_utils.py::test_min_at PASSED                    [ 87%]
dipy/tracking/tests/test_utils.py::test_curvature_angle PASSED           [ 87%]
dipy/utils/tests/test_arrfuncs.py::test_as_native PASSED                 [ 87%]
dipy/utils/tests/test_arrfuncs.py::test_pinv PASSED                      [ 87%]
dipy/utils/tests/test_deprecator.py::test_cmp_pkg_version PASSED         [ 87%]
dipy/utils/tests/test_deprecator.py::test__ensure_cr PASSED              [ 88%]
dipy/utils/tests/test_deprecator.py::test__add_dep_doc PASSED            [ 88%]
dipy/utils/tests/test_deprecator.py::test_deprecate_with_version FAILED  [ 88%]
dipy/utils/tests/test_deprecator.py::test_deprecated_argument PASSED     [ 88%]
dipy/utils/tests/test_deprecator.py::test_deprecated_argument_in_kwargs PASSED [ 88%]
dipy/utils/tests/test_deprecator.py::test_deprecated_argument_multi_deprecation PASSED [ 88%]
dipy/utils/tests/test_deprecator.py::test_deprecated_argument_not_allowed_use PASSED [ 88%]
dipy/utils/tests/test_deprecator.py::test_deprecated_argument_remove PASSED [ 88%]
dipy/utils/tests/test_fast_numpy.cpython-313-aarch64-linux-gnu.so::test_dot PASSED [ 88%]
dipy/utils/tests/test_fast_numpy.cpython-313-aarch64-linux-gnu.so::test_norm PASSED [ 89%]
dipy/utils/tests/test_fast_numpy.cpython-313-aarch64-linux-gnu.so::test_normalize PASSED [ 89%]
dipy/utils/tests/test_fast_numpy.cpython-313-aarch64-linux-gnu.so::test_random PASSED [ 89%]
dipy/utils/tests/test_fast_numpy.cpython-313-aarch64-linux-gnu.so::test_random_perpendicular_vector PASSED [ 89%]
dipy/utils/tests/test_fast_numpy.cpython-313-aarch64-linux-gnu.so::test_random_point_within_circle PASSED [ 89%]
dipy/utils/tests/test_fast_numpy.cpython-313-aarch64-linux-gnu.so::test_random_vector PASSED [ 89%]
dipy/utils/tests/test_multiproc.py::test_determine_num_processes PASSED  [ 89%]
dipy/utils/tests/test_omp.py::test_set_omp_threads PASSED                [ 89%]
dipy/utils/tests/test_omp.py::test_default_threads SKIPPED (joblib a...) [ 89%]
dipy/utils/tests/test_omp.py::test_determine_num_threads PASSED          [ 89%]
dipy/utils/tests/test_optpkg.py::test_optional_package PASSED            [ 90%]
dipy/utils/tests/test_parallel.py::test_paramap PASSED                   [ 90%]
dipy/utils/tests/test_tripwire.py::test_is_tripwire PASSED               [ 90%]
dipy/utils/tests/test_tripwire.py::test_tripwire PASSED                  [ 90%]
dipy/utils/tests/test_volume.py::test_adjacency_calc PASSED              [ 90%]
dipy/viz/horizon/tab/tests/test_base.py::test_build_label SKIPPED (N...) [ 90%]
dipy/viz/horizon/tab/tests/test_base.py::test_build_slider SKIPPED (...) [ 90%]
dipy/viz/horizon/tab/tests/test_base.py::test_build_checkbox SKIPPED     [ 90%]
dipy/viz/horizon/tab/tests/test_base.py::test_build_switcher SKIPPED     [ 90%]
dipy/viz/tests/test_apps.py::test_horizon_events SKIPPED (Needs xvfb)    [ 90%]
dipy/viz/tests/test_apps.py::test_horizon SKIPPED (Needs xvfb)           [ 91%]
dipy/viz/tests/test_apps.py::test_horizon_wrong_dtype_images SKIPPED     [ 91%]
dipy/viz/tests/test_apps.py::test_roi_images SKIPPED (Needs xvfb)        [ 91%]
dipy/viz/tests/test_apps.py::test_surfaces SKIPPED (Needs xvfb)          [ 91%]
dipy/viz/tests/test_apps.py::test_small_horizon_import PASSED            [ 91%]
dipy/viz/tests/test_fury.py::test_slicer SKIPPED (Needs xvfb)            [ 91%]
dipy/viz/tests/test_fury.py::test_contour_from_roi SKIPPED (Needs xvfb)  [ 91%]
dipy/viz/tests/test_fury.py::test_bundle_maps SKIPPED (Needs xvfb)       [ 91%]
dipy/viz/tests/test_fury.py::test_odf_slicer SKIPPED (Needs xvfb)        [ 91%]
dipy/viz/tests/test_fury.py::test_tensor_slicer SKIPPED (Needs xvfb)     [ 91%]
dipy/viz/tests/test_regtools.py::test_plot_2d_diffeomorphic_map SKIPPED  [ 92%]
dipy/viz/tests/test_streamline.py::test_output_created SKIPPED (Requ...) [ 92%]
dipy/viz/tests/test_streamline.py::test_incorrect_view SKIPPED (Requ...) [ 92%]
dipy/viz/tests/test_streamline.py::test_bundlewarp_viz SKIPPED (Requ...) [ 92%]
dipy/viz/tests/test_util.py::test_check_img_shapes PASSED                [ 92%]
dipy/viz/tests/test_util.py::test_check_img_dtype PASSED                 [ 92%]
dipy/viz/tests/test_util.py::test_show_ellipsis PASSED                   [ 92%]
dipy/viz/tests/test_util.py::test_is_binary_image PASSED                 [ 92%]
dipy/viz/tests/test_util.py::test_unpack_surface PASSED                  [ 92%]
dipy/viz/tests/test_util.py::test_check_peak_size PASSED                 [ 92%]
dipy/workflows/tests/test_align.py::test_reslice FAILED                  [ 93%]
dipy/workflows/tests/test_align.py::test_slr_flow FAILED                 [ 93%]
dipy/workflows/tests/test_align.py::test_image_registration FAILED       [ 93%]
dipy/workflows/tests/test_align.py::test_apply_transform_error PASSED    [ 93%]
dipy/workflows/tests/test_align.py::test_apply_affine_transform FAILED   [ 93%]
dipy/workflows/tests/test_align.py::test_motion_correction FAILED        [ 93%]
dipy/workflows/tests/test_align.py::test_syn_registration_flow FAILED    [ 93%]
dipy/workflows/tests/test_align.py::test_bundlewarp_flow PASSED          [ 93%]
dipy/workflows/tests/test_denoise.py::test_nlmeans_flow FAILED           [ 93%]
dipy/workflows/tests/test_denoise.py::test_patch2self_flow FAILED        [ 93%]
dipy/workflows/tests/test_denoise.py::test_lpca_flow FAILED              [ 94%]
dipy/workflows/tests/test_denoise.py::test_mppca_flow FAILED             [ 94%]
dipy/workflows/tests/test_denoise.py::test_gibbs_flow FAILED             [ 94%]
dipy/workflows/tests/test_docstring_parser.py::test_signature PASSED     [ 94%]
dipy/workflows/tests/test_docstring_parser.py::test_summary PASSED       [ 94%]
dipy/workflows/tests/test_docstring_parser.py::test_extended_summary PASSED [ 94%]
dipy/workflows/tests/test_docstring_parser.py::test_parameters PASSED    [ 94%]
dipy/workflows/tests/test_docstring_parser.py::test_other_parameters PASSED [ 94%]
dipy/workflows/tests/test_docstring_parser.py::test_returns PASSED       [ 94%]
dipy/workflows/tests/test_docstring_parser.py::test_notes PASSED         [ 94%]
dipy/workflows/tests/test_docstring_parser.py::test_references PASSED    [ 95%]
dipy/workflows/tests/test_docstring_parser.py::test_examples PASSED      [ 95%]
dipy/workflows/tests/test_docstring_parser.py::test_index PASSED         [ 95%]
dipy/workflows/tests/test_docstring_parser.py::test_str PASSED           [ 95%]
dipy/workflows/tests/test_docstring_parser.py::test_parameters_without_extended_description PASSED [ 95%]
dipy/workflows/tests/test_docstring_parser.py::test_raises PASSED        [ 95%]
dipy/workflows/tests/test_docstring_parser.py::test_warns PASSED         [ 95%]
dipy/workflows/tests/test_docstring_parser.py::test_see_also PASSED      [ 95%]
dipy/workflows/tests/test_docstring_parser.py::test_empty_first_line PASSED [ 95%]
dipy/workflows/tests/test_docstring_parser.py::test_duplicate_signature PASSED [ 95%]
dipy/workflows/tests/test_iap.py::test_none_or_dtype PASSED              [ 96%]
dipy/workflows/tests/test_iap.py::test_variable_type FAILED              [ 96%]
dipy/workflows/tests/test_iap.py::test_iap PASSED                        [ 96%]
dipy/workflows/tests/test_iap.py::test_optional_str PASSED               [ 96%]
dipy/workflows/tests/test_iap.py::test_iap_epilog_and_description PASSED [ 96%]
dipy/workflows/tests/test_iap.py::test_flow_runner PASSED                [ 96%]
dipy/workflows/tests/test_io.py::test_io_fetch SKIPPED (test needs i...) [ 96%]
dipy/workflows/tests/test_io.py::test_io_fetch_fetcher_datanames PASSED  [ 96%]
dipy/workflows/tests/test_io.py::test_split_flow FAILED                  [ 96%]
dipy/workflows/tests/test_io.py::test_convert_sh_flow FAILED             [ 96%]
dipy/workflows/tests/test_io.py::test_convert_tensors_flow FAILED        [ 97%]
dipy/workflows/tests/test_masking.py::test_mask FAILED                   [ 97%]
dipy/workflows/tests/test_nn.py::test_evac_plus_flow SKIPPED (Requir...) [ 97%]
dipy/workflows/tests/test_reconst_csa_csd.py::test_reconst_csa FAILED    [ 97%]
dipy/workflows/tests/test_reconst_csa_csd.py::test_reconst_csd FAILED    [ 97%]
dipy/workflows/tests/test_reconst_dki.py::test_reconst_dki FAILED        [ 97%]
dipy/workflows/tests/test_reconst_dsi.py::test_reconst_dsi FAILED        [ 97%]
dipy/workflows/tests/test_reconst_dti.py::test_reconst_dti_wls FAILED    [ 97%]
dipy/workflows/tests/test_reconst_dti.py::test_reconst_dti_nlls FAILED   [ 97%]
dipy/workflows/tests/test_reconst_dti.py::test_reconst_dti_alt_tensor FAILED [ 97%]
dipy/workflows/tests/test_reconst_ivim.py::test_reconst_ivim FAILED      [ 98%]
dipy/workflows/tests/test_reconst_mapmri.py::test_reconst_mmri_laplacian FAILED [ 98%]
dipy/workflows/tests/test_reconst_mapmri.py::test_reconst_mmri_none FAILED [ 98%]
dipy/workflows/tests/test_reconst_mapmri.py::test_reconst_mmri_both SKIPPED [ 98%]
dipy/workflows/tests/test_reconst_mapmri.py::test_reconst_mmri_positivity SKIPPED [ 98%]
dipy/workflows/tests/test_reconst_rumba.py::test_reconst_rumba FAILED    [ 98%]
dipy/workflows/tests/test_segment.py::test_median_otsu_flow FAILED       [ 98%]
dipy/workflows/tests/test_segment.py::test_recobundles_flow FAILED       [ 98%]
dipy/workflows/tests/test_stats.py::test_stats FAILED                    [ 98%]
dipy/workflows/tests/test_stats.py::test_buan_bundle_profiles SKIPPED    [ 98%]
dipy/workflows/tests/test_stats.py::test_bundle_analysis_tractometry_flow SKIPPED [ 99%]
dipy/workflows/tests/test_stats.py::test_linear_mixed_models_flow SKIPPED [ 99%]
dipy/workflows/tests/test_stats.py::test_bundle_shape_analysis_flow SKIPPED [ 99%]
dipy/workflows/tests/test_tracking.py::test_particle_filtering_tracking_workflows FAILED [ 99%]
dipy/workflows/tests/test_tracking.py::test_local_fiber_tracking_workflow FAILED [ 99%]
dipy/workflows/tests/test_viz.py::test_horizon_flow SKIPPED (Require...) [ 99%]
dipy/workflows/tests/test_workflow.py::test_force_overwrite FAILED       [ 99%]
dipy/workflows/tests/test_workflow.py::test_get_sub_runs PASSED          [ 99%]
dipy/workflows/tests/test_workflow.py::test_run PASSED                   [ 99%]
dipy/workflows/tests/test_workflow.py::test_missing_file FAILED          [100%]

=================================== FAILURES ===================================
_________________________ test_deprecate_with_version __________________________

    def test_deprecate_with_version():
    
        def func_no_doc():
            pass
    
        def func_doc(i):
            """Fake docstring."""
    
        def func_doc_long(i, j):
            """Fake docstring.\n\n   Some text."""
    
        class CustomError(Exception):
            """Custom error class for testing expired deprecation errors."""
    
        my_mod = sys.modules[__name__]
        dec = deprecate_with_version
    
        func = dec('foo')(func_no_doc)
        with clear_and_catch_warnings(modules=[my_mod]) as w:
            warnings.simplefilter('always')
            npt.assert_equal(func(), None)
            npt.assert_equal(len(w), 1)
            assert_true(w[0].category is DeprecationWarning)
        npt.assert_equal(func.__doc__, 'foo\n')
        func = dec('foo')(func_doc)
        with clear_and_catch_warnings(modules=[my_mod]) as w:
            warnings.simplefilter('always')
            npt.assert_equal(func(1), None)
            npt.assert_equal(len(w), 1)
        npt.assert_equal(func.__doc__, 'Fake docstring.\n\nfoo\n')
        func = dec('foo')(func_doc_long)
        with clear_and_catch_warnings(modules=[my_mod]) as w:
            warnings.simplefilter('always')
            npt.assert_equal(func(1, 2), None)
            npt.assert_equal(len(w), 1)
>       npt.assert_equal(func.__doc__,
                         'Fake docstring.\n   \n   foo\n   \n   Some text.\n')
E       AssertionError: 
E       Items are not equal:
E        ACTUAL: 'Fake docstring.\n\nfoo\n\nSome text.\n'
E        DESIRED: 'Fake docstring.\n   \n   foo\n   \n   Some text.\n'

dipy/utils/tests/test_deprecator.py:116: AssertionError
_________________________________ test_reslice _________________________________

    def test_reslice():
    
        with TemporaryDirectory() as out_dir:
            data_path, _, _ = get_fnames('small_25')
            volume = load_nifti_data(data_path)
    
            reslice_flow = ResliceFlow()
>           reslice_flow.run(data_path, [1.5, 1.5, 1.5], out_dir=out_dir)

dipy/workflows/tests/test_align.py:34: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dipy/workflows/align.py:92: in run
    io_it = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

frame = <frame at 0xffff8b89f1c0, file '/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/align.py', line 92, code run>
fnc = <bound method ResliceFlow.run of <dipy.workflows.align.ResliceFlow object at 0xffff9775c590>>
output_strategy = 'absolute', mix_names = False

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
________________________________ test_slr_flow _________________________________

    def test_slr_flow():
        with TemporaryDirectory() as out_dir:
            data_path = get_fnames('fornix')
    
            fornix = load_tractogram(data_path, 'same',
                                     bbox_valid_check=False).streamlines
    
            f = Streamlines(fornix)
            f1 = f.copy()
    
            f1_path = pjoin(out_dir, "f1.trk")
            sft = StatefulTractogram(f1, data_path, Space.RASMM)
            save_tractogram(sft, f1_path, bbox_valid_check=False)
    
            f2 = f1.copy()
            f2._data += np.array([50, 0, 0])
    
            f2_path = pjoin(out_dir, "f2.trk")
            sft = StatefulTractogram(f2, data_path, Space.RASMM)
            save_tractogram(sft, f2_path, bbox_valid_check=False)
    
            slr_flow = SlrWithQbxFlow(force=True)
>           slr_flow.run(f1_path, f2_path)

dipy/workflows/tests/test_align.py:67: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dipy/workflows/align.py:189: in run
    io_it = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

frame = <frame at 0x1e63dff0, file '/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/align.py', line 189, code run>
fnc = <bound method SlrWithQbxFlow.run of <dipy.workflows.align.SlrWithQbxFlow object at 0xffff8843d160>>
output_strategy = 'absolute', mix_names = False

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
___________________________ test_image_registration ____________________________

pytestconfig = <_pytest.config.Config object at 0xffff99662510>, args = ()
kwargs = {'rng': Generator(PCG64) at 0xFFFF8B7FAC00}
rng = Generator(PCG64) at 0xFFFF8B7FAC00, signature = <Signature (rng)>

    def _set_random_number_generator_wrapper(pytestconfig, *args, **kwargs):
        rng = np.random.default_rng(seed_v)
        kwargs['rng'] = rng
        signature = inspect.signature(func)
        if pytestconfig and 'pytestconfig' in signature.parameters.keys():
            output = func(pytestconfig, *args, **kwargs)
        else:
>           output = func(*args, **kwargs)

dipy/testing/decorators.py:95: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dipy/workflows/tests/test_align.py:229: in test_image_registration
    test_com()
dipy/workflows/tests/test_align.py:102: in test_com
    image_registration_flow.run(static_image_file,
dipy/workflows/align.py:329: in run
    io_it = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

frame = <frame at 0x1e8f6f80, file '/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/align.py', line 329, code run>
fnc = <bound method ImageRegistrationFlow.run of <dipy.workflows.align.ImageRegistrationFlow object at 0xffff8843c2f0>>
output_strategy = 'absolute', mix_names = False

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
_________________________ test_apply_affine_transform __________________________

    def test_apply_affine_transform():
        with TemporaryDirectory() as temp_out_dir:
    
            factors = {
                ('TRANSLATION', 3): (2.0, None, np.array([2.3, 4.5, 1.7])),
                ('RIGID', 3): (0.1, None, np.array([0.1, 0.15, -0.11, 2.3, 4.5,
                                                    1.7])),
                ('RIGIDISOSCALING', 3): (0.1, None, np.array([0.1, 0.15, -0.11,
                                                             2.3, 4.5, 1.7,
                                                              0.8])),
                ('RIGIDSCALING', 3): (0.1, None, np.array([0.1, 0.15, -0.11, 2.3,
                                                           4.5, 1.7, 0.8, 0.9,
                                                           1.1])),
                ('AFFINE', 3): (0.1, None, np.array([0.99, -0.05, 0.03, 1.3,
                                                     0.05, 0.99, -0.10, 2.5,
                                                     -0.07, 0.10, 0.99, -1.4]))}
    
            image_registration_flow = ImageRegistrationFlow()
            apply_trans = ApplyTransformFlow()
    
            for i in factors.keys():
                static, moving, static_g2w, moving_g2w, smask, mmask, M = \
                    setup_random_transform(transform=regtransforms[i],
                                           rfactor=factors[i][0])
    
                stat_file = str(i[0]) + '_static.nii.gz'
                mov_file = str(i[0]) + '_moving.nii.gz'
    
                save_nifti(pjoin(temp_out_dir, stat_file), data=static,
                           affine=static_g2w)
    
                save_nifti(pjoin(temp_out_dir, mov_file), data=moving,
                           affine=moving_g2w)
    
                static_image_file = pjoin(temp_out_dir,
                                          str(i[0]) + '_static.nii.gz')
                moving_image_file = pjoin(temp_out_dir,
                                          str(i[0]) + '_moving.nii.gz')
    
                out_moved = pjoin(temp_out_dir,
                                  str(i[0]) + "_moved.nii.gz")
                out_affine = pjoin(temp_out_dir,
                                   str(i[0]) + "_affine.txt")
    
                if str(i[0]) == "TRANSLATION":
                    transform_type = "trans"
                elif str(i[0]) == "RIGIDISOSCALING":
                    transform_type = "rigid_isoscaling"
                elif str(i[0]) == "RIGIDSCALING":
                    transform_type = "rigid_scaling"
                else:
                    transform_type = str(i[0]).lower()
    
>               image_registration_flow.run(static_image_file, moving_image_file,
                                            transform=transform_type,
                                            out_dir=temp_out_dir,
                                            out_moved=out_moved,
                                            out_affine=out_affine,
                                            level_iters=[1, 1, 1],
                                            save_metric=False)

dipy/workflows/tests/test_align.py:298: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dipy/workflows/align.py:329: in run
    io_it = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

frame = <frame at 0x1f9de2f0, file '/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/align.py', line 329, code run>
fnc = <bound method ImageRegistrationFlow.run of <dipy.workflows.align.ImageRegistrationFlow object at 0xffff8b82f390>>
output_strategy = 'absolute', mix_names = False

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
____________________________ test_motion_correction ____________________________

    def test_motion_correction():
        data_path, fbvals_path, fbvecs_path = get_fnames('small_64D')
        volume = load_nifti_data(data_path)
    
        with TemporaryDirectory() as out_dir:
            # Use an abbreviated data-set:
            img = nib.load(data_path)
            data = img.get_fdata()[..., :10]
            nib.save(nib.Nifti1Image(data, img.affine),
                     os.path.join(out_dir, 'data.nii.gz'))
            # Save a subset:
            bvals = np.loadtxt(fbvals_path)
            bvecs = np.loadtxt(fbvecs_path)
            np.savetxt(os.path.join(out_dir, 'bvals.txt'), bvals[:10])
            np.savetxt(os.path.join(out_dir, 'bvecs.txt'), bvecs[:10])
    
            motion_correction_flow = MotionCorrectionFlow()
    
            motion_correction_flow._force_overwrite = True
>           motion_correction_flow.run(os.path.join(out_dir, 'data.nii.gz'),
                                       os.path.join(out_dir, 'bvals.txt'),
                                       os.path.join(out_dir, 'bvecs.txt'),
                                       out_dir=out_dir)

dipy/workflows/tests/test_align.py:338: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dipy/workflows/align.py:758: in run
    io_it = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

frame = <frame at 0xffff8b82a0c0, file '/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/align.py', line 758, code run>
fnc = <bound method MotionCorrectionFlow.run of <dipy.workflows.align.MotionCorrectionFlow object at 0xffff8843d400>>
output_strategy = 'absolute', mix_names = False

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
__________________________ test_syn_registration_flow __________________________

    def test_syn_registration_flow():
        moving_data, static_data = get_synthetic_warped_circle(40)
        moving_data[..., :10] = 0
        moving_data[..., -1:-11:-1] = 0
        static_data[..., :10] = 0
        static_data[..., -1:-11:-1] = 0
    
        syn_flow = SynRegistrationFlow()
    
        with TemporaryDirectory() as out_dir:
            static_img = nib.Nifti1Image(static_data.astype(float), np.eye(4))
            fname_static = pjoin(out_dir, 'tmp_static.nii.gz')
            nib.save(static_img, fname_static)
    
            moving_img = nib.Nifti1Image(moving_data.astype(float), np.eye(4))
            fname_moving = pjoin(out_dir, 'tmp_moving.nii.gz')
            nib.save(moving_img, fname_moving)
    
            positional_args = [fname_static, fname_moving]
    
            # Test the cc metric
            metric_optional_args = {'metric': 'cc',
                                    'mopt_sigma_diff': 2.0,
                                    'mopt_radius': 4
                                    }
            optimizer_optional_args = {'level_iters': [10, 10, 5],
                                       'step_length': 0.25,
                                       'opt_tol': 1e-5,
                                       'inv_iter': 20,
                                       'inv_tol': 1e-3,
                                       'ss_sigma_factor': 0.2
                                       }
    
            all_args = dict(metric_optional_args, **optimizer_optional_args)
>           syn_flow.run(*positional_args,
                         out_dir=out_dir,
                         **all_args
                         )

dipy/workflows/tests/test_align.py:384: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dipy/workflows/align.py:617: in run
    io_it = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

frame = <frame at 0x1ed92110, file '/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/align.py', line 617, code run>
fnc = <bound method SynRegistrationFlow.run of <dipy.workflows.align.SynRegistrationFlow object at 0xffff8843d940>>
output_strategy = 'absolute', mix_names = False

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
______________________________ test_nlmeans_flow _______________________________

    def test_nlmeans_flow():
        with TemporaryDirectory() as out_dir:
            data_path, _, _ = get_fnames()
            volume, affine = load_nifti(data_path)
    
            nlmeans_flow = NLMeansFlow()
    
>           nlmeans_flow.run(data_path, out_dir=out_dir)

dipy/workflows/tests/test_denoise.py:30: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dipy/workflows/denoise.py:142: in run
    io_it = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

frame = <frame at 0xffff8b809220, file '/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/denoise.py', line 142, code run>
fnc = <bound method NLMeansFlow.run of <dipy.workflows.denoise.NLMeansFlow object at 0xffff8843d550>>
output_strategy = 'absolute', mix_names = False

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
_____________________________ test_patch2self_flow _____________________________

    @needs_sklearn
    def test_patch2self_flow():
        with TemporaryDirectory() as out_dir:
            data_path, fbvals, fbvecs = get_fnames()
    
            patch2self_flow = Patch2SelfFlow()
>           patch2self_flow.run(data_path, fbvals, patch_radius=0, out_dir=out_dir)

dipy/workflows/tests/test_denoise.py:49: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dipy/workflows/denoise.py:78: in run
    io_it = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

frame = <frame at 0xffff8bc1e500, file '/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/denoise.py', line 78, code run>
fnc = <bound method Patch2SelfFlow.run of <dipy.workflows.denoise.Patch2SelfFlow object at 0xffff8843da90>>
output_strategy = 'absolute', mix_names = False

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
________________________________ test_lpca_flow ________________________________

    def test_lpca_flow():
        with TemporaryDirectory() as out_dir:
            data_path, fbvals, fbvecs = get_fnames()
    
        lpca_flow = LPCAFlow()
>       lpca_flow.run(data_path, fbvals, fbvecs, out_dir=out_dir)

dipy/workflows/tests/test_denoise.py:59: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dipy/workflows/denoise.py:240: in run
    io_it = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

frame = <frame at 0xffff8b8298a0, file '/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/denoise.py', line 240, code run>
fnc = <bound method LPCAFlow.run of <dipy.workflows.denoise.LPCAFlow object at 0xffff8843de80>>
output_strategy = 'absolute', mix_names = False

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
_______________________________ test_mppca_flow ________________________________

pytestconfig = <_pytest.config.Config object at 0xffff99662510>, args = ()
kwargs = {'rng': Generator(PCG64) at 0xFFFF8A1BDC40}
rng = Generator(PCG64) at 0xFFFF8A1BDC40, signature = <Signature (rng)>

    def _set_random_number_generator_wrapper(pytestconfig, *args, **kwargs):
        rng = np.random.default_rng(seed_v)
        kwargs['rng'] = rng
        signature = inspect.signature(func)
        if pytestconfig and 'pytestconfig' in signature.parameters.keys():
            output = func(pytestconfig, *args, **kwargs)
        else:
>           output = func(*args, **kwargs)

dipy/testing/decorators.py:95: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dipy/workflows/tests/test_denoise.py:72: in test_mppca_flow
    mppca_flow.run(data_path, out_dir=out_dir)
dipy/workflows/denoise.py:312: in run
    io_it = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

frame = <frame at 0xffff8b8094e0, file '/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/denoise.py', line 312, code run>
fnc = <bound method MPPCAFlow.run of <dipy.workflows.denoise.MPPCAFlow object at 0xffff8843dd30>>
output_strategy = 'absolute', mix_names = False

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
_______________________________ test_gibbs_flow ________________________________

    def test_gibbs_flow():
        def generate_slice():
            Nori = 32
            image = np.zeros((6 * Nori, 6 * Nori))
            image[Nori: 2 * Nori, Nori: 2 * Nori] = 1
            image[Nori: 2 * Nori, 4 * Nori: 5 * Nori] = 1
            image[2 * Nori: 3 * Nori, Nori: 3 * Nori] = 1
            image[3 * Nori: 4 * Nori, 2 * Nori: 3 * Nori] = 2
            image[3 * Nori: 4 * Nori, 4 * Nori: 5 * Nori] = 1
            image[4 * Nori: 5 * Nori, 3 * Nori: 5 * Nori] = 3
    
            # Corrupt image with gibbs ringing
            c = np.fft.fft2(image)
            c = np.fft.fftshift(c)
            c_crop = c[48:144, 48:144]
            image_gibbs = abs(np.fft.ifft2(c_crop)/4)
            return image_gibbs
    
        with TemporaryDirectory() as out_dir:
            image4d = np.zeros((96, 96, 2, 2))
            image4d[:, :, 0, 0] = generate_slice()
            image4d[:, :, 1, 0] = generate_slice()
            image4d[:, :, 0, 1] = generate_slice()
            image4d[:, :, 1, 1] = generate_slice()
            data_path = os.path.join(out_dir, "random_noise.nii.gz")
            save_nifti(data_path, image4d, np.eye(4))
    
            gibbs_flow = GibbsRingingFlow()
>           gibbs_flow.run(data_path, out_dir=out_dir)

dipy/workflows/tests/test_denoise.py:121: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dipy/workflows/denoise.py:372: in run
    io_it = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

frame = <frame at 0xffff8843dfc0, file '/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/denoise.py', line 372, code run>
fnc = <bound method GibbsRingingFlow.run of <dipy.workflows.denoise.GibbsRingingFlow object at 0xffff8843e120>>
output_strategy = 'absolute', mix_names = False

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
______________________________ test_variable_type ______________________________

    def test_variable_type():
        with TemporaryDirectory() as out_dir:
            open(pjoin(out_dir, 'test'), 'w').close()
            open(pjoin(out_dir, 'test1'), 'w').close()
            open(pjoin(out_dir, 'test2'), 'w').close()
    
            sys.argv = [sys.argv[0]]
            pos_results = [pjoin(out_dir, 'test'), pjoin(out_dir, 'test1'),
                           pjoin(out_dir, 'test2'), 12]
            inputs = inputs_from_results(pos_results)
            sys.argv.extend(inputs)
            dcwf = DummyVariableTypeWorkflow()
>           _, positional_res, positional_res2 = run_flow(dcwf)

dipy/workflows/tests/test_iap.py:54: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dipy/workflows/flow_runner.py:88: in run_flow
    return flow.run(**args)
dipy/workflows/tests/workflow_tests_utils.py:159: in run
    io_it = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

frame = <frame at 0xffff8a2245e0, file '/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/tests/workflow_tests_utils.py', line 159, code run>
fnc = <bound method DummyVariableTypeWorkflow.run of <dipy.workflows.tests.workflow_tests_utils.DummyVariableTypeWorkflow object at 0xffff8843e270>>
output_strategy = 'absolute', mix_names = False

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
_______________________________ test_split_flow ________________________________

    def test_split_flow():
        with TemporaryDirectory() as out_dir:
            split_flow = SplitFlow()
            data_path, _, _ = get_fnames()
            volume, affine = load_nifti(data_path)
>           split_flow.run(data_path, out_dir=out_dir)

dipy/workflows/tests/test_io.py:105: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dipy/workflows/io.py:302: in run
    io_it = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

frame = <frame at 0xffff904b96d0, file '/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/io.py', line 302, code run>
fnc = <bound method SplitFlow.run of <dipy.workflows.io.SplitFlow object at 0xffff9065f380>>
output_strategy = 'absolute', mix_names = False

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
_____________________________ test_convert_sh_flow _____________________________

    def test_convert_sh_flow():
        with TemporaryDirectory() as out_dir:
            filepath_in = os.path.join(out_dir, 'sh_coeff_img.nii.gz')
            filename_out = 'sh_coeff_img_converted.nii.gz'
            filepath_out = os.path.join(out_dir, filename_out)
    
            # Create an input image
            dim0, dim1, dim2 = 2, 3, 3  # spatial dimensions of array
            num_sh_coeffs = 15  # 15 sh coeffs means l_max is 4
            img_in = np.arange(
                dim0*dim1*dim2*num_sh_coeffs, dtype=float
            ).reshape(dim0, dim1, dim2, num_sh_coeffs)
            save_nifti(filepath_in, img_in, np.eye(4))
    
            # Compute expected result to compare against later
            expected_img_out = convert_sh_descoteaux_tournier(img_in)
    
            # Run the workflow and load the output
            workflow = ConvertSHFlow()
>           workflow.run(
                filepath_in,
                out_dir=out_dir,
                out_file=filename_out,
            )

dipy/workflows/tests/test_io.py:157: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dipy/workflows/io.py:423: in run
    io_it = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

frame = <frame at 0xffff977195a0, file '/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/io.py', line 423, code run>
fnc = <bound method ConvertSHFlow.run of <dipy.workflows.io.ConvertSHFlow object at 0xffff8843f0e0>>
output_strategy = 'absolute', mix_names = False

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
__________________________ test_convert_tensors_flow ___________________________

    def test_convert_tensors_flow():
        with TemporaryDirectory() as out_dir:
            filepath_in = os.path.join(out_dir, 'tensors_img.nii.gz')
            filename_out = 'tensors_converted.nii.gz'
            filepath_out = os.path.join(out_dir, filename_out)
    
            # Create an input image
            fdata, fbval, fbvec = get_fnames('small_25')
            data, affine = load_nifti(fdata)
            gtab = grad.gradient_table(fbval, fbvec)
            tenmodel = dti.TensorModel(gtab)
            tenfit = tenmodel.fit(data)
    
            tensor_vals = dti.lower_triangular(tenfit.quadratic_form)
            ten_img = nifti1_symmat(tensor_vals, affine=affine)
    
            save_nifti(filepath_in, ten_img.get_fdata().squeeze(), affine)
    
            # Compute expected result to compare against later
            expected_img_out = reconst_utils.convert_tensors(
                ten_img.get_fdata(), 'dipy', 'mrtrix')
    
            # Run the workflow and load the output
            workflow = ConvertTensorsFlow()
>           workflow.run(
                filepath_in,
                from_format='dipy',
                to_format='mrtrix',
                out_dir=out_dir,
                out_tensor=filename_out,
            )

dipy/workflows/tests/test_io.py:212: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dipy/workflows/io.py:457: in run
    io_it = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

frame = <frame at 0xffff904b8e80, file '/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/io.py', line 457, code run>
fnc = <bound method ConvertTensorsFlow.run of <dipy.workflows.io.ConvertTensorsFlow object at 0xffff8843f230>>
output_strategy = 'absolute', mix_names = False

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
__________________________________ test_mask ___________________________________

    def test_mask():
        with TemporaryDirectory() as out_dir:
            data_path, _, _ = get_fnames('small_25')
            volume, affine = load_nifti(data_path)
    
            mask_flow = MaskFlow()
    
            mask_flow.run(data_path, 10, out_dir=out_dir, ub=9)
            assert_false(mask_flow.last_generated_outputs)
    
>           mask_flow.run(data_path, 10, out_dir=out_dir)

dipy/workflows/tests/test_masking.py:21: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dipy/workflows/mask.py:38: in run
    io_it = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

frame = <frame at 0xffff904b8c20, file '/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/mask.py', line 38, code run>
fnc = <bound method MaskFlow.run of <dipy.workflows.mask.MaskFlow object at 0xffff8843f380>>
output_strategy = 'absolute', mix_names = False

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
------------------------------ Captured log call -------------------------------
ERROR    root:mask.py:34 The upper bound(less than) should be greater than the lower bound (greater_than).
_______________________________ test_reconst_csa _______________________________

    def test_reconst_csa():
        with warnings.catch_warnings():
            warnings.filterwarnings(
                "ignore", message=descoteaux07_legacy_msg,
                category=PendingDeprecationWarning)
>           reconst_flow_core(ReconstCSAFlow)

dipy/workflows/tests/test_reconst_csa_csd.py:26: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dipy/workflows/tests/test_reconst_csa_csd.py:55: in reconst_flow_core
    reconst_flow.run(data_path, bval_path, bvec_path, mask_path,
dipy/workflows/reconst.py:786: in run
    io_it = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

frame = <frame at 0x24c426e0, file '/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/reconst.py', line 786, code run>
fnc = <bound method ReconstCSAFlow.run of <dipy.workflows.reconst.ReconstCSAFlow object at 0xffff8843f4d0>>
output_strategy = 'absolute', mix_names = False

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
_______________________________ test_reconst_csd _______________________________

    def test_reconst_csd():
        with warnings.catch_warnings():
            warnings.filterwarnings(
                "ignore", message=descoteaux07_legacy_msg,
                category=PendingDeprecationWarning)
>           reconst_flow_core(ReconstCSDFlow)

dipy/workflows/tests/test_reconst_csa_csd.py:34: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dipy/workflows/tests/test_reconst_csa_csd.py:49: in reconst_flow_core
    reconst_flow.run(data_path, bval_path, bvec_path, mask_path,
dipy/workflows/reconst.py:620: in run
    io_it = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

frame = <frame at 0x1d56cbd0, file '/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/reconst.py', line 620, code run>
fnc = <bound method ReconstCSDFlow.run of <dipy.workflows.reconst.ReconstCSDFlow object at 0xffff8843f620>>
output_strategy = 'absolute', mix_names = False

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
_______________________________ test_reconst_dki _______________________________

    def test_reconst_dki():
        with TemporaryDirectory() as out_dir:
            data_path, bval_path, bvec_path = get_fnames('small_101D')
            volume, affine = load_nifti(data_path)
            mask = np.ones_like(volume[:, :, :, 0])
            mask_path = pjoin(out_dir, 'tmp_mask.nii.gz')
            save_nifti(mask_path, mask.astype(np.uint8), affine)
    
            dki_flow = ReconstDkiFlow()
    
            args = [data_path, bval_path, bvec_path, mask_path]
    
>           dki_flow.run(*args, out_dir=out_dir)

dipy/workflows/tests/test_reconst_dki.py:28: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dipy/workflows/reconst.py:937: in run
    io_it = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

frame = <frame at 0x2554a320, file '/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/reconst.py', line 937, code run>
fnc = <bound method ReconstDkiFlow.run of <dipy.workflows.reconst.ReconstDkiFlow object at 0xffff8843f770>>
output_strategy = 'absolute', mix_names = False

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
_______________________________ test_reconst_dsi _______________________________

    def test_reconst_dsi():
        with TemporaryDirectory() as out_dir:
            data_path, bval_path, bvec_path = get_fnames('small_64D')
            volume, affine = load_nifti(data_path)
            mask = np.ones_like(volume[:, :, :, 0])
            mask_path = pjoin(out_dir, 'tmp_mask.nii.gz')
            save_nifti(mask_path, mask.astype(np.uint8), affine)
    
            dsi_flow = ReconstDsiFlow()
            with warnings.catch_warnings():
                warnings.filterwarnings("ignore", message=descoteaux07_legacy_msg,
                                        category=PendingDeprecationWarning)
>               dsi_flow.run(data_path, bval_path, bvec_path, mask_path,
                             out_dir=out_dir, extract_pam_values=True)

dipy/workflows/tests/test_reconst_dsi.py:26: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dipy/workflows/reconst.py:493: in run
    io_it = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

frame = <frame at 0x255bff80, file '/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/reconst.py', line 493, code run>
fnc = <bound method ReconstDsiFlow.run of <dipy.workflows.reconst.ReconstDsiFlow object at 0xffff8843f8c0>>
output_strategy = 'absolute', mix_names = False

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
_____________________________ test_reconst_dti_wls _____________________________

    def test_reconst_dti_wls():
>       reconst_flow_core(ReconstDtiFlow)

dipy/workflows/tests/test_reconst_dti.py:13: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dipy/workflows/tests/test_reconst_dti.py:44: in reconst_flow_core
    dti_flow.run(*args, **kwargs)
dipy/workflows/reconst.py:332: in run
    io_it = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

frame = <frame at 0x255a9b40, file '/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/reconst.py', line 332, code run>
fnc = <bound method ReconstDtiFlow.run of <dipy.workflows.reconst.ReconstDtiFlow object at 0xffff8843fa10>>
output_strategy = 'absolute', mix_names = False

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
____________________________ test_reconst_dti_nlls _____________________________

    def test_reconst_dti_nlls():
>       reconst_flow_core(ReconstDtiFlow, extra_args=[], extra_kwargs={})

dipy/workflows/tests/test_reconst_dti.py:17: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dipy/workflows/tests/test_reconst_dti.py:44: in reconst_flow_core
    dti_flow.run(*args, **kwargs)
dipy/workflows/reconst.py:332: in run
    io_it = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

frame = <frame at 0x255e74e0, file '/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/reconst.py', line 332, code run>
fnc = <bound method ReconstDtiFlow.run of <dipy.workflows.reconst.ReconstDtiFlow object at 0xffff7446ce10>>
output_strategy = 'absolute', mix_names = False

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
_________________________ test_reconst_dti_alt_tensor __________________________

    def test_reconst_dti_alt_tensor():
>       reconst_flow_core(ReconstDtiFlow, extra_args=[],
                          extra_kwargs={'nifti_tensor': False})

dipy/workflows/tests/test_reconst_dti.py:21: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dipy/workflows/tests/test_reconst_dti.py:44: in reconst_flow_core
    dti_flow.run(*args, **kwargs)
dipy/workflows/reconst.py:332: in run
    io_it = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

frame = <frame at 0x1ed0f740, file '/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/reconst.py', line 332, code run>
fnc = <bound method ReconstDtiFlow.run of <dipy.workflows.reconst.ReconstDtiFlow object at 0xffff7446d090>>
output_strategy = 'absolute', mix_names = False

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
______________________________ test_reconst_ivim _______________________________

    def test_reconst_ivim():
        with TemporaryDirectory() as out_dir:
            bvals = np.array([0., 10., 20., 30., 40., 60., 80., 100.,
                              120., 140., 160., 180., 200., 300., 400.,
                              500., 600., 700., 800., 900., 1000.])
            N = len(bvals)
            bvecs = generate_bvecs(N)
            temp_bval_path = pjoin(out_dir, "temp.bval")
            np.savetxt(temp_bval_path, bvals)
            temp_bvec_path = pjoin(out_dir, "temp.bvec")
            np.savetxt(temp_bvec_path, bvecs)
    
            gtab = gradient_table(bvals, bvecs)
    
            S0, f, D_star, D = 1000.0, 0.132, 0.00885, 0.000921
    
            mevals = np.array(([D_star, D_star, D_star], [D, D, D]))
            # This gives an isotropic signal.
            data = multi_tensor(gtab, mevals, snr=None, S0=S0,
                                fractions=[f * 100, 100 * (1 - f)])
            # Single voxel data
            data_single = data[0]
            temp_affine = np.eye(4)
    
            data_multi = np.zeros((2, 2, 1, len(gtab.bvals)), dtype=int)
            data_multi[0, 0, 0] = data_multi[0, 1, 0] = data_multi[
                1, 0, 0] = data_multi[1, 1, 0] = data_single
            data_path = pjoin(out_dir, 'tmp_data.nii.gz')
            save_nifti(data_path, data_multi, temp_affine,
                       dtype=data_multi.dtype)
    
            mask = np.ones_like(data_multi[..., 0], dtype=np.uint8)
            mask_path = pjoin(out_dir, 'tmp_mask.nii.gz')
            save_nifti(mask_path, mask, temp_affine)
    
            ivim_flow = ReconstIvimFlow()
    
            args = [data_path, temp_bval_path, temp_bvec_path, mask_path]
    
            msg = "Bounds for this fit have been set from experiments and * "
            with warnings.catch_warnings():
                warnings.filterwarnings(
                    "ignore", message=msg,
                    category=UserWarning)
>               ivim_flow.run(*args, out_dir=out_dir)

dipy/workflows/tests/test_reconst_ivim.py:59: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dipy/workflows/reconst.py:1106: in run
    io_it = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

frame = <frame at 0xffff951cce40, file '/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/reconst.py', line 1106, code run>
fnc = <bound method ReconstIvimFlow.run of <dipy.workflows.reconst.ReconstIvimFlow object at 0xffff8843fb60>>
output_strategy = 'absolute', mix_names = False

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
_________________________ test_reconst_mmri_laplacian __________________________

    def test_reconst_mmri_laplacian():
>       reconst_mmri_core(ReconstMAPMRIFlow, lap=True, pos=False)

dipy/workflows/tests/test_reconst_mapmri.py:18: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dipy/workflows/tests/test_reconst_mapmri.py:46: in reconst_mmri_core
    mmri_flow.run(data_files=data_path, bvals_files=bval_path,
dipy/workflows/reconst.py:114: in run
    io_it = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

frame = <frame at 0x1e7d1ef0, file '/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/reconst.py', line 114, code run>
fnc = <bound method ReconstMAPMRIFlow.run of <dipy.workflows.reconst.ReconstMAPMRIFlow object at 0xffff8843fcb0>>
output_strategy = 'absolute', mix_names = False

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
____________________________ test_reconst_mmri_none ____________________________

    def test_reconst_mmri_none():
>       reconst_mmri_core(ReconstMAPMRIFlow, lap=False, pos=False)

dipy/workflows/tests/test_reconst_mapmri.py:22: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dipy/workflows/tests/test_reconst_mapmri.py:46: in reconst_mmri_core
    mmri_flow.run(data_files=data_path, bvals_files=bval_path,
dipy/workflows/reconst.py:114: in run
    io_it = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

frame = <frame at 0x1ebd43d0, file '/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/reconst.py', line 114, code run>
fnc = <bound method ReconstMAPMRIFlow.run of <dipy.workflows.reconst.ReconstMAPMRIFlow object at 0xffff7446d590>>
output_strategy = 'absolute', mix_names = False

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
______________________________ test_reconst_rumba ______________________________

    def test_reconst_rumba():
        with warnings.catch_warnings():
            warnings.filterwarnings(
                "ignore", message=descoteaux07_legacy_msg,
                category=PendingDeprecationWarning)
>           reconst_flow_core(ReconstRUMBAFlow)

dipy/workflows/tests/test_reconst_rumba.py:21: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dipy/workflows/tests/test_reconst_rumba.py:34: in reconst_flow_core
    reconst_flow.run(
dipy/utils/deprecator.py:408: in wrapper
    return function(*args, **kwargs)
dipy/workflows/reconst.py:1293: in run
    io_it = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

frame = <frame at 0x1ce77b10, file '/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/reconst.py', line 1293, code run>
fnc = <bound method ReconstRUMBAFlow.run of <dipy.workflows.reconst.ReconstRUMBAFlow object at 0xffff8843fe00>>
output_strategy = 'absolute', mix_names = False

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
____________________________ test_median_otsu_flow _____________________________

    def test_median_otsu_flow():
        with TemporaryDirectory() as out_dir:
            data_path, _, _ = get_fnames('small_25')
            volume = load_nifti_data(data_path)
            save_masked = True
            median_radius = 3
            numpass = 3
            autocrop = False
            vol_idx = [0]
            dilate = 0
    
            mo_flow = MedianOtsuFlow()
>           mo_flow.run(data_path, out_dir=out_dir, save_masked=save_masked,
                        median_radius=median_radius, numpass=numpass,
                        autocrop=autocrop, vol_idx=vol_idx, dilate=dilate)

dipy/workflows/tests/test_segment.py:32: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dipy/workflows/segment.py:59: in run
    io_it = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

frame = <frame at 0xffff888d2430, file '/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/segment.py', line 59, code run>
fnc = <bound method MedianOtsuFlow.run of <dipy.workflows.segment.MedianOtsuFlow object at 0xffff888c41a0>>
output_strategy = 'absolute', mix_names = False

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
____________________________ test_recobundles_flow _____________________________

    def test_recobundles_flow():
        with TemporaryDirectory() as out_dir:
            data_path = get_fnames('fornix')
    
            fornix = load_tractogram(data_path, 'same',
                                     bbox_valid_check=False).streamlines
    
            f = Streamlines(fornix)
            f1 = f.copy()
    
            f2 = f1[:15].copy()
            f2._data += np.array([40, 0, 0])
    
            f.extend(f2)
    
            f2_path = pjoin(out_dir, "f2.trk")
            sft = StatefulTractogram(f2, data_path, Space.RASMM)
            save_tractogram(sft, f2_path, bbox_valid_check=False)
    
            f1_path = pjoin(out_dir, "f1.trk")
            sft = StatefulTractogram(f, data_path, Space.RASMM)
            save_tractogram(sft, f1_path, bbox_valid_check=False)
    
            rb_flow = RecoBundlesFlow(force=True)
>           rb_flow.run(f1_path, f2_path, greater_than=0, clust_thr=10,
                        model_clust_thr=5., reduction_thr=10, out_dir=out_dir)

dipy/workflows/tests/test_segment.py:78: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dipy/workflows/segment.py:208: in run
    io_it = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

frame = <frame at 0x25578e60, file '/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/segment.py', line 208, code run>
fnc = <bound method RecoBundlesFlow.run of <dipy.workflows.segment.RecoBundlesFlow object at 0xffff888c42f0>>
output_strategy = 'absolute', mix_names = False

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
------------------------------ Captured log call -------------------------------
INFO     root:segment.py:206 ### RecoBundles ###
__________________________________ test_stats __________________________________

    def test_stats():
        with TemporaryDirectory() as out_dir:
    
            data_path, bval_path, bvec_path = get_fnames('small_101D')
            volume, affine = load_nifti(data_path)
            mask = np.ones_like(volume[:, :, :, 0], dtype=np.uint8)
            mask_path = join(out_dir, 'tmp_mask.nii.gz')
            save_nifti(mask_path, mask, affine)
    
            snr_flow = SNRinCCFlow(force=True)
            args = [data_path, bval_path, bvec_path, mask_path]
>           snr_flow.run(*args, out_dir=out_dir)

dipy/workflows/tests/test_stats.py:42: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dipy/workflows/stats.py:67: in run
    io_it = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

frame = <frame at 0x1e7d0ea0, file '/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/stats.py', line 67, code run>
fnc = <bound method SNRinCCFlow.run of <dipy.workflows.stats.SNRinCCFlow object at 0xffff888c4440>>
output_strategy = 'absolute', mix_names = False

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
__________________ test_particle_filtering_tracking_workflows __________________

    def test_particle_filtering_tracking_workflows():
        with TemporaryDirectory() as out_dir:
            dwi_path, bval_path, bvec_path = get_fnames('small_64D')
            volume, affine = load_nifti(dwi_path)
    
            # Create some mask
            mask = np.ones_like(volume[:, :, :, 0], dtype=np.uint8)
            mask_path = join(out_dir, 'tmp_mask.nii.gz')
            save_nifti(mask_path, mask, affine)
    
            simple_wm = np.array([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
                                  [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
                                  [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
                                  [0, 0, 0, 1, 1, 1, 0, 0, 0, 0],
                                  [0, 0, 1, 1, 1, 1, 0, 1, 0, 0],
                                  [0, 0, 1, 0, 1, 0, 1, 0, 0, 0],
                                  [0, 0, 1, 0, 1, 1, 0, 1, 0, 0],
                                  [0, 0, 0, 1, 1, 0, 1, 0, 0, 0],
                                  [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
                                  [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
                                  ])
            simple_wm = np.dstack([np.zeros(simple_wm.shape),
                                   np.zeros(simple_wm.shape),
                                   simple_wm, simple_wm, simple_wm,
                                   simple_wm, simple_wm, simple_wm,
                                   np.zeros(simple_wm.shape),
                                   np.zeros(simple_wm.shape)])
            simple_gm = np.array([[0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
                                  [0, 0, 1, 1, 0, 0, 1, 1, 1, 0],
                                  [0, 1, 0, 0, 0, 0, 0, 0, 0, 1],
                                  [0, 1, 0, 0, 0, 0, 0, 0, 1, 0],
                                  [0, 1, 0, 0, 0, 0, 0, 0, 1, 0],
                                  [0, 1, 0, 0, 0, 0, 0, 0, 0, 1],
                                  [1, 0, 0, 0, 0, 0, 0, 0, 1, 0],
                                  [0, 1, 0, 0, 0, 0, 1, 0, 1, 0],
                                  [0, 1, 1, 0, 1, 1, 1, 0, 1, 1],
                                  [0, 0, 0, 1, 0, 0, 0, 1, 1, 0],
                                  ])
            simple_gm = np.dstack([np.zeros(simple_gm.shape),
                                   np.zeros(simple_gm.shape),
                                   simple_gm, simple_gm, simple_gm,
                                   simple_gm, simple_gm, simple_gm,
                                   np.zeros(simple_gm.shape),
                                   np.zeros(simple_gm.shape)])
            simple_csf = np.ones(simple_wm.shape) - simple_wm - simple_gm
    
            wm_path = join(out_dir, 'tmp_wm.nii.gz')
            gm_path = join(out_dir, 'tmp_gm.nii.gz')
            csf_path = join(out_dir, 'tmp_csf.nii.gz')
    
            for path, arr in zip([wm_path, gm_path, csf_path],
                                 [simple_wm, simple_gm, simple_csf]):
                save_nifti(path, arr.astype(np.uint8), affine)
    
            # CSD Reconstruction
            reconst_csd_flow = ReconstCSDFlow()
            with warnings.catch_warnings():
                warnings.filterwarnings(
                    "ignore", message=descoteaux07_legacy_msg,
                    category=PendingDeprecationWarning)
>               reconst_csd_flow.run(dwi_path, bval_path, bvec_path, mask_path,
                                     out_dir=out_dir, extract_pam_values=True)

dipy/workflows/tests/test_tracking.py:81: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dipy/workflows/reconst.py:620: in run
    io_it = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

frame = <frame at 0x253274e0, file '/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/reconst.py', line 620, code run>
fnc = <bound method ReconstCSDFlow.run of <dipy.workflows.reconst.ReconstCSDFlow object at 0xffff7446e350>>
output_strategy = 'absolute', mix_names = False

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
______________________ test_local_fiber_tracking_workflow ______________________

    def test_local_fiber_tracking_workflow():
        with TemporaryDirectory() as out_dir:
            data_path, bval_path, bvec_path = get_fnames('small_64D')
            volume, affine = load_nifti(data_path)
            mask = np.ones_like(volume[:, :, :, 0], dtype=np.uint8)
            mask_path = join(out_dir, 'tmp_mask.nii.gz')
            save_nifti(mask_path, mask, affine)
    
            reconst_csd_flow = ReconstCSDFlow()
            with warnings.catch_warnings():
                warnings.filterwarnings(
                    "ignore", message=descoteaux07_legacy_msg,
                    category=PendingDeprecationWarning)
>               reconst_csd_flow.run(data_path, bval_path, bvec_path, mask_path,
                                     out_dir=out_dir, extract_pam_values=True)

dipy/workflows/tests/test_tracking.py:136: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dipy/workflows/reconst.py:620: in run
    io_it = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

frame = <frame at 0x25072450, file '/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/reconst.py', line 620, code run>
fnc = <bound method ReconstCSDFlow.run of <dipy.workflows.reconst.ReconstCSDFlow object at 0xffff7446e210>>
output_strategy = 'absolute', mix_names = False

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
_____________________________ test_force_overwrite _____________________________

    def test_force_overwrite():
        with TemporaryDirectory() as out_dir:
            data_path, _, _ = get_fnames('small_25')
            mo_flow = MedianOtsuFlow(output_strategy='absolute')
    
            # Generate the first results
>           mo_flow.run(data_path, out_dir=out_dir, vol_idx=[0])

dipy/workflows/tests/test_workflow.py:19: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dipy/workflows/segment.py:59: in run
    io_it = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

frame = <frame at 0xffff88896430, file '/<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/segment.py', line 59, code run>
fnc = <bound method MedianOtsuFlow.run of <dipy.workflows.segment.MedianOtsuFlow object at 0xffff7446e5d0>>
output_strategy = 'absolute', mix_names = False

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
______________________________ test_missing_file _______________________________

    def test_missing_file():
        # The function is invoking a dummy workflow with a non-existent file.
        # So, an OSError will be raised.
    
        class TestMissingFile(Workflow):
    
            def run(self, filename, out_dir=''):
                """Dummy Workflow used to test if input file is absent.
    
                Parameters
                ----------
    
                filename : string
                    path of the first input file.
                out_dir: string, optional
                    folder path to save the results.
                """
                io = self.get_io_iterator()
    
        dummyflow = TestMissingFile()
        with TemporaryDirectory() as tempdir:
>           npt.assert_raises(OSError, dummyflow.run,
                              pjoin(tempdir, 'dummy_file.txt'))

dipy/workflows/tests/test_workflow.py:71: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.13/unittest/case.py:795: in assertRaises
    return context.handle('assertRaises', args, kwargs)
/usr/lib/python3.13/unittest/case.py:238: in handle
    callable_obj(*args, **kwargs)
dipy/workflows/tests/test_workflow.py:67: in run
    io = self.get_io_iterator()
dipy/workflows/workflow.py:36: in get_io_iterator
    io_it = io_iterator_(frame, self.run,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

    def io_iterator_(frame, fnc, output_strategy='absolute', mix_names=False):
        """Create an IOIterator using introspection.
    
        Parameters
        ----------
        frame : frameobject
            Contains the info about the current local variables values.
        fnc : function
            The function to inspect
        output_strategy : string
            Controls the behavior of the IOIterator for output paths.
        mix_names : bool
            Whether or not to append a mix of input names at the beginning.
    
        Returns
        -------
            Properly instantiated IOIterator object.
    
        """
        args, _, _, values = inspect.getargvalues(frame)
        args.remove('self')
>       del values['self']
E       TypeError: cannot remove variables from FrameLocalsProxy

dipy/workflows/multi_io.py:177: TypeError
=============================== warnings summary ===============================
dipy/reconst/qti.py:19
  /<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/reconst/qti.py:19: SyntaxWarning: invalid escape sequence '\m'
    """Convert symmetric 3 x 3 matrices into 6 x 1 vectors.

dipy/reconst/qti.py:57
  /<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/reconst/qti.py:57: SyntaxWarning: invalid escape sequence '\m'
    """Convert 6 x 1 vectors into symmetric 3 x 3 matrices.

dipy/reconst/qti.py:91
  /<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/reconst/qti.py:91: SyntaxWarning: invalid escape sequence '\m'
    """Convert symmetric 6 x 6 matrices into 21 x 1 vectors.

dipy/reconst/qti.py:137
  /<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/reconst/qti.py:137: SyntaxWarning: invalid escape sequence '\m'
    """Convert 21 x 1 vectors into symmetric 6 x 6 matrices.

dipy/reconst/qti.py:187
  /<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/reconst/qti.py:187: SyntaxWarning: invalid escape sequence '\m'
    """Convert a 1 x 6 vector into a symmetric 3 x 3 matrix.

dipy/reconst/qti.py:222
  /<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/reconst/qti.py:222: SyntaxWarning: invalid escape sequence '\m'
    """Convert 1 x 21 vector into a symmetric 6 x 6 matrix.

dipy/reconst/qti.py:280
  /<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/reconst/qti.py:280: SyntaxWarning: invalid escape sequence '\m'
    """Calculate covariance of a diffusion tensor distribution (DTD).

dipy/reconst/qti.py:323
  /<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/reconst/qti.py:323: SyntaxWarning: invalid escape sequence '\e'
    """Generate signals using the covariance tensor signal representation.

dipy/reconst/qti.py:395
  /<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/reconst/qti.py:395: SyntaxWarning: invalid escape sequence '\m'
    """Calculate the design matrix from the b-tensors.

dipy/reconst/qti.py:761
  /<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/reconst/qti.py:761: SyntaxWarning: invalid escape sequence '\l'
    """Mean diffusivity.

dipy/reconst/qti.py:783
  /<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/reconst/qti.py:783: SyntaxWarning: invalid escape sequence '\m'
    """Variance of microscopic mean diffusivities.

dipy/reconst/qti.py:805
  /<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/reconst/qti.py:805: SyntaxWarning: invalid escape sequence '\m'
    """Shear variance.

dipy/reconst/qti.py:827
  /<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/reconst/qti.py:827: SyntaxWarning: invalid escape sequence '\m'
    """Total isotropic variance.

dipy/reconst/qti.py:863
  /<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/reconst/qti.py:863: SyntaxWarning: invalid escape sequence '\l'
    """Average of microscopic diffusion tensors' outer products with

dipy/reconst/qti.py:886
  /<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/reconst/qti.py:886: SyntaxWarning: invalid escape sequence '\m'
    """Normalized variance of mean diffusivities.

dipy/reconst/qti.py:909
  /<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/reconst/qti.py:909: SyntaxWarning: invalid escape sequence '\m'
    """Normalized microscopic anisotropy.

dipy/reconst/qti.py:934
  /<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/reconst/qti.py:934: SyntaxWarning: invalid escape sequence '\m'
    """Microscopic fractional anisotropy.

dipy/reconst/qti.py:953
  /<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/reconst/qti.py:953: SyntaxWarning: invalid escape sequence '\l'
    """Normalized macroscopic anisotropy.

dipy/reconst/qti.py:979
  /<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/reconst/qti.py:979: SyntaxWarning: invalid escape sequence '\s'
    """Fractional anisotropy.

dipy/reconst/qti.py:998
  /<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/reconst/qti.py:998: SyntaxWarning: invalid escape sequence '\m'
    """Microscopic orientation coherence.

dipy/reconst/qti.py:1036
  /<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/reconst/qti.py:1036: SyntaxWarning: invalid escape sequence '\m'
    """Bulk kurtosis.

dipy/reconst/qti.py:1061
  /<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/reconst/qti.py:1061: SyntaxWarning: invalid escape sequence '\m'
    """Shear kurtosis.

dipy/reconst/qti.py:1086
  /<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/reconst/qti.py:1086: SyntaxWarning: invalid escape sequence '\m'
    """Microscopic kurtosis.

debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/denoise/tests/test_gibbs.py: 31 warnings
debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/direction/tests/test_peaks.py: 94 warnings
debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/reconst/tests/test_sfm.py: 16 warnings
debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/utils/tests/test_parallel.py: 32 warnings
  /usr/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=1669) is multi-threaded, use of fork() may lead to deadlocks in the child.
    self.pid = os.fork()

debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/reconst/tests/test_sfm.py::test_sfm
  /usr/lib/python3/dist-packages/joblib/externals/loky/backend/fork_exec.py:38: DeprecationWarning: This process (pid=1669) is multi-threaded, use of fork() may lead to deadlocks in the child.
    pid = os.fork()

debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/tests/test_tracking.py::test_particle_filtering_tracking_workflows
  /<<PKGBUILDDIR>>/debian/python3-dipy/usr/lib/python3.13/dist-packages/dipy/workflows/tests/test_tracking.py:73: RuntimeWarning: invalid value encountered in cast
    save_nifti(path, arr.astype(np.uint8), affine)

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED dipy/utils/tests/test_deprecator.py::test_deprecate_with_version - Ass...
FAILED dipy/workflows/tests/test_align.py::test_reslice - TypeError: cannot r...
FAILED dipy/workflows/tests/test_align.py::test_slr_flow - TypeError: cannot ...
FAILED dipy/workflows/tests/test_align.py::test_image_registration - TypeErro...
FAILED dipy/workflows/tests/test_align.py::test_apply_affine_transform - Type...
FAILED dipy/workflows/tests/test_align.py::test_motion_correction - TypeError...
FAILED dipy/workflows/tests/test_align.py::test_syn_registration_flow - TypeE...
FAILED dipy/workflows/tests/test_denoise.py::test_nlmeans_flow - TypeError: c...
FAILED dipy/workflows/tests/test_denoise.py::test_patch2self_flow - TypeError...
FAILED dipy/workflows/tests/test_denoise.py::test_lpca_flow - TypeError: cann...
FAILED dipy/workflows/tests/test_denoise.py::test_mppca_flow - TypeError: can...
FAILED dipy/workflows/tests/test_denoise.py::test_gibbs_flow - TypeError: can...
FAILED dipy/workflows/tests/test_iap.py::test_variable_type - TypeError: cann...
FAILED dipy/workflows/tests/test_io.py::test_split_flow - TypeError: cannot r...
FAILED dipy/workflows/tests/test_io.py::test_convert_sh_flow - TypeError: can...
FAILED dipy/workflows/tests/test_io.py::test_convert_tensors_flow - TypeError...
FAILED dipy/workflows/tests/test_masking.py::test_mask - TypeError: cannot re...
FAILED dipy/workflows/tests/test_reconst_csa_csd.py::test_reconst_csa - TypeE...
FAILED dipy/workflows/tests/test_reconst_csa_csd.py::test_reconst_csd - TypeE...
FAILED dipy/workflows/tests/test_reconst_dki.py::test_reconst_dki - TypeError...
FAILED dipy/workflows/tests/test_reconst_dsi.py::test_reconst_dsi - TypeError...
FAILED dipy/workflows/tests/test_reconst_dti.py::test_reconst_dti_wls - TypeE...
FAILED dipy/workflows/tests/test_reconst_dti.py::test_reconst_dti_nlls - Type...
FAILED dipy/workflows/tests/test_reconst_dti.py::test_reconst_dti_alt_tensor
FAILED dipy/workflows/tests/test_reconst_ivim.py::test_reconst_ivim - TypeErr...
FAILED dipy/workflows/tests/test_reconst_mapmri.py::test_reconst_mmri_laplacian
FAILED dipy/workflows/tests/test_reconst_mapmri.py::test_reconst_mmri_none - ...
FAILED dipy/workflows/tests/test_reconst_rumba.py::test_reconst_rumba - TypeE...
FAILED dipy/workflows/tests/test_segment.py::test_median_otsu_flow - TypeErro...
FAILED dipy/workflows/tests/test_segment.py::test_recobundles_flow - TypeErro...
FAILED dipy/workflows/tests/test_stats.py::test_stats - TypeError: cannot rem...
FAILED dipy/workflows/tests/test_tracking.py::test_particle_filtering_tracking_workflows
FAILED dipy/workflows/tests/test_tracking.py::test_local_fiber_tracking_workflow
FAILED dipy/workflows/tests/test_workflow.py::test_force_overwrite - TypeErro...
FAILED dipy/workflows/tests/test_workflow.py::test_missing_file - TypeError: ...
= 35 failed, 787 passed, 169 skipped, 9 deselected, 198 warnings in 716.07s (0:11:56) =
make[1]: *** [debian/rules:96: execute_after_dh_auto_install] Error 1
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:73: binary-arch] Error 2
dpkg-buildpackage: error: debian/rules binary-arch subprocess returned exit status 2
--------------------------------------------------------------------------------
Build finished at 2024-09-13T20:21:10Z

If required, the full build log is available here (for the next 30 days):
https://debusine.debian.net/artifact/712810/

This bug has been filed at "normal" severity, as we haven't started the
transition to add 3.13 as a supported version, yet. This will be raised to RC
as soon as that happens, hopefully well before trixie.

Thanks,

Stefano



More information about the Debian-med-packaging mailing list