diff --git a/sci-libs/scikits_learn/ChangeLog b/sci-libs/scikits_learn/ChangeLog new file mode 100644 index 0000000..14f04a6 --- /dev/null +++ b/sci-libs/scikits_learn/ChangeLog @@ -0,0 +1,8 @@ +*scikits_learn-0.22.1 (08 Apr 2020) + + 08 Apr 2020; + +files/scikits_learn-0.18.1-system-cblas.patch, + +files/scikits_learn-0.20.2-fix-cdfast.patch, +metadata.xml, + +scikits_learn-0.22.1.ebuild: + sci-libs/scikits_learn: non-broken version bump ahead of Gentoo Main + https://github.com/gentoo/gentoo/pull/15065#issuecomment-610712405 diff --git a/sci-libs/scikits_learn/Manifest b/sci-libs/scikits_learn/Manifest new file mode 100644 index 0000000..d6e3d6e --- /dev/null +++ b/sci-libs/scikits_learn/Manifest @@ -0,0 +1 @@ +DIST scikit-learn-0.22.1.tar.gz 6942980 SHA256 51ee25330fc244107588545c70e2f3570cfc4017cff09eed69d6e1d82a212b7d SHA512 14191baf3457a3d216d74be34497a3677dd91bb1d3916db6928a4fa1ce93a62c5c9c9879a99fe5317fe088b85b00556087748470a93d3b9d89dbac850a00bc26 WHIRLPOOL e3db86763f1990198137b9ae8035d907ac3d4477c732fd4447dabae084c0dc03a01f5b8b0fed2700dcfa6c0e6e151b9e2c6b7ea5c4a383d44675d082b59fc370 diff --git a/sci-libs/scikits_learn/files/scikits_learn-0.18.1-system-cblas.patch b/sci-libs/scikits_learn/files/scikits_learn-0.18.1-system-cblas.patch new file mode 100644 index 0000000..e60f649 --- /dev/null +++ b/sci-libs/scikits_learn/files/scikits_learn-0.18.1-system-cblas.patch @@ -0,0 +1,32 @@ +Index: scikit-learn-0.18.1/sklearn/_build_utils/__init__.py +=================================================================== +--- scikit-learn-0.18.1.orig/sklearn/_build_utils/__init__.py ++++ scikit-learn-0.18.1/sklearn/_build_utils/__init__.py +@@ -31,7 +31,7 @@ def get_blas_info(): + return False + + blas_info = get_info('blas_opt', 0) +- if (not blas_info) or atlas_not_found(blas_info): ++ if (not blas_info): + cblas_libs = ['cblas'] + blas_info.pop('libraries', None) + else: +Index: scikit-learn-0.18.1/sklearn/setup.py +=================================================================== +--- scikit-learn-0.18.1.orig/sklearn/setup.py ++++ scikit-learn-0.18.1/sklearn/setup.py +@@ -63,14 +63,6 @@ def configuration(parent_package='', top + libraries=libraries, + ) + +- # some libs needs cblas, fortran-compiled BLAS will not be sufficient +- blas_info = get_info('blas_opt', 0) +- if (not blas_info) or ( +- ('NO_ATLAS_INFO', 1) in blas_info.get('define_macros', [])): +- config.add_library('cblas', +- sources=[join('src', 'cblas', '*.c')]) +- warnings.warn(BlasNotFoundError.__doc__) +- + # the following packages depend on cblas, so they have to be build + # after the above. + config.add_subpackage('linear_model') diff --git a/sci-libs/scikits_learn/files/scikits_learn-0.20.2-fix-cdfast.patch b/sci-libs/scikits_learn/files/scikits_learn-0.20.2-fix-cdfast.patch new file mode 100644 index 0000000..1d1de4a --- /dev/null +++ b/sci-libs/scikits_learn/files/scikits_learn-0.20.2-fix-cdfast.patch @@ -0,0 +1,42 @@ +--- 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; diff --git a/sci-libs/scikits_learn/metadata.xml b/sci-libs/scikits_learn/metadata.xml new file mode 100644 index 0000000..0f62a4a --- /dev/null +++ b/sci-libs/scikits_learn/metadata.xml @@ -0,0 +1,17 @@ + + + + + sci@gentoo.org + Gentoo Science Project + + + scikits.learn is a python library for machine learning. It aims to + implement classic machine learning algorithms while remaining simple + and efficient. + + + scikit-learn + scikit-learn + + diff --git a/sci-libs/scikits_learn/scikits_learn-0.22.1.ebuild b/sci-libs/scikits_learn/scikits_learn-0.22.1.ebuild new file mode 100644 index 0000000..64d4886 --- /dev/null +++ b/sci-libs/scikits_learn/scikits_learn-0.22.1.ebuild @@ -0,0 +1,83 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{6,7} ) + +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="doc examples test" +RESTRICT="!test? ( test )" + +RDEPEND=" + dev-python/joblib[${PYTHON_USEDEP}] + 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:= +" + +BDEPEND=" + dev-python/cython[${PYTHON_USEDEP}] + dev-python/numpy[lapack,${PYTHON_USEDEP}] + sci-libs/scipy[${PYTHON_USEDEP}] + test? ( dev-python/pytest[${PYTHON_USEDEP}] ) + virtual/blas:= + virtual/cblas:= +" + +S="${WORKDIR}/${MYP}" + +python_prepare_all() { + # bug #397605 + [[ ${CHOST} == *-darwin* ]] && + append-ldflags -bundle "-undefined dynamic_lookup" || + append-ldflags -shared + + # remove bundled cblas + rm -rf sklearn/src || die "failed to remove bundled cblas" + + distutils-r1_python_prepare_all +} + +python_compile() { + distutils-r1_python_compile +} + +python_test() { + esetup.py install \ + --root="${T}/test-${EPYTHON}" + pushd "${T}/test-${EPYTHON}/$(python_get_sitedir)" || die > /dev/null + pytest -m "not network" -vv || die + popd > /dev/null + #distutils_install_for_testing + #${EPYTHON} -m pytest -v "${BUILD_DIR}/test/lib/sklearn" || die +} + +python_install() { + distutils-r1_python_install +} + +python_install_all() { + find "${S}" -name \*LICENSE.txt -delete || die + distutils-r1_python_install_all + if use examples; then + dodoc -r examples + docompress -x /usr/share/doc/${PF}/examples + fi + +}