(cat_pn): Drop old

Package-Manager: Portage-2.3.84, Repoman-2.3.20
Signed-off-by: Pacho Ramos <pacho@gentoo.org>
This commit is contained in:
Pacho Ramos
2020-01-19 20:48:27 +01:00
parent 7870cb9ad3
commit b4aec8ba0d
6 changed files with 0 additions and 738 deletions

View File

@@ -1,3 +1 @@
DIST pandas-0.19.1.tar.gz 8360233 BLAKE2B 82611ca1a3e3169ac2d084f4dcd9c4d4d74e9e9c9913a41acad48ae68a208a884dfd877445a7d658a7ff098ef383cedae7e79a4900baa8d56c032ce9aaad96eb SHA512 6451990a7fae8c6db8ab0b014a13b4f1828754d3998f13c17b111f891fb9fd23f8e09b907623096dfa55668c42298eee1373210a9fddb95f56dd7d552b964e6f
DIST pandas-0.23.4.tar.gz 10490077 BLAKE2B 28a78860e0aa5de8def7bb529fc98b9121a516b7fd7620e31e000ae14217165e6677ce26b56da0b9c603930ab1304725c644426a135d8f9b2a84921b88f3d23d SHA512 0c89db820a49e0cfb9764e64589ff9af819f9a53c01bd0254cd1b6dbd1e9fd452b2ff7c7330ede7623c7576589113e831a19a57c735562b55f90506df15805b9
DIST pandas-0.24.2.tar.gz 11837693 BLAKE2B 3762e94554a3ae3c803c9a412c5c551c15a9fbf15cb05633f7d1b0ccbfddc646f68f0306666e688a83a4495b0537cea2fec671157f5a63aaa5f9cad6b791261e SHA512 0795c6bb8a47a511853558ea59d371b4540ec175f213cfba4ad2361d6481fea5d3f7074bb4961c32f2f0080a72d7436a9b3706f5cc692074f98d83bfc587fd15

View File

@@ -1,27 +0,0 @@
From 1d6dbb41b26a39121ec8c4f19f5da78bb0ab4af7 Mon Sep 17 00:00:00 2001
From: Jeff Reback <jeff@reback.net>
Date: Sat, 12 Nov 2016 12:44:06 -0500
Subject: [PATCH] TST: skip test_gbq.test_upload_data_if_table_exists_replace
for now
---
pandas/io/tests/test_gbq.py | 3 +++
1 file changed, 3 insertions(+)
diff --git a/pandas/io/tests/test_gbq.py b/pandas/io/tests/test_gbq.py
index cca1580b8..f6ff35a6d 100644
--- a/pandas/io/tests/test_gbq.py
+++ b/pandas/io/tests/test_gbq.py
@@ -824,6 +824,9 @@ class TestToGBQIntegration(tm.TestCase):
private_key=_get_private_key_path())
def test_upload_data_if_table_exists_replace(self):
+
+ raise nose.SkipTest("buggy test")
+
destination_table = DESTINATION_TABLE + "4"
test_size = 10
--
2.11.0

View File

