From b8c378ddbb22bc7a6a7b235776ed6706213462b1 Mon Sep 17 00:00:00 2001 From: AlenkaF Date: Wed, 13 Aug 2025 09:11:26 +0200 Subject: [PATCH 1/8] Squash: all 10 commits --- .../linux-apt-python-313-freethreading.dockerfile | 7 ++++++- ...free-threaded-wheel-windows-test-vs2022.dockerfile | 11 ++++++----- .../python-wheel-windows-test-vs2022-base.dockerfile | 2 +- ci/docker/python-wheel-windows-vs2022-base.dockerfile | 2 +- python/pyarrow/tests/test_cython.py | 10 ++++++++++ python/pyarrow/tests/test_extension_type.py | 5 +++++ 6 files changed, 29 insertions(+), 8 deletions(-) diff --git a/ci/docker/linux-apt-python-313-freethreading.dockerfile b/ci/docker/linux-apt-python-313-freethreading.dockerfile index f5505e67f00..fe63524d5df 100644 --- a/ci/docker/linux-apt-python-313-freethreading.dockerfile +++ b/ci/docker/linux-apt-python-313-freethreading.dockerfile @@ -32,13 +32,18 @@ COPY python/requirements-build.txt \ ENV ARROW_PYTHON_VENV /arrow-dev RUN python3.13t -m venv ${ARROW_PYTHON_VENV} + +# Free-threaded CPython 3.13 needs pinned cffi version +RUN sed '/^cffi/d' /arrow/python/requirements-test.txt > /arrow/python/requirements-patched.txt && \ + echo "cffi<2.0.0" >> /arrow/python/requirements-patched.txt + RUN ${ARROW_PYTHON_VENV}/bin/python -m pip install -U pip setuptools wheel RUN ${ARROW_PYTHON_VENV}/bin/python -m pip install \ --pre \ --prefer-binary \ --extra-index-url "https://pypi.anaconda.org/scientific-python-nightly-wheels/simple" \ -r arrow/python/requirements-build.txt \ - -r arrow/python/requirements-test.txt + -r arrow/python/requirements-patched.txt # We want to run the PyArrow test suite with the GIL disabled, but cffi # (more precisely, the `_cffi_backend` module) currently doesn't declare diff --git a/ci/docker/python-free-threaded-wheel-windows-test-vs2022.dockerfile b/ci/docker/python-free-threaded-wheel-windows-test-vs2022.dockerfile index 4b972999b04..6bbea25fe24 100644 --- a/ci/docker/python-free-threaded-wheel-windows-test-vs2022.dockerfile +++ b/ci/docker/python-free-threaded-wheel-windows-test-vs2022.dockerfile @@ -38,15 +38,16 @@ SHELL ["cmd", "/S", "/C"] RUN %PYTHON_CMD% -m pip install -U pip setuptools COPY python/requirements-wheel-test.txt C:/arrow/python/ + +# Free-threaded CPython 3.13 needs pinned cffi version # Cython and Pandas wheels for 3.13 free-threaded are not released yet -RUN %PYTHON_CMD% -m pip install \ +RUN findstr /V cffi C:\arrow\python\requirements-wheel-test.txt > C:\arrow\python\requirements-patched.txt && \ + echo cffi^<2.0.0 >> C:\arrow\python\requirements-patched.txt && \ + %PYTHON_CMD% -m pip install \ --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple \ --pre \ --prefer-binary \ - -r C:/arrow/python/requirements-wheel-test.txt -# cffi-based tests would crash when importing cffi. -# hadolint ignore=DL3059 -RUN %PYTHON_CMD% -m pip uninstall -y cffi + -r C:/arrow/python/requirements-patched.txt ENV PYTHON="${python}t" ENV PYTHON_GIL=0 diff --git a/ci/docker/python-wheel-windows-test-vs2022-base.dockerfile b/ci/docker/python-wheel-windows-test-vs2022-base.dockerfile index 1d1602c03a2..e77f4af36b8 100644 --- a/ci/docker/python-wheel-windows-test-vs2022-base.dockerfile +++ b/ci/docker/python-wheel-windows-test-vs2022-base.dockerfile @@ -35,7 +35,7 @@ RUN ` --installPath "%ProgramFiles(x86)%\Microsoft Visual Studio\2022\BuildTools" ` --add Microsoft.VisualStudio.Component.VC.CoreBuildTools ` --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 ` - --add Microsoft.VisualStudio.Component.Windows10SDK.20348 ` + --add Microsoft.VisualStudio.Component.Windows10SDK.26100 ` --add Microsoft.VisualStudio.Component.VC.CMake.Project ` || IF "%ERRORLEVEL%"=="3010" EXIT 0) ` && del /q vs_buildtools.exe diff --git a/ci/docker/python-wheel-windows-vs2022-base.dockerfile b/ci/docker/python-wheel-windows-vs2022-base.dockerfile index 7f683487a8c..978da9fb0b9 100644 --- a/ci/docker/python-wheel-windows-vs2022-base.dockerfile +++ b/ci/docker/python-wheel-windows-vs2022-base.dockerfile @@ -67,7 +67,7 @@ RUN ` --installPath "%ProgramFiles(x86)%\Microsoft Visual Studio\2022\BuildTools" ` --add Microsoft.VisualStudio.Component.VC.CoreBuildTools ` --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 ` - --add Microsoft.VisualStudio.Component.Windows10SDK.20348 ` + --add Microsoft.VisualStudio.Component.Windows10SDK.26100 ` --add Microsoft.VisualStudio.Component.VC.CMake.Project ` || IF "%ERRORLEVEL%"=="3010" EXIT 0) ` && del /q vs_buildtools.exe diff --git a/python/pyarrow/tests/test_cython.py b/python/pyarrow/tests/test_cython.py index e0116a4bb76..f09d460f26a 100644 --- a/python/pyarrow/tests/test_cython.py +++ b/python/pyarrow/tests/test_cython.py @@ -107,6 +107,11 @@ def test_cython_api(tmpdir): # PYTHONPATH, for local dev environments subprocess_env = test_util.get_modified_env_with_pythonpath() + # Add Windows SDK include path manually + subprocess_env["INCLUDE"] = ( + "C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.26100.0\\ucrt;" + + subprocess_env.get("INCLUDE", "") + ) # Compile extension module subprocess.check_call([sys.executable, 'setup.py', 'build_ext', '--inplace'], @@ -181,6 +186,11 @@ def test_visit_strings(tmpdir): subprocess_env = test_util.get_modified_env_with_pythonpath() + # Add Windows SDK include path manually + subprocess_env["INCLUDE"] = ( + "C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.26100.0\\ucrt;" + + subprocess_env.get("INCLUDE", "") + ) # Compile extension module subprocess.check_call([sys.executable, 'setup.py', 'build_ext', '--inplace'], diff --git a/python/pyarrow/tests/test_extension_type.py b/python/pyarrow/tests/test_extension_type.py index ebac37e862b..e565612cbae 100644 --- a/python/pyarrow/tests/test_extension_type.py +++ b/python/pyarrow/tests/test_extension_type.py @@ -1345,6 +1345,11 @@ def test_cpp_extension_in_python(tmpdir): subprocess_env = test_util.get_modified_env_with_pythonpath() + # Add Windows SDK include path manually + subprocess_env["INCLUDE"] = ( + "C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.26100.0\\ucrt;" + + subprocess_env.get("INCLUDE", "") + ) # Compile extension module subprocess.check_call([sys.executable, 'setup.py', 'build_ext', '--inplace'], From 1e13f4a94c5e9bae8822d5d5ea14ae26f4e808c7 Mon Sep 17 00:00:00 2001 From: AlenkaF Date: Wed, 13 Aug 2025 09:11:32 +0200 Subject: [PATCH 2/8] Revert "Squash: all 10 commits" This reverts commit b8c378ddbb22bc7a6a7b235776ed6706213462b1. --- .../linux-apt-python-313-freethreading.dockerfile | 7 +------ ...free-threaded-wheel-windows-test-vs2022.dockerfile | 11 +++++------ .../python-wheel-windows-test-vs2022-base.dockerfile | 2 +- ci/docker/python-wheel-windows-vs2022-base.dockerfile | 2 +- python/pyarrow/tests/test_cython.py | 10 ---------- python/pyarrow/tests/test_extension_type.py | 5 ----- 6 files changed, 8 insertions(+), 29 deletions(-) diff --git a/ci/docker/linux-apt-python-313-freethreading.dockerfile b/ci/docker/linux-apt-python-313-freethreading.dockerfile index fe63524d5df..f5505e67f00 100644 --- a/ci/docker/linux-apt-python-313-freethreading.dockerfile +++ b/ci/docker/linux-apt-python-313-freethreading.dockerfile @@ -32,18 +32,13 @@ COPY python/requirements-build.txt \ ENV ARROW_PYTHON_VENV /arrow-dev RUN python3.13t -m venv ${ARROW_PYTHON_VENV} - -# Free-threaded CPython 3.13 needs pinned cffi version -RUN sed '/^cffi/d' /arrow/python/requirements-test.txt > /arrow/python/requirements-patched.txt && \ - echo "cffi<2.0.0" >> /arrow/python/requirements-patched.txt - RUN ${ARROW_PYTHON_VENV}/bin/python -m pip install -U pip setuptools wheel RUN ${ARROW_PYTHON_VENV}/bin/python -m pip install \ --pre \ --prefer-binary \ --extra-index-url "https://pypi.anaconda.org/scientific-python-nightly-wheels/simple" \ -r arrow/python/requirements-build.txt \ - -r arrow/python/requirements-patched.txt + -r arrow/python/requirements-test.txt # We want to run the PyArrow test suite with the GIL disabled, but cffi # (more precisely, the `_cffi_backend` module) currently doesn't declare diff --git a/ci/docker/python-free-threaded-wheel-windows-test-vs2022.dockerfile b/ci/docker/python-free-threaded-wheel-windows-test-vs2022.dockerfile index 6bbea25fe24..4b972999b04 100644 --- a/ci/docker/python-free-threaded-wheel-windows-test-vs2022.dockerfile +++ b/ci/docker/python-free-threaded-wheel-windows-test-vs2022.dockerfile @@ -38,16 +38,15 @@ SHELL ["cmd", "/S", "/C"] RUN %PYTHON_CMD% -m pip install -U pip setuptools COPY python/requirements-wheel-test.txt C:/arrow/python/ - -# Free-threaded CPython 3.13 needs pinned cffi version # Cython and Pandas wheels for 3.13 free-threaded are not released yet -RUN findstr /V cffi C:\arrow\python\requirements-wheel-test.txt > C:\arrow\python\requirements-patched.txt && \ - echo cffi^<2.0.0 >> C:\arrow\python\requirements-patched.txt && \ - %PYTHON_CMD% -m pip install \ +RUN %PYTHON_CMD% -m pip install \ --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple \ --pre \ --prefer-binary \ - -r C:/arrow/python/requirements-patched.txt + -r C:/arrow/python/requirements-wheel-test.txt +# cffi-based tests would crash when importing cffi. +# hadolint ignore=DL3059 +RUN %PYTHON_CMD% -m pip uninstall -y cffi ENV PYTHON="${python}t" ENV PYTHON_GIL=0 diff --git a/ci/docker/python-wheel-windows-test-vs2022-base.dockerfile b/ci/docker/python-wheel-windows-test-vs2022-base.dockerfile index e77f4af36b8..1d1602c03a2 100644 --- a/ci/docker/python-wheel-windows-test-vs2022-base.dockerfile +++ b/ci/docker/python-wheel-windows-test-vs2022-base.dockerfile @@ -35,7 +35,7 @@ RUN ` --installPath "%ProgramFiles(x86)%\Microsoft Visual Studio\2022\BuildTools" ` --add Microsoft.VisualStudio.Component.VC.CoreBuildTools ` --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 ` - --add Microsoft.VisualStudio.Component.Windows10SDK.26100 ` + --add Microsoft.VisualStudio.Component.Windows10SDK.20348 ` --add Microsoft.VisualStudio.Component.VC.CMake.Project ` || IF "%ERRORLEVEL%"=="3010" EXIT 0) ` && del /q vs_buildtools.exe diff --git a/ci/docker/python-wheel-windows-vs2022-base.dockerfile b/ci/docker/python-wheel-windows-vs2022-base.dockerfile index 978da9fb0b9..7f683487a8c 100644 --- a/ci/docker/python-wheel-windows-vs2022-base.dockerfile +++ b/ci/docker/python-wheel-windows-vs2022-base.dockerfile @@ -67,7 +67,7 @@ RUN ` --installPath "%ProgramFiles(x86)%\Microsoft Visual Studio\2022\BuildTools" ` --add Microsoft.VisualStudio.Component.VC.CoreBuildTools ` --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 ` - --add Microsoft.VisualStudio.Component.Windows10SDK.26100 ` + --add Microsoft.VisualStudio.Component.Windows10SDK.20348 ` --add Microsoft.VisualStudio.Component.VC.CMake.Project ` || IF "%ERRORLEVEL%"=="3010" EXIT 0) ` && del /q vs_buildtools.exe diff --git a/python/pyarrow/tests/test_cython.py b/python/pyarrow/tests/test_cython.py index f09d460f26a..e0116a4bb76 100644 --- a/python/pyarrow/tests/test_cython.py +++ b/python/pyarrow/tests/test_cython.py @@ -107,11 +107,6 @@ def test_cython_api(tmpdir): # PYTHONPATH, for local dev environments subprocess_env = test_util.get_modified_env_with_pythonpath() - # Add Windows SDK include path manually - subprocess_env["INCLUDE"] = ( - "C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.26100.0\\ucrt;" - + subprocess_env.get("INCLUDE", "") - ) # Compile extension module subprocess.check_call([sys.executable, 'setup.py', 'build_ext', '--inplace'], @@ -186,11 +181,6 @@ def test_visit_strings(tmpdir): subprocess_env = test_util.get_modified_env_with_pythonpath() - # Add Windows SDK include path manually - subprocess_env["INCLUDE"] = ( - "C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.26100.0\\ucrt;" - + subprocess_env.get("INCLUDE", "") - ) # Compile extension module subprocess.check_call([sys.executable, 'setup.py', 'build_ext', '--inplace'], diff --git a/python/pyarrow/tests/test_extension_type.py b/python/pyarrow/tests/test_extension_type.py index e565612cbae..ebac37e862b 100644 --- a/python/pyarrow/tests/test_extension_type.py +++ b/python/pyarrow/tests/test_extension_type.py @@ -1345,11 +1345,6 @@ def test_cpp_extension_in_python(tmpdir): subprocess_env = test_util.get_modified_env_with_pythonpath() - # Add Windows SDK include path manually - subprocess_env["INCLUDE"] = ( - "C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.26100.0\\ucrt;" - + subprocess_env.get("INCLUDE", "") - ) # Compile extension module subprocess.check_call([sys.executable, 'setup.py', 'build_ext', '--inplace'], From 1df829dc9df119f53efe127c6dbd7e1ce229d4c0 Mon Sep 17 00:00:00 2001 From: AlenkaF Date: Wed, 13 Aug 2025 09:14:24 +0200 Subject: [PATCH 3/8] Use environment markers --- python/requirements-test.txt | 3 ++- python/requirements-wheel-test.txt | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/python/requirements-test.txt b/python/requirements-test.txt index 4339aeb9c16..affe8a74219 100644 --- a/python/requirements-test.txt +++ b/python/requirements-test.txt @@ -1,4 +1,5 @@ -cffi +cffi; python_version != '3.13t' +cffi<2.0.0; python_version == '3.13t' hypothesis packaging pandas diff --git a/python/requirements-wheel-test.txt b/python/requirements-wheel-test.txt index 06c059f591f..d4299b79b60 100644 --- a/python/requirements-wheel-test.txt +++ b/python/requirements-wheel-test.txt @@ -1,4 +1,5 @@ -cffi +cffi; python_version != '3.13t' +cffi<2.0.0; python_version == '3.13t' cython hypothesis packaging From a41c8ceac4367af402079839daa42f875a6520a7 Mon Sep 17 00:00:00 2001 From: AlenkaF Date: Tue, 26 Aug 2025 07:45:51 +0200 Subject: [PATCH 4/8] Bring back dockerfile patches only for 3.13 version --- ci/docker/linux-apt-python-313-freethreading.dockerfile | 7 ++++++- ...on-free-threaded-wheel-windows-test-vs2022.dockerfile | 9 ++++----- python/requirements-test.txt | 3 +-- python/requirements-wheel-test.txt | 3 +-- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/ci/docker/linux-apt-python-313-freethreading.dockerfile b/ci/docker/linux-apt-python-313-freethreading.dockerfile index f5505e67f00..5413d846785 100644 --- a/ci/docker/linux-apt-python-313-freethreading.dockerfile +++ b/ci/docker/linux-apt-python-313-freethreading.dockerfile @@ -32,13 +32,18 @@ COPY python/requirements-build.txt \ ENV ARROW_PYTHON_VENV /arrow-dev RUN python3.13t -m venv ${ARROW_PYTHON_VENV} + +# cffi does not support free-threaded CPython 3.13 +# Remove next line with Python 3.14t! +RUN sed '/^cffi/d' /arrow/python/requirements-test.txt > /arrow/python/requirements-patched.txt + RUN ${ARROW_PYTHON_VENV}/bin/python -m pip install -U pip setuptools wheel RUN ${ARROW_PYTHON_VENV}/bin/python -m pip install \ --pre \ --prefer-binary \ --extra-index-url "https://pypi.anaconda.org/scientific-python-nightly-wheels/simple" \ -r arrow/python/requirements-build.txt \ - -r arrow/python/requirements-test.txt + -r arrow/python/requirements-patched.txt # We want to run the PyArrow test suite with the GIL disabled, but cffi # (more precisely, the `_cffi_backend` module) currently doesn't declare diff --git a/ci/docker/python-free-threaded-wheel-windows-test-vs2022.dockerfile b/ci/docker/python-free-threaded-wheel-windows-test-vs2022.dockerfile index 4b972999b04..5c0b59a94ba 100644 --- a/ci/docker/python-free-threaded-wheel-windows-test-vs2022.dockerfile +++ b/ci/docker/python-free-threaded-wheel-windows-test-vs2022.dockerfile @@ -39,14 +39,13 @@ RUN %PYTHON_CMD% -m pip install -U pip setuptools COPY python/requirements-wheel-test.txt C:/arrow/python/ # Cython and Pandas wheels for 3.13 free-threaded are not released yet -RUN %PYTHON_CMD% -m pip install \ +# cffi does not support free-threaded CPython 3.13, remove findstr line with Python 3.14t! +RUN findstr /V cffi C:/arrow/python/requirements-wheel-test.txt > C:/arrow/python/requirements-patched.txt ; \ + %PYTHON_CMD% -m pip install \ --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple \ --pre \ --prefer-binary \ - -r C:/arrow/python/requirements-wheel-test.txt -# cffi-based tests would crash when importing cffi. -# hadolint ignore=DL3059 -RUN %PYTHON_CMD% -m pip uninstall -y cffi + -r C:/arrow/python/requirements-patched.txt ENV PYTHON="${python}t" ENV PYTHON_GIL=0 diff --git a/python/requirements-test.txt b/python/requirements-test.txt index affe8a74219..4339aeb9c16 100644 --- a/python/requirements-test.txt +++ b/python/requirements-test.txt @@ -1,5 +1,4 @@ -cffi; python_version != '3.13t' -cffi<2.0.0; python_version == '3.13t' +cffi hypothesis packaging pandas diff --git a/python/requirements-wheel-test.txt b/python/requirements-wheel-test.txt index d4299b79b60..06c059f591f 100644 --- a/python/requirements-wheel-test.txt +++ b/python/requirements-wheel-test.txt @@ -1,5 +1,4 @@ -cffi; python_version != '3.13t' -cffi<2.0.0; python_version == '3.13t' +cffi cython hypothesis packaging From 5367be4258058f7f669422a0c33d031a11048ff4 Mon Sep 17 00:00:00 2001 From: AlenkaF Date: Tue, 26 Aug 2025 09:01:49 +0200 Subject: [PATCH 5/8] Use a separate requirements file instead --- ...ux-apt-python-313-freethreading.dockerfile | 9 ++------- ...eaded-wheel-windows-test-vs2022.dockerfile | 8 +++----- python/requirements-test-3.13t.txt | 6 ++++++ python/requirements-wheel-test-3.13t.txt | 19 +++++++++++++++++++ 4 files changed, 30 insertions(+), 12 deletions(-) create mode 100644 python/requirements-test-3.13t.txt create mode 100644 python/requirements-wheel-test-3.13t.txt diff --git a/ci/docker/linux-apt-python-313-freethreading.dockerfile b/ci/docker/linux-apt-python-313-freethreading.dockerfile index 5413d846785..540499e7a82 100644 --- a/ci/docker/linux-apt-python-313-freethreading.dockerfile +++ b/ci/docker/linux-apt-python-313-freethreading.dockerfile @@ -27,23 +27,18 @@ RUN apt-get update -y -q && \ rm -rf /var/lib/apt/lists* COPY python/requirements-build.txt \ - python/requirements-test.txt \ + python/requirements-test-3.13t.txt \ /arrow/python/ ENV ARROW_PYTHON_VENV /arrow-dev RUN python3.13t -m venv ${ARROW_PYTHON_VENV} - -# cffi does not support free-threaded CPython 3.13 -# Remove next line with Python 3.14t! -RUN sed '/^cffi/d' /arrow/python/requirements-test.txt > /arrow/python/requirements-patched.txt - RUN ${ARROW_PYTHON_VENV}/bin/python -m pip install -U pip setuptools wheel RUN ${ARROW_PYTHON_VENV}/bin/python -m pip install \ --pre \ --prefer-binary \ --extra-index-url "https://pypi.anaconda.org/scientific-python-nightly-wheels/simple" \ -r arrow/python/requirements-build.txt \ - -r arrow/python/requirements-patched.txt + -r arrow/python/requirements-test.txt # We want to run the PyArrow test suite with the GIL disabled, but cffi # (more precisely, the `_cffi_backend` module) currently doesn't declare diff --git a/ci/docker/python-free-threaded-wheel-windows-test-vs2022.dockerfile b/ci/docker/python-free-threaded-wheel-windows-test-vs2022.dockerfile index 5c0b59a94ba..723d0caa320 100644 --- a/ci/docker/python-free-threaded-wheel-windows-test-vs2022.dockerfile +++ b/ci/docker/python-free-threaded-wheel-windows-test-vs2022.dockerfile @@ -37,15 +37,13 @@ ENV PYTHON_CMD="py -${python}t" SHELL ["cmd", "/S", "/C"] RUN %PYTHON_CMD% -m pip install -U pip setuptools -COPY python/requirements-wheel-test.txt C:/arrow/python/ +COPY python/requirements-wheel-test-3.13t.txt C:/arrow/python/ # Cython and Pandas wheels for 3.13 free-threaded are not released yet -# cffi does not support free-threaded CPython 3.13, remove findstr line with Python 3.14t! -RUN findstr /V cffi C:/arrow/python/requirements-wheel-test.txt > C:/arrow/python/requirements-patched.txt ; \ - %PYTHON_CMD% -m pip install \ +RUN %PYTHON_CMD% -m pip install \ --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple \ --pre \ --prefer-binary \ - -r C:/arrow/python/requirements-patched.txt + -r C:/arrow/python/requirements-test.txt ENV PYTHON="${python}t" ENV PYTHON_GIL=0 diff --git a/python/requirements-test-3.13t.txt b/python/requirements-test-3.13t.txt new file mode 100644 index 00000000000..75836c4d6c4 --- /dev/null +++ b/python/requirements-test-3.13t.txt @@ -0,0 +1,6 @@ +hypothesis +packaging +pandas +pytest +pytz +pyuwsgi; sys.platform != 'win32' and python_version < '3.13' diff --git a/python/requirements-wheel-test-3.13t.txt b/python/requirements-wheel-test-3.13t.txt new file mode 100644 index 00000000000..1349b01d88e --- /dev/null +++ b/python/requirements-wheel-test-3.13t.txt @@ -0,0 +1,19 @@ +cython +hypothesis +packaging +pytest +pytz +pyuwsgi; sys.platform != 'win32' and python_version < '3.13' +requests; sys_platform == 'win32' +tzdata; sys_platform == 'win32' + +# We generally test with the oldest numpy version that supports a given Python +# version. However, there is no need to make this strictly the oldest version, +# so it can be broadened to have a single version specification across platforms. +# (`~=x.y.z` specifies a compatible release as `>=x.y.z, == x.y.*`) +numpy~=1.21.3; python_version < "3.11" +numpy~=1.23.2; python_version == "3.11" +numpy~=1.26.0; python_version == "3.12" +numpy~=2.1.0; python_version >= "3.13" + +pandas From be6ca4c0ef397a6c09656b3dabf1d61ba33b6938 Mon Sep 17 00:00:00 2001 From: AlenkaF Date: Tue, 26 Aug 2025 09:03:31 +0200 Subject: [PATCH 6/8] Fix typo --- ci/docker/linux-apt-python-313-freethreading.dockerfile | 2 +- .../python-free-threaded-wheel-windows-test-vs2022.dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/docker/linux-apt-python-313-freethreading.dockerfile b/ci/docker/linux-apt-python-313-freethreading.dockerfile index 540499e7a82..ceed5bac7e7 100644 --- a/ci/docker/linux-apt-python-313-freethreading.dockerfile +++ b/ci/docker/linux-apt-python-313-freethreading.dockerfile @@ -38,7 +38,7 @@ RUN ${ARROW_PYTHON_VENV}/bin/python -m pip install \ --prefer-binary \ --extra-index-url "https://pypi.anaconda.org/scientific-python-nightly-wheels/simple" \ -r arrow/python/requirements-build.txt \ - -r arrow/python/requirements-test.txt + -r arrow/python/requirements-test-3.13t.txt # We want to run the PyArrow test suite with the GIL disabled, but cffi # (more precisely, the `_cffi_backend` module) currently doesn't declare diff --git a/ci/docker/python-free-threaded-wheel-windows-test-vs2022.dockerfile b/ci/docker/python-free-threaded-wheel-windows-test-vs2022.dockerfile index 723d0caa320..5b27c786ff4 100644 --- a/ci/docker/python-free-threaded-wheel-windows-test-vs2022.dockerfile +++ b/ci/docker/python-free-threaded-wheel-windows-test-vs2022.dockerfile @@ -43,7 +43,7 @@ RUN %PYTHON_CMD% -m pip install \ --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple \ --pre \ --prefer-binary \ - -r C:/arrow/python/requirements-test.txt + -r C:/arrow/python/requirements-wheel-test-3.13t.txt ENV PYTHON="${python}t" ENV PYTHON_GIL=0 From 430f26bc0ca01f68b770f1aede76aafd1060768d Mon Sep 17 00:00:00 2001 From: AlenkaF Date: Mon, 1 Sep 2025 08:05:34 +0200 Subject: [PATCH 7/8] Simplify requirements --- python/requirements-test-3.13t.txt | 1 - python/requirements-wheel-test-3.13t.txt | 11 +---------- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/python/requirements-test-3.13t.txt b/python/requirements-test-3.13t.txt index 75836c4d6c4..9c2e8de25eb 100644 --- a/python/requirements-test-3.13t.txt +++ b/python/requirements-test-3.13t.txt @@ -3,4 +3,3 @@ packaging pandas pytest pytz -pyuwsgi; sys.platform != 'win32' and python_version < '3.13' diff --git a/python/requirements-wheel-test-3.13t.txt b/python/requirements-wheel-test-3.13t.txt index 1349b01d88e..fbc2a854f93 100644 --- a/python/requirements-wheel-test-3.13t.txt +++ b/python/requirements-wheel-test-3.13t.txt @@ -3,17 +3,8 @@ hypothesis packaging pytest pytz -pyuwsgi; sys.platform != 'win32' and python_version < '3.13' requests; sys_platform == 'win32' tzdata; sys_platform == 'win32' - -# We generally test with the oldest numpy version that supports a given Python -# version. However, there is no need to make this strictly the oldest version, -# so it can be broadened to have a single version specification across platforms. -# (`~=x.y.z` specifies a compatible release as `>=x.y.z, == x.y.*`) -numpy~=1.21.3; python_version < "3.11" -numpy~=1.23.2; python_version == "3.11" -numpy~=1.26.0; python_version == "3.12" -numpy~=2.1.0; python_version >= "3.13" +numpy~=2.1.0 pandas From c5c8e4e3a39038557cbd9bb709bac37821faf748 Mon Sep 17 00:00:00 2001 From: AlenkaF Date: Mon, 1 Sep 2025 08:09:25 +0200 Subject: [PATCH 8/8] Reorganise requirements-wheel-test-3.13t --- python/requirements-wheel-test-3.13t.txt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/python/requirements-wheel-test-3.13t.txt b/python/requirements-wheel-test-3.13t.txt index fbc2a854f93..009b7d6b31f 100644 --- a/python/requirements-wheel-test-3.13t.txt +++ b/python/requirements-wheel-test-3.13t.txt @@ -1,10 +1,9 @@ cython hypothesis +numpy~=2.1.0 packaging +pandas pytest pytz requests; sys_platform == 'win32' tzdata; sys_platform == 'win32' -numpy~=2.1.0 - -pandas