[python-scikit-learn: 1/2] New upstream (0.15.0b1), beta release

Sergio Pascual sergiopr at fedoraproject.org
Mon Jun 23 17:26:04 UTC 2014


commit 66f8004ee4b49300b188b27cf912db9430f3494e
Author: Sergio Pascual <sergiopr at fis.ucm.es>
Date:   Mon Jun 23 18:42:27 2014 +0200

    New upstream (0.15.0b1), beta release

 python-scikit-learn.spec      |   75 +++++---
 sklearn-unbundle-cblas.patch  |   38 ++--
 sklearn-unbundle-joblib.patch |  423 +----------------------------------------
 system-joblib.py              |   44 +++++
 system-six.py                 |   55 ++++++
 unbundle-six.sh               |    2 +-
 6 files changed, 170 insertions(+), 467 deletions(-)
---
diff --git a/python-scikit-learn.spec b/python-scikit-learn.spec
index 9462cca..0c2f4c5 100644
--- a/python-scikit-learn.spec
+++ b/python-scikit-learn.spec
@@ -2,8 +2,8 @@
 %global with_python3 1
 
 Name: python-scikit-learn
-Version: 0.14.1
-Release: 8%{?dist}
+Version: 0.15.0
+Release: 0.1.b1%{?dist}
 Summary: Machine learning in Python
 License: BSD
 # No license file
@@ -11,15 +11,17 @@ License: BSD
 # webpage says: BSD (3 clause)
 
 URL: http://scikit-learn.org/
-Source0: https://pypi.python.org/packages/source/s/scikit-learn/%{upname}-%{version}.tar.gz
+#Source0: https://pypi.python.org/packages/source/s/scikit-learn/%{upname}-%{version}.tar.gz
+Source0: https://pypi.python.org/packages/source/s/scikit-learn/scikit-learn-0.15.0b1.tar.gz
+Source1: system-six.py
+Source2: system-joblib.py
 Patch0: sklearn-unbundle-joblib.patch
-Patch1: sklearn-unbundle-six.patch
 Patch2: sklearn-unbundle-cblas.patch
 Patch3: sklearn-fix-test.patch
 
 BuildRequires: python2-devel 
 BuildRequires: numpy scipy python-nose python-matplotlib
-BuildRequires: python-joblib
+BuildRequires: python-joblib >= 0.8.0
 BuildRequires: python-six >= 1.4.1
 BuildRequires: atlas-devel blas-devel
 BuildRequires: Cython python-pillow
@@ -40,7 +42,7 @@ efficient, accessible to everybody, and reusable in various contexts.
 Summary: Machine learning in Python
 BuildRequires: python3-devel python3-nose
 BuildRequires: python3-numpy python3-scipy python3-matplotlib
-BuildRequires: python3-joblib
+BuildRequires: python3-joblib >= 0.8.0
 BuildRequires: python3-six >= 1.4.1
 BuildRequires: atlas-devel blas-devel
 BuildRequires: python3-Cython python3-pillow
@@ -55,31 +57,39 @@ efficient, accessible to everybody, and reusable in various contexts.
 %endif # with_python3
 
 %prep
-%setup -n %{upname}-%{version} -q
+#%setup -n %{upname}-%{version} -q
+%setup -n %{upname}-0.15.0b1 -q
+
 %patch0 -p1
-%patch1 -p1
-rm -rf sklearn/externals/joblib
-rm -rf sklearn/externals/six
-rm -rf sklearn/externals
+
+mkdir sklearn/externals/bundled
+touch sklearn/externals/bundled/__init__.py
+mv sklearn/externals/six.py sklearn/externals/bundled
+mv sklearn/externals/joblib sklearn/externals/bundled
+mv sklearn/externals/test_externals_setup.py sklearn/externals/bundled
+cp %{SOURCE1} sklearn/externals/six.py
+cp %{SOURCE2} sklearn/externals/joblib.py
+
+
 %patch2 -p1
 rm -rf sklearn/src/cblas
-%patch3 -p1
-rm -rf sklearn/datasets/_svmlight_format.c
-rm -rf *egg-info
-chmod -x examples/plot_rbm_logistic_classification.py
+#%patch3 -p1
+#rm -rf sklearn/datasets/_svmlight_format.c
+#rm -rf *egg-info
+chmod -x examples/decomposition/plot_pca_vs_fa_model_selection.py 
 
 # Reported upstream
 # https://github.com/scikit-learn/scikit-learn/issues/2423
 # Removing bogus shebang
-pushd sklearn/datasets
-sed -i -e "1d" setup.py
-popd
+#pushd sklearn/datasets
+#sed -i -e "1d" setup.py
+#popd
 
-pushd sklearn/gaussian_process/
+#pushd sklearn/gaussian_process/
 #sed -i -e "1d" gaussian_process.py regression_models.py __init__.py correlation_models.py
-sed -i -e "1d" regression_models.py __init__.py correlation_models.py
-sed -i -e "2d" gaussian_process.py 
-popd
+#sed -i -e "1d" regression_models.py __init__.py correlation_models.py
+#sed -i -e "2d" gaussian_process.py 
+#popd
 
 find -name '*.py' | xargs sed -i '1s|^#!python|#!%{__python2}|'
 