@@ -1,357 +0,0 @@
From f8bd08e9c2fc6365980f41b846bbae4b40f08b83 Mon Sep 17 00:00:00 2001
From: Jeff Reback <jeff@reback.net>
Date: Sat, 12 Nov 2016 10:58:54 -0500
Subject: [PATCH] BUG: segfault manifesting with dateutil=2.6 w.r.t. replace
when timezones are present
closes #14621
Author: Jeff Reback <jeff@reback.net>
Closes #14631 from jreback/replace and squashes the following commits:
3f95042 [Jeff Reback] BUG: segfault manifesting with dateutil=2.6 w.r.t. replace when timezones are present
---
ci/requirements-3.5_OSX.pip | 2 +-
doc/source/whatsnew/v0.19.2.txt | 3 ++
pandas/tseries/offsets.py | 1 +
pandas/tseries/tests/test_offsets.py | 20 ++++---
pandas/tseries/tests/test_timezones.py | 89 +++++++++++++++++++++++++++++--
pandas/tseries/tests/test_tslib.py | 5 +-
pandas/tslib.pyx | 95 ++++++++++++++++++++++++++++------
7 files changed, 188 insertions(+), 27 deletions(-)
diff --git a/pandas/tseries/offsets.py b/pandas/tseries/offsets.py
index 051cc8aa4..2e3852a7e 100644
--- a/pandas/tseries/offsets.py
+++ b/pandas/tseries/offsets.py
@@ -68,6 +68,7 @@ def apply_wraps(func):
other = other.tz_localize(None)
result = func(self, other)
+
if self._adjust_dst:
result = tslib._localize_pydatetime(result, tz)
diff --git a/pandas/tseries/tests/test_offsets.py b/pandas/tseries/tests/test_offsets.py
index 1735ac4e2..768e9212e 100644
--- a/pandas/tseries/tests/test_offsets.py
+++ b/pandas/tseries/tests/test_offsets.py
@@ -1,4 +1,5 @@
import os
+from distutils.version import LooseVersion
from datetime import date, datetime, timedelta
from dateutil.relativedelta import relativedelta
from pandas.compat import range, iteritems
@@ -4851,6 +4852,7 @@ class TestDST(tm.TestCase):
def _test_offset(self, offset_name, offset_n, tstart, expected_utc_offset):
offset = DateOffset(**{offset_name: offset_n})
+
t = tstart + offset
if expected_utc_offset is not None:
self.assertTrue(get_utc_offset_hours(t) == expected_utc_offset)
@@ -4890,17 +4892,23 @@ class TestDST(tm.TestCase):
return Timestamp(string + offset_string).tz_convert(tz)
def test_fallback_plural(self):
- """test moving from daylight savings to standard time"""
+ # test moving from daylight savings to standard time
+ import dateutil
for tz, utc_offsets in self.timezone_utc_offsets.items():
hrs_pre = utc_offsets['utc_offset_daylight']
hrs_post = utc_offsets['utc_offset_standard']
- self._test_all_offsets(
- n=3, tstart=self._make_timestamp(self.ts_pre_fallback,
- hrs_pre, tz),
- expected_utc_offset=hrs_post)
+
+ if dateutil.__version__ != LooseVersion('2.6.0'):
+ # buggy ambiguous behavior in 2.6.0
+ # GH 14621
+ # https://github.com/dateutil/dateutil/issues/321
+ self._test_all_offsets(
+ n=3, tstart=self._make_timestamp(self.ts_pre_fallback,
+ hrs_pre, tz),
+ expected_utc_offset=hrs_post)
def test_springforward_plural(self):
- """test moving from standard to daylight savings"""
+ # test moving from standard to daylight savings
for tz, utc_offsets in self.timezone_utc_offsets.items():
hrs_pre = utc_offsets['utc_offset_standard']
hrs_post = utc_offsets['utc_offset_daylight']
diff --git a/pandas/tseries/tests/test_timezones.py b/pandas/tseries/tests/test_timezones.py
index 00e8ee631..db8cda5c7 100644
--- a/pandas/tseries/tests/test_timezones.py
+++ b/pandas/tseries/tests/test_timezones.py
@@ -4,7 +4,7 @@ import nose
import numpy as np
import pytz
-
+from distutils.version import LooseVersion
from pandas.types.dtypes import DatetimeTZDtype
from pandas import (Index, Series, DataFrame, isnull, Timestamp)
@@ -518,8 +518,12 @@ class TestTimeZoneSupportPytz(tm.TestCase):
times = date_range("2013-10-26 23:00", "2013-10-27 01:00", freq="H",
tz=tz, ambiguous='infer')
- self.assertEqual(times[0], Timestamp('2013-10-26 23:00', tz=tz))
- self.assertEqual(times[-1], Timestamp('2013-10-27 01:00', tz=tz))
+ self.assertEqual(times[0], Timestamp('2013-10-26 23:00', tz=tz,
+ freq="H"))
+ if dateutil.__version__ != LooseVersion('2.6.0'):
+ # GH 14621
+ self.assertEqual(times[-1], Timestamp('2013-10-27 01:00', tz=tz,
+ freq="H"))
def test_ambiguous_nat(self):
tz = self.tz('US/Eastern')
@@ -1163,6 +1167,85 @@ class TestTimeZones(tm.TestCase):
def setUp(self):
tm._skip_if_no_pytz()
+ def test_replace(self):
+ # GH 14621
+ # GH 7825
+ # replacing datetime components with and w/o presence of a timezone
+ dt = Timestamp('2016-01-01 09:00:00')
+ result = dt.replace(hour=0)
+ expected = Timestamp('2016-01-01 00:00:00')
+ self.assertEqual(result, expected)
+
+ for tz in self.timezones:
+ dt = Timestamp('2016-01-01 09:00:00', tz=tz)
+ result = dt.replace(hour=0)
+ expected = Timestamp('2016-01-01 00:00:00', tz=tz)
+ self.assertEqual(result, expected)
+
+ # we preserve nanoseconds
+ dt = Timestamp('2016-01-01 09:00:00.000000123', tz=tz)
+ result = dt.replace(hour=0)
+ expected = Timestamp('2016-01-01 00:00:00.000000123', tz=tz)
+ self.assertEqual(result, expected)
+
+ # test all
+ dt = Timestamp('2016-01-01 09:00:00.000000123', tz=tz)
+ result = dt.replace(year=2015, month=2, day=2, hour=0, minute=5,
+ second=5, microsecond=5, nanosecond=5)
+ expected = Timestamp('2015-02-02 00:05:05.000005005', tz=tz)
+ self.assertEqual(result, expected)
+
+ # error
+ def f():
+ dt.replace(foo=5)
+ self.assertRaises(ValueError, f)
+
+ def f():
+ dt.replace(hour=0.1)
+ self.assertRaises(ValueError, f)
+
+ # assert conversion to naive is the same as replacing tzinfo with None
+ dt = Timestamp('2013-11-03 01:59:59.999999-0400', tz='US/Eastern')
+ self.assertEqual(dt.tz_localize(None), dt.replace(tzinfo=None))
+
+ def test_ambiguous_compat(self):
+ # validate that pytz and dateutil are compat for dst
+ # when the transition happens
+ tm._skip_if_no_dateutil()
+ tm._skip_if_no_pytz()
+
+ pytz_zone = 'Europe/London'
+ dateutil_zone = 'dateutil/Europe/London'
+ result_pytz = (Timestamp('2013-10-27 01:00:00')
+ .tz_localize(pytz_zone, ambiguous=0))
+ result_dateutil = (Timestamp('2013-10-27 01:00:00')
+ .tz_localize(dateutil_zone, ambiguous=0))
+ self.assertEqual(result_pytz.value, result_dateutil.value)
+ self.assertEqual(result_pytz.value, 1382835600000000000)
+
+ # dateutil 2.6 buggy w.r.t. ambiguous=0
+ if dateutil.__version__ != LooseVersion('2.6.0'):
+ # GH 14621
+ # https://github.com/dateutil/dateutil/issues/321
+ self.assertEqual(result_pytz.to_pydatetime().tzname(),
+ result_dateutil.to_pydatetime().tzname())
+ self.assertEqual(str(result_pytz), str(result_dateutil))
+
+ # 1 hour difference
+ result_pytz = (Timestamp('2013-10-27 01:00:00')
+ .tz_localize(pytz_zone, ambiguous=1))
+ result_dateutil = (Timestamp('2013-10-27 01:00:00')
+ .tz_localize(dateutil_zone, ambiguous=1))
+ self.assertEqual(result_pytz.value, result_dateutil.value)
+ self.assertEqual(result_pytz.value, 1382832000000000000)
+
+ # dateutil < 2.6 is buggy w.r.t. ambiguous timezones
+ if dateutil.__version__ > LooseVersion('2.5.3'):
+ # GH 14621
+ self.assertEqual(str(result_pytz), str(result_dateutil))
+ self.assertEqual(result_pytz.to_pydatetime().tzname(),
+ result_dateutil.to_pydatetime().tzname())
+
def test_index_equals_with_tz(self):
left = date_range('1/1/2011', periods=100, freq='H', tz='utc')
right = date_range('1/1/2011', periods=100, freq='H', tz='US/Eastern')
diff --git a/pandas/tseries/tests/test_tslib.py b/pandas/tseries/tests/test_tslib.py
index 21cfe84f1..b45f867be 100644
--- a/pandas/tseries/tests/test_tslib.py
+++ b/pandas/tseries/tests/test_tslib.py
@@ -327,8 +327,9 @@ class TestTimestamp(tm.TestCase):
# dateutil zone change (only matters for repr)
import dateutil
- if dateutil.__version__ >= LooseVersion(
- '2.3') and dateutil.__version__ <= LooseVersion('2.4.0'):
+ if (dateutil.__version__ >= LooseVersion('2.3') and
+ (dateutil.__version__ <= LooseVersion('2.4.0') or
+ dateutil.__version__ >= LooseVersion('2.6.0'))):
timezones = ['UTC', 'Asia/Tokyo', 'US/Eastern',
'dateutil/US/Pacific']
else:
diff --git a/pandas/tslib.pyx b/pandas/tslib.pyx
index d4eaaa0b5..685de214c 100644
--- a/pandas/tslib.pyx
+++ b/pandas/tslib.pyx
@@ -98,6 +98,7 @@ except NameError: # py3
cdef inline object create_timestamp_from_ts(
int64_t value, pandas_datetimestruct dts,
object tz, object freq):
+ """ convenience routine to construct a Timestamp from its parts """
cdef _Timestamp ts_base
ts_base = _Timestamp.__new__(Timestamp, dts.year, dts.month,
dts.day, dts.hour, dts.min,
@@ -112,6 +113,7 @@ cdef inline object create_timestamp_from_ts(
cdef inline object create_datetime_from_ts(
int64_t value, pandas_datetimestruct dts,
object tz, object freq):
+ """ convenience routine to construct a datetime.datetime from its parts """
return datetime(dts.year, dts.month, dts.day, dts.hour,
dts.min, dts.sec, dts.us, tz)
@@ -378,7 +380,6 @@ class Timestamp(_Timestamp):
# Mixing pydatetime positional and keyword arguments is forbidden!
cdef _TSObject ts
- cdef _Timestamp ts_base
if offset is not None:
# deprecate offset kwd in 0.19.0, GH13593
@@ -412,17 +413,7 @@ class Timestamp(_Timestamp):
from pandas.tseries.frequencies import to_offset
freq = to_offset(freq)
- # make datetime happy
- ts_base = _Timestamp.__new__(cls, ts.dts.year, ts.dts.month,
- ts.dts.day, ts.dts.hour, ts.dts.min,
- ts.dts.sec, ts.dts.us, ts.tzinfo)
-
- # fill out rest of data
- ts_base.value = ts.value
- ts_base.freq = freq
- ts_base.nanosecond = ts.dts.ps / 1000
-
- return ts_base
+ return create_timestamp_from_ts(ts.value, ts.dts, ts.tzinfo, freq)
def _round(self, freq, rounder):
@@ -660,8 +651,80 @@ class Timestamp(_Timestamp):
astimezone = tz_convert
def replace(self, **kwds):
- return Timestamp(datetime.replace(self, **kwds),
- freq=self.freq)
+ """
+ implements datetime.replace, handles nanoseconds
+
+ Parameters
+ ----------
+ kwargs: key-value dict
+
+ accepted keywords are:
+ year, month, day, hour, minute, second, microsecond, nanosecond, tzinfo
+
+ values must be integer, or for tzinfo, a tz-convertible
+
+ Returns
+ -------
+ Timestamp with fields replaced
+ """
+
+ cdef:
+ pandas_datetimestruct dts
+ int64_t value
+ object tzinfo, result, k, v
+ _TSObject ts
+
+ # set to naive if needed
+ tzinfo = self.tzinfo
+ value = self.value
+ if tzinfo is not None:
+ value = tz_convert_single(value, 'UTC', tzinfo)
+
+ # setup components
+ pandas_datetime_to_datetimestruct(value, PANDAS_FR_ns, &dts)
+ dts.ps = self.nanosecond * 1000
+
+ # replace
+ def validate(k, v):
+ """ validate integers """
+ if not isinstance(v, int):
+ raise ValueError("value must be an integer, received {v} for {k}".format(v=type(v), k=k))
+ return v
+
+ for k, v in kwds.items():
+ if k == 'year':
+ dts.year = validate(k, v)
+ elif k == 'month':
+ dts.month = validate(k, v)
+ elif k == 'day':
+ dts.day = validate(k, v)
+ elif k == 'hour':
+ dts.hour = validate(k, v)
+ elif k == 'minute':
+ dts.min = validate(k, v)
+ elif k == 'second':
+ dts.sec = validate(k, v)
+ elif k == 'microsecond':
+ dts.us = validate(k, v)
+ elif k == 'nanosecond':
+ dts.ps = validate(k, v) * 1000
+ elif k == 'tzinfo':
+ tzinfo = v
+ else:
+ raise ValueError("invalid name {} passed".format(k))
+
+ # reconstruct & check bounds
+ value = pandas_datetimestruct_to_datetime(PANDAS_FR_ns, &dts)
+ if value != NPY_NAT:
+ _check_dts_bounds(&dts)
+
+ # set tz if needed
+ if tzinfo is not None:
+ value = tz_convert_single(value, tzinfo, 'UTC')
+
+ result = create_timestamp_from_ts(value, dts, tzinfo, self.freq)
+
+ return result
def isoformat(self, sep='T'):
base = super(_Timestamp, self).isoformat(sep=sep)
@@ -5041,7 +5104,9 @@ cpdef normalize_date(object dt):
-------
normalized : datetime.datetime or Timestamp
"""
- if PyDateTime_Check(dt):
+ if is_timestamp(dt):
+ return dt.replace(hour=0, minute=0, second=0, microsecond=0, nanosecond=0)
+ elif PyDateTime_Check(dt):
return dt.replace(hour=0, minute=0, second=0, microsecond=0)
elif PyDate_Check(dt):
return datetime(dt.year, dt.month, dt.day)
--
2.11.0

View File

@@ -1,24 +0,0 @@
diff --git a/pandas/tests/io/formats/test_format.py b/pandas/tests/io/formats/test_format.py
index 191e3f37f..8a1d89197 100644
--- a/pandas/tests/io/formats/test_format.py
+++ b/pandas/tests/io/formats/test_format.py
@@ -1585,6 +1585,7 @@ c 10 11 12 13 14\
with option_context('display.max_rows', 60, 'display.max_columns', 20):
assert '...' in df._repr_html_()
+ @pytest.mark.skip("Fails in Gentoo")
def test_info_repr(self):
max_rows = 60
max_cols = 20
diff --git a/pandas/tests/io/json/test_ujson.py b/pandas/tests/io/json/test_ujson.py
index 89acbfdc9..9c4b5c291 100644
--- a/pandas/tests/io/json/test_ujson.py
+++ b/pandas/tests/io/json/test_ujson.py
@@ -1097,6 +1097,7 @@ class TestNumpyJSONTests(object):
outp = ujson.decode(ujson.encode(arr), numpy=True, dtype=np.float32)
tm.assert_almost_equal(arr, outp)
+ @pytest.mark.skip("Fails on Gentoo")
def test_OdArray(self):
def will_raise():
ujson.encode(np.array(1))

View File

@@ -1,159 +0,0 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=5
PYTHON_COMPAT=( python3_6 )
PYTHON_REQ_USE="threads(+)"
VIRTUALX_REQUIRED="manual"
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"
SLOT="0"
LICENSE="BSD"
KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
IUSE="doc -minimal full-support test X"
RESTRICT="!test? ( test )"
MINIMAL_DEPEND="
>dev-python/numpy-1.7[${PYTHON_USEDEP}]
>=dev-python/python-dateutil-2.0[${PYTHON_USEDEP}]
dev-python/pytz[${PYTHON_USEDEP}]
!<dev-python/numexpr-2.1[${PYTHON_USEDEP}]
!~dev-python/openpyxl-1.9.0[${PYTHON_USEDEP}]"
RECOMMENDED_DEPEND="
dev-python/bottleneck[${PYTHON_USEDEP}]
>=dev-python/numexpr-2.1[${PYTHON_USEDEP}]"
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/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}]
>=dev-python/sqlalchemy-0.8.1[${PYTHON_USEDEP}]
dev-python/xlrd[${PYTHON_USEDEP}]
dev-python/xlwt[${PYTHON_USEDEP}]
sci-libs/scipy[${PYTHON_USEDEP}]
X? (
|| (
x11-misc/xclip
x11-misc/xsel
)
)
"
DEPEND="${MINIMAL_DEPEND}
dev-python/setuptools[${PYTHON_USEDEP}]
>=dev-python/cython-0.19.1[${PYTHON_USEDEP}]
doc? (
${VIRTUALX_DEPEND}
dev-python/beautifulsoup:4[${PYTHON_USEDEP}]
dev-python/html5lib[${PYTHON_USEDEP}]
dev-python/ipython[${PYTHON_USEDEP}]
dev-python/lxml[${PYTHON_USEDEP}]
dev-python/matplotlib[${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/xlrd[${PYTHON_USEDEP}]
dev-python/xlwt[${PYTHON_USEDEP}]
sci-libs/scipy[${PYTHON_USEDEP}]
x11-misc/xclip
)
test? (
${VIRTUALX_DEPEND}
${RECOMMENDED_DEPEND}
${OPTIONAL_DEPEND}
dev-python/beautifulsoup:4[${PYTHON_USEDEP}]
dev-python/nose[${PYTHON_USEDEP}]
dev-python/pymysql[${PYTHON_USEDEP}]
dev-python/psycopg:2[${PYTHON_USEDEP}]
x11-misc/xclip
x11-misc/xsel
)"
# dev-python/statsmodels invokes a circular dep
# hence rm from doc? ( ), again
RDEPEND="
${MINIMAL_DEPEND}
!minimal? ( ${RECOMMENDED_DEPEND} )
full-support? ( ${OPTIONAL_DEPEND} )"
PATCHES=(
"${FILESDIR}"/${P}-gapi.patch
"${FILESDIR}"/${P}-seqf.patch
)
python_prepare_all() {
# Prevent un-needed download during build
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/io/tests/json/test_ujson.py || die
distutils-r1_python_prepare_all
}
python_compile_all() {
# To build docs the need be located in $BUILD_DIR,
# else PYTHONPATH points to unusable modules.
if use doc; then
cd "${BUILD_DIR}"/lib || die
cp -ar "${S}"/doc . && cd doc || die
LANG=C PYTHONPATH=. virtx ${EPYTHON} make.py html
fi
}
python_test() {
local test_pandas='not network and not disabled'
[[ -n "${FAST_PANDAS}" ]] && test_pandas+=' and not slow'
pushd "${BUILD_DIR}"/lib > /dev/null
"${EPYTHON}" -c "import pandas; pandas.show_versions()" || die
PYTHONPATH=. MPLCONFIGDIR=. \
virtx nosetests --verbosity=3 -A "${test_pandas}" pandas
popd > /dev/null
}
python_install_all() {
if use doc; then
dodoc -r "${BUILD_DIR}"/lib/doc/build/html
einfo "An initial build of docs is absent of references to statsmodels"
einfo "due to circular dependency. To have them included, emerge"
einfo "statsmodels next and re-emerge pandas with USE doc"
fi
distutils-r1_python_install_all
}
pkg_postinst() {
optfeature "accelerating certain types of NaN evaluations, using specialized cython routines to achieve large speedups." dev-python/bottleneck
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 "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
optfeature "necessary for HDF5-based storage" ">=dev-python/pytables-3.2.1"
optfeature "R I/O support" dev-python/rpy
optfeature "Needed for parts of pandas.stats" dev-python/statsmodels
optfeature "SQL database support" ">=dev-python/sqlalchemy-0.8.1"
optfeature "miscellaneous statistical functions" sci-libs/scipy
optfeature "necessary to use pandas.io.clipboard.read_clipboard support" dev-python/pygtk x11-misc/xclip x11-misc/xsel
}

View File

@@ -1,169 +0,0 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
PYTHON_COMPAT=( python3_6 )
PYTHON_REQ_USE="threads(+)"
VIRTUALX_REQUIRED="manual"
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"
SLOT="0"
LICENSE="BSD"
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
IUSE="doc full-support minimal test X"
RESTRICT="!test? ( test )"
RECOMMENDED_DEPEND="
>=dev-python/bottleneck-1.2.1[${PYTHON_USEDEP}]
>=dev-python/numexpr-2.1[${PYTHON_USEDEP}]
"
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/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}]
>=dev-python/sqlalchemy-0.8.1[${PYTHON_USEDEP}]
>=dev-python/xarray-0.10.8[${PYTHON_USEDEP}]
dev-python/xlrd[${PYTHON_USEDEP}]
dev-python/xlwt[${PYTHON_USEDEP}]
sci-libs/scipy[${PYTHON_USEDEP}]
X? (
|| (
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/pytz[${PYTHON_USEDEP}]
"
DEPEND="${COMMON_DEPEND}
dev-python/setuptools[${PYTHON_USEDEP}]
>=dev-python/cython-0.23[${PYTHON_USEDEP}]
doc? (
${VIRTUALX_DEPEND}
app-text/pandoc
dev-python/beautifulsoup:4[${PYTHON_USEDEP}]
dev-python/html5lib[${PYTHON_USEDEP}]
dev-python/ipython[${PYTHON_USEDEP}]
dev-python/lxml[${PYTHON_USEDEP}]
dev-python/matplotlib[${PYTHON_USEDEP}]
dev-python/nbsphinx[${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/xlrd[${PYTHON_USEDEP}]
dev-python/xlwt[${PYTHON_USEDEP}]
sci-libs/scipy[${PYTHON_USEDEP}]
x11-misc/xclip
)
test? (
${VIRTUALX_DEPEND}
${RECOMMENDED_DEPEND}
${OPTIONAL_DEPEND}
dev-python/beautifulsoup:4[${PYTHON_USEDEP}]
dev-python/nose[${PYTHON_USEDEP}]
dev-python/pymysql[${PYTHON_USEDEP}]
dev-python/pytest[${PYTHON_USEDEP}]
dev-python/psycopg:2[${PYTHON_USEDEP}]
x11-misc/xclip
x11-misc/xsel
)
"
# 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} )
"
S="${WORKDIR}/${P/_/}"
PATCHES=(
"${FILESDIR}/${PN}-0.23.4-skip-broken-test.patch"
)
python_prepare_all() {
# Prevent un-needed download during build
sed -e "/^ 'sphinx.ext.intersphinx',/d" \
-i doc/source/conf.py || die
distutils-r1_python_prepare_all
}
python_compile_all() {
# To build docs the need be located in $BUILD_DIR,
# else PYTHONPATH points to unusable modules.
if use doc; then
cd "${BUILD_DIR}"/lib || die
cp -ar "${S}"/doc . && cd doc || die
LANG=C PYTHONPATH=. virtx ${EPYTHON} make.py html
fi
}
python_test() {
pushd "${BUILD_DIR}"/lib > /dev/null
"${EPYTHON}" -c "import pandas; pandas.show_versions()" || die
PYTHONPATH=. virtx pytest pandas -v --skip-slow --skip-network \
-m "not single"
popd > /dev/null
}
python_install_all() {
if use doc; then
dodoc -r "${BUILD_DIR}"/lib/doc/build/html
einfo "An initial build of docs is absent of references to statsmodels"
einfo "due to circular dependency. To have them included, emerge"
einfo "statsmodels next and re-emerge pandas with USE doc"
fi
distutils-r1_python_install_all
}
pkg_postinst() {
optfeature "accelerating certain types of NaN evaluations, using specialized cython routines to achieve large speedups." dev-python/bottleneck
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 "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
optfeature "necessary for HDF5-based storage" ">=dev-python/pytables-3.2.1"
optfeature "R I/O support" dev-python/rpy
optfeature "Needed for parts of pandas.stats" dev-python/statsmodels
optfeature "SQL database support" ">=dev-python/sqlalchemy-0.8.1"
optfeature "miscellaneous statistical functions" sci-libs/scipy
optfeature "necessary to use pandas.io.clipboard.read_clipboard support" dev-python/PyQt5 dev-python/pygtk x11-misc/xclip x11-misc/xsel
}