forked from mdp-toolkit/mdp-toolkit
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGES
2375 lines (2179 loc) · 127 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
-------------------------------------------------------------------------------
MDP-3.6:
2020-04-18: NEW: support libsvm for Python 3 libsvm has been updated to be
compatible with Python >= 3.4. Python 2 support has been dropped,
so we don't test it anymore.
2020-04-18: ERF: restore Python 2 compatibility and add a matrix entry for it
in travis
2019-18-12: FIX: SciPy 1.4 support.
2019-13-12: NEW: VartimeSFANode supports SFA on data with non-constant time
increments. This yields an SFA implementation that is robust
against missing data.
2019-01-20: NEW: Added a new family of expansion nodes, including Legendre,
Hermite and Chebyshev polynomials. A facility for easily including
recursively defined 1-dimensional expansion functions powers these
nodes, applying them to N-dimensional data by tensor basis
construction. The new expansion nodes are numerically more stable
than ordinary monomials and permit higher expansion degrees.
Examples where numerically stable expansion is beneficial:
https://github.com/NiMlr/pyfunctionbases
https://arxiv.org/abs/1805.08565, section 4.2.1, Figure 11 and A.2.
2019-01-19: FIX: pytest Python 3.7 compatibility
2018-07-18: FIX: PEP 479 compatibility
2018-06-15: NEW: Added SFA-based supervised learning, specifically graph based
SFA nodes GSFANode and iGSFANode and hierarchical GSFA (HGSFA).
For further information, see:
Escalante-B A.-N., Wiskott L, "How to solve classification and
regression problems on high-dimensional data with a supervised
extension of Slow Feature Analysis". Journal of Machine Learning
Research 14:3683-3719, 2013.
http://www.jmlr.org/papers/volume14/escalante13a/escalante13a.pdf
https://github.com/AlbertoEsc/cuicuilco
2018-05-29: DOC: Revamped the documentation for Sphinx-autodoc compatibility.
MDP documentation is now available on readthedocs:
https://mdpdocs.readthedocs.io/en/latest
2018-01-18: NEW: Added solvers to SFA-node that are robust against rank deficit
in the covariance matrix. When data contained linear redundancies,
like easily introduced by e.g. insufficient cropping of black bars
of a video, this usually resulted in
SymeigException ('Covariance matrices may be singular').
Now it provides simple instructions for robust processing of such
data by setting a new flag in SFANode:
rank_deficit_method can be 'none' (default), 'reg', 'pca', 'svd',
leveraging robust solving via regularization, PCA, SVD or LDL
decomposition respectively. (LDL requires SciPy >= 1.0)
2017-03-11: DOC: changed reference to new mailing list
old: [email protected]
new: [email protected]
2017-03-06: NEW: Added online mode to enable use of MDP in reinforcement
learning. This notably includes incremental SFA as described in
"Varun Raj Kompella, Matthew Luciw, and Juergen Schmidhuber (2012).
Incremental Slow Feature Analysis: Adaptive Low-Complexity Slow
Feature Updating from High-Dimensional Input Streams.
Neural Computation."
https://www.mitpressjournals.org/doi/abs/10.1162/NECO_a_00344
New nodes and flows:
OnlineNode, OnlineFlow, CircularFlow, OnlineCenteringNode,
OnlineTimeDiffNode, OnlineFlowNode, CircularOnlineFlowNode,
OnlineLayer, CloneOnlineLayer, SameInputOnlineLayer, MCANode,
CCIPCANode, IncSFANode
-------------------------------------------------------------------------------
MDP-3.5:
2016-03-08: fix use of str in biflow indexing
2016-03-08: remove obsolete scripts
2016-03-07: Add wrapper function for exec Old Python versions don't allow exec
statement in nested functions: Traceback (most recent call last):
File "<string>", line 1, in <module>
File "mdp/__init__.py", line 131, in <module>
from . import utils
File "mdp/utils/__init__.py", line 29, in <module>
from .slideshow import (basic_css, slideshow_css, HTMLSlideShow,
File "mdp/utils/slideshow.py", line 23, in <module>
from . import templet
File "mdp/utils/templet.py", line 196
exec(code, globals, kw) SyntaxError: unqualified exec is not
allowed in function 'expand' it is a nested function
-------------------------------------------------------------------------------
MDP-3.4:
2016-03-02: Make use of setuptools instead of distutils While we resisted as
long as possible, it is now time to move to use setuptools
officially. This makes MDP installable properly with pip. This
means that our dependencies are now explicitly declared
(numpy and future). Optional dependencies are also declared and can
be installed using the "pip -e MDP[optionaldep]" command, where
optionaldep can be scipy, or scikit-learn or ... Moreover,
automatic testing using "python setup.py test" now works, which
makes MDP finally conform this non-written standard and makes it
easy to run tests for clueless people.
2016-03-02: add new modules in sklearn wrappers
2016-03-02: Remove self-contained py.test script... The use of the
self-contained script for py.test has been deprecated for a while
and has stop working. We now require py.test to be installed to run
the tests.
2016-03-01: remove obsolete stuff related to py3 conversion with lib2to3
2016-03-01: Disable support for shogun > 1 it would be too much work to enable
support for newer shogun versions...
2016-03-01: disable failing monkeypatching test for pp...
.. the pp monkeypatching trick is not needed anymore anyways...
2016-03-01: futurize stage 2: code is now py2&3 compatible
2016-03-01: futurize stage1: code should still be python2.6 compatible
2016-03-01: compatibility fixes for numpy 1.11..,
...numpy now refuses to index arrays using floats and default dtype
for zeros and ones has been changed from integers to floats.
2016-03-01: several new sklearn autogenerated nodes need additional arguments
to be tested
2014-04-27: FIX: fixed broken inclusion of CSS data
2014-03-14: FIX: hacky fix for the unicode issue in bimdp autogen (fix for Bug
#11)
2013-09-03: NEW: added extension setup and teardown function decorator
2013-09-03: DOC: some small updates and fixes in docstrings and comments
2013-08-31: 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.
2013-08-31: 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.
2013-05-08: NEW: update local copy of py.test to version 2.3.4
2013-04-16: FIX: made code and documentation consistent regarding the parameter
k in invert_exp_funcs2
2013-04-16: DOC: indicated what expansion failed in the tests of
GeneralExpansionNode
2013-04-16: DOC: added an example to GeneralExpansionNode and made the
documentation more explicit
2012-12-07: FIX: make pip work without explicit URL. now we point directly to
the tar archive in the download_url field of the setup.py file.
2012-11-20: DOC: moved coarse_limit description under FastICA and removed
signature (present elsewhere)
2012-11-20: ENH: FastICA - test having some coarse_limit
2012-11-20: ENH: FastICA -- primary_limit -> coarse_limit + default to None
Introduced to make things a bit clearer since there is already
"fine tuning" stage where optimization switches to used_g upon
reaching the limit. Calling the limit "coarse" instead of
"primary/secondary" would help to preserve original messages/logic
thus not confusing existing users, while still allowing to kick in
gFine before reaching the limit
2012-11-20: ENH: 2 stage optimization for FastICA found in current AFNI
2012-10-04: DOC: bumped version number after release ;)
2012-09-21: OTH: updated CHANGES and COPYRIGHT
2012-09-21: NEW: add support for newest sklearn algorithms
-------------------------------------------------------------------------------
MDP-3.3:
2012-09-19: FIX: fix error in automatic testing for MultinomialNB.
2012-09-19: ERF: make sklearn nodes automatic testing more robust The previous
solution was actually ignoring the special definitions in NODES.
2012-09-19: FIX: disable pp support if server can not start Being able to
import pp is not enough to be sure that pp works. For example in a
low memory situation, the following can happen:
>>> import pp
>>> server = pp.Server()
[...] OSError: [Errno 12] Cannot allocate memory
This fix just disables pp support if the server can not be
started.
2012-06-18: FIX: Fix wrapping of sklearn 0.11 classifiers
2012-04-17: FIX: make test_SFA2Node even more robust
2012-04-16: FIX: make FastICANode test more robust
2012-04-16: FIX: make test_SFA2Node more robust
2012-04-05: FIX: fix pp_tests when run multiple times. pp tests were failing
when run twice in a row. hugly work-around, but it seems to
work...
2012-04-05: FIX: fixed broken test_reload. test_reload was failing when called
twice in a row.
2012-04-05: FIX: fix random seed tests. The tests were failing when called
twice in a row:
>>> import mdp
>>> mdp.test()
>>> mdp.test() the first call was working, the second one was
giving failures.
2012-04-01: ERF: added tests for learning of bias parameters
2012-03-26: FIX: replace third remaing test for pp_monkeypatch_dirname
Hopefully this will fix test suite failures.
2012-03-22: FIX: Decrease the noise level in the DiscreteHopfieldClassifier.
2012-03-22: FIX: honor MDP_DISABLE_SHOGUN env variable
2012-03-19: FIX: fix left-over directories from testing pp. I do not know why,
but this simple change fixes the leftover directories problem when
testig with python-pp and pp monkey-patching. It should have
worked even as it was before, but apparently some race condition
happens.
2012-03-06: FIX: fix determinant of random rotation matrix determinant sign
was wrong if dimensions of rotation matrix were odd. Thanks to
Philip DeBoer. Actual Fix.
2012-03-06: FIX: fix determinant of random rotation matrix determinant sign
was wrong if dimensions of rotation matrix were odd. Thanks to
Philip DeBoer. Failing Test.
2012-02-13: ENH: remove duplicated and overly verbose code
2012-02-13: FIX: remove FastICA stabilization from tests
2012-02-13: FIX: remove unused parameter stabilization in FastICA.
2012-01-19: NEW: added new sklearn algorithms wrapping We now wrap 93 sklearn
algorithms!
2012-01-19: FIX: fix another imcompatibility with sklearn 0.10 Although
EllipticEnvelop is derived from sklearn.base.ClassifierMixin, it
is not a classifier. It is actually a "predictor". Added a check
in the sklearn wrappers.
2012-01-19: FIX: fix sklearn wrappers for version 0.10 New sklearn version
introduces classifiers and predictors mixin classes that do not
have a 'fit' method. Typical error:
AttributeError: type object 'OutlierDetectionMixin' has no
attribute 'fit'
Just added a check that the method is really present before
wrapping.
2012-01-12: FIX: fix failing test for no eigenvalues left problem Check that
PCANode now raises the right exception.
2012-01-12: FIX: add useful exception in case of no eigenvalues left. Check
for the condition explained in
b0810d72ce11925e1db6204c3a20bdfc77741a82 and raise a nicely
formatted exception:
Traceback:
[...] File ".../mdp/nodes/pca_nodes.py", line 223, in
_stop_training
' var_abs=%e!'%self.var_abs) NodeException: No eigenvalues
larger than var_abs=1.000000e-15!
2012-01-12: OTH: added failing test for no eigenvalues left problem. When
PCANode is set to use SVD and automatic dimensionality reduction
it may happen that after removing directions corresponding to
eigenvalues smaller than var_abs (1e-12 default), nothing is left.
This happens for example if the data is a matrix of (almost)
zeros. The error looks like this: Traceback (most recent call
last):
[...] File ".../mdp/nodes/pca_nodes.py", line 220, in
_stop_training
d = d[ d / d.max() > self.var_rel ] ValueError: zero-size array
to ufunc.reduce without identity
2012-01-03: FIX: old joblib breaks imports from sklearn.decomposition
>>> import sklearn.decomposition Traceback (most recent call
last):
File "<stdin>", line 1, in <module>
File
"/usr/lib/pymodules/python2.6/sklearn/decomposition/__init__.py",
line 8, in <module>
from .sparse_pca import SparsePCA, MiniBatchSparsePCA
File
"/usr/lib/pymodules/python2.6/sklearn/decomposition/sparse_pca.py",
line 10, in <module>
from .dict_learning import dict_learning, dict_learning_online
File
"/usr/lib/pymodules/python2.6/sklearn/decomposition/dict_learning.py",
line 17, in <module>
from ..externals.joblib import Parallel, delayed, cpu_count
ImportError: cannot import name cpu_count
>>> joblib.__version__
'0.4.3'
2012-01-02: FIX: py3k compatibility for reload reload() is moved to
imp.reload().
It also seems that Python 3 behaves slightly differently wrt.
reloads. For some reason, mdp.configuration is not imported
properly on reload. Let's just not remove the name from the
namespace, as this is the easiest fix.
2011-12-23: ERF: added a failing test for reload MDP does not work with
reload. See https://github.com/mdp-toolkit/mdp-toolkit/issues/1
for details.
Thanks to Yaroslav Halchenko for reporting it.
2011-12-18: FIX: Removed the leftover _global_message_emitter attribute (as
reported by Tiziano and Hannah).
2011-12-09: FIX: fix wrong sorting of eigenvectors in degenerate case for SVD.
Thanks to Yaroslav Halchenko for reporting and fixing!
2011-12-09: NEW: added failing test for wrong sorting of SVDs
2011-10-24: FIX: updated sklearn wrappers to silence warnings for version >=
0.9
-------------------------------------------------------------------------------
MDP-3.2:
2011-10-24: FIX: do not complain when failing to remove temporary directory.
The error warning breaks doctests. On top of that, I do not think
the error message is really useful.
2011-10-22: FIX: fix previous commit (options can not be None)
2011-10-22: FIX: fix bug with pytest when MDP is installed on user
non-writable directory.
2011-10-22: ENH: make NeuralGasNode automatic tests faster
2011-10-22: ENH: call scklearn with its name whenever possible without too
much disruption
2011-10-22: FIX: workaround for debian patch to pp that disables pp's default
password.
2011-10-22: FIX: could not find submodules and classes in old versions of
sklearn the problem was that we build names of sub-modules from
strings, and we need to take into account two possible prefixes
"sklearn" or "scikits.learn"
2011-10-22: FIX: accomodate new name for scikits.learn 0.9 aka sklearn
2011-10-22: RF: extract two methods and simplify logic of metaclass wrapping
2011-10-22: OTH: one more metaclass test also cleand up whitespaces
2011-10-21: FIX/python2.5: forgotten __future__ imports
2011-10-21: ERF: rewrite one format string to make is clearer
2011-10-21: FIX: extend infodict with **kwargs name, to avoid guessing later
2011-10-19: ENH: metaclass: use dict to replace two lists and avoid infodict
No functional changes.
2011-10-21: FIX: finally fig bug in metaclass signature overwriting
2011-10-21: OTH: make test_metaclass more stringent
2011-10-21: OTH: added self contained test for metaclass and extensions
issues.
2011-10-19: OTH: added more detailed failing test for metaclass
2011-10-19: OTH: another bug in signature overwriting. commited a failing
test. Thanks to Alberto Escalante!
2011-10-16: ENH: make tests for NeuralGasNode shorter
2011-10-15: FIX: chmod -x mdp/test/test_NeuralGasNode.py
2011-10-15: DOC: tiny changes in comments
2011-10-15: FIX: tests for neural gas node
2011-10-15: FIX: when start positions for the nodes was set, the number of
nodes default is discarded
2011-10-14: DOC+RF: slight improvements to documentation, comments, and
spacing
2011-10-14: FIX: NeuralGas fixes by Michael Schmucker
2011-08-03: ENH: remove tuple unpacking init: it took twice as much lines
2011-08-03: FIX: NeuralGas fixed by Michael Schmuker
2011-08-03: FIX: remove \ line breaks
2011-07-25: FIX: remove \ line breaks
2011-07-25: NEW, FIX: tests for NeuralGasNode and two fixes
2011-07-25: FIX: _remove_old_edges makes use of its argument
2011-07-25: DOC, FIX: Typos in docstrings and whitespaces
2011-07-25: NEW: NeuralGasNode by Michael Schmuker
2011-10-14: FIX: remove unused variable
2011-10-14: FIX: py3k bytes/str issue in subprocess input
2011-10-14: FIX: remove unused variable
2011-10-14: ENH: use a context manager for sys.stdout stealing
2011-10-14: FIX: add pytest ini file to manifest
2011-10-14: NEW: really check if pp needs monkey-patching
2011-10-14: NEW: be compatible with shogun 1.0. Drop support for older
releases.
2011-10-14: FIX: fix handling of MDP_DISABLE_SHOGUN variable
2011-10-14: Fix KeyError with NSDEBUG=1 Commit 7345d4a changed old-style
formatting to new-style formatting, or at least the format string,
but .format was not replaced with %!
2011-10-13: DOC: make it a bit easier to see that you can use pp on debian too
2011-10-13: FIX: remove (now) useless duplicated test in bimdp
2011-10-13: FIX: windows does not allow me to remove a file
2011-10-13: FIX: no with statement in tests {flow,node}.save Apparently
windows does not allow one process to open a file multiple times.
As {flow,node}.save use internally the with statement to open the
dump file, we can not use the with statement in the test of these
methods: nesting with statement means opening the same file
multiple times.
2011-10-12: NEW: allow for pretty printing of mdp.config. now config.info() is
printed on stdout when you type
>>> print mdp.config
or
>>> mdp.config
don't think about the fact that this is only achievable by a
metaclass ;-)
2011-10-12: ERF: also add mdp.__version__ in config.info
__revision__ is not enough, when mdp is installed and does not
load from a git repository that string is empty (by the way: we
should fix it!)
2011-10-11: FIX: remove forgotten print statement
2011-10-11: NEW: add tempfile test to help diagnose win7 problems
2011-10-11: FIX: make py.test.__version__ check more robust
2011-10-11: Add mdp.__revision__ to mdp.config.info() output This changes the
order of initialization a bit: first mdp.configuration is fully
imported, then mdp.utils. Because of this change,
mdp.utils.repo_revision was renamed to mdp.repo_revision. It is
imported only in mdp.configuration and then deleted from the
visible namespace. get_git_revision was available as
utils.get_git_revision, and now it's gone, but mdp.__revision__
contains the same value, so there little need to export the
function. I hope nobody used it.
>>> print mdp.config.info()
python: 2.7.2.final.0
mdp: MDP-3.1-74-gbaca2a8+
parallel python: 1.6.0
shogun: NOT AVAILABLE: No module named shogun
libsvm: libsvm.so.3
joblib: 0.4.6
scikits: 0.8.1
numx: scipy 0.9.0
symeig: scipy.linalg.eigh
2011-10-11: NEW: append + to mdp.__revision__ in modified repo
2011-10-11: FIX: half of an assert message was lost
2011-10-11: ERF: use py.test 2 ini-file configuration. we can now check for
py.test version, and get finally rid of the redundant conftest.py
files. we now have only one conftest.py file for bimdp and mdp.
2011-10-11: FIX: check if we have ENOENT in TemporaryDir.__del__
2011-10-11: FIX: stop complaining if dir is gone already in TemporaryDirectory
2011-10-11: ERF: get rid of the pp monkey patch dirs the hard way.
TemporaryDirectory does not manage to delete itself when created
in a subprocess
2011-10-11: ERF: make the pp monkeypatch dir prefix more explicit
2011-10-11: ERF: change the interpretation of MDP_MONKEYPATCH_PP now you can
specify a container directory for the patching. it defaults to
tempfile.gettempdir(), i.e. /tmp on unix and something else on
windows
2011-10-11: FIX: only allow py.test version >= 2.1.2 py.test version > 2 are
subtly incompatible with versions < 2. just settle on the new
ones. problem: debian still does not package a reasonably recent
version of py.test. in this case, just use the standalone script.
thanks to 8a5b2e272de4230f15d09f85b7d35b0aeee3078e it's as
flexible as py.test itself.
2011-10-11: ERF: pass options to py.test in mdp.test. this way using the
standalone script run_tests.py is as flexible as using py.test
directly
2011-10-11: ERF: updated standalone py.test script to version 2.1.2
2011-10-11: DOC: added pointer to win64 binaries distributor
2011-10-10: ENH: use with statement for better readability in a couple of
tests No functional changes.
2011-10-10: ENH: make pyflakes happy by not defining unused names No
functional changes.
2011-10-10: FIX: make monkeypatch_pp compatible with both pp 1.6 and 1.6.1
>>> import pp
>>> pp.version
'1.6.0'
>>> pp._Worker.command
'"/usr/bin/python" -u "/usr/lib/pymodules/python2.6/ppworker.py" >
2>/dev/null'
>>> import pp
>>> pp.version
'1.6.1'
>>> pp._Worker.command
['/usr/bin/python2.6', '-u',
'/usr/lib/pymodules/python2.6/ppworker.py', '2>/dev/null']
2011-10-10: FIX: temporary directory for tests was not managed properly sed
's/mdp_toolkit_reporting_configured/mdp_configured/g' because the
existence of this variable guards not only reporting
configuration, but also the temporary directory stuff (and also
the name was kind of long).
sed 's/tempdirname/mdp_tempdirname/' because it goes in the
py.test namespace and should have a prefix like the other
variable.
sed -r 's+bimdp/+TMP\/+g; s+mdp/+bimdp/+g; s+TMP\/+mdp/+g'
<mdp/test/conftest.py >bimdp/test/conftest.py because bimdp should
be kept in sync. In my installation bimdp is actually configured
first, so tests in the temporary directory were failing with
AttributeError on py.test.tempdirname.
2011-10-10: FIX: tempdirs in cacheing tests were shortlived A temporary
directory created with TemporaryDirectory can go at any time, so a
construct like
dirname = TemporaryDirectory().name is broken.
Since the directories are created in the master temporary
directory anyway, they don't have to be deleted separately.
2011-10-10: FIX: do not set the cachedir by default on import mdp.caching
setting it by default was creating a lot of bogus temporary
directories when parallel processes where started using
process_scheduler. I see no side effects for not setting it
2011-10-10: FIX: better name for global temp dir
2011-10-10: FIX: fix pp monkey patching. pp._Worker.command.replace(ppworker,
ppworker3) did not work, as pp._Worker.command is a list and not a
string!
2011-10-10: FIX: put joblib caching stuff in the new global test tempdir
2011-10-10: ERF: added a container directory for temporary test files. the
directory gets deleted (no matter its contents) at the end of the
test run. This should fix stale temp files.
2011-10-05: FIX: partially revert 569cbe7 Changing 'except Exception:' clauses
to bare 'except:' would catch and swallow ^C and the like.
2011-10-02: ENH: revert the condition for pp monkeypatching It's better to
only enable it when explicitely requested. The warning is also
removed, because it doesn't make sense to warn about something
that was explicitely requested. If the option to monkey patch is
not given, check if pp is likely to be broken, and if so, disable
it at configuration time.
2011-10-02: FIX: remove some unused imports and one allocation
2011-10-02: ENH: make temporary directory names more readable tmpxayPZEpp4mdp/
=> pp4mdp.tmpxayPZE/
2011-09-08: FIX: new module structure in scikits.learn 0.8
2011-09-07: BF: Exclude float16 dtypes in numpy.linalg.eigh.
2011-08-24: Fixes to FastICA node Fine tuning and stabilisation are now used
correctly, and the result closely resembles the original matlab
version for the deflation/gaussian case with prewhitened data. The
results are not numerically identical because there are still some
differences in stopping criteria, but it's close. To verify, see
original Matlab implementation.
2011-08-10: DOC: added documentation item to TODO list
2011-06-30: ERF: PEP8 fix (da pignolo)
2011-06-30: ERF: simplify metaclass wrapping code
2011-06-30: FIX: Fixed the node metaclass to correctly handle signatures and
docstrings for inheritance chains.
2011-06-30: ERF: Some small pylint-motivated updates.
2011-06-30: ERF: wrap private methods in meteclass even if no docstring is
defined.
2011-06-30: ERF: Made the _get_required_train_args method more robust.
2011-06-30: OTH: refactored metaclass tests, again.
2011-06-30: OTH: refactored metaclass tests
2011-06-16: DOC: added proper git format for changelog
2011-06-16: OTH: commit failing test for docstring overwriting Thanks to
Alberto Escalante to point this bug out.
2011-04-07: FIX: verbose argument in set_cachedir was ignored.
2011-06-12: FIX: Fixed a regression that broke the DBN example.
2011-06-11: ERF: Major refactoring of the binet inspection code. This follows
the refactoring of the flow-to-HTML conversion. Smaller
refactorings in realted parts (slideshow) were also done.
2011-06-11: ERF: Prepare large refactoring by renaming the files first.
2011-05-31: ERF: Refactored the flow-to-HTML conversion. Threw out useless
code, fixed style issues and now use the proper vocabulary
(visitor pattern). The bimdp inspection has not yet been updated
and is therefore broken in this commit.
2011-04-18: FIX: monkeypatch_pp was broken I made some changes without
actually testing if stuff works...
2011-04-15: FIX: delete main joblib cache directory at mdp exit The directory
is of course only deleted if we created it ourselves, i.e. if it
is a temporary directory.
2011-04-15: FIX: delete joblib cache directory after tests
2011-04-15: DOC: describe MDPNUMX and MDPNSDEBUG env. vars.
2011-04-15: FIX: bump supported scikits-learn version number Setting >=0.6 is
pretty conservative, but Debian's 0.5-1 is bad for sure.
2011-04-14: DOC: document MDP_DISABLE_MONKEYPATCH_PP
2011-04-14: DOC: document MDP_DISABLE_* variables
2011-01-12: DOC: improve rst in mdp/extension.py
2011-03-21: FIX: drop some unused variables & imports Wanted to test pyflakes
on something. This is the result.
2011-04-14: FIX: apply a temporary workaround to the pp import problem For
details see
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=620551.
ppworker.py must be run from some safe place. A temporary dir
seems a good option. Unfortunately a temporary file is not enough,
because parent directory should be empty. TemporaryDirectory is so
complicated, because the code is run during Python shutdown
procedure and some modules are not available.
2011-04-05: FIX: make short description fit within 200 char limit Tiziano
proposed the text, nobody protested... I guess that this signifies
a consensus. :)
Some small formatting fixes in source code and output were
applied.
2011-04-01: OTH: remove unnecessary parentheses around assert
2011-04-04: FIX: restore python2.4, 2.5 support in setup.py Module ast is not
available in python < 2.6.
The format of docstrings is slightly changed: removed empty lines
at the top.
Tested with python 2.4, 2.5, 2.6, 2.7, 3.1, 3.2. Output looks
identical.
2011-04-01: FIX: [pp] Result container was shared between invocations
2011-04-01: ERF: improved scikits.learn detection code.
2011-03-31: ERF: Some small code improvements, no functional changes.
2011-03-31: FIX: Fixed source path handling.
-------------------------------------------------------------------------------
MDP-3.1:
2011-03-29: FIX: fixed shogun version detection code. As I expected, explicit
version checking is bound to fail. I would prefer to just remove
it and rely on functional checks, i.e. is the feature we depend on
present or not?
2011-03-24: ERF: CovarianceMatrix has the option of not centering the data;
SFANode modified accordingly
2011-03-22: FIX: fix wrong normalization in SFANode SFANode was using the
covariance matrix of the derivatives, while the SFA algorithm
requires the non-centered second moment matrix of the derivatives.
This bug is probably irrelevant in most cases, but in some corner
cases the error scales with 1/sqrt(N) where N is the number of
samples. Many thanks to Sven Dähne for fishing this out ;-)
2011-03-22: ERF: added new tests for SFANode Those tests are currently
failing.
2011-03-22: ERF: really use the debug flag in SFANode.stop_training
2011-03-02: FIX: old svm versions would break the import process Bug reported
by Philipp Meier.
2011-03-03: DOC: updated TODO
2011-03-03: DOC: updated TODO
2011-02-23: DOC: updated CHECKLIST and TODO
2011-02-23: ERF: performance and memory improvements for KNNClassifier.
Transform array of n_samples^2 * n_features array into
n_samples^2. Thanks to Fabian Pedregosa!
2011-02-17: FIX: Small cosmetic fix in flow inspection for the case when
stop_training doesn't receive any argument.
2011-02-17: FIX: Do not wrap abstract scikits.learn transformers
2011-02-17: Robustify wrap_scikits_transformer. Fix for the case that a
transform does not implement some of the methods.
2011-01-31: ERF: running self-contained test script is now blocking the prompt
2011-01-27: FIX: Made the target checks more permissive when execution ends or
is aborted.
2011-01-27: ERF: Added additional checks for copy flag in BiLayer.
2011-01-27: FIX: Fixed regression in inspection method output.
2011-01-27: FIX: BiLayer was not compatible with all return value options.
2011-01-27: FIX: Fixed some leftover inconsistencies from BiMDP stop_training
interface changes.
2011-01-26: DOC: with_extension doesn't work for coroutines, tell epydoc about
extension
2011-01-25: ERF: remove unittest-style wrapper class from test_extension.py.
2011-01-25: OTH: use context managers to open/close file for pickling
2011-01-25: ERF: Check for empty slides in execution as well.
2011-01-25: ERF: Improved the behavior of show_training if an already trained
flow is given (a special expection is now raised).
2011-01-17: FIX: add trove classifiers for Python 2 and 3.
2011-01-14: ERF: Updated the Parallel Python support, especially the
NetworkPPScheduler. It now works with pp 1.6, and there are some
refactoring and robustnes improvements as well.
2011-01-13: FIX: really update CHECKLIST
2011-01-13: NEW: mdp descriptions now defined in the module. They new
descriptions are used in the setup.py script and in generating the
web site.
2011-01-13: ERF: get version and description in a robust way.
-------------------------------------------------------------------------------
MDP-3.0:
2011-01-12: FIX: import NormalizeNode in mdp.nodes
2011-01-12: FIX: no return in IdentityNode method
2011-01-12: FIX: test_scikits should be run only if scipy is available
2011-01-12: FIX: tell epydoc that nodes are documented in rst
2011-01-11: NEW: convert scikits docstrings to rst This way I'm only getting
missing target warnings and the text is parse as rst. No monospace
font :)
2011-01-11: FIX: fix some epydoc warnings, add some links and a forgotten
export
2011-01-07: MISC: duplicate some useful code among the three wrappers last
merge from scikits branch.
2011-01-11: ERF: make scikits default docs rst-compatible
2011-01-10: Merge branch 'namespace_fixup' Conflicts:
mdp/__init__.py
mdp/nodes/__init__.py
mdp/utils/__init__.py
Add missing comma in __all__ in mdp/__init__.py.
2011-01-10: OTH: shorten test name
(Looked awkward in py.test output.)
2011-01-10: NEW: introduce MDPNSDEBUG environment variable This variable
controls namespace fixup debugging messages.
Also remove 'advanced string formatting' in favour of printf-style
statements (for python 2.5 compatibility).
2011-01-10: FIX: made the one scikits test a bit more useful
2011-01-10: FIX: there is no problem with output_dim in scikits classifiers
because they are identity nodes
2011-01-10: DOC: documentation of output_dim problem in scikits.learn wrappers
2011-01-10: FIX: check for existence of im_func in classifier wrapper
2011-01-10: FIX: fail meaningfully when trying to set output_dim
2011-01-10: FIX: added docstrings to scikits wrappers
2011-01-10: FIX: Cache mechanism called pre_execution_check with too much
information
2011-01-10: FIX: broken variable for disabling scikits.learn
2011-01-10: FIX: fix wrapper string in scikits nodes
2011-01-10: FIX: fixed hard-coded scikits test.
2011-01-10: FIX: fixed a bit pp_remote support. I commented out the test.
There's no point in having a test that requires a working ssh
setup. we should move that code in the examples. TODO: I still did
not manage to test the remote support properly: it does not work
if ssh spits some session information on startup :-(
2011-01-10: FIX: fix namespace issues with scikits nodes.
2011-01-10: FIX: Made the straight forward fixes for pp 1.6 support, not sure
if this is working now.
2011-01-10: Merge remote branch 'origin/master'
2011-01-10: Merge a branch with some scikits work I'm doing this as a merge
instead of rebasing, because the work was really done in parallel,
and e.g. Tiziano removed the file, which I moved and updated.
2011-01-10: FIX: make scikits support depend on version 0.5 Version 0.4
breaks... Version 0.5 at least does learn & execute.
2011-01-10: FIX: move scikits test into mdp/tests/
2011-01-10: Merge remote branch 'origin/master' Conflicts:
mdp/test/test_pp_local.py
2011-01-10: FIX: Updated local scheduler to work with latest pp version 1.6.
2011-01-10: FIX: fix name leaking in nodes/__init__.py
2011-01-10: FIX: add scikits to list of dependencies in testall.py
2011-01-10: FIX: Fixed local Parallel Python tests.
2011-01-10: FIX: make test_ISFANode more robust.
2011-01-10: FIX: remove stale test_scikits.py file
2011-01-10: NEW: merged constant_expansion_node branch. Adds new
GeneralExpansionNode thanks to Alberto Escalante.
Tests and node had to be adjusted to merge cleanly and to follow
new conventions. TODO: pseudo_inverse method is quite fragile,
why?
2011-01-10: ERF: Added native traceback flag to IDE test run template.
2011-01-09: FIX: remove bitrot in test_pp_*.py. This makes the local tests
pass with parallel python 1.5.4. Remote tests still fail because
amongst other things the server list must be passed explicitely.
The tests fail horribly with newer pp version.
2011-01-09: FIX: kill epydoc warnings
2011-01-09: Revert "DOC: migrated class.__doc__ to rst for nerual_gas_nodes"
This reverts commit 2c2a4cd72ecd7d2dbb2032dd7db4f0754b3ba846.
2011-01-07: FIX: make joblib version checking more robust e.g.
joblib.__version__='1.0.0-gitABCEDFG' should pass.
2011-01-07: FIX: be more tolerant against missing modules in scikits.learn.
depending on the installation procedure, user may or may not have
some of the scikits.learn modules. we just wrap the modules we
find.
2011-01-07: FIX: add wrongly removed 'scikits' namespace from mdp.nodes.
2011-01-07: FIX: wrong version in scikits.learn info item.
2011-01-07: ERF: Merged "scikits" branch into "master". Conflicts:
mdp/__init__.py. Fixed new config syntax and generic_tests.
2011-01-06: FIX: fixed testall script. now it works. the script should be
ported to use subprocess, so that it runs OS agnostic.
2011-01-05: ERF: improved testall.py
2011-01-05: DOC: updated CHECKLIST for release.
2011-01-05: FIX: Slightly changed the include_last_sample argument to fix the
problem with the standard parallel fork implementation.
2011-01-05: FIX: fix test broken due to new keyword in SFANode.
2011-01-05: FIX: added include_last_sample to SFA2Node too.
2011-01-05: ERF: added include_last_sample switch to SFANode. Motivation and
discussion can be found in this thread:
http://sourceforge.net/mailarchive/forum.php?thread_name=20100826183424.GF26995%40tulpenbaum.cognition.tu-berlin.de&forum_name=mdp-toolkit-users
2011-01-05: FIX: clean up __all__ in mdp/__init__.py numx* should not be in
all. Quoting Tiziano:
> numx was not in __all__, and therefore was not documented by
epydoc.
> Once it is added to __all__, indeed things break heavily. well,
I think even it was by mistake, it is a good thing that numx is
not in __all__. mdp.numx is an *internal* thing. people doing from
mdp import * should not get numx. so, leave it like this and we
don't even need a workaround for epydoc.
While at it, remove whitening which was already gone and make the
list alphabetical.
2011-01-04: Merge branch 'cache' Conflicts:
mdp/__init__.py
2011-01-04: FIX: make setup.py run on also on python3 The code must run on all
supported python versions.
try: ... except Type, v: ...
file()
cannot be used.
While at it, I'm changing exec() to re.match. It's simpler.
2011-01-04: FIX: python2.5 has no itertools.product
2011-01-04: ERf: added script to test all python versions and dependencies.
2011-01-04: FIX: fix name error in configuration.py
2011-01-04: ERF: added way of disabling optional dependencies optional
dependencies can be disabled setting the env variable
MDP_DISABLE_DEPNAME
2011-01-04: ERF: remove long deprecated helper functions. pca and fastica
survive because we use them as ad in the the site and because most
probably they are the only one in real use out there.
2011-01-04: FIX: fix test failures due to previous commit.
2011-01-04: ERF: cleaned up mdp/__init__.py. configuration is now a separate
file. the logic of numx loading has been changed (again!).
numpt/scipy can not be treated as an external dependency.
2011-01-04: FIX: fix generic node test failures for
TimeFrameSlidingWindowNode.
2011-01-04: ERF: support iterables in generic node tests.
2011-01-03: FIX: MDP depends on joblib >= 0.4.3
2011-01-03: FIX; fixed git log format in CHECKLIST
2011-01-03: DOC: add __homepage__ variable in __init__.py
2011-01-03: FIX: removed useless file.
2011-01-03: ERF: updated author and maintainers, put version in one single
place.
2011-01-03: DOC: changed reference to installation instructions
2011-01-03: ERF: removed our names from COPYRIGHT. It makes little sense to
keep up-to-date the list of maintainers in this file. we have one
authoritative source: the development.rst page.
2010-12-31: FIX: fixed TimeDelayNode docstring rst formatting
2010-12-31: NEW: new TimeDelay and TimeDelaySlidingWindow nodes. Thanks to
Sebastian Höfer!
2010-12-31: DOC: specify dependency in svm nodes.
2010-12-31: FIX: change order of nodes in nodes/__init__.py __all__ order is
somehow arbitrary, but better than before. it is needed for the
automatic node list generation in the web site.
2010-12-31: DOC: migrated class.__doc__ to rst for svm family
2010-12-31: FIX: logic and wording of the symeig dependency test were wrong. I
don't have a 64bit machine to test that the function in
mdp/utils/routines.py still does the right thing. if it does not,
just change mdp.config.has_symeig == '...' to
mdp.config.has_symeig != '...'
;-)
2010-12-31: DOC: migrated class.__doc__ to rst for misc_nodes
2010-12-31: DOC: migrated class.__doc__ to rst for classifier_nodes
2010-12-31: DOC: migrated class.__doc__ to rst for expansion_nodes
2010-12-31: DOC: migrated class.__doc__ to rst for nerual_gas_nodes
2010-12-31: DOC: migrated class.__doc__ to rst for regression_nodes
2010-12-31: DOC: migrated class.__doc__ to rst for rbm_nodes
2010-12-31: DOC: migrated class.__doc__ to rst for lle_nodes
2010-12-31: DOC: migrated class.__doc__ to rst for em_nodes
2010-12-31: DOC: migrated class.__doc__ to rst for fda_nodes
2010-12-31: DOC: migrated class.__doc__ to rst for sfa family
2010-12-31: DOC: migrated class.__doc__ to rst for ica family
2010-12-31: DOC: migrated class.__doc__ to rst for nipals
2010-12-31: DOC: migrated class.__doc__ to rst for pca_nodes
2010-12-31: DOC: migrate convolution nodes to rst docstring
2010-12-31: DOC: fixed migration to rst docstrings for xsfa_nodes.
2010-12-30: Merge branch 'feature/libsvm_291_support' Conflicts:
mdp/__init__.py
mdp/test/test_contrib.py
2010-12-30: FIX: failing dtype_consistency_tests with numpy as backend The
config.has_symeig logic was that config.has_symeig is False when
using the _fake_symeig compatibility wrapper. Dtypes were selected
based on that.
2010-12-30: FIX: make sure mdp.config.has_{numpy,scipy} are always set, really
2010-12-30: FIX: make sure mdp.config.has_{numpy,scipy} are always set
2010-12-30: FIX: Don’t try to fetch version of numx_version twice.
2010-12-29: ERF: Put SVM tests into a separate file. Also: Fix
skip_on_condition on class.
2010-12-27: DOC: rename ExternalDepFail to -Failed and document stuff
2010-12-27: FIX: test_seed failured when testing running bimdp.test() after
mdp.test() The reason was that when the test functions were
imported from mdp.test into bimdp.test, they still referenced
mdp.test._SEED global variable. But the --seed option in bimdp is
independent, so it was set to a different random seed. By
duplicating test_seed.py, a second independent global is created.
2010-12-27: Add a test for separable data.
2010-12-27: NEW: check if joblib is >= 0.4.6
2010-12-27: ERF: Restructured the libsvm tests.
2010-12-27: OTH: make COPYRIGHT valid rst This makes is easier to include in
the webpage.
2010-12-27: Merge branch 'config_simplification' Conflicts:
mdp/__init__.py
This merge commit contains an adaptation of caching to the new
framework.
2010-12-27: NEW: convert caching_extention.py to rst
2010-12-27: Merge branch 'rst_docstrings' Conflicts:
mdp/signal_node.py
2010-12-27: Merge branch 'cache' Conflicts:
mdp/caching/caching_extension.py
2010-12-27: Merge commit '06007d3e8987a6c8574fd63c7608b37e9e657e66'
2010-12-27: ERF: Added test for execute_method in classifiers.
2010-12-27: ERF: Add validation for libsvm parameters.
2010-12-27: ERF: Get rid of superfluous parameter handling. Use svm_parameter
directly.
2010-12-27: FIX: Get the libsvm tests running for versions >=2.91. TODO: * The
new interface still needs some polishing.
* We need to test the RBF classifier. It won’t work right now.
2010-12-24: FIX: fix test of PCANode for degenerate case, it was failing
occasionally.
2010-12-24: removed now useless copy method overwriting in NoiseNode
2010-12-24: Merge branches 'deepcopy' and 'master'
2010-12-24: ERF: added additional tests for node and flow deepcopy This tests
fail in master branch righ now, because lambdas can not be
pickled!
2010-12-24: ERF: added additional tests for node and flow deepcopy
2010-12-24: Merge branch 'master' of
ssh+git://mdp-toolkit.git.sourceforge.net/gitroot/mdp-toolkit/mdp-toolkit
2010-12-24: FIX: fixex bimdp.test() under windows. The FIX introduced with
dfa8ec5a0d367941e4c297325a43361d579f8bbd was not working on
windows, because git does not support symlinks there. It has been
fixed differently now, and it should work reliably under any
system, I hope.
2010-12-22: ERF: Improved the exception handling for failing training argument
check (user now gets a better error message).
2010-12-22: changed my email address in copyright and setup
2010-12-21: Merge remote branch 'new_guidelines'
2010-12-21: FIX: now bimdp.test() really works as advertised!
2010-12-21: FIX: regenerate run_tests.py script for running tests without
py.test
2010-12-03: OTH: remove uses of deprecated dict.has_key()
2010-12-03: OTH: use with_statement in signal_node
2010-12-18: DOC: improved docs of caching mechanism
2010-12-18: FIX: possible to switch caching path while extension active
2010-12-18: FIX: caching started at second execution because of automatic
setting of dtype, input_dim
2010-12-18: NEW: caching extension can now cache individual classes or
instances
2010-12-18: DOC: a few fixes to the cache extension docs
2010-12-09: NEW: Added parallelization for NearestMean and KNN classifier.
Also updated NearestMeanClassifier attribute names to avoid
confusion.
2010-12-09: DOC: Added explanation in _default_fork docstring.
2010-12-09: DOC: Improved code documentation.
2010-12-03: FIX: copy with deepcopy everywhere, raise DeprecationWarning on
old API Since Node.copy() is a public function, changing the
allowed parameters might be bad. So just ignore the parameter and
raise a DeprecationWarning if the parameter has a non-None value.
>>> import mdp
>>> node = mdp.Node()
>>> node2 = node.copy(protocol=1)
__main__:1: MDPDeprecationWarning: protocol parameter to copy() is
ignored
2010-12-03: FIX: Patch for using deepcopy instead of pickle for Node and Flow
Hi all,
here is a patch and test script for replacing the pickle with
deepcopy in Node.copy() and Flow.copy(). The signature of the copy
function changes (the protocol keyword is no longer necessary), I
don't know what the proper way to handle this is (deprecation
error?), so I'll leave it up to you guys.
Thanks for all the efforts, we get very positive feedback from all
users of mdp and Oger!
David
2010-12-02: OTH: remove redundant shogun version checking
2010-12-02: NEW: add tests for the new config architecture
2010-12-01: OTH: Convert config.has* to an attribute I have suspicions that
using a lambda function was causing problems with the process
scheduler.
git grep -l -E 'config.has_'|xargs sed -r -i
's/(config.has_[a-z_]+)\(\)/\1/g'
2010-12-01: OTH: simplify mdp config discovery Create
ExternalDepFound/ExternalDepFail objects immediately after
attempting import. This way there's no need to reverse engineer
where the symeig implementation comes from.
TODO: test_process_schedule fails!
2010-12-01: OTH: simplify numpy/scipy imports
2010-12-01: OTH: make ExternalDep objects have boolean value
2010-12-02: OTH: replace 'map()' with 'for:' following 2to3's advice
2010-12-02: OTH: remove redundant OrderedDict implementation I'm also moving
the OrderedDict recipe to a separate file, because it's kind of
logically separate and will not be used in newer versions of
Python anyway.
2010-12-01: OTH: mdp.test() should not cause SystemExit Function
py.cmdline.pytest calls py.test.cmdline.main, but also raises
SystemExit. Just call the latter one, so the interactive session
can continue.
2010-12-01: Change __license__ to 'Modified BSD' in source code The license