Bug 2212443 - python-pandas: FTBFS in Fedora 37
Summary: python-pandas: FTBFS in Fedora 37
Keywords:
Status: CLOSED EOL
Alias: None
Product: Fedora
Classification: Fedora
Component: python-pandas
Version: 37
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Jonathan Wright
QA Contact: Fedora Extras Quality Assurance
URL: https://koschei.fedoraproject.org/pac...
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-06-05 14:47 UTC by Ben Beasley
Modified: 2024-01-15 12:16 UTC (History)
9 users (show)

Fixed In Version:
Doc Type: ---
Doc Text:
Clone Of:
Environment:
Last Closed: 2024-01-15 12:16:59 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Ben Beasley 2023-06-05 14:47:17 UTC
Description of problem:
Package python-pandas fails to build from source in Fedora 37.

Version-Release number of selected component (if applicable):
1.5.3-1.fc37

Steps to Reproduce:
koji build --scratch f37 python-pandas-1.5.3-1.fc37.src.rpm

Additional info:
This package is tracked by Koschei. See:
https://koschei.fedoraproject.org/package/python-pandas


=================================== FAILURES ===================================
___________ test_construct_dask_float_array_int_dtype_match_ndarray ____________
[gw0] linux -- Python 3.11.3 /usr/bin/python3
    @td.skip_if_no("dask")
    def test_construct_dask_float_array_int_dtype_match_ndarray():
        # GH#40110 make sure we treat a float-dtype dask array with the same
        #  rules we would for an ndarray
        import dask.dataframe as dd
    
        arr = np.array([1, 2.5, 3])
        darr = dd.from_array(arr)
    
        res = Series(darr)
        expected = Series(arr)
        tm.assert_series_equal(res, expected)
    
        res = Series(darr, dtype="i8")
        expected = Series(arr, dtype="i8")
        tm.assert_series_equal(res, expected)
    
        msg = "In a future version, passing float-dtype values containing NaN"
        arr[2] = np.nan
>       with tm.assert_produces_warning(FutureWarning, match=msg):
../../../BUILDROOT/python-pandas-1.5.3-1.fc37.x86_64/usr/lib64/python3.11/site-packages/pandas/tests/test_downstream.py:105: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib64/python3.11/contextlib.py:144: in __exit__
    next(self.gen)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    def _assert_caught_no_extra_warnings(
        *,
        caught_warnings: Sequence[warnings.WarningMessage],
        expected_warning: type[Warning] | bool | tuple[type[Warning], ...] | None,
    ) -> None:
        """Assert that no extra warnings apart from the expected ones are caught."""
        extra_warnings = []
    
        for actual_warning in caught_warnings:
            if _is_unexpected_warning(actual_warning, expected_warning):
                # GH#38630 pytest.filterwarnings does not suppress these.
                if actual_warning.category == ResourceWarning:
                    # GH 44732: Don't make the CI flaky by filtering SSL-related
                    # ResourceWarning from dependencies
                    unclosed_ssl = (
                        "unclosed transport <asyncio.sslproto._SSLProtocolTransport",
                        "unclosed <ssl.SSLSocket",
                    )
                    if any(msg in str(actual_warning.message) for msg in unclosed_ssl):
                        continue
                    # GH 44844: Matplotlib leaves font files open during the entire process
                    # upon import. Don't make CI flaky if ResourceWarning raised
                    # due to these open files.
                    if any("matplotlib" in mod for mod in sys.modules):
                        continue
    
                extra_warnings.append(
                    (
                        actual_warning.category.__name__,
                        actual_warning.message,
                        actual_warning.filename,
                        actual_warning.lineno,
                    )
                )
    
        if extra_warnings:
>           raise AssertionError(f"Caused unexpected warning(s): {repr(extra_warnings)}")
E           AssertionError: Caused unexpected warning(s): [('RuntimeWarning', RuntimeWarning('invalid value encountered in cast'), '/builddir/build/BUILDROOT/python-pandas-1.5.3-1.fc37.x86_64/usr/lib64/python3.11/site-packages/pandas/core/dtypes/cast.py', 1836)]
../../../BUILDROOT/python-pandas-1.5.3-1.fc37.x86_64/usr/lib64/python3.11/site-packages/pandas/_testing/_warnings.py:192: AssertionError
_______________________ test_xarray_cftimeindex_nearest ________________________
[gw0] linux -- Python 3.11.3 /usr/bin/python3
    @td.skip_if_no("cftime")
    @td.skip_if_no("xarray", "0.10.4")
    def test_xarray_cftimeindex_nearest():
        # https://github.com/pydata/xarray/issues/3751
        import cftime
        import xarray
    
        times = xarray.cftime_range("0001", periods=2)
        key = cftime.DatetimeGregorian(2000, 1, 1)
        with tm.assert_produces_warning(
            FutureWarning, match="deprecated", check_stacklevel=False
        ):
>           result = times.get_loc(key, method="nearest")
E           TypeError: CFTimeIndex.get_loc() got an unexpected keyword argument 'method'
../../../BUILDROOT/python-pandas-1.5.3-1.fc37.x86_64/usr/lib64/python3.11/site-packages/pandas/tests/test_downstream.py:131: TypeError

These new errors were caused by dependency updates; numpy 1:1.24.3-1.fc37 and python-xarray 2023.4.2-2.fc37 are likely involved.

I’m not inclined to put a lot of effort into backporting changes from a more recent version of Pandas. If we want to fix the FTBFS, it may be best just to skip these two tests and pretend everything is OK.

Comment 1 Aoife Moloney 2023-11-23 01:46:07 UTC
This message is a reminder that Fedora Linux 37 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora Linux 37 on 2023-12-05.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
'version' of '37'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, change the 'version' 
to a later Fedora Linux version. Note that the version field may be hidden.
Click the "Show advanced fields" button if you do not see it.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora Linux 37 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora Linux, you are encouraged to change the 'version' to a later version
prior to this bug being closed.

Comment 2 Aoife Moloney 2024-01-15 12:16:59 UTC
Fedora Linux 37 entered end-of-life (EOL) status on 2023-12-05.

Fedora Linux 37 is no longer maintained, which means that it
will not receive any further security or bug fix updates. As a result we
are closing this bug.

If you can reproduce this bug against a currently maintained version of Fedora Linux
please feel free to reopen this bug against that version. Note that the version
field may be hidden. Click the "Show advanced fields" button if you do not see
the version field.

If you are unable to reopen this bug, please file a new report against an
active release.

Thank you for reporting this bug and we are sorry it could not be fixed.


Note You need to log in before you can comment on or make changes to this bug.