diff --git a/_multibuild b/_multibuild index 98d9f20..6d8cafe 100644 --- a/_multibuild +++ b/_multibuild @@ -1,5 +1,4 @@ - test-py39 test-py310 test-py311 test-py312 diff --git a/_service b/_service index 8a1753c..34fed70 100644 --- a/_service +++ b/_service @@ -2,7 +2,7 @@ https://github.com/pandas-dev/pandas.git git - v2.2.1 + v2.2.2 @PARENT_TAG@ v(.*) pandas diff --git a/pandas-2.2.1.tar.gz b/pandas-2.2.1.tar.gz deleted file mode 100644 index ec9ae5d..0000000 --- a/pandas-2.2.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5976687845c1b908a748264033d0f876e706fd97813ad914ac782160399cc246 -size 49830028 diff --git a/pandas-2.2.2.tar.gz b/pandas-2.2.2.tar.gz new file mode 100644 index 0000000..735fe58 --- /dev/null +++ b/pandas-2.2.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f044538e419c7d5c03434c96b1439cbd88701dcd02d6a79b08947fbb656c2f4 +size 50782448 diff --git a/pandas-pr58269-pyarrow16xpass.patch b/pandas-pr58269-pyarrow16xpass.patch new file mode 100644 index 0000000..620b2b7 --- /dev/null +++ b/pandas-pr58269-pyarrow16xpass.patch @@ -0,0 +1,40 @@ +From 1828b62ee913da44ec4402642ef7baaafeb65677 Mon Sep 17 00:00:00 2001 +From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> +Date: Mon, 15 Apr 2024 09:47:31 -1000 +Subject: [PATCH] Backport PR #58268: CI/TST: Unxfail + test_slice_locs_negative_step Pyarrow test + +--- + pandas/tests/indexes/object/test_indexing.py | 12 +----------- + 1 file changed, 1 insertion(+), 11 deletions(-) + +diff --git a/pandas/tests/indexes/object/test_indexing.py b/pandas/tests/indexes/object/test_indexing.py +index 443cacf94d239..ebf9dac715f8d 100644 +--- a/pandas/tests/indexes/object/test_indexing.py ++++ b/pandas/tests/indexes/object/test_indexing.py +@@ -7,7 +7,6 @@ + NA, + is_matching_na, + ) +-from pandas.compat import pa_version_under16p0 + import pandas.util._test_decorators as td + + import pandas as pd +@@ -201,16 +200,7 @@ class TestSliceLocs: + (pd.IndexSlice["m":"m":-1], ""), # type: ignore[misc] + ], + ) +- def test_slice_locs_negative_step(self, in_slice, expected, dtype, request): +- if ( +- not pa_version_under16p0 +- and dtype == "string[pyarrow_numpy]" +- and in_slice == slice("a", "a", -1) +- ): +- request.applymarker( +- pytest.mark.xfail(reason="https://github.com/apache/arrow/issues/40642") +- ) +- ++ def test_slice_locs_negative_step(self, in_slice, expected, dtype): + index = Index(list("bcdxy"), dtype=dtype) + + s_start, s_stop = index.slice_locs(in_slice.start, in_slice.stop, in_slice.step) diff --git a/python-pandas.changes b/python-pandas.changes index 5da0049..231a632 100644 --- a/python-pandas.changes +++ b/python-pandas.changes @@ -1,3 +1,41 @@ +------------------------------------------------------------------- +Tue Apr 30 18:08:56 UTC 2024 - Ben Greiner + +- Update to 2.2.2 + * Pandas 2.2.2 is now compatible with numpy 2.0 + * Pandas 2.2.2 is the first version of pandas that is generally + compatible with the upcoming numpy 2.0 release, and wheels for + pandas 2.2.2 will work with both numpy 1.x and 2.x. One major + caveat is that arrays created with numpy 2.0’s new StringDtype + will convert to object dtyped arrays upon Series/DataFrame + creation. Full support for numpy 2.0’s StringDtype is expected + to land in pandas 3.0. + * As usual please report any bugs discovered to our issue tracker + ## Fixed regressions + * DataFrame.__dataframe__() was producing incorrect data buffers + when the a column’s type was a pandas nullable on with missing + values (GH 56702) + * DataFrame.__dataframe__() was producing incorrect data buffers + when the a column’s type was a pyarrow nullable on with missing + values (GH 57664) + * Avoid issuing a spurious DeprecationWarning when a custom + DataFrame or Series subclass method is called (GH 57553) + * Fixed regression in precision of to_datetime() with string and + unit input (GH 57051) + ## Bug fixes + * DataFrame.__dataframe__() was producing incorrect data buffers + when the column’s type was nullable boolean (GH 55332) + * DataFrame.__dataframe__() was showing bytemask instead of + bitmask for 'string[pyarrow]' validity buffer (GH 57762) + * DataFrame.__dataframe__() was showing non-null validity buffer + (instead of None) 'string[pyarrow]' without missing values (GH + 57761) + * DataFrame.to_sql() was failing to find the right table when + using the schema argument (GH 57539) +- Remove obsolete python39 multibuild +- Add pandas-pr58269-pyarrow16xpass.patch + gh#pandas-dev/pandas#58269 + ------------------------------------------------------------------- Mon Mar 4 20:44:10 UTC 2024 - Ben Greiner diff --git a/python-pandas.spec b/python-pandas.spec index f87820e..4a0662b 100644 --- a/python-pandas.spec +++ b/python-pandas.spec @@ -25,9 +25,6 @@ %else %define psuffix -%{flavor} %bcond_without test -%if "%{flavor}" != "test-py39" -%define skip_python39 1 -%endif %if "%{flavor}" != "test-py310" %define skip_python310 1 %endif @@ -64,7 +61,7 @@ ExclusiveArch: donotbuild %endif Name: python-pandas%{psuffix} # Set version through _service -Version: 2.2.1 +Version: 2.2.2 Release: 0 Summary: Python data structures for data analysis, time series, and statistics License: BSD-3-Clause @@ -72,10 +69,13 @@ URL: https://pandas.pydata.org/ # SourceRepository: https://github.com/pandas-dev/pandas # Must be created by cloning through `osc service runall`: gh#pandas-dev/pandas#54903, gh#pandas-dev/pandas#54907 Source0: pandas-%{version}.tar.gz +# PATCH-FIX-UPSTREAM pandas-pr58269-pyarrow16xpass.patch -- gh#pandas-dev/pandas#58269 +Patch0: https://github.com/pandas-dev/pandas/pull/58269.patch#/pandas-pr58269-pyarrow16xpass.patch +%if !%{with test} BuildRequires: %{python_module Cython >= 3.0.5} BuildRequires: %{python_module devel >= 3.9} BuildRequires: %{python_module meson-python >= 0.13.1} -BuildRequires: %{python_module numpy-devel >= 1.23.2 if %python-base < 3.12 else %python-numpy-devel >= 1.26} +BuildRequires: %{python_module numpy-devel >= 1.26} BuildRequires: %{python_module pip} BuildRequires: %{python_module versioneer-toml} BuildRequires: %{python_module wheel} @@ -83,16 +83,21 @@ BuildRequires: fdupes BuildRequires: gcc%{?gccver}-c++ BuildRequires: git-core BuildRequires: meson >= 1.2.1 +%endif BuildRequires: python-rpm-macros Requires: python-python-dateutil >= 2.8.2 Requires: python-pytz >= 2020.1 Requires: timezone >= 2022a Obsoletes: python-pandas-doc < %{version} Provides: python-pandas-doc = %{version} -%if 0%{python_version_nodots} < 312 -Requires: (python-numpy >= 1.23.2 with python-numpy < 2) +%if 0%{python_version_nodots} < 311 +Requires: python-numpy >= 1.22.4 %else -Requires: (python-numpy >= 1.26 with python-numpy < 2) +%if 0%{python_version_nodots} == 311 +Requires: python-numpy >= 1.23.2 +%else +Requires: python-numpy >= 1.26 +%endif %endif # SECTION extras Recommends: python-pandas-performance @@ -131,7 +136,7 @@ BuildRequires: %{python_module dask-dataframe} BuildRequires: %{python_module pandas-all = %{version}} BuildRequires: %{python_module pandas-clipboard = %{version}} BuildRequires: %{python_module pandas-compression = %{version}} -BuildRequires: %{python_module pandas-computation = %{version} if %python-base >= 3.10} +BuildRequires: %{python_module pandas-computation = %{version}} BuildRequires: %{python_module pandas-excel = %{version}} %{?with_pyarrow:BuildRequires: %{python_module pandas-feather = %{version}}} BuildRequires: %{python_module pandas-fss = %{version}} @@ -418,9 +423,7 @@ Requires: python-pytest-xdist >= 2.2.0 Requires: python-scipy >= 1.10.0 Requires: python-tables >= 3.8.0 Requires: python-tabulate >= 0.9 -%if 0%{python_version_nodots} >= 310 Requires: python-xarray >= 2022.12 -%endif Requires: python-xlrd >= 2.0.1 Requires: python-zstandard >= 0.19.0 %{?with_aws:Requires: python-s3fs >= 2022.05.0} @@ -456,6 +459,7 @@ sed -i "s|'generate_version.py',|'${genpython}', 'generate_version.py',|" meson. # don't require the PyPI data only tzdata package, we use the timezone RPM package sed -i '/dependencies = \[/,/\]/ {/tzdata.*>=/d}' pyproject.toml %endif +%autopatch -p1 %build %if !%{with test} @@ -516,6 +520,11 @@ SKIP_TESTS+=" or test_maybe_promote_int_with_int" SKIP_TESTS+=" or (test_rolling_quantile_interpolation_options and data1 and linear and 0.1)" # overflow SKIP_TESTS+=" or test_large_string_pyarrow" +SKIP_TESTS+=" or test_pandas_nullable_with_missing_values" +SKIP_TESTS+=" or test_pandas_nullable_without_missing_values" +# pyarrow read-only errors +SKIP_TESTS+=" or test_left_join_multi_index" +SKIP_TESTS+=" or test_join_on_single_col_dup_on_right" # dtype mismatch SKIP_TESTS+=" or test_frame_setitem_dask_array_into_new_col" SKIP_TESTS+=" or test_get_indexer_arrow_dictionary_target"