Your message dated Mon, 01 Dec 2014 13:13:17 +0000
with message-id <1d85a405635d20b37629fef492049...@mail.adsl.funky-badger.org>
and subject line Re: Bug#771649: unblock: python-mdp/3.3-2
has caused the Debian Bug report #771649,
regarding unblock: python-mdp/3.3-2
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 ow...@bugs.debian.org
immediately.)


-- 
771649: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=771649
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian....@packages.debian.org
Usertags: unblock

Please unblock package python-mdp

This version fixes FTBFS #768675. The fixes are cherry-picked from
upstream git repository. Every single commit has been incorporated
as a quilt patch. Two other bugs are fixed which were reported on
upstream user mailinglist: "Fix inclusion of CSS data in bimdp" and
"run tests from within a corresponding tests directory to work
around new py.test conftest.py autodiscovery features in python-pytest 
version 2.6.3". Documentation-only fixes are also included. The
Debian changelog entry explains everything:

  * New upstream git snapshot
    - resolves FTBFS by a workaround of faulty unicode encoding in
      sklearn docstrings (Closes: #768675). The corresponding
      commits in upstream git are the quilt patches:
      changeset_af5294f0b78ea5b20e4c1c23fc55a4bdaa0749c9.diff
      changeset_4fc2b74375701dcabde0e3368841ce31a52c4529.diff
      changeset_324cb9b963a7e9d1bb22b5934eaa9f17974f5b11.diff
    - Documentation fixes. The corresponding commits in upstream
      git are the quilt patches:
      changeset_f4a84b7186289027410abe116f5487f800869be2.diff
      changeset_4d05f0adafcc770277f36d30894a5c6aefe8a58b.diff
      changeset_2b1048b980748366dd6439317fccc99f728056a7.diff
      changeset_17202a65f7608e550c52953ef4026cf8fe623c16.diff
    - Fix inclusion of CSS data in bimdp. The corresponding commit
      in upstream git is the quilt patch:
      changeset_4ec2f2940fda4f4fec9db184dbb1b93053040159.diff
  * debian/rules
   - run tests from within a corresponding tests directory to work around
     new py.test conftest.py autodiscovery features in python-pytest 
     version 2.6.3

Src debdiff
diff -Nru mdp-3.3/debian/changelog mdp-3.3/debian/changelog
--- mdp-3.3/debian/changelog    2012-09-30 09:09:35.000000000 +0200
+++ mdp-3.3/debian/changelog    2014-11-28 16:45:30.000000000 +0100
@@ -1,3 +1,29 @@
+mdp (3.3-2) unstable; urgency=low
+
+  * New upstream git snapshot
+    - resolves FTBFS by a workaround of faulty unicode encoding in
+      sklearn docstrings (Closes: #768675). The corresponding
+      commits in upstream git are the quilt patches:
+      changeset_af5294f0b78ea5b20e4c1c23fc55a4bdaa0749c9.diff
+      changeset_4fc2b74375701dcabde0e3368841ce31a52c4529.diff
+      changeset_324cb9b963a7e9d1bb22b5934eaa9f17974f5b11.diff
+    - Documentation fixes. The corresponding commits in upstream
+      git are the quilt patches:
+      changeset_f4a84b7186289027410abe116f5487f800869be2.diff
+      changeset_4d05f0adafcc770277f36d30894a5c6aefe8a58b.diff
+      changeset_2b1048b980748366dd6439317fccc99f728056a7.diff
+      changeset_17202a65f7608e550c52953ef4026cf8fe623c16.diff
+    - Fix inclusion of CSS data in bimdp. The corresponding commit
+      in upstream git is the quilt patch:
+      changeset_4ec2f2940fda4f4fec9db184dbb1b93053040159.diff
+  * debian/rules
+   - run tests from within a corresponding tests directory to work around
+     new py.test conftest.py autodiscovery features in python-pytest 
+     version 2.6.3
+  * Upload sponsored by Yaroslav Halchenko
+
+ -- Tiziano Zito <opossumn...@gmail.com>  Wed, 12 Nov 2014 15:53:57 +0100
+
 mdp (3.3-1) unstable; urgency=low
 
   * New upstream bug-fix release
diff -Nru 
mdp-3.3/debian/patches/changeset_17202a65f7608e550c52953ef4026cf8fe623c16.diff 
mdp-3.3/debian/patches/changeset_17202a65f7608e550c52953ef4026cf8fe623c16.diff
--- 
mdp-3.3/debian/patches/changeset_17202a65f7608e550c52953ef4026cf8fe623c16.diff  
    1970-01-01 01:00:00.000000000 +0100
+++ 
mdp-3.3/debian/patches/changeset_17202a65f7608e550c52953ef4026cf8fe623c16.diff  
    2014-11-28 16:45:30.000000000 +0100
@@ -0,0 +1,54 @@
+From: Niko Wilbert <niko.wilb...@tngtech.com>
+Subject: DOC: some small updates and fixes in docstrings and comments
+
+Index: mdp-toolkit/bimdp/__init__.py
+===================================================================
+--- mdp-toolkit.orig/bimdp/__init__.py
++++ mdp-toolkit/bimdp/__init__.py
+@@ -42,11 +42,6 @@ This is described in more detail in the
+ 
+ ### T O D O ###
+ 
+-# ------------- optional ----------------
+-
+-# TODO: maybe also allow target==EXIT_TARGET during training
+-#     would have to modify _train_node_single_phase
+-
+ # TODO: add a target seperator that does not remove the key. Could use
+ #    -> remove key
+ #    --> remove one '-' on entry
+@@ -70,7 +65,7 @@ This is described in more detail in the
+ #    is in place.
+ 
+ # TODO: Implement more internal checks for node output result?
+-#    Check that last element is not None? Use assume?
++#    Check that last element is not None?
+ 
+ # TODO: implement switchlayer, a layer where each column represents a 
different
+ #    target, so the target value determines which nodes are used
+Index: mdp-toolkit/bimdp/binode.py
+===================================================================
+--- mdp-toolkit.orig/bimdp/binode.py
++++ mdp-toolkit/bimdp/binode.py
+@@ -60,8 +60,7 @@ keywords are treated in a special way:
+  'target' -- If any template method like execute finds a 'target' keyword in
+      the message then this is used as the target value in the return value.
+      However, if _execute then also returns a target value this overwrites the
+-     target value. In global_message calls 'target' has no special meaning and
+-     can be used like any other keyword.
++     target value.
+ 
+   'method' -- Specify the name of the method that should be used instead of
+       the standard one (e.g. in execute the standard method is _execute).
+Index: mdp-toolkit/bimdp/nodes/autogen.py
+===================================================================
+--- mdp-toolkit.orig/bimdp/nodes/autogen.py
++++ mdp-toolkit/bimdp/nodes/autogen.py
+@@ -1,7 +1,5 @@
+ """
+ Module to automatically create a module with BiMDP versions of MDP nodes.
+-
+-Run this module to overwrite the autogen_binodes module with a new version.
+ """
+ 
+ import inspect
diff -Nru 
mdp-3.3/debian/patches/changeset_2b1048b980748366dd6439317fccc99f728056a7.diff 
mdp-3.3/debian/patches/changeset_2b1048b980748366dd6439317fccc99f728056a7.diff
--- 
mdp-3.3/debian/patches/changeset_2b1048b980748366dd6439317fccc99f728056a7.diff  
    1970-01-01 01:00:00.000000000 +0100
+++ 
mdp-3.3/debian/patches/changeset_2b1048b980748366dd6439317fccc99f728056a7.diff  
    2014-11-28 16:45:30.000000000 +0100
@@ -0,0 +1,23 @@
+From: Alberto Escalante <alberto.nicolas.escala...@gmail.com>
+Subject: DOC: indicated what expansion failed in the tests of 
GeneralExpansionNode
+
+Index: mdp-toolkit/mdp/test/test_GeneralExpansionNode.py
+===================================================================
+--- mdp-toolkit.orig/mdp/test/test_GeneralExpansionNode.py
++++ mdp-toolkit/mdp/test/test_GeneralExpansionNode.py
+@@ -21,12 +21,12 @@ def testGeneralExpansionNode():
+     input = numx.random.normal(size=(samples, input_dim))
+     out = cen.execute(input)
+     assert_array_almost_equal(out[:, 0:input_dim], input,
+-                              6, "incorrect constant expansion")
++                              6, "incorrect identity expansion")
+     assert_array_almost_equal(out[:, input_dim:2*input_dim],
+-                              input ** 2, 6, "incorrect constant expansion")
++                              input ** 2, 6, "incorrect squares expansion")
+     assert_array_almost_equal(out[:, 2*input_dim:],
+                               dumb_quadratic_expansion(input), 6,
+-                              "incorrect constant expansion")
++                              "incorrect quadratic expansion")
+     assert cen.expanded_dim(input_dim) == 2 * input_dim + input_dim**2, 
"expanded_dim failed"
+     assert_array_almost_equal(cen.output_sizes(input_dim),
+                               numx.array([input_dim, input_dim,
diff -Nru 
mdp-3.3/debian/patches/changeset_324cb9b963a7e9d1bb22b5934eaa9f17974f5b11.diff 
mdp-3.3/debian/patches/changeset_324cb9b963a7e9d1bb22b5934eaa9f17974f5b11.diff
--- 
mdp-3.3/debian/patches/changeset_324cb9b963a7e9d1bb22b5934eaa9f17974f5b11.diff  
    1970-01-01 01:00:00.000000000 +0100
+++ 
mdp-3.3/debian/patches/changeset_324cb9b963a7e9d1bb22b5934eaa9f17974f5b11.diff  
    2014-11-28 16:45:30.000000000 +0100
@@ -0,0 +1,18 @@
+From: Pietro Berkes <pber...@enthought.com>
+Subject: FIX: cStringIO does not support Unicode
+  `autogen` was breaking in nodes with Unicode characters in their docstring. 
We
+traced this down to cStringIO, which unlike StringIO does not support unicode.
+
+Index: mdp-toolkit/bimdp/nodes/autogen.py
+===================================================================
+--- mdp-toolkit.orig/bimdp/nodes/autogen.py
++++ mdp-toolkit/bimdp/nodes/autogen.py
+@@ -6,7 +6,7 @@ Run this module to overwrite the autogen
+ 
+ import inspect
+ import mdp
+-from cStringIO import StringIO
++from StringIO import StringIO
+ 
+ # Blacklist of nodes that cause problems with autogeneration
+ NOAUTOGEN_MDP_NODES = [
diff -Nru 
mdp-3.3/debian/patches/changeset_4d05f0adafcc770277f36d30894a5c6aefe8a58b.diff 
mdp-3.3/debian/patches/changeset_4d05f0adafcc770277f36d30894a5c6aefe8a58b.diff
--- 
mdp-3.3/debian/patches/changeset_4d05f0adafcc770277f36d30894a5c6aefe8a58b.diff  
    1970-01-01 01:00:00.000000000 +0100
+++ 
mdp-3.3/debian/patches/changeset_4d05f0adafcc770277f36d30894a5c6aefe8a58b.diff  
    2014-11-28 16:45:30.000000000 +0100
@@ -0,0 +1,57 @@
+From: Alberto Escalante <alberto.nicolas.escala...@gmail.com>
+Subject: FIX: made code and documentation consistent regarding the parameter k 
in invert_exp_funcs2
+
+Index: mdp-toolkit/mdp/nodes/expansion_nodes.py
+===================================================================
+--- mdp-toolkit.orig/mdp/nodes/expansion_nodes.py
++++ mdp-toolkit/mdp/nodes/expansion_nodes.py
+@@ -343,7 +343,7 @@ class GeneralExpansionNode(_ExpansionNod
+                                                     self.input_dim,
+                                                     self.funcs,
+                                                     use_hint=use_hint,
+-                                                    k=0.001)
++                                                    k=0.000001)
+             return app_x_2.astype(self.dtype)
+         except NotImplementedError, exc:
+             raise mdp.MDPException(exc)
+Index: mdp-toolkit/mdp/utils/routines.py
+===================================================================
+--- mdp-toolkit.orig/mdp/utils/routines.py
++++ mdp-toolkit/mdp/utils/routines.py
+@@ -422,19 +422,19 @@ def gabor(size, alpha, phi, freq, sgm, x
+ 
+ def residuals(app_x, y_noisy, exp_funcs, x_orig, k=0.0):
+     """Function used internally by invert_exp_funcs2 to approximate
+-    inverses in ConstantExpansionNode. """
+-    app_x = app_x.reshape((1,len(app_x)))
++    inverses in GeneralExpansionNode. """
++    app_x = app_x.reshape((1,-1))
+     app_exp_x =  numx.concatenate([func(app_x) for func in exp_funcs],axis=1)
+ 
+     div_y = numx.sqrt(len(y_noisy))
+-    div_x = numx.sqrt(len(x_orig))
+-    return numx.append( (1-k)*(y_noisy-app_exp_x[0]) / div_y, k * (x_orig - 
app_x[0])/div_x )
++    div_x = numx.sqrt(len(x_orig))  
++    return numx.append( (1-k)**0.5 *(y_noisy-app_exp_x[0]) / div_y, (k)**0.5 
* (x_orig - app_x[0])/div_x )
+ 
+ def invert_exp_funcs2(exp_x_noisy, dim_x, exp_funcs, use_hint=False, k=0.0):
+     """Approximates a preimage app_x of exp_x_noisy.
+ 
+-    Returns an array app_x, such that each row of exp_x_noisy is close
+-    to each row of exp_funcs(app_x).
++    Returns an array app_x, such that each row of exp_funcs(app_x) is close
++    to each row of exp_x_noisy.
+ 
+     use_hint: determines the starting point for the approximation of the
+     preimage. There are three possibilities.
+@@ -445,8 +445,8 @@ def invert_exp_funcs2(exp_x_noisy, dim_x
+     k: weighting factor in [0, 1] to balance between approximation error and
+        closeness to the starting point. For instance:
+        objective function is to minimize:
+-           (1-k) * |exp_funcs(app_x) - exp_x_noisy|/output_dim +
+-               k * |app_x - starting point|/input_dim
++           (1-k) * ||exp_funcs(app_x) - exp_x_noisy||**2/output_dim +
++               k * ||app_x - starting point||**2/input_dim
+ 
+     Note: this function requires scipy.
+     """
diff -Nru 
mdp-3.3/debian/patches/changeset_4ec2f2940fda4f4fec9db184dbb1b93053040159.diff 
mdp-3.3/debian/patches/changeset_4ec2f2940fda4f4fec9db184dbb1b93053040159.diff
--- 
mdp-3.3/debian/patches/changeset_4ec2f2940fda4f4fec9db184dbb1b93053040159.diff  
    1970-01-01 01:00:00.000000000 +0100
+++ 
mdp-3.3/debian/patches/changeset_4ec2f2940fda4f4fec9db184dbb1b93053040159.diff  
    2014-11-28 16:45:30.000000000 +0100
@@ -0,0 +1,16 @@
+From: Niko Wilbert <m...@nikowilbert.de>
+Subject: FIX: fixed broken inclusion of CSS data
+
+Index: mdp-toolkit/bimdp/hinet/bihtmlvisitor.py
+===================================================================
+--- mdp-toolkit.orig/bimdp/hinet/bihtmlvisitor.py
++++ mdp-toolkit/bimdp/hinet/bihtmlvisitor.py
+@@ -108,7 +108,7 @@ def show_biflow(flow, filename=None, tit
+         html_file = open(filename, 'w')
+     html_file.write('<html>\n<head>\n<title>%s</title>\n' % title)
+     html_file.write('<style type="text/css" media="screen">')
+-    html_file.write(mdp.utils.BASIC_STYLE)
++    html_file.write(mdp.utils.basic_css())
+     html_file.write(BiHiNetHTMLVisitor.hinet_css())
+     html_file.write('</style>\n</head>\n<body>\n')
+     html_file.write('<h3>%s</h3>\n' % title)
diff -Nru 
mdp-3.3/debian/patches/changeset_4fc2b74375701dcabde0e3368841ce31a52c4529.diff 
mdp-3.3/debian/patches/changeset_4fc2b74375701dcabde0e3368841ce31a52c4529.diff
--- 
mdp-3.3/debian/patches/changeset_4fc2b74375701dcabde0e3368841ce31a52c4529.diff  
    1970-01-01 01:00:00.000000000 +0100
+++ 
mdp-3.3/debian/patches/changeset_4fc2b74375701dcabde0e3368841ce31a52c4529.diff  
    2014-11-28 16:45:30.000000000 +0100
@@ -0,0 +1,162 @@
+From: Niko Wilbert <niko.wilb...@tngtech.com>
+Subject: FIX: hacky fix for the unicode issue in bimdp autogen (fix for Bug 
#11)
+
+Index: mdp-toolkit/bimdp/nodes/autogen.py
+===================================================================
+--- mdp-toolkit.orig/bimdp/nodes/autogen.py
++++ mdp-toolkit/bimdp/nodes/autogen.py
+@@ -14,6 +14,7 @@ NOAUTOGEN_MDP_NODES = [
+ ]
+ NOAUTOGEN_MDP_CLASSIFIERS = []
+ 
++
+ def _get_node_subclasses(node_class=mdp.Node, module=mdp.nodes):
+     """
+     Return all node classes in module which are subclasses of node_class.
+@@ -25,14 +26,15 @@ def _get_node_subclasses(node_class=mdp.
+             node_subclasses.append(node_subclass)
+     return node_subclasses
+ 
+-def _binode_code(fid, node_class, modulename, base_classname="BiNode",
++
++def _binode_code(write, node_class, modulename, base_classname="BiNode",
+                  old_classname="Node"):
+     """Write code for BiMDP versions of normal node classes into module file.
+     
+     It preserves the signature, which is useful for introspection (this is
+     used by the ParallelNode _default_fork implementation).
+ 
+-    fid -- File handle of the module file.
++    write -- Function to write out code.
+     node_class -- Node class for which the new node class will be created.
+     modulename -- Name of the module where the node is from.
+     base_classname -- Base class to be used for the new nodes.
+@@ -41,11 +43,11 @@ def _binode_code(fid, node_class, module
+     """
+     node_name = node_class.__name__
+     binode_name = node_name[:-len(old_classname)] + base_classname
+-    fid.write('class %s(%s, %s.%s):' %
+-              (binode_name, base_classname, modulename, node_name))
++    write('class %s(%s, %s.%s):' %
++          (binode_name, base_classname, modulename, node_name))
+     docstring = ("Automatically created %s version of %s." %
+                  (base_classname, node_name))
+-    fid.write('\n    """%s"""' % docstring)
++    write('\n    """%s"""' % docstring)
+     ## define the init method explicitly to preserve the signature
+     docstring = node_class.__init__.__doc__
+     args, varargs, varkw, defaults = inspect.getargspec(node_class.__init__)
+@@ -55,36 +57,37 @@ def _binode_code(fid, node_class, module
+     if defaults is None:
+         defaults = []
+     first_default = len(args) - len(defaults)
+-    fid.write('\n    def __init__(self')
+-    fid.write(''.join(', ' + arg for arg in args[:-len(defaults)]))
+-    fid.write(''.join(', ' + arg + '=' + repr(defaults[i_arg])
+-                      for i_arg, arg in enumerate(args[first_default:])))
++    write('\n    def __init__(self')
++    write(''.join(', ' + arg for arg in args[:-len(defaults)]))
++    write(''.join(', ' + arg + '=' + repr(defaults[i_arg])
++                  for i_arg, arg in enumerate(args[first_default:])))
+     if varargs:
+-        fid.write(', *%s' % varargs)
+-    # always support kwargs, to prevent multiple-inheritance issues 
++        write(', *%s' % varargs)
++    # always support kwargs, to prevent multiple-inheritance issues
+     if not varkw:
+         varkw = "kwargs"
+-    fid.write(', **%s' % varkw)
+-    fid.write('):')
++    write(', **%s' % varkw)
++    write('):')
+     if docstring:
+-        fid.write('\n        """%s"""' % docstring)
+-    fid.write('\n        super(%s, self).__init__(' % binode_name)
+-    fid.write(', '.join('%s=%s' % (arg, arg) for arg in args))
++        write('\n        """%s"""' % docstring)
++    write('\n        super(%s, self).__init__(' % binode_name)
++    write(', '.join('%s=%s' % (arg, arg) for arg in args))
+     if varargs:
+         if args:
+-            fid.write(', ')
+-        fid.write('*%s' % varargs)
++            write(', ')
++        write('*%s' % varargs)
+     if args or varargs:
+-        fid.write(', ')
+-    fid.write('**%s' % varkw)
+-    fid.write(')\n\n')
++        write(', ')
++    write('**%s' % varkw)
++    write(')\n\n')
+ 
+-def _binode_module(fid, node_classes, modulename="mdp.nodes",
++
++def _binode_module(write, node_classes, modulename="mdp.nodes",
+                    base_classname="BiNode", old_classname="Node",
+                    base_import="from bimdp import BiNode"):
+     """Write code for BiMDP versions of normal node classes into module file.
+ 
+-    fid -- File handle of the module file.
++    write -- Function to write out code.
+     node_classes -- List of node classes for which binodes are created.
+     modulename -- Name of the module where the node is from.
+     base_classname -- Base class to be used for the new nodes.
+@@ -92,15 +95,25 @@ def _binode_module(fid, node_classes, mo
+         in the new class name.
+     base_import -- Inmport line for the base_class.
+     """
+-    fid.write('"""\nAUTOMATICALLY GENERATED CODE, DO NOT MODIFY!\n\n')
+-    fid.write('Edit and run autogen.py instead to overwrite this 
module.\n"""')
+-    fid.write('\n\nimport %s\n' % modulename)
+-    fid.write(base_import + '\n\n')
++    write('"""\nAUTOMATICALLY GENERATED CODE, DO NOT MODIFY!\n\n')
++    write('Edit and run autogen.py instead to overwrite this module.\n"""')
++    write('\n\nimport %s\n' % modulename)
++    write(base_import + '\n\n')
+     for node_class in node_classes:
+-        _binode_code(fid, node_class, modulename,
++        _binode_code(write, node_class, modulename,
+                      base_classname=base_classname,
+                      old_classname=old_classname)
+-        
++
++
++def _get_unicode_write(fid):
++    def write(txt):
++        if type(txt) is unicode:
++            fid.write(txt)
++        else:
++            fid.write(unicode(txt, encoding='utf-8'))
++    return write
++
++
+ def binodes_code():
+     """Generate and import the BiNode wrappers for MDP Nodes."""
+     fid = StringIO()
+@@ -108,17 +121,23 @@ def binodes_code():
+                 _get_node_subclasses(node_class=mdp.Node, module=mdp.nodes)
+              if not issubclass(node, mdp.ClassifierNode) and
+                  node.__name__ not in NOAUTOGEN_MDP_NODES)
+-    _binode_module(fid, nodes)
++    _binode_module(_get_unicode_write(fid), nodes)
+     return fid.getvalue()
+     
+ def biclassifiers_code():
+     """Generate and import the BiClassifier wrappers for ClassifierNodes."""
+     fid = StringIO()
++    def write(txt):
++        if type(txt) is unicode:
++            fid.write(txt)
++        else:
++            fid.write(unicode(txt, encoding='utf-8'))
+     nodes = (node for node in
+                 _get_node_subclasses(node_class=mdp.ClassifierNode,
+                                      module=mdp.nodes)
+              if node.__name__ not in NOAUTOGEN_MDP_CLASSIFIERS)
+-    _binode_module(fid, nodes, base_classname="BiClassifier",
++    _binode_module(_get_unicode_write(fid), nodes,
++                   base_classname="BiClassifier",
+                    old_classname="Classifier",
+                    base_import="from bimdp import BiClassifier")
+     return fid.getvalue()
diff -Nru 
mdp-3.3/debian/patches/changeset_af5294f0b78ea5b20e4c1c23fc55a4bdaa0749c9.diff 
mdp-3.3/debian/patches/changeset_af5294f0b78ea5b20e4c1c23fc55a4bdaa0749c9.diff
--- 
mdp-3.3/debian/patches/changeset_af5294f0b78ea5b20e4c1c23fc55a4bdaa0749c9.diff  
    1970-01-01 01:00:00.000000000 +0100
+++ 
mdp-3.3/debian/patches/changeset_af5294f0b78ea5b20e4c1c23fc55a4bdaa0749c9.diff  
    2014-11-28 16:45:30.000000000 +0100
@@ -0,0 +1,26 @@
+From: Tiziano Zito <opossumn...@gmail.com>
+Subject: FIX: wrap sklearn algs in modules ending with "_"
+  For historical reasons we were not wrapping sklearn algs in modules with 
names
+ending with "_". This restriction prevented us from wrapping algs that we could
+have wrapped. We lift it now, since it does not seem to have any bad side
+effects anymore. A proper validation would be to really test that we can run 
the
+algs.
+
+Index: mdp-toolkit/mdp/nodes/scikits_nodes.py
+===================================================================
+--- mdp-toolkit.orig/mdp/nodes/scikits_nodes.py
++++ mdp-toolkit/mdp/nodes/scikits_nodes.py
+@@ -174,10 +174,9 @@ def apply_to_scikits_algorithms(current_
+             if (inspect.isclass(member) and
+                 member not in processed_classes):
+                 processed_classes.append(member)
+-                if ((hasattr(member, 'fit')
+-                     or hasattr(member, 'predict')
+-                     or hasattr(member, 'transform'))
+-                    and not member.__module__.endswith('_')):
++                if (hasattr(member, 'fit')
++                    or hasattr(member, 'predict')
++                    or hasattr(member, 'transform')):
+                     action(member)
+ 
+             # other modules
diff -Nru 
mdp-3.3/debian/patches/changeset_f4a84b7186289027410abe116f5487f800869be2.diff 
mdp-3.3/debian/patches/changeset_f4a84b7186289027410abe116f5487f800869be2.diff
--- 
mdp-3.3/debian/patches/changeset_f4a84b7186289027410abe116f5487f800869be2.diff  
    1970-01-01 01:00:00.000000000 +0100
+++ 
mdp-3.3/debian/patches/changeset_f4a84b7186289027410abe116f5487f800869be2.diff  
    2014-11-28 16:45:30.000000000 +0100
@@ -0,0 +1,85 @@
+From: Alberto Escalante <alberto.nicolas.escala...@gmail.com>
+Subject: DOC: added an example to GeneralExpansionNode and made the 
documentation more explicit
+
+Index: mdp-toolkit/mdp/nodes/expansion_nodes.py
+===================================================================
+--- mdp-toolkit.orig/mdp/nodes/expansion_nodes.py
++++ mdp-toolkit/mdp/nodes/expansion_nodes.py
+@@ -283,14 +283,38 @@ class GrowingNeuralGasExpansionNode(Grow
+ 
+ 
+ class GeneralExpansionNode(_ExpansionNode):
+-    """Expands the input signal x according to a list [f_0, ... f_k]
+-    of functions.
+-
+-    Each function f_i should take the whole two-dimensional array x as input 
and
+-    output another two-dimensional array. Moreover the output dimension should
+-    depend only on the input dimension.
+-    The output of the node is [f_0[x], ... f_k[x]], that is, the concatenation
+-    of each one of the outputs f_i[x].
++    """Expands the input samples by applying to them one or more functions 
provided.
++    
++    The functions to be applied are specified by a list [f_0, ..., f_k], 
where 
++    f_i, for 0 <= i <= k, denotes a particular function. 
++    The input data given to these functions is a two-dimensional array and
++    the output is another two-dimensional array. The dimensionality of the 
output 
++    should depend only on the dimensionality of the input.
++    Given a two-dimensional input array x, the output of the node 
++    is then [f_0(x), ..., f_k(x)], that is, the concatenation of each one of 
++    the computed arrays f_i(x).
++
++    This node has been designed to facilitate nonlinear, fixed but arbitrary  
++    transformations of the data samples within MDP flows.
++        
++    **Example**::
++   
++        >>> import mdp
++        >>> from mdp import numx
++        
++        >>> def identity(x): return x
++        
++        >>> def u3(x): return numx.absolute(x)**3 #A simple nonlinear 
transformation
++        
++        >>> def norm2(x): #Computes the norm of each sample returning an Nx1 
array
++        >>>     return ((x**2).sum(axis=1)**0.5).reshape((-1,1)) 
++          
++        >>> x = numx.array([[-2., 2.], [0.2, 0.3], [0.6, 1.2]])
++        >>> gen = mdp.nodes.GeneralExpansionNode(funcs=[identity, u3, norm2])
++        >>> print(gen.execute(x))
++        >>> [[-2.          2.          8.          8.          2.82842712]
++        >>>  [ 0.2         0.3         0.008       0.027       0.36055513]
++        >>>  [ 0.6         1.2         0.216       1.728       1.34164079]]
+ 
+     Original code contributed by Alberto Escalante.
+     """
+@@ -299,7 +323,7 @@ class GeneralExpansionNode(_ExpansionNod
+         Short argument description:
+ 
+           ``funcs``
+-               list of functions f_i that realize the expansion
++               list of functions f_i that realize the expansion.
+         """
+         self.funcs = funcs
+         super(GeneralExpansionNode, self).__init__(input_dim, dtype)
+@@ -312,7 +336,7 @@ class GeneralExpansionNode(_ExpansionNod
+     
+     def output_sizes(self, n):
+         """Return the individual output sizes of each expansion function
+-        when the input has lenght n"""
++        when the input has lenght n."""
+         sizes = numx.zeros(len(self.funcs))
+         x = numx.zeros((1,n))
+         for i, func in enumerate(self.funcs):
+@@ -333,8 +357,10 @@ class GeneralExpansionNode(_ExpansionNod
+         scipy.optimize.
+ 
+         ``use_hint``
+-               when calculating the pseudo inverse of the expansion,
+-               the hint determines the starting point for the approximation
++               when calculating a pseudo inverse of the expansion,
++               the hint determines the starting point for the approximation.
++               For details on this parameter see the function 
++               ``invert_exp_funcs2`` in ``mdp.utils.routines.py``.
+ 
+         This method requires scipy."""
+ 
diff -Nru mdp-3.3/debian/patches/series mdp-3.3/debian/patches/series
--- mdp-3.3/debian/patches/series       2012-09-28 17:26:53.000000000 +0200
+++ mdp-3.3/debian/patches/series       2014-11-28 16:45:30.000000000 +0100
@@ -1 +1,9 @@
 
+changeset_4ec2f2940fda4f4fec9db184dbb1b93053040159.diff
+changeset_4fc2b74375701dcabde0e3368841ce31a52c4529.diff
+changeset_17202a65f7608e550c52953ef4026cf8fe623c16.diff
+changeset_324cb9b963a7e9d1bb22b5934eaa9f17974f5b11.diff
+changeset_af5294f0b78ea5b20e4c1c23fc55a4bdaa0749c9.diff
+changeset_4d05f0adafcc770277f36d30894a5c6aefe8a58b.diff
+changeset_2b1048b980748366dd6439317fccc99f728056a7.diff
+changeset_f4a84b7186289027410abe116f5487f800869be2.diff
diff -Nru mdp-3.3/debian/rules mdp-3.3/debian/rules
--- mdp-3.3/debian/rules        2012-09-28 17:26:53.000000000 +0200
+++ mdp-3.3/debian/rules        2014-11-28 16:45:30.000000000 +0100
@@ -34,7 +34,8 @@
 ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
        set -xe && for v in $(PYTHONALL); do \
          LOC=$(INSTALLPATH)$(call py_libdir_sh, $$v); \
-         python$$v $$LOC/mdp/test/run_tests.py --seed $(RSEED) $$LOC/mdp 
$$LOC/bimdp; \
+         cd $$LOC/mdp/test   && python$$v $$LOC/mdp/test/run_tests.py --seed 
$(RSEED) && \
+         cd $$LOC/bimdp/test && python$$v $$LOC/mdp/test/run_tests.py --seed 
$(RSEED) ; \
        done
        : # Prune compiled code which could have been generated during testing
        find \( -name __pycache__ -o -name \*.pyc -o -name \*.egg-info \) 
-delete


unblock python-mdp/3.3-2

-- System Information:
Debian Release: 8.0
  APT prefers unstable
  APT policy: (500, 'unstable'), (101, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.17-1-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

--- End Message ---
--- Begin Message ---
On 2014-12-01 8:46, Tiziano Zito wrote:
Package: release.debian.org
Severity: normal
User: release.debian....@packages.debian.org
Usertags: unblock

Please unblock package python-mdp

We can't unblock binary packages. python-mdp is part of the mdp source package, which has already been unblocked for a couple of days (see e.g. grep-excuses or the PTS).

Regards,

Adam

--- End Message ---

Reply via email to