This is an automated email from the ASF dual-hosted git repository.
alenka pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/main by this push:
new 55be8c011c GH-47256: [Python] Do not use cffi in free-threaded 3.13
builds (#47313)
55be8c011c is described below
commit 55be8c011cd9e82707382d97417b0c3a0aabf822
Author: Alenka Frim <[email protected]>
AuthorDate: Tue Sep 2 09:56:31 2025 +0200
GH-47256: [Python] Do not use cffi in free-threaded 3.13 builds (#47313)
### Rationale for this change
Ubuntu and Windows wheels started failing on free-threaded build of CPython
3.13 due to cffi not supporting free-threaded CPython 3.13.
### What changes are included in this PR?
Free-threaded 3.13 builds use separate requirements with no cffi.
### Are these changes tested?
Yes, with the extended builds.
### Are there any user-facing changes?
No.
* GitHub Issue: #47256
Authored-by: AlenkaF <[email protected]>
Signed-off-by: AlenkaF <[email protected]>
---
ci/docker/linux-apt-python-313-freethreading.dockerfile | 4 ++--
.../python-free-threaded-wheel-windows-test-vs2022.dockerfile | 7 ++-----
python/requirements-test-3.13t.txt | 5 +++++
python/requirements-wheel-test-3.13t.txt | 9 +++++++++
4 files changed, 18 insertions(+), 7 deletions(-)
diff --git a/ci/docker/linux-apt-python-313-freethreading.dockerfile
b/ci/docker/linux-apt-python-313-freethreading.dockerfile
index f5505e67f0..ceed5bac7e 100644
--- a/ci/docker/linux-apt-python-313-freethreading.dockerfile
+++ b/ci/docker/linux-apt-python-313-freethreading.dockerfile
@@ -27,7 +27,7 @@ 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
@@ -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 4b972999b0..5b27c786ff 100644
--- a/ci/docker/python-free-threaded-wheel-windows-test-vs2022.dockerfile
+++ b/ci/docker/python-free-threaded-wheel-windows-test-vs2022.dockerfile
@@ -37,16 +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
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-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-wheel-test-3.13t.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 0000000000..9c2e8de25e
--- /dev/null
+++ b/python/requirements-test-3.13t.txt
@@ -0,0 +1,5 @@
+hypothesis
+packaging
+pandas
+pytest
+pytz
diff --git a/python/requirements-wheel-test-3.13t.txt
b/python/requirements-wheel-test-3.13t.txt
new file mode 100644
index 0000000000..009b7d6b31
--- /dev/null
+++ b/python/requirements-wheel-test-3.13t.txt
@@ -0,0 +1,9 @@
+cython
+hypothesis
+numpy~=2.1.0
+packaging
+pandas
+pytest
+pytz
+requests; sys_platform == 'win32'
+tzdata; sys_platform == 'win32'