commit:     06643082d2a5a797a31b3013207791b38a14b9c0
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 13 06:56:11 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jun 13 11:14:03 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=06643082

dev-python/pandas: Port to py3.8

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 dev-python/pandas/pandas-1.0.4.ebuild | 37 +++++++++++++------
 dev-python/pandas/pandas-9999.ebuild  | 68 +++++++++++++++++++----------------
 2 files changed, 64 insertions(+), 41 deletions(-)

diff --git a/dev-python/pandas/pandas-1.0.4.ebuild 
b/dev-python/pandas/pandas-1.0.4.ebuild
index c2bd75a1183..32373ba115a 100644
--- a/dev-python/pandas/pandas-1.0.4.ebuild
+++ b/dev-python/pandas/pandas-1.0.4.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=7
 
-PYTHON_COMPAT=( python3_{6,7} )
+PYTHON_COMPAT=( python3_{6..8} )
 PYTHON_REQ_USE="threads(+)"
 
 VIRTUALX_REQUIRED="manual"
@@ -14,6 +14,7 @@ inherit distutils-r1 eutils flag-o-matic virtualx
 DESCRIPTION="Powerful data structures for data analysis and statistics"
 HOMEPAGE="https://pandas.pydata.org/";
 SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P/_/}.tar.gz"
+S="${WORKDIR}/${P/_/}"
 
 SLOT="0"
 LICENSE="BSD"
@@ -41,10 +42,12 @@ OPTIONAL_DEPEND="
                dev-python/xlsxwriter[${PYTHON_USEDEP}]
        )
        >=dev-python/pytables-3.2.1[${PYTHON_USEDEP}]
