diff --git a/.gitignore b/.gitignore index 6241222..20a392a 100644 --- a/.gitignore +++ b/.gitignore @@ -38,3 +38,4 @@ /pandas-1.3.5.tar.gz /pandas-1.5.1.tar.gz /pandas-1.5.2.tar.gz +/pandas-1.5.3.tar.gz diff --git a/e73d4d29203dab20e001beb1090d07683de583d6.patch b/e73d4d29203dab20e001beb1090d07683de583d6.patch new file mode 100644 index 0000000..544bc87 --- /dev/null +++ b/e73d4d29203dab20e001beb1090d07683de583d6.patch @@ -0,0 +1,97 @@ +From e73d4d29203dab20e001beb1090d07683de583d6 Mon Sep 17 00:00:00 2001 +From: Patrick Hoefler <61934744+phofl@users.noreply.github.com> +Date: Sat, 28 Jan 2023 08:37:26 -0500 +Subject: [PATCH] Backport PR #50925 on branch 1.5.x (TST: Remove fsspec + internals from tests) (#51038) + +TST: Remove fsspec internals from tests (#50925) + +Co-authored-by: Thomas Li <47963215+lithomas1@users.noreply.github.com> +--- + pandas/tests/io/test_fsspec.py | 2 -- + pandas/tests/io/test_gcs.py | 24 +++++------------------- + 2 files changed, 5 insertions(+), 21 deletions(-) + +diff --git a/pandas/tests/io/test_fsspec.py b/pandas/tests/io/test_fsspec.py +index 4f033fd63f978..fd1b30eca449e 100644 +--- a/pandas/tests/io/test_fsspec.py ++++ b/pandas/tests/io/test_fsspec.py +@@ -50,10 +50,8 @@ def test_read_csv(cleared_fs, df1): + + + def test_reasonable_error(monkeypatch, cleared_fs): +- from fsspec import registry + from fsspec.registry import known_implementations + +- registry.target.clear() + with pytest.raises(ValueError, match="nosuchprotocol"): + read_csv("nosuchprotocol://test/test.csv") + err_msg = "test error message" +diff --git a/pandas/tests/io/test_gcs.py b/pandas/tests/io/test_gcs.py +index 6907d8978e603..538969b7e226c 100644 +--- a/pandas/tests/io/test_gcs.py ++++ b/pandas/tests/io/test_gcs.py +@@ -22,17 +22,12 @@ + @pytest.fixture + def gcs_buffer(monkeypatch): + """Emulate GCS using a binary buffer.""" +- from fsspec import ( +- AbstractFileSystem, +- registry, +- ) +- +- registry.target.clear() # remove state ++ import fsspec + + gcs_buffer = BytesIO() + gcs_buffer.close = lambda: True + +- class MockGCSFileSystem(AbstractFileSystem): ++ class MockGCSFileSystem(fsspec.AbstractFileSystem): + def open(*args, **kwargs): + gcs_buffer.seek(0) + return gcs_buffer +@@ -41,7 +36,8 @@ def ls(self, path, **kwargs): + # needed for pyarrow + return [{"name": path, "type": "file"}] + +- monkeypatch.setattr("gcsfs.GCSFileSystem", MockGCSFileSystem) ++ # Overwrites the default implementation from gcsfs to our mock class ++ fsspec.register_implementation("gs", MockGCSFileSystem, clobber=True) + + return gcs_buffer + +@@ -54,9 +50,6 @@ def test_to_read_gcs(gcs_buffer, format): + + GH 33987 + """ +- from fsspec import registry +- +- registry.target.clear() # remove state + + df1 = DataFrame( + { +@@ -131,9 +124,6 @@ def test_to_csv_compression_encoding_gcs(gcs_buffer, compression_only, encoding) + GH 35677 (to_csv, compression), GH 26124 (to_csv, encoding), and + GH 32392 (read_csv, encoding) + """ +- from fsspec import registry +- +- registry.target.clear() # remove state + df = tm.makeDataFrame() + + # reference of compressed and encoded file +@@ -173,12 +163,8 @@ def test_to_csv_compression_encoding_gcs(gcs_buffer, compression_only, encoding) + @td.skip_if_no("gcsfs") + def test_to_parquet_gcs_new_file(monkeypatch, tmpdir): + """Regression test for writing to a not-yet-existent GCS Parquet file.""" +- from fsspec import ( +- AbstractFileSystem, +- registry, +- ) ++ from fsspec import AbstractFileSystem + +- registry.target.clear() # remove state + df1 = DataFrame( + { + "int": [1, 3], diff --git a/python-pandas.spec b/python-pandas.spec index fda3023..1ec716f 100644 --- a/python-pandas.spec +++ b/python-pandas.spec @@ -12,8 +12,8 @@ %bcond_without single_tests Name: python-pandas -Version: 1.5.2 -Release: 2%{?dist} +Version: 1.5.3 +Release: 1%{?dist} Summary: Python library providing high-performance data analysis tools # The entire source is BSD-3-Clause and covered by LICENSE, except: @@ -78,6 +78,15 @@ Source0: https://github.com/pandas-dev/pandas/archive/v%{version}/pandas- # https://github.com/pandas-dev/pandas/pull/49913 Patch: https://github.com/pandas-dev/pandas/pull/49913.patch +# [PATCH] Backport PR #50925 on branch 1.5.x (TST: Remove fsspec internals from +# tests) (#51038) +# +# TST: Remove fsspec internals from tests (#50925) +# https://github.com/pandas-dev/pandas/commit/e73d4d29203dab20e001beb1090d07683de583d6 +# fixes: +# ERROR at setup of test_to_read_gcs[…] +Patch: https://github.com/pandas-dev/pandas/commit/e73d4d29203dab20e001beb1090d07683de583d6.patch + %global _description %{expand: pandas is an open source, BSD-licensed library providing high-performance, easy-to-use data structures and data @@ -590,12 +599,43 @@ k="${k-}${k+ and }not (TestStata and test_strl_latin1)" k="${k-}${k+ and }not (TestStata and test_utf8_writer)" %endif +# TODO: Why does this fail? +# E assert 0 == 1 +k="${k-}${k+ and }not test_switch_options" + +%ifarch x86_64 +# These are brittle and fail with tiny floating-point differences on COPR +# builders but not Koji builders, like: +# > raise_assert_detail(obj, msg, left, right, index_values=index_values) +# E AssertionError: numpy array are different +# E +# E numpy array values are different (16.66667 %) +# E [left]: [0.09999999999999999, 1.0, 10.0, 100.0, 1000.0, 10000.0] +# E [right]: [0.1, 1.0, 10.0, 100.0, 1000.0, 10000.0] +k="${k-}${k+ and }not (TestSeriesPlots and test_bar_log)" +k="${k-}${k+ and }not (TestDataFramePlotsSubplots and test_bar_log_no_subplots)" +k="${k-}${k+ and }not (TestDataFramePlotsSubplots and test_bar_log_subplots)" +%endif + %if 0%{?fedora} > 37 # The text of an error message has changed in libarrow/pyarrow 10, which is # harmless but breaks one test. Disable it until a patch is available upstream. # CI: pyarrow 10 broke our ci # https://github.com/pandas-dev/pandas/issues/50058 k="${k-}${k+ and }not test_arrow_array" + +# Probably also related to upstream pinning pyarrow < 10 for CI: +# E TypeError: Expected unicode, got pyarrow.lib.StringScalar +k="${k-}${k+ and }not (TestConstructors and test_from_sequence_of_strings_pa_array)" + +# TODO: Why does this fail? Does it need a slightly older version of dask? +# E AssertionError: Caused unexpected warning(s): [('RuntimeWarning', RuntimeWarning('invalid value encountered in cast'), '/builddir/build/BUILDROOT/python-pandas-1.5.3-1.fc39.x86_64/usr/lib64/python3.11/site-packages/pandas/core/dtypes/cast.py', 1836)] +k="${k-}${k+ and }not test_construct_dask_float_array_int_dtype_match_ndarray" + +# Incompatibility with python-xarray ≥ 2023.01.0. See: +# https://github.com/pydata/xarray/blob/v2023.02.0/doc/whats-new.rst#breaking-changes-1 +# CFTimeIndex.get_loc() got an unexpected keyword argument 'method' +k="${k-}${k+ and }not test_xarray_cftimeindex_nearest" %endif %if 0%{?fc37} @@ -669,6 +709,9 @@ export PYTHONHASHSEED="$( %changelog +* Mon Feb 27 2023 Benjamin A. Beasley - 1.5.3-1 +- Update to 1.5.3 (close RHBZ#2162303) + * Fri Jan 20 2023 Fedora Release Engineering - 1.5.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild diff --git a/sources b/sources index 048ab2b..45b979b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (pandas-1.5.2.tar.gz) = 9551c403f37f516b3547966d3ca90b0014c9cfe254a342600e2d17199ea8ea256de05d6784ac422f75cf9c1dcca893962c33fb97e65be45ffc2518a0e164070d +SHA512 (pandas-1.5.3.tar.gz) = 220ec6923ebc1d0063537d8a62f53a8ce2631c35c1f3f5b63ee892617507603553db69a2d06f8cd338366e008f746994c3420ee58d151df1b94f5b5719b03b43