--- /dev/null
+--- scikit-learn-0.20.3.orig/sklearn/linear_model/cd_fast.c 2019-08-09 03:05:05.351926119 +0500
++++ scikit-learn-0.20.3/sklearn/linear_model/cd_fast.c 2019-08-09 03:05:35.022926006 +0500
+@@ -4889,7 +4889,7 @@
+
+ static PyObject *__pyx_pf_7sklearn_12linear_model_7cd_fast_8enet_coordinate_descent(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_w, float __pyx_v_alpha, float __pyx_v_beta, __Pyx_memviewslice __pyx_v_X, __Pyx_memviewslice __pyx_v_y, int __pyx_v_max_iter, float __pyx_v_tol, PyObject *__pyx_v_rng, int __pyx_v_random, int __pyx_v_positive) {
+ PyObject *__pyx_v_dtype = NULL;
+- void (*__pyx_v_gemv)(enum CBLAS_ORDER, enum CBLAS_TRANSPOSE, int, int, float, float *, int, float *, int, float, float *, int);
++ void (*__pyx_v_gemv)(CBLAS_ORDER, CBLAS_TRANSPOSE, int, int, float, float *, int, float *, int, float, float *, int);
+ float (*__pyx_v_dot)(int, float *, int, float *, int);
+ void (*__pyx_v_axpy)(int, float, float *, int, float *, int);
+ float (*__pyx_v_asum)(int, float *, int);
+@@ -6279,7 +6279,7 @@
+
+ static PyObject *__pyx_pf_7sklearn_12linear_model_7cd_fast_10enet_coordinate_descent(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_w, double __pyx_v_alpha, double __pyx_v_beta, __Pyx_memviewslice __pyx_v_X, __Pyx_memviewslice __pyx_v_y, int __pyx_v_max_iter, double __pyx_v_tol, PyObject *__pyx_v_rng, int __pyx_v_random, int __pyx_v_positive) {
+ PyObject *__pyx_v_dtype = NULL;
+- void (*__pyx_v_gemv)(enum CBLAS_ORDER, enum CBLAS_TRANSPOSE, int, int, double, double *, int, double *, int, double, double *, int);
++ void (*__pyx_v_gemv)(CBLAS_ORDER, CBLAS_TRANSPOSE, int, int, double, double *, int, double *, int, double, double *, int);
+ double (*__pyx_v_dot)(int, double *, int, double *, int);
+ void (*__pyx_v_axpy)(int, double, double *, int, double *, int);
+ double (*__pyx_v_asum)(int, double *, int);
+@@ -16246,8 +16246,8 @@
+ CYTHON_UNUSED float (*__pyx_v_asum)(int, float *, int);
+ void (*__pyx_v_copy)(int, float *, int, float *, int);
+ void (*__pyx_v_scal)(int, float, float *, int);
+- void (*__pyx_v_ger)(enum CBLAS_ORDER, int, int, float, float *, int, float *, int, float *, int);
+- void (*__pyx_v_gemv)(enum CBLAS_ORDER, enum CBLAS_TRANSPOSE, int, int, float, float *, int, float *, int, float, float *, int);
++ void (*__pyx_v_ger)(CBLAS_ORDER, int, int, float, float *, int, float *, int, float *, int);
++ void (*__pyx_v_gemv)(CBLAS_ORDER, CBLAS_TRANSPOSE, int, int, float, float *, int, float *, int, float, float *, int);
+ unsigned int __pyx_v_n_samples;
+ unsigned int __pyx_v_n_features;
+ unsigned int __pyx_v_n_tasks;
+@@ -17965,8 +17965,8 @@
+ CYTHON_UNUSED double (*__pyx_v_asum)(int, double *, int);
+ void (*__pyx_v_copy)(int, double *, int, double *, int);
+ void (*__pyx_v_scal)(int, double, double *, int);
+- void (*__pyx_v_ger)(enum CBLAS_ORDER, int, int, double, double *, int, double *, int, double *, int);
+- void (*__pyx_v_gemv)(enum CBLAS_ORDER, enum CBLAS_TRANSPOSE, int, int, double, double *, int, double *, int, double, double *, int);
++ void (*__pyx_v_ger)(CBLAS_ORDER, int, int, double, double *, int, double *, int, double *, int);
++ void (*__pyx_v_gemv)(CBLAS_ORDER, CBLAS_TRANSPOSE, int, int, double, double *, int, double *, int, double, double *, int);
+ unsigned int __pyx_v_n_samples;
+ unsigned int __pyx_v_n_features;
+ unsigned int __pyx_v_n_tasks;
--- /dev/null
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 python3_{4,5,6} )
+
+inherit distutils-r1 flag-o-matic
+
+MYPN="${PN/scikits_/scikit-}"
+MYP="${MYPN}-${PV}"
+
+DESCRIPTION="Python modules for machine learning and data mining"
+HOMEPAGE="http://scikit-learn.org"
+SRC_URI="mirror://pypi/${MYPN:0:1}/${MYPN}/${MYP}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="examples test"
+
+# tried to unbundle virtual/python-funcsigs, funcsigs, odict
+# but it is a large mess to maintain
+
+RDEPEND="
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/numpy[lapack,${PYTHON_USEDEP}]
+ sci-libs/scikits[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+ virtual/blas:=
+ virtual/cblas:=
+"
+
+DEPEND="
+ dev-python/cython[${PYTHON_USEDEP}]
+ dev-python/numpy[lapack,${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+ virtual/blas:=
+ virtual/cblas:=
+"
+
+S="${WORKDIR}/${MYP}"
+
+PATCHES=( "${FILESDIR}"/${PN}-0.18.1-system-cblas.patch
+ "${FILESDIR}"/${PN}-0.20.2-fix-cdfast.patch )
+
+python_prepare_all() {
+ # bug #397605
+ [[ ${CHOST} == *-darwin* ]] \
+ && append-ldflags -bundle "-undefined dynamic_lookup" \
+ || append-ldflags -shared
+
+ # scikits-learn now uses the horrible numpy.distutils automagic
+ export SCIPY_FCONFIG="config_fc --noopt --noarch"
+
+ # remove bundled cblas
+ rm -rf sklearn/src || die "failed to remove bundled cblas"
+
+ # commented out, since it is a mess to maintain
+ # use system joblib
+ #rm -r sklearn/externals/joblib || die
+ #sed -i -e '/joblib/d' sklearn/externals/setup.py || die
+ #for f in sklearn/{*/,}*.py; do
+ # sed -r -e '/^from/s/(sklearn|\.|)\.externals\.joblib/joblib/' \
+ # -e 's/from (sklearn|\.|)\.externals import/import/' -i $f || die
+ #done
+
+ # use system funcsigs and odict
+ #rm sklearn/externals/funcsigs.py || die
+ #rm sklearn/externals/odict.py || die
+ #for f in sklearn/{utils/fixes.py,gaussian_process/{tests/test_,}kernels.py}; do
+ # sed -r -e 's/from (sklearn|\.|)\.externals\.funcsigs/from funcsigs/' -i $f || die
+ #done
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ distutils-r1_python_compile ${SCIPY_FCONFIG}
+}
+
+python_test() {
+ # doc builds and runs tests
+ use doc && return
+ distutils_install_for_testing ${SCIPY_FCONFIG}
+ esetup.py install \
+ --root="${T}/test-${EPYTHON}" \
+ --no-compile ${SCIPY_FCONFIG}
+ pushd "${T}/test-${EPYTHON}/$(python_get_sitedir)" || die > /dev/null
+ JOBLIB_MULTIPROCESSING=2 SKLEARN_SKIP_NETWORK_TESTS=1 nosetests -v sklearn --exe || die
+ popd > /dev/null
+}
+
+python_install() {
+ distutils-r1_python_install ${SCIPY_FCONFIG}
+}
+
+python_install_all() {
+ find "${S}" -name \*LICENSE.txt -delete
+ distutils-r1_python_install_all
+ if use examples; then
+ dodoc -r examples
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+
+}
--- /dev/null
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 python3_{4,5,6} )
+
+inherit distutils-r1 flag-o-matic
+
+MYPN="${PN/scikits_/scikit-}"
+MYP="${MYPN}-${PV}"
+
+DESCRIPTION="Python modules for machine learning and data mining"
+HOMEPAGE="http://scikit-learn.org"
+SRC_URI="mirror://pypi/${MYPN:0:1}/${MYPN}/${MYP}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="examples test"
+
+# tried to unbundle virtual/python-funcsigs, funcsigs, odict
+# but it is a large mess to maintain
+
+RDEPEND="
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/numpy[lapack,${PYTHON_USEDEP}]
+ sci-libs/scikits[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+ virtual/blas:=
+ virtual/cblas:=
+"
+
+DEPEND="
+ dev-python/cython[${PYTHON_USEDEP}]
+ dev-python/numpy[lapack,${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+ virtual/blas:=
+ virtual/cblas:=
+"
+
+S="${WORKDIR}/${MYP}"
+
+PATCHES=( "${FILESDIR}"/${PN}-0.18.1-system-cblas.patch
+ "${FILESDIR}"/${PN}-0.20.2-fix-cdfast.patch )
+
+python_prepare_all() {
+ # bug #397605
+ [[ ${CHOST} == *-darwin* ]] \
+ && append-ldflags -bundle "-undefined dynamic_lookup" \
+ || append-ldflags -shared
+
+ # scikits-learn now uses the horrible numpy.distutils automagic
+ export SCIPY_FCONFIG="config_fc --noopt --noarch"
+
+ # remove bundled cblas
+ rm -rf sklearn/src || die "failed to remove bundled cblas"
+
+ # commented out, since it is a mess to maintain
+ # use system joblib
+ #rm -r sklearn/externals/joblib || die
+ #sed -i -e '/joblib/d' sklearn/externals/setup.py || die
+ #for f in sklearn/{*/,}*.py; do
+ # sed -r -e '/^from/s/(sklearn|\.|)\.externals\.joblib/joblib/' \
+ # -e 's/from (sklearn|\.|)\.externals import/import/' -i $f || die
+ #done
+
+ # use system funcsigs and odict
+ #rm sklearn/externals/funcsigs.py || die
+ #rm sklearn/externals/odict.py || die
+ #for f in sklearn/{utils/fixes.py,gaussian_process/{tests/test_,}kernels.py}; do
+ # sed -r -e 's/from (sklearn|\.|)\.externals\.funcsigs/from funcsigs/' -i $f || die
+ #done
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ distutils-r1_python_compile ${SCIPY_FCONFIG}
+}
+
+python_test() {
+ # doc builds and runs tests
+ use doc && return
+ distutils_install_for_testing ${SCIPY_FCONFIG}
+ esetup.py install \
+ --root="${T}/test-${EPYTHON}" \
+ --no-compile ${SCIPY_FCONFIG}
+ pushd "${T}/test-${EPYTHON}/$(python_get_sitedir)" || die > /dev/null
+ JOBLIB_MULTIPROCESSING=2 SKLEARN_SKIP_NETWORK_TESTS=1 nosetests -v sklearn --exe || die
+ popd > /dev/null
+}
+
+python_install() {
+ distutils-r1_python_install ${SCIPY_FCONFIG}
+}
+
+python_install_all() {
+ find "${S}" -name \*LICENSE.txt -delete
+ distutils-r1_python_install_all
+ if use examples; then
+ dodoc -r examples
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+
+}