Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/packaging_wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python: [ cp311, cp312, cp313 ]
python: [ cp311, cp312, cp313, cp315 ]
platform:
- { os: windows-2022, arch: amd64, cibw_system: win }
- { os: windows-11-arm, arch: ARM64, cibw_system: win } # cibw requires ARM64 to be uppercase
Expand Down
40 changes: 31 additions & 9 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ classifiers = [
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: Python :: 3.15",
"Programming Language :: C++",
]
authors = [{name = "DuckDB Foundation"}]
Expand All @@ -46,7 +47,8 @@ all = [ # users can install duckdb with 'duckdb[all]', which will install this l
"fsspec", # used in duckdb.filesystem
"numpy", # used in duckdb.experimental.spark and in duckdb.fetchnumpy()
"pandas", # used for pandas dataframes all over the place
"pyarrow", # used for pyarrow support
# TODO: Remove after 3.15.0 release
"pyarrow; sys_platform != 'win32' or platform_machine != 'ARM64'", # used for pyarrow support
"adbc-driver-manager", # for the adbc driver
]

Expand Down Expand Up @@ -241,9 +243,21 @@ name = "pytorch-cpu"
url = "https://download.pytorch.org/whl/cpu"
explicit = true

[[tool.uv.index]]
# TODO: Remove after 3.15.0 release
name = "scientific-python-nightly"
url = "https://pypi.anaconda.org/scientific-python-nightly-wheels/simple"
explicit = true

[tool.uv.sources]
torch = [ { index = "pytorch-cpu" } ]
torchvision = [ { index = "pytorch-cpu" } ]
pandas = [
{ index = "scientific-python-nightly", marker = "python_version >= '3.15'" },
]
pyarrow = [
{ index = "scientific-python-nightly", marker = "python_version >= '3.15'" },
]

# todo: adjust for windows arm64 while test dependencies become available
[dependency-groups] # used for development only, requires pip >=25.1.0
Expand All @@ -257,7 +271,7 @@ stubdeps = [ # dependencies used for typehints in the stubs
"typing-extensions",
]
test = [ # dependencies used for running tests
"adbc-driver-manager>=1.10.0; python_version >= '3.10' and (sys_platform != 'win32' or platform_machine != 'ARM64')",
"adbc-driver-manager>=1.10.0; python_version >= '3.10' and python_version < '3.15' and (sys_platform != 'win32' or platform_machine != 'ARM64')",
"adbc-driver-manager>=1.7.0; python_version < '3.10' and (sys_platform != 'win32' or platform_machine != 'ARM64')",
"pytest",
"pytest-reraise",
Expand All @@ -267,9 +281,9 @@ test = [ # dependencies used for running tests
"pytest_codspeed",
"coverage",
"gcovr; sys_platform != 'win32' or platform_machine != 'ARM64'",
"gcsfs; sys_platform != 'win32' or platform_machine != 'ARM64'",
"gcsfs; python_version < '3.15' and (sys_platform != 'win32' or platform_machine != 'ARM64')",
"packaging",
"polars>=1.33.0",
"polars>=1.33.0; python_version < '3.15'",
"psutil",
"py4j",
"pyotp",
Expand All @@ -278,14 +292,18 @@ test = [ # dependencies used for running tests
"requests",
"urllib3",
"fsspec>=2022.11.0; sys_platform != 'win32' or platform_machine != 'ARM64'",
"pandas>=3.0.0; python_version > '3.10'",
"pandas>=3.0.0; python_version >= '3.11' and python_version < '3.15'",
"pandas>=3.0.0.dev0; python_version >= '3.15'",
"pandas<3.0.0; python_version < '3.11'",
"pyarrow>=23.0.0; python_version >= '3.10' and (sys_platform != 'win32' or platform_machine != 'ARM64')",
"pyarrow>=23.0.0; python_version >= '3.10' and python_version < '3.15' and (sys_platform != 'win32' or platform_machine != 'ARM64')",
"pyarrow>=23.0.0.dev0; python_version >= '3.15' and (sys_platform != 'win32' or platform_machine != 'ARM64')",
"pyarrow>=18.0.0; python_version < '3.10' and (sys_platform != 'win32' or platform_machine != 'ARM64')",
"torch>=2.2.2; python_version < '3.13' and ( sys_platform != 'win32' or platform_machine != 'ARM64' )",
"torch>=2.2.2,<2.12.1; python_version > '3.11' and python_version < '3.13' and sys_platform == 'win32' and platform_machine == 'ARM64'",
"torch>=2.2.2,<2.11.0; python_version >= '3.13' and python_version < '3.14' and ( sys_platform != 'darwin' or platform_machine != 'x86_64' ) and ( sys_platform != 'win32' or platform_machine != 'ARM64' )",
"torch>=2.10.0; python_version >= '3.14' and ( sys_platform != 'darwin' or platform_machine != 'x86_64' ) and ( sys_platform != 'win32' or platform_machine != 'ARM64' )",
"torch>=2.10.0; python_version >= '3.14' and python_version < '3.15' and ( sys_platform != 'darwin' or platform_machine != 'x86_64' ) and ( sys_platform != 'win32' or platform_machine != 'ARM64' )",
# cp315: torch only ships manylinux wheels on the cpu index; skip elsewhere (torch tests importorskip)
"torch>=2.10.0; python_version >= '3.15' and sys_platform == 'linux'",
"tensorflow==2.14.0; sys_platform == 'darwin' and python_version < '3.12'",
"tensorflow-cpu>=2.14.0; sys_platform == 'linux' and platform_machine != 'aarch64' and python_version < '3.12'",
"tensorflow-cpu>=2.14.0; sys_platform == 'win32' and platform_machine != 'ARM64' and python_version < '3.12'",
Expand All @@ -304,9 +322,11 @@ bench = [ # Pinned deps for the benchmark suite (see benchmarks/README.md). Mini
"numpy<2; ( sys_platform != 'win32' or platform_machine != 'ARM64' ) and python_version < '3.12'",
"numpy>=2; ( sys_platform != 'win32' or platform_machine != 'ARM64' ) and python_version >= '3.12'",
"numpy>=2.3; sys_platform == 'win32' and platform_machine == 'ARM64' and python_version >= '3.11'",
"pandas>=3.0.0; python_version > '3.10'",
"pandas>=3.0.0; python_version >= '3.11' and python_version < '3.15'",
"pandas>=3.0.0.dev0; python_version >= '3.15'",
"pandas<3.0.0; python_version < '3.11'",
"pyarrow>=23.0.0; python_version >= '3.10' and (sys_platform != 'win32' or platform_machine != 'ARM64')",
"pyarrow>=23.0.0; python_version >= '3.10' and python_version < '3.15' and (sys_platform != 'win32' or platform_machine != 'ARM64')",
"pyarrow>=23.0.0.dev0; python_version >= '3.15' and (sys_platform != 'win32' or platform_machine != 'ARM64')",
"pyarrow>=18.0.0; python_version < '3.10' and (sys_platform != 'win32' or platform_machine != 'ARM64')",
]
scripts = [ # dependencies used for running scripts
Expand Down Expand Up @@ -365,6 +385,8 @@ filterwarnings = [
# Pyspark is throwing these warnings
"ignore:distutils Version classes are deprecated:DeprecationWarning",
"ignore:is_datetime64tz_dtype is deprecated:DeprecationWarning",
# pandas 3.1.0.dev0deprecates the inplace keyword with a warning
"ignore::pandas.errors.Pandas4Warning",
]

[tool.mypy]
Expand Down
Loading