@@ -87,14 +97,14 @@ find -name '*.py' | xargs sed -i '1s|^#!python|#!%{__python2}|'
 rm -rf %{py3dir}
 cp -a . %{py3dir}
 find %{py3dir} -name '*.py' | xargs sed -i '1s|^#!python|#!%{__python3}|'
-pushd %{py3dir}
-cython3 sklearn/datasets/_svmlight_format.pyx
-cython3 sklearn/cluster/_k_means.pyx
-popd
+#pushd %{py3dir}
+#cython3 sklearn/datasets/_svmlight_format.pyx
+#cython3 sklearn/cluster/_k_means.pyx
+#popd
 %endif # with_python3
 
-cython sklearn/datasets/_svmlight_format.pyx
-cython sklearn/cluster/_k_means.pyx
+#cython sklearn/datasets/_svmlight_format.pyx
+#cython sklearn/cluster/_k_means.pyx
 
 %build
 CFLAGS="%{optflags}" %{__python2} setup.py build
@@ -119,12 +129,12 @@ find %{buildroot} -name "*.so" | xargs chmod 755
 %check
 %if 0%{?with_python3}
  pushd %{buildroot}/%{python3_sitearch}
-# nosetests-%{python3_version} sklearn
+ nosetests-%{python3_version} -x sklearn
  popd
 %endif # with_python3
 
 pushd %{buildroot}/%{python_sitearch}
-# nosetests-%{python2_version} sklearn
+ nosetests-%{python2_version} -x sklearn
 popd
  
 %files
@@ -140,10 +150,13 @@ popd
 %endif # with_python3
 
 %changelog
+* Mon Jun 23 2014 Sergio Pascual <sergiopr at fedoraproject.org> - 0.15.0-0.1.b1
+- New upstream (0.15.0b1), beta release 
+
 * Mon Jun 02 2014 Bohuslav Kabrda <bkabrda at redhat.com> - 0.14.1-8
 - Rebuilt for https://fedoraproject.org/wiki/Changes/Python_3.4
 
-* Mon Jun 01 2014 Sergio Pascual <sergiopr at fedoraproject.org> - 0.14.1-7
+* Mon Jun 02 2014 Sergio Pascual <sergiopr at fedoraproject.org> - 0.14.1-7
 - Rerun Cython3 on broken files
 - Disable tests for the moment
 
diff --git a/sklearn-unbundle-cblas.patch b/sklearn-unbundle-cblas.patch
index 5f95722..091dcf5 100644
--- a/sklearn-unbundle-cblas.patch
+++ b/sklearn-unbundle-cblas.patch
@@ -1,7 +1,7 @@
-diff -ur scikit-learn-0.14.1/sklearn/cluster/setup.py scikit-learn-0.14.1.cblas/sklearn/cluster/setup.py
---- scikit-learn-0.14.1/sklearn/cluster/setup.py	2013-09-09 18:16:35.817133793 +0200
-+++ scikit-learn-0.14.1.cblas/sklearn/cluster/setup.py	2013-09-09 18:16:11.869972956 +0200
-@@ -28,7 +28,7 @@
+diff -ur scikit-learn-0.15.0b1/sklearn/cluster/setup.py scikit-learn-0.15.0b1.cblas/sklearn/cluster/setup.py
+--- scikit-learn-0.15.0b1/sklearn/cluster/setup.py	2014-06-06 18:29:49.477078831 +0200
++++ scikit-learn-0.15.0b1.cblas/sklearn/cluster/setup.py	2014-06-06 18:31:40.898010511 +0200
+@@ -29,7 +29,7 @@
          '_k_means',
          libraries=cblas_libs,
          sources=['_k_means.c'],
@@ -10,9 +10,9 @@ diff -ur scikit-learn-0.14.1/sklearn/cluster/setup.py scikit-learn-0.14.1.cblas/
                        numpy.get_include(),
                        blas_info.pop('include_dirs', [])],
          extra_compile_args=blas_info.pop('extra_compile_args', []),