-       dev-python/s3fs[${PYTHON_USEDEP}]
-       dev-python/statsmodels[${PYTHON_USEDEP}]
+       $(python_gen_cond_dep '
+               dev-python/s3fs[${PYTHON_USEDEP}]
+               dev-python/statsmodels[${PYTHON_USEDEP}]
+               >=dev-python/xarray-0.10.8[${PYTHON_USEDEP}]
+       ' python3_{6,7})
        >=dev-python/sqlalchemy-0.8.1[${PYTHON_USEDEP}]
-       >=dev-python/xarray-0.10.8[${PYTHON_USEDEP}]
        >=dev-python/xlrd-1.0.0[${PYTHON_USEDEP}]
        dev-python/xlwt[${PYTHON_USEDEP}]
        >=sci-libs/scipy-1.1[${PYTHON_USEDEP}]
@@ -106,13 +109,19 @@ RDEPEND="${COMMON_DEPEND}
        full-support? ( ${OPTIONAL_DEPEND} )
 "
 
-S="${WORKDIR}/${P/_/}"
-
 python_prepare_all() {
        # Prevent un-needed download during build
        sed -e "/^              'sphinx.ext.intersphinx',/d" \
                -i doc/source/conf.py || die
 
+       # requires package installed
+       sed -e 's:test_register_entrypoint:_&:' \
+               -i pandas/tests/plotting/test_backend.py || die
+
+       # temporary mask to remove cycle on s3fs
+       sed -e 's:test_pickle_s3url_roundtrip:_&:' \
+               -i pandas/tests/io/test_pickle.py || die
+
        distutils-r1_python_prepare_all
 }
 
@@ -126,13 +135,19 @@ python_compile_all() {
        fi
 }
 
+src_test() {
+       virtx distutils-r1_src_test
+}
+
 python_test() {
-       pushd  "${BUILD_DIR}"/lib > /dev/null
+       local -x LC_ALL=C.UTF-8
+       pushd  "${BUILD_DIR}"/lib > /dev/null || die
        "${EPYTHON}" -c "import pandas; pandas.show_versions()" || die
-       PYTHONPATH=. virtx pytest pandas -v --skip-slow --skip-network \
-               -m "not single"
-       find . -name .pytest_cache -exec rm -r {} + || die
-       popd > /dev/null
+       PYTHONPATH=. pytest pandas -v --skip-slow --skip-network \
+               -m "not single" || die "Tests failed with ${EPYTHON}"
+       find . '(' -name .pytest_cache -o -name .hypothesis ')' \
+               -exec rm -r {} + || die
+       popd > /dev/null || die
 }
 
 python_install_all() {

diff --git a/dev-python/pandas/pandas-9999.ebuild 
b/dev-python/pandas/pandas-9999.ebuild
index e597cacdc2c..40d0c8aa908 100644
--- a/dev-python/pandas/pandas-9999.ebuild
+++ b/dev-python/pandas/pandas-9999.ebuild
@@ -1,12 +1,13 @@
 # Copyright 1999-2020 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=6
+EAPI=7
 
-PYTHON_COMPAT=( python3_{6,7} )
+PYTHON_COMPAT=( python3_{6..8} )
 PYTHON_REQ_USE="threads(+)"
 
 VIRTUALX_REQUIRED="manual"
+DISTUTILS_USE_SETUPTOOLS=rdepend
 
 inherit distutils-r1 eutils flag-o-matic git-r3 virtualx
 
@@ -22,49 +23,50 @@ IUSE="doc full-support minimal test X"
 RESTRICT="!test? ( test )"
 
 RECOMMENDED_DEPEND="
-       dev-python/bottleneck[${PYTHON_USEDEP}]
+       >=dev-python/bottleneck-1.2.1[${PYTHON_USEDEP}]
        >=dev-python/numexpr-2.1[${PYTHON_USEDEP}]
 "
+
+# TODO: add pandas-gbq to the tree
 OPTIONAL_DEPEND="
        dev-python/beautifulsoup:4[${PYTHON_USEDEP}]
        dev-python/blosc[${PYTHON_USEDEP}]
-       dev-python/boto[${PYTHON_USEDEP}]
        || (
                dev-python/html5lib[${PYTHON_USEDEP}]
                dev-python/lxml[${PYTHON_USEDEP}]
        )
-       dev-python/httplib2[${PYTHON_USEDEP}]
        dev-python/jinja[${PYTHON_USEDEP}]
        dev-python/matplotlib[${PYTHON_USEDEP}]
        || (
-               >=dev-python/openpyxl-1.6.1[${PYTHON_USEDEP}]
+               dev-python/openpyxl[${PYTHON_USEDEP}]
                dev-python/xlsxwriter[${PYTHON_USEDEP}]
        )
        >=dev-python/pytables-3.2.1[${PYTHON_USEDEP}]
-       dev-python/rpy[${PYTHON_USEDEP}]
-       dev-python/setuptools[${PYTHON_USEDEP}]
-       dev-python/statsmodels[${PYTHON_USEDEP}]
+       $(python_gen_cond_dep '
+               dev-python/s3fs[${PYTHON_USEDEP}]
+               dev-python/statsmodels[${PYTHON_USEDEP}]
+               >=dev-python/xarray-0.10.8[${PYTHON_USEDEP}]
+       ' python3_{6,7})
        >=dev-python/sqlalchemy-0.8.1[${PYTHON_USEDEP}]
-       dev-python/xarray[${PYTHON_USEDEP}]
-       dev-python/xlrd[${PYTHON_USEDEP}]
+       >=dev-python/xlrd-1.0.0[${PYTHON_USEDEP}]
        dev-python/xlwt[${PYTHON_USEDEP}]
-       sci-libs/scipy[${PYTHON_USEDEP}]
+       >=sci-libs/scipy-1.1[${PYTHON_USEDEP}]
        X? (
-               dev-python/PyQt5[${PYTHON_USEDEP}]
                || (
+                       dev-python/PyQt5[${PYTHON_USEDEP}]
                        x11-misc/xclip
                        x11-misc/xsel
                )
        )
 "
 COMMON_DEPEND="
-       >dev-python/numpy-1.7[${PYTHON_USEDEP}]
-       >=dev-python/python-dateutil-2.0[${PYTHON_USEDEP}]
+       >dev-python/numpy-1.13.1[${PYTHON_USEDEP}]
+       dev-python/python-dateutil[${PYTHON_USEDEP}]
        dev-python/pytz[${PYTHON_USEDEP}]
 "
 DEPEND="${COMMON_DEPEND}
        dev-python/setuptools[${PYTHON_USEDEP}]
-       >=dev-python/cython-0.23[${PYTHON_USEDEP}]
+       dev-python/cython[${PYTHON_USEDEP}]
        doc? (
                ${VIRTUALX_DEPEND}
                app-text/pandoc
@@ -74,11 +76,12 @@ DEPEND="${COMMON_DEPEND}
                dev-python/lxml[${PYTHON_USEDEP}]
                dev-python/matplotlib[${PYTHON_USEDEP}]
                dev-python/nbsphinx[${PYTHON_USEDEP}]
+               >=dev-python/numpydoc-0.9.1[${PYTHON_USEDEP}]
                >=dev-python/openpyxl-1.6.1[${PYTHON_USEDEP}]
                >=dev-python/pytables-3.0.0[${PYTHON_USEDEP}]
                dev-python/pytz[${PYTHON_USEDEP}]
                dev-python/rpy[${PYTHON_USEDEP}]
-               >=dev-python/sphinx-1.2.1[${PYTHON_USEDEP}]
+               dev-python/sphinx[${PYTHON_USEDEP}]
                dev-python/xlrd[${PYTHON_USEDEP}]
                dev-python/xlwt[${PYTHON_USEDEP}]
                sci-libs/scipy[${PYTHON_USEDEP}]
@@ -89,8 +92,11 @@ DEPEND="${COMMON_DEPEND}
                ${RECOMMENDED_DEPEND}
                ${OPTIONAL_DEPEND}
                dev-python/beautifulsoup:4[${PYTHON_USEDEP}]
+               dev-python/hypothesis[${PYTHON_USEDEP}]
                dev-python/nose[${PYTHON_USEDEP}]
                dev-python/pymysql[${PYTHON_USEDEP}]
+               dev-python/pytest[${PYTHON_USEDEP}]
+               dev-python/pytest-mock[${PYTHON_USEDEP}]
                dev-python/psycopg:2[${PYTHON_USEDEP}]
                x11-misc/xclip
                x11-misc/xsel
@@ -99,8 +105,6 @@ DEPEND="${COMMON_DEPEND}
 # dev-python/statsmodels invokes a circular dep
 #  hence rm from doc? ( ), again
 RDEPEND="${COMMON_DEPEND}
-       !<dev-python/numexpr-2.1[${PYTHON_USEDEP}]
-       !~dev-python/openpyxl-1.9.0[${PYTHON_USEDEP}]
        !minimal? ( ${RECOMMENDED_DEPEND} )
        full-support? ( ${OPTIONAL_DEPEND} )
 "
@@ -110,9 +114,9 @@ python_prepare_all() {
        sed -e "/^              'sphinx.ext.intersphinx',/d" \
                -i doc/source/conf.py || die
 
-       # https://github.com/pydata/pandas/issues/11299
-       sed -e 's:testOdArray:disable:g' \
-               -i pandas/tests/io/json/test_ujson.py || die
+       # requires package installed
+       sed -e 's:test_register_entrypoint:_&:' \
+               -i pandas/tests/plotting/test_backend.py || die
 
        distutils-r1_python_prepare_all
 }
@@ -127,14 +131,19 @@ python_compile_all() {
        fi
 }
 
+src_test() {
+       virtx distutils-r1_src_test
+}
+
 python_test() {
-       local test_pandas='not network and not disabled'
-       [[ -n "${FAST_PANDAS}" ]] && test_pandas+=' and not slow'
-       pushd  "${BUILD_DIR}"/lib > /dev/null
+       local -x LC_ALL=C.UTF-8
+       pushd  "${BUILD_DIR}"/lib > /dev/null || die
        "${EPYTHON}" -c "import pandas; pandas.show_versions()" || die
-       PYTHONPATH=. MPLCONFIGDIR=. \
-               virtx nosetests --verbosity=3 -A "${test_pandas}" pandas
-       popd > /dev/null
+       PYTHONPATH=. pytest pandas -v --skip-slow --skip-network \
+               -m "not single" || die "Tests failed with ${EPYTHON}"
+       find . '(' -name .pytest_cache -o -name .hypothesis ')' \
+               -exec rm -r {} + || die
+       popd > /dev/null || die
 }
 
 python_install_all() {
@@ -153,8 +162,7 @@ pkg_postinst() {
        optfeature "accelerating certain numerical operations, using multiple 
cores as well as smart chunking and caching to achieve large speedups" 
">=dev-python/numexpr-2.1"
        optfeature "needed for pandas.io.html.read_html" 
dev-python/beautifulsoup:4 dev-python/html5lib dev-python/lxml
        optfeature "for msgpack compression using blosc" dev-python/blosc
-       optfeature "necessary for Amazon S3 access" dev-python/boto
-       optfeature "needed for pandas.io.gbq" dev-python/httplib2 
dev-python/setuptools dev-python/python-gflags 
">=dev-python/google-api-python-client-1.2.0"
+       optfeature "necessary for Amazon S3 access" dev-python/s3fs
        optfeature "Template engine for conditional HTML formatting" 
dev-python/jinja
        optfeature "Plotting support" dev-python/matplotlib
        optfeature "Needed for Excel I/O" ">=dev-python/openpyxl-1.6.1" 
dev-python/xlsxwriter dev-python/xlrd dev-python/xlwt

Reply via email to