Bug#1068104: pandas: FTBFS on 32-bit architectures with -D_TIME_BITS=64

2024-04-01 Thread Rebecca N. Palmer

Thanks - I plan to look at this tomorrow.



Bug#1068104: pandas: FTBFS on 32-bit architectures with -D_TIME_BITS=64

2024-03-30 Thread Graham Inggs
Source: pandas
Version: 2.1.4+dfsg-6
Severity: serious
Tags: ftbfs patch

Hi Maintainer

pandas FTBFS on 32-bit architectures with -D_TIME_BITS=64 (e.g. armel
and armhf), due to tests expected to fail, now passing.  I've copied
what I hope are the relevant parts of the log below.

The following is my first attempt at a patch, which would pass on
armel and armhf, but fail on i386 and hurd-i386, which are not built
with -D_TIME_BITS=64.

--- a/pandas/tests/indexes/datetimes/test_ops.py
+++ b/pandas/tests/indexes/datetimes/test_ops.py
@@ -33,7 +33,7 @@
 )
 def test_resolution(self, request, tz_naive_fixture, freq, expected):
 tz = tz_naive_fixture
-if freq == "A" and not IS64 and isinstance(tz, tzlocal):
+if freq == "A" and isinstance(tz, tzlocal):
 request.node.add_marker(
 pytest.mark.xfail(reason="OverflowError inside
tzlocal past 2038")
 )
--- a/pandas/tests/tseries/offsets/test_common.py
+++ b/pandas/tests/tseries/offsets/test_common.py
@@ -139,7 +139,7 @@
 if tz is not None:
 assert t.tzinfo is not None

-if isinstance(tz, tzlocal) and not IS64 and _offset is not DateOffset:
+if isinstance(tz, tzlocal) and _offset is not DateOffset:
 # If we hit OutOfBoundsDatetime on non-64 bit machines
 # we'll drop out of the try clause before the next test
 request.node.add_marker(

The following is my second attempt at a patch, which does not fail if
the expected test failures succeed.

--- a/pandas/tests/indexes/datetimes/test_ops.py
+++ b/pandas/tests/indexes/datetimes/test_ops.py
@@ -35,7 +35,7 @@
 tz = tz_naive_fixture
 if freq == "A" and not IS64 and isinstance(tz, tzlocal):
 request.node.add_marker(
-pytest.mark.xfail(reason="OverflowError inside
tzlocal past 2038")
+pytest.mark.xfail(reason="OverflowError inside
tzlocal past 2038",strict=False)
 )

 idx = date_range(start="2013-04-01", periods=30, freq=freq, tz=tz)
--- a/pandas/tests/tseries/offsets/test_common.py
+++ b/pandas/tests/tseries/offsets/test_common.py
@@ -143,7 +143,7 @@
 # If we hit OutOfBoundsDatetime on non-64 bit machines
 # we'll drop out of the try clause before the next test
 request.node.add_marker(
-pytest.mark.xfail(reason="OverflowError inside
tzlocal past 2038")
+pytest.mark.xfail(reason="OverflowError inside
tzlocal past 2038", strict=False)
 )
 elif (
 isinstance(tz, tzlocal)

Regards
Graham


[1] https://buildd.debian.org/status/logs.php?pkg=pandas=armhf
[2] https://buildd.debian.org/status/logs.php?pkg=pandas=armel


=== short test summary info 
FAILED 
pandas/tests/indexes/datetimes/test_ops.py::TestDatetimeIndexOps::test_resolution[tzlocal()-A-day]
= 1 failed, 15623 passed, 383 skipped, 5 deselected, 46 xfailed, 4
xpassed in 47.98s =
rdjoqkol test state = false

=== short test summary info 
FAILED 
pandas/tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BusinessDay]
FAILED 
pandas/tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BusinessHour]
FAILED 
pandas/tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BusinessMonthEnd]
FAILED 
pandas/tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BusinessMonthBegin]
FAILED 
pandas/tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BQuarterEnd]
FAILED 
pandas/tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BQuarterBegin]
FAILED 
pandas/tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-CustomBusinessDay]
FAILED 
pandas/tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-CustomBusinessHour]
FAILED 
pandas/tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-CustomBusinessMonthEnd]
FAILED 
pandas/tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-CustomBusinessMonthBegin]
FAILED 
pandas/tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-MonthEnd]
FAILED 
pandas/tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-MonthBegin]
FAILED 
pandas/tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-SemiMonthBegin]
FAILED 
pandas/tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-SemiMonthEnd]
FAILED 
pandas/tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-QuarterEnd]
FAILED 
pandas/tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-LastWeekOfMonth]
FAILED 
pandas/tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-WeekOfMonth]
FAILED 
pandas/tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-Week]