commit:     4511ba1f0d5c2107597246629011497af324bf30
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Jun 13 14:29:53 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Jun 13 14:59:56 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4511ba1f

dev-python/pyarrow: Backport numpy-2 patch

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 .../pyarrow/files/pyarrow-16.1.0-numpy-2.patch     | 65 ++++++++++++++++++++++
 dev-python/pyarrow/pyarrow-16.1.0.ebuild           | 13 ++---
 2 files changed, 70 insertions(+), 8 deletions(-)

diff --git a/dev-python/pyarrow/files/pyarrow-16.1.0-numpy-2.patch 
b/dev-python/pyarrow/files/pyarrow-16.1.0-numpy-2.patch
new file mode 100644
index 000000000000..d43e15746408
--- /dev/null
+++ b/dev-python/pyarrow/files/pyarrow-16.1.0-numpy-2.patch
@@ -0,0 +1,65 @@
+diff --git a/pyarrow/tests/parquet/common.py b/pyarrow/tests/parquet/common.py
+index 8365ed5b28543..c3094ee20b34c 100644
+--- a/pyarrow/tests/parquet/common.py
++++ b/pyarrow/tests/parquet/common.py
+@@ -83,7 +83,7 @@ def _random_integers(size, dtype):
+     iinfo = np.iinfo(dtype)
+     return np.random.randint(max(iinfo.min, platform_int_info.min),
+                              min(iinfo.max, platform_int_info.max),
+-                             size=size).astype(dtype)
++                             size=size, dtype=dtype)
+ 
+ 
+ def _range_integers(size, dtype):
+diff --git a/pyarrow/tests/test_array.py b/pyarrow/tests/test_array.py
+index 88394c77e429d..1032ab9add3ca 100644
+--- a/pyarrow/tests/test_array.py
++++ b/pyarrow/tests/test_array.py
+@@ -3398,7 +3398,7 @@ def test_numpy_array_protocol():
+     result = np.asarray(arr)
+     np.testing.assert_array_equal(result, expected)
+ 
+-    if Version(np.__version__) < Version("2.0"):
++    if Version(np.__version__) < Version("2.0.0.dev0"):
+         # copy keyword is not strict and not passed down to __array__
+         result = np.array(arr, copy=False)
+         np.testing.assert_array_equal(result, expected)
+diff --git a/pyarrow/tests/test_pandas.py b/pyarrow/tests/test_pandas.py
+index be2c5b14e68b0..ba9d6a3c01391 100644
+--- a/pyarrow/tests/test_pandas.py
++++ b/pyarrow/tests/test_pandas.py
+@@ -780,7 +780,7 @@ def test_integer_no_nulls(self):
+             info = np.iinfo(dtype)
+             values = np.random.randint(max(info.min, np.iinfo(np.int_).min),
+                                        min(info.max, np.iinfo(np.int_).max),
+-                                       size=num_values)
++                                       size=num_values, dtype=dtype)
+             data[dtype] = values.astype(dtype)
+             fields.append(pa.field(dtype, arrow_dtype))
+ 
+diff --git a/pyarrow/tests/test_table.py b/pyarrow/tests/test_table.py
+index a58010d083e92..f40759de50c8c 100644
+--- a/pyarrow/tests/test_table.py
++++ b/pyarrow/tests/test_table.py
+@@ -3281,7 +3281,7 @@ def test_numpy_array_protocol(constructor):
+     table = constructor([[1, 2, 3], [4.0, 5.0, 6.0]], names=["a", "b"])
+     expected = np.array([[1, 4], [2, 5], [3, 6]], dtype="float64")
+ 
+-    if Version(np.__version__) < Version("2.0"):
++    if Version(np.__version__) < Version("2.0.0.dev0"):
+         # copy keyword is not strict and not passed down to __array__
+         result = np.array(table, copy=False)
+         np.testing.assert_array_equal(result, expected)
+diff --git a/scripts/test_leak.py b/scripts/test_leak.py
+index f2bbe8d051bf9..86a87f5e742e8 100644
+--- a/scripts/test_leak.py
++++ b/scripts/test_leak.py
+@@ -98,7 +98,7 @@ def func():
+ 
+ 
+ def test_ARROW_8801():
+-    x = pd.to_datetime(np.random.randint(0, 2**32, size=2**20),
++    x = pd.to_datetime(np.random.randint(0, 2**32, size=2**20, 
dtype=np.int64),
+                        unit='ms', utc=True)
+     table = pa.table(pd.DataFrame({'x': x}))
+ 

diff --git a/dev-python/pyarrow/pyarrow-16.1.0.ebuild 
b/dev-python/pyarrow/pyarrow-16.1.0.ebuild
index 37167ff75b2c..7a027d3f6336 100644
--- a/dev-python/pyarrow/pyarrow-16.1.0.ebuild
+++ b/dev-python/pyarrow/pyarrow-16.1.0.ebuild
@@ -39,6 +39,11 @@ EPYTEST_XDIST=1
 distutils_enable_tests pytest
 
 src_prepare() {
+       local PATCHES=(
+               # https://github.com/apache/arrow/pull/42099
+               "${FILESDIR}/${P}-numpy-2.patch"
+       )
+
        # cython's -Werror
        sed -i -e '/--warning-errors/d' CMakeLists.txt || die
        distutils-r1_src_prepare
@@ -83,14 +88,6 @@ python_test() {
                tests/test_pandas.py::test_array_to_pandas_roundtrip
        )
 
-       if has_version ">=dev-python/numpy-2"; then
-               EPYTEST_DESELECT+=(
-                       # https://github.com/apache/arrow/issues/41319
-                       tests/test_array.py::test_numpy_array_protocol
-                       tests/test_table.py::test_numpy_array_protocol
-               )
-       fi
-
        cd "${T}" || die
        local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
        epytest --pyargs pyarrow

Reply via email to