Your message dated Wed, 27 May 2026 11:49:13 +0000
with message-id <[email protected]>
and subject line Bug#1119748: fixed in mdp 3.6-11
has caused the Debian Bug report #1119748,
regarding mdp: FTBFS: E               ValueError: You must pass an estimator to 
SelfTrainingClassifier. Use `estimator`.
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
1119748: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1119748
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: src:mdp
Version: 3.6-10
Severity: serious
Tags: ftbfs forky sid

Dear maintainer:

During a rebuild of all packages in unstable, this package failed to build.

Below you will find the last part of the build log (probably the most
relevant part, but not necessarily). If required, the full build log
is available here:

https://people.debian.org/~sanvila/build-logs/202510/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you cannot reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:mdp, so that this is still
visible in the BTS web page for this package.

Thanks.

--------------------------------------------------------------------------------
[...]
 debian/rules clean
dh clean --buildsystem=pybuild
   dh_auto_clean -O--buildsystem=pybuild
I: pybuild base:311: python3.13 setup.py clean 
/<<PKGBUILDDIR>>/setup.py:2: SetuptoolsDeprecationWarning: The test command is 
disabled and references to it are deprecated.
!!

        
********************************************************************************
        Please remove any references to `setuptools.command.test` in all 
supported versions of the affected package.

        This deprecation is overdue, please update your project and remove 
deprecated
        calls to avoid build errors in the future.
        
********************************************************************************

!!

[... snipped ...]

    ???
mdp/signal_node.py:631: in stop_training
    self._train_seq[self._train_phase][1](*args, **kwargs)
