@@ -47,8 +47,8 @@ all = [ # users can install duckdb with 'duckdb[all]', which will install this l
4747 " fsspec" , # used in duckdb.filesystem
4848 " numpy" , # used in duckdb.experimental.spark and in duckdb.fetchnumpy()
4949 " pandas" , # used for pandas dataframes all over the place
50- " pyarrow" , # used for pyarrow support
51- " adbc_driver_manager" , # for the adbc driver (TODO: this should live under the duckdb package)
50+ " pyarrow; python_version < '3.14' " , # used for pyarrow support
51+ " adbc_driver_manager; python_version < '3.14' " , # for the adbc driver (TODO: this should live under the duckdb package)
5252]
5353
5454# #####################################################################################################
@@ -123,6 +123,13 @@ if.env.COVERAGE = false
123123inherit.cmake.define = " append"
124124cmake.define.DISABLE_UNITY = " 1"
125125
126+ [[tool .scikit-build .overrides ]]
127+ # Windows Free-Threading
128+ if.platform-system = " ^win32"
129+ if.abi-flags = " t"
130+ inherit.cmake.define = " append"
131+ cmake.define.CMAKE_C_FLAGS =" /DPy_MOD_GIL_USED /DPy_GIL_DISABLED"
132+ cmake.define.CMAKE_CXX_FLAGS =" /DPy_MOD_GIL_USED /DPy_GIL_DISABLED"
126133
127134[tool .scikit-build .sdist ]
128135include = [
@@ -204,6 +211,7 @@ required-environments = [ # ... but do always resolve for all of them
204211 " python_version >= '3.9' and sys_platform == 'linux' and platform_machine == 'x86_64'" ,
205212 " python_version >= '3.9' and sys_platform == 'linux' and platform_machine == 'aarch64'" ,
206213]
214+ prerelease = " allow" # for 3.14
207215
208216# We just need pytorch for tests, wihtout GPU acceleration. PyPI doesn't host a cpu-only version for Linux, so we have
209217# to configure the index url for cpu-only pytorch manually
@@ -220,30 +228,30 @@ torchvision = [ { index = "pytorch-cpu" } ]
220228stubdeps = [ # dependencies used for typehints in the stubs
221229 " fsspec" ,
222230 " pandas" ,
223- " polars" ,
224- " pyarrow" ,
231+ " polars; python_version < '3.14' " ,
232+ " pyarrow; python_version < '3.14' " ,
225233]
226234test = [ # dependencies used for running tests
227235 " pytest" ,
228236 " pytest-reraise" ,
229237 " pytest-timeout" ,
230238 " mypy" ,
231239 " coverage" ,
232- " gcovr" ,
240+ " gcovr; python_version < '3.14' " ,
233241 " gcsfs" ,
234242 " packaging" ,
235- " polars" ,
243+ " polars; python_version < '3.14' " ,
236244 " psutil" ,
237245 " py4j" ,
238246 " pyotp" ,
239- " pyspark" ,
247+ " pyspark; python_version < '3.14' " ,
240248 " pytz" ,
241249 " requests" ,
242250 " urllib3" ,
243251 " fsspec>=2022.11.0" ,
244252 " pandas>=2.0.0" ,
245- " pyarrow>=18.0.0" ,
246- " torch>=2.2.2; sys_platform != 'darwin' or platform_machine != 'x86_64' or python_version < '3.13'" ,
253+ " pyarrow>=18.0.0; python_version < '3.14' " ,
254+ " torch>=2.2.2; python_version < '3.14' and ( sys_platform != 'darwin' or platform_machine != 'x86_64' or python_version < '3.13') " ,
247255 " tensorflow==2.14.0; sys_platform == 'darwin' and python_version < '3.12'" ,
248256 " tensorflow-cpu>=2.14.0; sys_platform == 'linux' and platform_machine != 'aarch64' and python_version < '3.12'" ,
249257 " tensorflow-cpu>=2.14.0; sys_platform == 'win32' and python_version < '3.12'" ,
@@ -258,8 +266,8 @@ scripts = [ # dependencies used for running scripts
258266 " numpy" ,
259267 " pandas" ,
260268 " pcpp" ,
261- " polars" ,
262- " pyarrow" ,
269+ " polars; python_version < '3.14' " ,
270+ " pyarrow; python_version < '3.14' " ,
263271 " pytz"
264272]
265273pypi = [ # dependencies used by the pypi cleanup script
@@ -305,6 +313,7 @@ filterwarnings = [
305313 # Pyspark is throwing these warnings
306314 " ignore:distutils Version classes are deprecated:DeprecationWarning" ,
307315 " ignore:is_datetime64tz_dtype is deprecated:DeprecationWarning" ,
316+ " ignore:ChainedAssignmentError.*:FutureWarning"
308317]
309318
310319[tool .coverage .run ]
@@ -379,6 +388,7 @@ manylinux-x86_64-image = "manylinux_2_28"
379388manylinux-pypy_x86_64-image = " manylinux_2_28"
380389manylinux-aarch64-image = " manylinux_2_28"
381390manylinux-pypy_aarch64-image = " manylinux_2_28"
391+ enable = [" cpython-freethreading" , " cpython-prerelease" ]
382392
383393[tool .cibuildwheel .linux ]
384394before-build = [" yum install -y ccache" ]
0 commit comments