-diff -ur scikit-learn-0.14.1/sklearn/linear_model/setup.py scikit-learn-0.14.1.cblas/sklearn/linear_model/setup.py
---- scikit-learn-0.14.1/sklearn/linear_model/setup.py	2013-09-09 18:16:35.778133528 +0200
-+++ scikit-learn-0.14.1.cblas/sklearn/linear_model/setup.py	2013-09-09 18:11:45.084926994 +0200
+diff -ur scikit-learn-0.15.0b1/sklearn/linear_model/setup.py scikit-learn-0.15.0b1.cblas/sklearn/linear_model/setup.py
+--- scikit-learn-0.15.0b1/sklearn/linear_model/setup.py	2014-06-06 18:29:49.430078438 +0200
++++ scikit-learn-0.15.0b1.cblas/sklearn/linear_model/setup.py	2014-06-06 18:32:13.443283001 +0200
 @@ -20,7 +20,7 @@
  
      config.add_extension('cd_fast', sources=['cd_fast.c'],
@@ -22,15 +22,15 @@ diff -ur scikit-learn-0.14.1/sklearn/linear_model/setup.py scikit-learn-0.14.1.c
                                         numpy.get_include(),
                                         blas_info.pop('include_dirs', [])],
                           extra_compile_args=blas_info.pop('extra_compile_args',
-diff -ur scikit-learn-0.14.1/sklearn/utils/setup.py scikit-learn-0.14.1.cblas/sklearn/utils/setup.py
---- scikit-learn-0.14.1/sklearn/utils/setup.py	2013-09-09 18:16:35.749133330 +0200
-+++ scikit-learn-0.14.1.cblas/sklearn/utils/setup.py	2013-09-09 18:11:45.075926918 +0200
-@@ -27,7 +27,7 @@
-                          sources=['arrayfuncs.c'],
-                          depends=[join('src', 'cholesky_delete.h')],
-                          libraries=cblas_libs,
--                         include_dirs=[join('..', 'src', 'cblas'),
-+                         include_dirs=[
-                                        numpy.get_include(),
-                                        blas_info.pop('include_dirs', [])],
-                          extra_compile_args=blas_info.pop('extra_compile_args',
+diff -ur scikit-learn-0.15.0b1/sklearn/utils/setup.py scikit-learn-0.15.0b1.cblas/sklearn/utils/setup.py
+--- scikit-learn-0.15.0b1/sklearn/utils/setup.py	2014-06-06 18:29:49.399078179 +0200
++++ scikit-learn-0.15.0b1.cblas/sklearn/utils/setup.py	2014-06-06 18:32:33.203448442 +0200
+@@ -13,7 +13,7 @@
+ 
+     cblas_libs, blas_info = get_blas_info()
+     cblas_compile_args = blas_info.pop('extra_compile_args', [])
+-    cblas_includes = [join('..', 'src', 'cblas'),
++    cblas_includes = [
+                       numpy.get_include(),
+                       blas_info.pop('include_dirs', [])]
+ 
diff --git a/sklearn-unbundle-joblib.patch b/sklearn-unbundle-joblib.patch
index b77ad49..4f8575b 100644
--- a/sklearn-unbundle-joblib.patch
+++ b/sklearn-unbundle-joblib.patch
@@ -1,423 +1,14 @@
-diff -ur scikit-learn-0.14.1/examples/applications/wikipedia_principal_eigenvector.py scikit-learn-0.14.1.joblib/examples/applications/wikipedia_principal_eigenvector.py
---- scikit-learn-0.14.1/examples/applications/wikipedia_principal_eigenvector.py	2013-09-06 19:12:44.815336853 +0200
-+++ scikit-learn-0.14.1.joblib/examples/applications/wikipedia_principal_eigenvector.py	2013-09-06 19:09:40.269822610 +0200
-@@ -45,7 +45,7 @@
- from scipy import sparse
- 
- from sklearn.utils.extmath import randomized_svd
--from sklearn.externals.joblib import Memory
-+from joblib import Memory
- 
- 
- print(__doc__)
-diff -ur scikit-learn-0.14.1/examples/cluster/plot_feature_agglomeration_vs_univariate_selection.py scikit-learn-0.14.1.joblib/examples/cluster/plot_feature_agglomeration_vs_univariate_selection.py
---- scikit-learn-0.14.1/examples/cluster/plot_feature_agglomeration_vs_univariate_selection.py	2013-09-06 19:12:44.807336787 +0200
-+++ scikit-learn-0.14.1.joblib/examples/cluster/plot_feature_agglomeration_vs_univariate_selection.py	2013-09-06 19:09:40.010820490 +0200
-@@ -31,7 +31,7 @@
- from sklearn.linear_model import BayesianRidge
- from sklearn.pipeline import Pipeline
- from sklearn.grid_search import GridSearchCV
--from sklearn.externals.joblib import Memory
-+from joblib import Memory
- from sklearn.cross_validation import KFold
- 
- ###############################################################################
-diff -ur scikit-learn-0.14.1/sklearn/cluster/hierarchical.py scikit-learn-0.14.1.joblib/sklearn/cluster/hierarchical.py
---- scikit-learn-0.14.1/sklearn/cluster/hierarchical.py	2013-09-06 19:12:45.005338414 +0200
-+++ scikit-learn-0.14.1.joblib/sklearn/cluster/hierarchical.py	2013-09-06 19:09:44.714858988 +0200
-@@ -15,7 +15,7 @@
- from scipy.cluster import hierarchy
- 
- from ..base import BaseEstimator, ClusterMixin
--from ..externals.joblib import Memory
-+from joblib import Memory
- from ..externals import six
- from ..metrics import euclidean_distances
- from ..utils import array2d
-diff -ur scikit-learn-0.14.1/sklearn/cluster/k_means_.py scikit-learn-0.14.1.joblib/sklearn/cluster/k_means_.py
---- scikit-learn-0.14.1/sklearn/cluster/k_means_.py	2013-09-06 19:12:45.008338439 +0200
-+++ scikit-learn-0.14.1.joblib/sklearn/cluster/k_means_.py	2013-09-06 19:09:44.760859364 +0200
-@@ -23,8 +23,8 @@
- from ..utils import check_random_state
- from ..utils import atleast2d_or_csr
- from ..utils import as_float_array
--from ..externals.joblib import Parallel
--from ..externals.joblib import delayed
-+from joblib import Parallel
-+from joblib import delayed
- 
- from . import _k_means
- 
-diff -ur scikit-learn-0.14.1/sklearn/covariance/graph_lasso_.py scikit-learn-0.14.1.joblib/sklearn/covariance/graph_lasso_.py
---- scikit-learn-0.14.1/sklearn/covariance/graph_lasso_.py	2013-09-06 19:12:44.892337486 +0200
-+++ scikit-learn-0.14.1.joblib/sklearn/covariance/graph_lasso_.py	2013-09-06 19:09:41.852835565 +0200
-@@ -21,7 +21,7 @@
- from ..linear_model import lars_path
- from ..linear_model import cd_fast
- from ..cross_validation import check_cv, cross_val_score
--from ..externals.joblib import Parallel, delayed
-+from joblib import Parallel, delayed
- import collections
- 
- 
-diff -ur scikit-learn-0.14.1/sklearn/cross_validation.py scikit-learn-0.14.1.joblib/sklearn/cross_validation.py
---- scikit-learn-0.14.1/sklearn/cross_validation.py	2013-09-06 19:12:44.875337346 +0200
-+++ scikit-learn-0.14.1.joblib/sklearn/cross_validation.py	2013-09-06 19:09:41.485832562 +0200
-@@ -22,7 +22,7 @@
- from .base import is_classifier, clone
- from .utils import check_arrays, check_random_state, safe_mask
- from .utils.fixes import unique
--from .externals.joblib import Parallel, delayed
-+from joblib import Parallel, delayed
- from .externals.six import string_types, with_metaclass
- from .metrics.scorer import _deprecate_loss_and_score_funcs
- 
-diff -ur scikit-learn-0.14.1/sklearn/datasets/california_housing.py scikit-learn-0.14.1.joblib/sklearn/datasets/california_housing.py
---- scikit-learn-0.14.1/sklearn/datasets/california_housing.py	2013-09-06 19:12:44.951337971 +0200
-+++ scikit-learn-0.14.1.joblib/sklearn/datasets/california_housing.py	2013-09-06 19:09:43.522849233 +0200
-@@ -31,7 +31,7 @@
- import numpy as np
- 
- from .base import get_data_home, Bunch
--from ..externals import joblib
-+import joblib
- 
- 
- DATA_URL = "http://lib.stat.cmu.edu/modules.php?op=modload&name=Downloads&"\
-diff -ur scikit-learn-0.14.1/sklearn/datasets/covtype.py scikit-learn-0.14.1.joblib/sklearn/datasets/covtype.py
---- scikit-learn-0.14.1/sklearn/datasets/covtype.py	2013-09-06 19:12:44.949337954 +0200
-+++ scikit-learn-0.14.1.joblib/sklearn/datasets/covtype.py	2013-09-06 19:09:43.449848635 +0200
-@@ -23,7 +23,7 @@
- 
- from .base import get_data_home
- from .base import Bunch
--from ..externals import joblib
-+import joblib
- from ..utils import check_random_state
- 
- 
-diff -ur scikit-learn-0.14.1/sklearn/datasets/lfw.py scikit-learn-0.14.1.joblib/sklearn/datasets/lfw.py
---- scikit-learn-0.14.1/sklearn/datasets/lfw.py	2013-09-06 19:12:44.948337946 +0200
-+++ scikit-learn-0.14.1.joblib/sklearn/datasets/lfw.py	2013-09-06 19:09:43.439848553 +0200
-@@ -31,7 +31,7 @@
- import urllib
- 
- from .base import get_data_home, Bunch
--from ..externals.joblib import Memory
-+from joblib import Memory
- 
- from ..externals.six import b, u
- 
-diff -ur scikit-learn-0.14.1/sklearn/datasets/olivetti_faces.py scikit-learn-0.14.1.joblib/sklearn/datasets/olivetti_faces.py
---- scikit-learn-0.14.1/sklearn/datasets/olivetti_faces.py	2013-09-06 19:12:44.947337938 +0200
-+++ scikit-learn-0.14.1.joblib/sklearn/datasets/olivetti_faces.py	2013-09-06 19:09:43.400848234 +0200
-@@ -39,7 +39,7 @@
- 
- from .base import get_data_home, Bunch
- from ..utils import check_random_state
--from ..externals import joblib
-+import joblib
- 
- 
- DATA_URL = "http://cs.nyu.edu/~roweis/data/olivettifaces.mat"
-diff -ur scikit-learn-0.14.1/sklearn/datasets/species_distributions.py scikit-learn-0.14.1.joblib/sklearn/datasets/species_distributions.py
---- scikit-learn-0.14.1/sklearn/datasets/species_distributions.py	2013-09-06 19:12:44.950337962 +0200
-+++ scikit-learn-0.14.1.joblib/sklearn/datasets/species_distributions.py	2013-09-06 19:09:43.477848864 +0200
-@@ -50,7 +50,7 @@
- import numpy as np
- 
- from sklearn.datasets.base import get_data_home, Bunch
--from sklearn.externals import joblib
-+import joblib
- 
- DIRECTORY_URL = "http://www.cs.princeton.edu/~schapire/maxent/datasets/"
- 
-diff -ur scikit-learn-0.14.1/sklearn/datasets/twenty_newsgroups.py scikit-learn-0.14.1.joblib/sklearn/datasets/twenty_newsgroups.py
---- scikit-learn-0.14.1/sklearn/datasets/twenty_newsgroups.py	2013-09-06 19:12:44.949337954 +0200
-+++ scikit-learn-0.14.1.joblib/sklearn/datasets/twenty_newsgroups.py	2013-09-06 19:09:43.464848758 +0200
-@@ -52,7 +52,7 @@
- from ..utils.fixes import in1d
- from ..feature_extraction.text import CountVectorizer
- from ..preprocessing import normalize
--from ..externals import joblib, six
-+import joblib; from ..externals import six
- 
- if six.PY3:
-     from urllib.request import urlopen
-diff -ur scikit-learn-0.14.1/sklearn/decomposition/dict_learning.py scikit-learn-0.14.1.joblib/sklearn/decomposition/dict_learning.py
---- scikit-learn-0.14.1/sklearn/decomposition/dict_learning.py	2013-09-06 19:12:44.900337552 +0200
-+++ scikit-learn-0.14.1.joblib/sklearn/decomposition/dict_learning.py	2013-09-06 19:09:42.042837120 +0200
-@@ -15,7 +15,7 @@
- from numpy.lib.stride_tricks import as_strided
- 
- from ..base import BaseEstimator, TransformerMixin
--from ..externals.joblib import Parallel, delayed, cpu_count
-+from joblib import Parallel, delayed, cpu_count
- from ..externals.six.moves import zip
- from ..utils import array2d, check_random_state, gen_even_slices
- from ..utils.extmath import randomized_svd
-diff -ur scikit-learn-0.14.1/sklearn/decomposition/tests/test_sparse_pca.py scikit-learn-0.14.1.joblib/sklearn/decomposition/tests/test_sparse_pca.py
---- scikit-learn-0.14.1/sklearn/decomposition/tests/test_sparse_pca.py	2013-09-06 19:12:44.906337601 +0200
-+++ scikit-learn-0.14.1.joblib/sklearn/decomposition/tests/test_sparse_pca.py	2013-09-06 19:09:42.197838389 +0200
-@@ -65,7 +65,7 @@
-     U1 = spca_lars.transform(Y)
-     # Test multiple CPUs
-     if sys.platform == 'win32':  # fake parallelism for win32
--        import sklearn.externals.joblib.parallel as joblib_par
-+        import joblib.parallel as joblib_par
-         _mp = joblib_par.multiprocessing
-         joblib_par.multiprocessing = None
-         try:
-@@ -144,7 +144,7 @@
-     U1 = spca_lars.transform(Y)
-     # Test multiple CPUs
-     if sys.platform == 'win32':  # fake parallelism for win32
--        import sklearn.externals.joblib.parallel as joblib_par
-+        import joblib.parallel as joblib_par
-         _mp = joblib_par.multiprocessing
-         joblib_par.multiprocessing = None
-         try:
-diff -ur scikit-learn-0.14.1/sklearn/ensemble/forest.py scikit-learn-0.14.1.joblib/sklearn/ensemble/forest.py
---- scikit-learn-0.14.1/sklearn/ensemble/forest.py	2013-09-06 19:12:44.850337140 +0200
-+++ scikit-learn-0.14.1.joblib/sklearn/ensemble/forest.py	2013-09-06 19:09:41.000828593 +0200
-@@ -44,7 +44,7 @@
- from abc import ABCMeta, abstractmethod
- 
- from ..base import ClassifierMixin, RegressorMixin
--from ..externals.joblib import Parallel, delayed, cpu_count
-+from joblib import Parallel, delayed, cpu_count
- from ..externals import six
- from ..externals.six.moves import xrange
- from ..feature_selection.from_model import _LearntSelectorMixin
-diff -ur scikit-learn-0.14.1/sklearn/ensemble/partial_dependence.py scikit-learn-0.14.1.joblib/sklearn/ensemble/partial_dependence.py
---- scikit-learn-0.14.1/sklearn/ensemble/partial_dependence.py	2013-09-06 19:12:44.839337050 +0200
-+++ scikit-learn-0.14.1.joblib/sklearn/ensemble/partial_dependence.py	2013-09-06 19:09:40.788826858 +0200
-@@ -14,7 +14,7 @@
- from scipy.stats.mstats import mquantiles
- 
- from ..utils.extmath import cartesian
--from ..externals.joblib import Parallel, delayed
-+from joblib import Parallel, delayed
- from ..externals import six
- from ..externals.six.moves import xrange
- from ..utils import array2d
-diff -ur scikit-learn-0.14.1/sklearn/externals/joblib/__init__.py scikit-learn-0.14.1.joblib/sklearn/externals/joblib/__init__.py
---- scikit-learn-0.14.1/sklearn/externals/joblib/__init__.py	2013-09-06 19:12:44.927337773 +0200
-+++ scikit-learn-0.14.1.joblib/sklearn/externals/joblib/__init__.py	2013-09-06 19:09:42.805843365 +0200
-@@ -61,7 +61,7 @@
-    computation to disk and rerun it only if necessary::
- 
-       >>> import numpy as np
--      >>> from sklearn.externals.joblib import Memory
-+      >>> from joblib import Memory
-       >>> mem = Memory(cachedir='/tmp/joblib')
-       >>> import numpy as np
-       >>> a = np.vander(np.arange(3)).astype(np.float)
-@@ -80,7 +80,7 @@
- 2) **Embarrassingly parallel helper:** to make is easy to write readable
-    parallel code and debug it quickly::
- 
--      >>> from sklearn.externals.joblib import Parallel, delayed
-+      >>> from joblib import Parallel, delayed
-       >>> from math import sqrt
-       >>> Parallel(n_jobs=1)(delayed(sqrt)(i**2) for i in range(10))
-       [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]
-diff -ur scikit-learn-0.14.1/sklearn/externals/joblib/parallel.py scikit-learn-0.14.1.joblib/sklearn/externals/joblib/parallel.py
---- scikit-learn-0.14.1/sklearn/externals/joblib/parallel.py	2013-09-06 19:12:44.928337782 +0200
-+++ scikit-learn-0.14.1.joblib/sklearn/externals/joblib/parallel.py	2013-09-06 19:09:42.824843520 +0200
-@@ -204,7 +204,7 @@
-         A simple example:
- 
-         >>> from math import sqrt
--        >>> from sklearn.externals.joblib import Parallel, delayed
-+        >>> from joblib import Parallel, delayed
-         >>> Parallel(n_jobs=1)(delayed(sqrt)(i**2) for i in range(10))
-         [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]
- 
-@@ -212,7 +212,7 @@
-         values:
- 
-         >>> from math import modf
--        >>> from sklearn.externals.joblib import Parallel, delayed
-+        >>> from joblib import Parallel, delayed
-         >>> r = Parallel(n_jobs=1)(delayed(modf)(i/2.) for i in range(10))
-         >>> res, i = zip(*r)
-         >>> res
-@@ -224,7 +224,7 @@
-         messages::
- 
-             >>> from time import sleep
--            >>> from sklearn.externals.joblib import Parallel, delayed
-+            >>> from joblib import Parallel, delayed
-             >>> r = Parallel(n_jobs=2, verbose=5)(delayed(sleep)(.1) for _ in range(10)) #doctest: +SKIP
-             [Parallel(n_jobs=2)]: Done   1 out of  10 | elapsed:    0.1s remaining:    0.9s
-             [Parallel(n_jobs=2)]: Done   3 out of  10 | elapsed:    0.2s remaining:    0.5s
-@@ -238,7 +238,7 @@
-         child process::
- 
-          >>> from heapq import nlargest
--         >>> from sklearn.externals.joblib import Parallel, delayed
-+         >>> from joblib import Parallel, delayed
-          >>> Parallel(n_jobs=2)(delayed(nlargest)(2, n) for n in (range(4), 'abcde', 3)) #doctest: +SKIP
-          #...
-          ---------------------------------------------------------------------------
-@@ -270,7 +270,7 @@
-         number of iterations cannot be reported in the progress messages::
- 
-          >>> from math import sqrt
--         >>> from sklearn.externals.joblib import Parallel, delayed
-+         >>> from joblib import Parallel, delayed
- 
-          >>> def producer():
-          ...     for i in range(6):
-diff -ur scikit-learn-0.14.1/sklearn/externals/setup.py scikit-learn-0.14.1.joblib/sklearn/externals/setup.py
---- scikit-learn-0.14.1/sklearn/externals/setup.py	2013-09-06 19:12:44.930337798 +0200
-+++ scikit-learn-0.14.1.joblib/sklearn/externals/setup.py	2013-09-06 19:12:23.764163896 +0200
-@@ -4,7 +4,5 @@
+diff -ur a/sklearn/externals/setup.py b/sklearn/externals/setup.py
+--- a/sklearn/externals/setup.py	2014-06-23 17:03:05.831777265 +0200
++++ b/sklearn/externals/setup.py	2014-06-23 17:03:59.904217048 +0200
+@@ -4,7 +4,8 @@
  def configuration(parent_package='', top_path=None):
      from numpy.distutils.misc_util import Configuration
      config = Configuration('externals', parent_package, top_path)
 -    config.add_subpackage('joblib')
 -    config.add_subpackage('joblib/test')
++    config.add_subpackage('bundled')
++    config.add_subpackage('bundled/joblib')
++    config.add_subpackage('bundled/joblib/test')
  
      return config
-diff -ur scikit-learn-0.14.1/sklearn/grid_search.py scikit-learn-0.14.1.joblib/sklearn/grid_search.py
---- scikit-learn-0.14.1/sklearn/grid_search.py	2013-09-06 19:12:44.886337436 +0200
-+++ scikit-learn-0.14.1.joblib/sklearn/grid_search.py	2013-09-06 19:09:41.714834436 +0200
-@@ -24,7 +24,7 @@
- from .base import BaseEstimator, is_classifier, clone
- from .base import MetaEstimatorMixin
- from .cross_validation import check_cv
--from .externals.joblib import Parallel, delayed, logger
-+from joblib import Parallel, delayed, logger
- from .externals import six
- from .utils import safe_mask, check_random_state
- from .utils.validation import _num_samples, check_arrays
-diff -ur scikit-learn-0.14.1/sklearn/linear_model/base.py scikit-learn-0.14.1.joblib/sklearn/linear_model/base.py
---- scikit-learn-0.14.1/sklearn/linear_model/base.py	2013-09-06 19:12:44.970338127 +0200
-+++ scikit-learn-0.14.1.joblib/sklearn/linear_model/base.py	2013-09-06 19:09:43.929852563 +0200
-@@ -21,7 +21,7 @@
- from scipy import sparse
- 
- from ..externals import six
--from ..externals.joblib import Parallel, delayed
-+from joblib import Parallel, delayed
- from ..base import BaseEstimator, ClassifierMixin, RegressorMixin
- from ..utils import as_float_array, atleast2d_or_csr, safe_asarray
- from ..utils.extmath import safe_sparse_dot
-diff -ur scikit-learn-0.14.1/sklearn/linear_model/coordinate_descent.py scikit-learn-0.14.1.joblib/sklearn/linear_model/coordinate_descent.py
---- scikit-learn-0.14.1/sklearn/linear_model/coordinate_descent.py	2013-09-06 19:12:44.962338061 +0200
-+++ scikit-learn-0.14.1.joblib/sklearn/linear_model/coordinate_descent.py	2013-09-06 19:09:43.786851393 +0200
-@@ -19,7 +19,7 @@
- from .base import center_data
- from ..utils import array2d, atleast2d_or_csc, deprecated
- from ..cross_validation import check_cv
--from ..externals.joblib import Parallel, delayed
-+from joblib import Parallel, delayed
- from ..externals import six
- from ..externals.six.moves import xrange
- from ..utils.extmath import safe_sparse_dot
-diff -ur scikit-learn-0.14.1/sklearn/linear_model/least_angle.py scikit-learn-0.14.1.joblib/sklearn/linear_model/least_angle.py
---- scikit-learn-0.14.1/sklearn/linear_model/least_angle.py	2013-09-06 19:12:44.967338102 +0200
-+++ scikit-learn-0.14.1.joblib/sklearn/linear_model/least_angle.py	2013-09-06 19:09:43.876852130 +0200
-@@ -22,7 +22,7 @@
- from ..base import RegressorMixin
- from ..utils import array2d, arrayfuncs, as_float_array
- from ..cross_validation import check_cv
--from ..externals.joblib import Parallel, delayed
-+from joblib import Parallel, delayed
- from ..externals.six.moves import xrange
- 
- 
-diff -ur scikit-learn-0.14.1/sklearn/linear_model/omp.py scikit-learn-0.14.1.joblib/sklearn/linear_model/omp.py
---- scikit-learn-0.14.1/sklearn/linear_model/omp.py	2013-09-06 19:12:44.969338119 +0200
-+++ scikit-learn-0.14.1.joblib/sklearn/linear_model/omp.py	2013-09-06 19:09:43.901852334 +0200
-@@ -15,7 +15,7 @@
- from ..base import RegressorMixin
- from ..utils import array2d, as_float_array
- from ..cross_validation import check_cv
--from ..externals.joblib import Parallel, delayed
-+from joblib import Parallel, delayed
- from ..utils.arrayfuncs import solve_triangular
- 
- premature = """ Orthogonal matching pursuit ended prematurely due to linear
-diff -ur scikit-learn-0.14.1/sklearn/linear_model/randomized_l1.py scikit-learn-0.14.1.joblib/sklearn/linear_model/randomized_l1.py
---- scikit-learn-0.14.1/sklearn/linear_model/randomized_l1.py	2013-09-06 19:12:44.963338069 +0200
-+++ scikit-learn-0.14.1.joblib/sklearn/linear_model/randomized_l1.py	2013-09-06 19:09:43.818851655 +0200
-@@ -17,7 +17,7 @@
- from .base import center_data
- from ..base import BaseEstimator, TransformerMixin
- from ..externals import six
--from ..externals.joblib import Memory, Parallel, delayed
-+from joblib import Memory, Parallel, delayed
- from ..utils import (as_float_array, check_random_state, safe_asarray,
-                      check_arrays, safe_mask)
- from .least_angle import lars_path, LassoLarsIC
-diff -ur scikit-learn-0.14.1/sklearn/linear_model/stochastic_gradient.py scikit-learn-0.14.1.joblib/sklearn/linear_model/stochastic_gradient.py
---- scikit-learn-0.14.1/sklearn/linear_model/stochastic_gradient.py	2013-09-06 19:12:44.974338160 +0200
-+++ scikit-learn-0.14.1.joblib/sklearn/linear_model/stochastic_gradient.py	2013-09-06 19:09:43.990853063 +0200
-@@ -10,7 +10,7 @@
- from abc import ABCMeta, abstractmethod
- import warnings
- 
--from ..externals.joblib import Parallel, delayed
-+from joblib import Parallel, delayed
- 
- from .base import LinearClassifierMixin, SparseCoefMixin
- from ..base import BaseEstimator, RegressorMixin
-diff -ur scikit-learn-0.14.1/sklearn/manifold/mds.py scikit-learn-0.14.1.joblib/sklearn/manifold/mds.py
---- scikit-learn-0.14.1/sklearn/manifold/mds.py	2013-09-06 19:12:44.987338267 +0200
-+++ scikit-learn-0.14.1.joblib/sklearn/manifold/mds.py	2013-09-06 19:09:44.293855542 +0200
-@@ -12,8 +12,8 @@
- from ..base import BaseEstimator
- from ..metrics import euclidean_distances
- from ..utils import check_random_state, check_arrays
--from ..externals.joblib import Parallel
--from ..externals.joblib import delayed
-+from joblib import Parallel
-+from joblib import delayed
- from ..isotonic import IsotonicRegression
- 
- 
-diff -ur scikit-learn-0.14.1/sklearn/metrics/pairwise.py scikit-learn-0.14.1.joblib/sklearn/metrics/pairwise.py
---- scikit-learn-0.14.1/sklearn/metrics/pairwise.py	2013-09-06 19:12:44.865337264 +0200
-+++ scikit-learn-0.14.1.joblib/sklearn/metrics/pairwise.py	2013-09-06 19:09:41.312831146 +0200
-@@ -45,9 +45,9 @@
- from ..utils import gen_even_slices
- from ..utils.extmath import safe_sparse_dot
- from ..preprocessing import normalize
--from ..externals.joblib import Parallel
--from ..externals.joblib import delayed
--from ..externals.joblib.parallel import cpu_count
-+from joblib import Parallel
-+from joblib import delayed
-+from joblib.parallel import cpu_count
- 
- from .pairwise_fast import _chi2_kernel_fast
- 
-diff -ur scikit-learn-0.14.1/sklearn/multiclass.py scikit-learn-0.14.1.joblib/sklearn/multiclass.py
---- scikit-learn-0.14.1/sklearn/multiclass.py	2013-09-06 19:12:44.911337642 +0200
-+++ scikit-learn-0.14.1.joblib/sklearn/multiclass.py	2013-09-06 19:09:42.310839314 +0200
-@@ -40,8 +40,8 @@
- from .preprocessing import LabelBinarizer
- from .metrics.pairwise import euclidean_distances
- from .utils import check_random_state
--from .externals.joblib import Parallel
--from .externals.joblib import delayed
-+from joblib import Parallel
-+from joblib import delayed
- 
- 
- def _fit_binary(estimator, X, y, classes=None):
-diff -ur scikit-learn-0.14.1/sklearn/pipeline.py scikit-learn-0.14.1.joblib/sklearn/pipeline.py
---- scikit-learn-0.14.1/sklearn/pipeline.py	2013-09-06 19:12:44.918337699 +0200
-+++ scikit-learn-0.14.1.joblib/sklearn/pipeline.py	2013-09-06 19:09:42.522841049 +0200
-@@ -12,7 +12,7 @@
- from scipy import sparse
- 
- from .base import BaseEstimator, TransformerMixin
--from .externals.joblib import Parallel, delayed
-+from joblib import Parallel, delayed
- from .externals import six
- from .utils import tosequence
- from .externals.six import iteritems
diff --git a/system-joblib.py b/system-joblib.py
new file mode 100644
index 0000000..4c2fe45
--- /dev/null
+++ b/system-joblib.py
@@ -0,0 +1,44 @@
+# Licensed under a 3-clause BSD style license - see README.rst
+"""
+Handle loading joblib package from system or from the bundled copy
+
+"""
+import sys
+
+_dest_root = 'sklearn.externals.joblib'
+# Trying to load alternate packages
+sys.modules[_dest_root] = None
+
+# We have removed everything we already imported
+# Importing again
+import sys 
+
+_system_package = False
+_dest_root = 'sklearn.externals.joblib'
+
+try:
+    import joblib
+    _system_package = True
+except ImportError:
+    _system_package = False
+
+if _system_package:
+    # Check version
+    from distutils.version import StrictVersion
+    _valid_version = False
+    if StrictVersion(joblib.__version__) >= StrictVersion('0.8.0'):
+        _valid_version = True
+
+    if _valid_version:
+        joblib.system_package = True
+        joblib.bundled_package = False
+        sys.modules[_dest_root] = joblib
+    else:
+        _system_package = False
+
+if not _system_package:
+    import sklearn.externals.bundled.joblib as joblib
+    joblib.system_package = False
+    joblib.bundled_package = True
+    sys.modules[_dest_root] = joblib
+
diff --git a/system-six.py b/system-six.py
new file mode 100644
index 0000000..3a39d22
--- /dev/null
+++ b/system-six.py
@@ -0,0 +1,55 @@
+# Licensed under a 3-clause BSD style license - see README.rst
+"""
+Handle loading six package from system or from the bundled copy
+
+"""
+import sys
+
+# Trying to load alternate six packages
+sys.modules['sklearn.externals.six'] = None
+
+# We have removed everything we already imported
+# Importing again
+
+import sys 
+
+def _load_six_moves(base, dest):
+    _cur_sys_modules = list(sys.modules.items())
+    for i,mod in _cur_sys_modules:
+        if i.startswith(base):
+            pre, full, trail = i.partition(base)
+            if not pre:
+                modname = dest + trail
+                sys.modules[modname] = mod
+
+_system_package = False
+
+_dest_moves = 'sklearn.externals.six.moves'
+_dest_root = 'sklearn.externals.six'
+
+try:
+    import six
+    _system_package = True
+except ImportError:
+    _system_package = False
+
+if _system_package:
+    # Check six version
+    _valid_version = True
+    if _valid_version:
+        # handle 'moves'
+        _base_moves = 'six.moves'
+        _load_six_moves(_base_moves, _dest_moves)
+        six.system_package = True
+        six.bundled_package = False
+        sys.modules[_dest_root] = six
+
+if not _system_package:
+    import astropy.extern.bundled.six as six
+    # handle 'moves'
+    _base_moves = 'sklearn.externals.six.bundled.six.moves'
+    _load_six_moves(_base_moves, _dest_moves)
+    six.system_package = False
+    six.bundled_package = True
+    sys.modules[_dest_root] = six
+
diff --git a/unbundle-six.sh b/unbundle-six.sh
index 75f4bd6..c6cd933 100644
--- a/unbundle-six.sh
+++ b/unbundle-six.sh
@@ -2,7 +2,7 @@
 
 # Changes all these six imports to imports of the system package
 
-cd scikit-learn-0.14.1.six
+cd scikit-learn-0.15.0b1.six
 
 for i in $(find -name "*.py"); do
  sed -i -e "s/from .externals import six/import six/" $i


More information about the scm-commits mailing list