mdp/nodes/scikits_nodes.py:252: in _stop_training
    return self.scikits_alg.fit(self.data, self.labels, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/sklearn/base.py:1365: in wrapper
    return fit_method(estimator, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/sklearn/semi_supervised/_self_training.py:265: 
in fit
    self.estimator_ = self._get_estimator()
                      ^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = SelfTrainingClassifier()

    def _get_estimator(self):
        """Get the estimator.
    
        Returns
        -------
        estimator_ : estimator object
            The cloned estimator object.
        """
        # TODO(1.8): remove and only keep clone(self.estimator)
        if self.estimator is None and self.base_estimator != "deprecated":
            estimator_ = clone(self.base_estimator)
    
            warn(
                (
                    "`base_estimator` has been deprecated in 1.6 and will be 
removed"
                    " in 1.8. Please use `estimator` instead."
                ),
                FutureWarning,
            )
        # TODO(1.8) remove
        elif self.estimator is None and self.base_estimator == "deprecated":
>           raise ValueError(
                "You must pass an estimator to SelfTrainingClassifier. Use 
`estimator`."
E               ValueError: You must pass an estimator to 
SelfTrainingClassifier. Use `estimator`.

/usr/lib/python3/dist-packages/sklearn/semi_supervised/_self_training.py:219: 
ValueError
__________ test_dimdtypeset[FixedThresholdClassifierScikitsLearnNode] __________

klass = <class 'mdp.nodes.wrap_scikits_classifier.<locals>.ScikitsNode'>
init_args = []
inp_arg_gen = <function generic_test_factory.<locals>.<lambda> at 
0x7f86f5a539c0>
sup_arg_gen = <function _rand_labels at 0x7f86f5ad5620>, execute_arg_gen = None

    def test_dimdtypeset(klass, init_args, inp_arg_gen,
                         sup_arg_gen, execute_arg_gen):
        init_args = call_init_args(init_args)
        inp = inp_arg_gen()
        # See https://github.com/mdp-toolkit/mdp-toolkit/pull/47
        # and https://github.com/mdp-toolkit/mdp-toolkit/issues/62.
        if klass.__name__ in ABSINPUT_NODES:
            inp = numx.absolute(inp)
>       node = klass(*init_args)
               ^^^^^^^^^^^^^^^^^

mdp/test/test_nodes_generic.py:305: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = FixedThresholdClassifierScikitsLearnNode(input_dim=None, 
output_dim=None, dtype=None)
input_dim = None, output_dim = None, dtype = None, kwargs = {}

    def __init__(self, input_dim=None, output_dim=None, dtype=None,
                 **kwargs):
        """
        Initializes an object of type 'ScikitsNode'.
    
        :param input_dim: Dimensionality of the input.
            Default is None.
        :type input_dim: int
    
        :param output_dim: Dimensionality of the output.
            Default is None.
        :type output_dim: int
    
        :param dtype: Datatype of the input.
            Default is None.
        :type dtype: numpy.dtype or str
        """
        if output_dim is not None:
            # output_dim and n_components cannot be defined at the same time
            if 'n_components' in kwargs:
                msg = ("Dimensionality set both by "
                       "output_dim=%d and n_components=%d""")
                raise ScikitsException(msg % (output_dim,
                                              kwargs['n_components']))
    
    
        super(ScikitsNode, self).__init__(input_dim=input_dim,
                                          output_dim=output_dim,
                                          dtype=dtype)
>       self.scikits_alg = scikits_class(**kwargs)
                           ^^^^^^^^^^^^^^^^^^^^^^^
E       TypeError: FixedThresholdClassifier.__init__() missing 1 required 
positional argument: 'estimator'

mdp/nodes/scikits_nodes.py:246: TypeError
_________ test_dimdtypeset[TunedThresholdClassifierCVScikitsLearnNode] _________

klass = <class 'mdp.nodes.wrap_scikits_classifier.<locals>.ScikitsNode'>
init_args = []
inp_arg_gen = <function generic_test_factory.<locals>.<lambda> at 
0x7f86f5a53a60>
sup_arg_gen = <function _rand_labels at 0x7f86f5ad5620>, execute_arg_gen = None

    def test_dimdtypeset(klass, init_args, inp_arg_gen,
                         sup_arg_gen, execute_arg_gen):
        init_args = call_init_args(init_args)
        inp = inp_arg_gen()
        # See https://github.com/mdp-toolkit/mdp-toolkit/pull/47
        # and https://github.com/mdp-toolkit/mdp-toolkit/issues/62.
        if klass.__name__ in ABSINPUT_NODES:
            inp = numx.absolute(inp)
>       node = klass(*init_args)
               ^^^^^^^^^^^^^^^^^

mdp/test/test_nodes_generic.py:305: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = TunedThresholdClassifierCVScikitsLearnNode(input_dim=None, 
output_dim=None, dtype=None)
input_dim = None, output_dim = None, dtype = None, kwargs = {}

    def __init__(self, input_dim=None, output_dim=None, dtype=None,
                 **kwargs):
        """
        Initializes an object of type 'ScikitsNode'.
    
        :param input_dim: Dimensionality of the input.
            Default is None.
        :type input_dim: int
    
        :param output_dim: Dimensionality of the output.
            Default is None.
        :type output_dim: int
    
        :param dtype: Datatype of the input.
            Default is None.
        :type dtype: numpy.dtype or str
        """
        if output_dim is not None:
            # output_dim and n_components cannot be defined at the same time
            if 'n_components' in kwargs:
                msg = ("Dimensionality set both by "
                       "output_dim=%d and n_components=%d""")
                raise ScikitsException(msg % (output_dim,
                                              kwargs['n_components']))
    
    
        super(ScikitsNode, self).__init__(input_dim=input_dim,
                                          output_dim=output_dim,
                                          dtype=dtype)
>       self.scikits_alg = scikits_class(**kwargs)
                           ^^^^^^^^^^^^^^^^^^^^^^^
E       TypeError: TunedThresholdClassifierCV.__init__() missing 1 required 
positional argument: 'estimator'

mdp/nodes/scikits_nodes.py:246: TypeError
___________ test_dimdtypeset[SelfTrainingClassifierScikitsLearnNode] ___________

klass = <class 'mdp.nodes.wrap_scikits_classifier.<locals>.ScikitsNode'>
init_args = []
inp_arg_gen = <function generic_test_factory.<locals>.<lambda> at 
0x7f86f5a64fe0>
sup_arg_gen = <function _rand_labels at 0x7f86f5ad5620>, execute_arg_gen = None

    def test_dimdtypeset(klass, init_args, inp_arg_gen,
                         sup_arg_gen, execute_arg_gen):
        init_args = call_init_args(init_args)
        inp = inp_arg_gen()
        # See https://github.com/mdp-toolkit/mdp-toolkit/pull/47
        # and https://github.com/mdp-toolkit/mdp-toolkit/issues/62.
        if klass.__name__ in ABSINPUT_NODES:
            inp = numx.absolute(inp)
        node = klass(*init_args)
        _train_if_necessary(inp, node, sup_arg_gen)
>       _stop_training_or_execute(node, inp)

mdp/test/test_nodes_generic.py:307: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
mdp/test/test_nodes_generic.py:93: in _stop_training_or_execute
    node.stop_training()
<string>:1: in <lambda>
    ???
mdp/signal_node.py:631: in stop_training
    self._train_seq[self._train_phase][1](*args, **kwargs)
mdp/nodes/scikits_nodes.py:252: in _stop_training
    return self.scikits_alg.fit(self.data, self.labels, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/sklearn/base.py:1365: in wrapper
    return fit_method(estimator, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/sklearn/semi_supervised/_self_training.py:265: 
in fit
    self.estimator_ = self._get_estimator()
                      ^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = SelfTrainingClassifier()

    def _get_estimator(self):
        """Get the estimator.
    
        Returns
        -------
        estimator_ : estimator object
            The cloned estimator object.
        """
        # TODO(1.8): remove and only keep clone(self.estimator)
        if self.estimator is None and self.base_estimator != "deprecated":
            estimator_ = clone(self.base_estimator)
    
            warn(
                (
                    "`base_estimator` has been deprecated in 1.6 and will be 
removed"
                    " in 1.8. Please use `estimator` instead."
                ),
                FutureWarning,
            )
        # TODO(1.8) remove
        elif self.estimator is None and self.base_estimator == "deprecated":
>           raise ValueError(
                "You must pass an estimator to SelfTrainingClassifier. Use 
`estimator`."
E               ValueError: You must pass an estimator to 
SelfTrainingClassifier. Use `estimator`.

/usr/lib/python3/dist-packages/sklearn/semi_supervised/_self_training.py:219: 
ValueError
=============================== warnings summary ===============================
mdp/linear_flows_online.py:381
  /<<PKGBUILDDIR>>/mdp/linear_flows_online.py:381: SyntaxWarning: invalid 
escape sequence '\ '
    \    /

mdp/nodes/isfa_nodes.py:109
  /<<PKGBUILDDIR>>/mdp/nodes/isfa_nodes.py:109: SyntaxWarning: invalid escape 
sequence '\k'
    \kappa_{ICA}^{\tau} in the paper). Default is 1.

../../../usr/lib/python3/dist-packages/zombie_imp/__init__.py:1
  /usr/lib/python3/dist-packages/zombie_imp/__init__.py:1: DeprecationWarning: 
the imp module was removed in favour of importlib. Someone brought it back, but 
it's not a good idea to use it.
    from .imp_3_11 import *

mdp/test/test_IncSFANode.py: 74995 warnings
mdp/test/test_MCANode.py: 80880 warnings
mdp/test/test_nodes_generic.py: 20000 warnings
  /<<PKGBUILDDIR>>/mdp/nodes/mca_nodes_online.py:132: DeprecationWarning: 
Conversion of an array with ndim > 0 to a scalar is deprecated, and will error 
in future. Ensure you extract a single element from your array before 
performing this operation. (Deprecated NumPy 1.25.)
    self.d[j] = mdp.numx.sqrt(l)

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
===================================== NOTE =====================================
          python: 3.13.9.final.0
             mdp: 3.6
 parallel python: NOT AVAILABLE: No module named 'pp'
          shogun: NOT AVAILABLE: No module named 'shogun'
          libsvm: NOT AVAILABLE: No module named 'libsvm'
          joblib: 1.4.2
         sklearn: 1.7.2
            numx: numpy 2.3.4
          symeig: symeig_fake
Random Seed: 725021957

IMPORTANT: some tests use random numbers. This could
occasionally lead to failures due to numerical degeneracies.
To rule this out, please run the tests more than once.
If you get reproducible failures please report a bug!

=========================== short test summary info ============================
FAILED 
mdp/test/test_nodes_generic.py::test_dtype_consistency[FixedThresholdClassifierScikitsLearnNode]
FAILED 
mdp/test/test_nodes_generic.py::test_dtype_consistency[TunedThresholdClassifierCVScikitsLearnNode]
FAILED 
mdp/test/test_nodes_generic.py::test_dtype_consistency[SelfTrainingClassifierScikitsLearnNode]
FAILED 
mdp/test/test_nodes_generic.py::test_outputdim_consistency[FixedThresholdClassifierScikitsLearnNode]
FAILED 
mdp/test/test_nodes_generic.py::test_outputdim_consistency[TunedThresholdClassifierCVScikitsLearnNode]
FAILED 
mdp/test/test_nodes_generic.py::test_outputdim_consistency[SelfTrainingClassifierScikitsLearnNode]
FAILED 
mdp/test/test_nodes_generic.py::test_dimdtypeset[FixedThresholdClassifierScikitsLearnNode]
FAILED 
mdp/test/test_nodes_generic.py::test_dimdtypeset[TunedThresholdClassifierCVScikitsLearnNode]
FAILED 
mdp/test/test_nodes_generic.py::test_dimdtypeset[SelfTrainingClassifierScikitsLearnNode]
==== 9 failed, 843 passed, 16 skipped, 175878 warnings in 72.17s (0:01:12) =====
E: pybuild pybuild:389: test: plugin custom failed with: exit code=1: 
python3.13 -m pytest --seed=725021957 mdp && python3.13 -m pytest 
--seed=725021957 bimdp
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.13 
returned exit code 13
make[1]: *** [debian/rules:10: override_dh_auto_test] Error 25
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:7: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------

--- End Message ---
--- Begin Message ---
Source: mdp
Source-Version: 3.6-11
Done: Santiago Vila <[email protected]>

We believe that the bug you reported is fixed in the latest version of
mdp, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Santiago Vila <[email protected]> (supplier of updated mdp package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Wed, 27 May 2026 13:20:00 +0200
Source: mdp
Architecture: source
Version: 3.6-11
Distribution: unstable
Urgency: medium
Maintainer: Debian Python Team <[email protected]>
Changed-By: Santiago Vila <[email protected]>
Closes: 1119748 1131059
Changes:
 mdp (3.6-11) unstable; urgency=medium
 .
   * Team upload.
 .
   [ Bastian Germann ]
   * d/copyright: Convert to machine-readable format.
 .
   [ Athul R T ]
   * Modified setup.py to support latest versions of python.
   * Updated scikits_nodes.py for sklearn latest version. Closes: #1119748.
   * Updated mca_nodes_online.py to solve numpy compatibility. Closes: #1131059.
 .
   [ Santiago Vila ]
   * Drop debian/.gitignore, makes source package unreproducible.
   * Drop "Rules-Requires-Root: no" (default).
   * Drop "Priority: optional" (default).
   * Update standards-version.
   * Fine-tune salsa-ci.yml.
Checksums-Sha1:
 95e28f867552c1e484ea4c035cd73bf8db1bd4d9 1850 mdp_3.6-11.dsc
 db9e55faa3788421f6c4f9f31d0506faba16c6c6 12600 mdp_3.6-11.debian.tar.xz
 b8b3c13b2c65ef7bfacc991b8dc17ee556618728 6339 mdp_3.6-11_source.buildinfo
Checksums-Sha256:
 4a721ba134c53184a0fb86d57813d64a8fea6a032081ac1927d96c27024cdde2 1850 
mdp_3.6-11.dsc
 2f23b3f80dabf37c54ba08c39687778c43aeb30fa9cd9859f9c2d0461204adc3 12600 
mdp_3.6-11.debian.tar.xz
 e766b7ef4adffc5cf344653a02bc50030edf4acd461888ced08cd4c0d2d6fcd3 6339 
mdp_3.6-11_source.buildinfo
Files:
 eda23d07988b2595d722420150947625 1850 python optional mdp_3.6-11.dsc
 725936cfc0ea2495b7b228a773a8ee4a 12600 python optional mdp_3.6-11.debian.tar.xz
 f15a6728136fa30744fdc01bfdccc15e 6339 python optional 
mdp_3.6-11_source.buildinfo

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEE1Uw7+v+wQt44LaXXQc5/C58bizIFAmoW1l4ACgkQQc5/C58b
izK6HAgAnuVcpmvODliwWP6wPvDMomPFvi+l3HC1k+kXwGkj3HsU2+SJE+J3986f
uUrJzSHBJNd2TZVPX0CJIKfaGDQmqP5tLvzMBW3i330Hw8AAUDeWxFPz2XXWGM4e
JP5bx27+YTVDaItIMMQNRNduAlS4AyXi5DvfuD12UFRtaYrgyJ0ucIdZnsngA/pZ
B1xdflQKK7yt0xLUtNAf9CJSnTsMvYa3/+qykCl2gqIagthY+DjWke2O4qL/brTT
V+r3Wtpq2wuidN/BsVpAHnXl2X3NMF3AcOovYsQLqKqVbnE3XFYS2Ywh9BsH4Q3+
+MIzkqW1+pmLZdxBwDUtFQBrlyOQhA==
=dC/t
-----END PGP SIGNATURE-----

Attachment: pgpeb_ZE_23YL.pgp
Description: PGP signature


--- End Message ---

Reply via email to