Skip to content

Commit

Permalink
INTPYTHON-391 Add support for pyarrow 18.0.0 and Python 3.13 (#247)
Browse files Browse the repository at this point in the history
  • Loading branch information
blink1073 authored Oct 30, 2024
1 parent acb19b5 commit 8fcc9ba
Show file tree
Hide file tree
Showing 6 changed files with 18 additions and 13 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/release-python.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
- [ubuntu-20.04, manylinux_aarch64]
- [macos-14, macosx_*]
- [windows-2019, win_amd64]
python: ["cp39", "cp310", "cp311", "cp312"]
python: ["cp39", "cp310", "cp311", "cp312", "cp313"]
exclude:
- buildplat: [macos-14, macosx_*]
python: "cp39"
Expand Down Expand Up @@ -83,7 +83,7 @@ jobs:
if: ${{ matrix.buildplat[0] != 'macos-11' }}
env:
CIBW_BUILD: ${{ matrix.python }}-${{ matrix.buildplat[1] }}
MACOSX_DEPLOYMENT_TARGET: "10.14"
MACOSX_DEPLOYMENT_TARGET: "12.0"
run: python -m cibuildwheel --output-dir wheelhouse

- uses: actions/upload-artifact@v4
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-python.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:
strategy:
matrix:
os: ["ubuntu-latest", "macos-latest", "windows-latest"]
python-version: ["3.9", "3.10", "3.11", "3.12"]
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
fail-fast: false
name: CPython ${{ matrix.python-version }}-${{ matrix.os }}
steps:
Expand Down
1 change: 1 addition & 0 deletions bindings/python/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

# Changes in Version 1.6.0

- Add support for PyArrow 18.0 and Python 3.13.
- Drop support for Python 3.8.

# Changes in Version 1.5.2
Expand Down
11 changes: 6 additions & 5 deletions bindings/python/addtags.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Dependencies:
# - auditwheel>=5,<6
# - auditwheel>=6,<7
# Requires AUDITWHEEL_PLAT to be set (e.g. manylinux2014_x86_64)
# Usage:
# $ python addtags.py WHEEL_PATH WHEEL_DIR
Expand All @@ -8,7 +8,7 @@
from os.path import join as pjoin
from sys import argv

from auditwheel.policy import get_priority_by_name, get_replace_platforms
from auditwheel.policy import WheelPolicies, get_replace_platforms
from auditwheel.wheel_abi import analyze_wheel_abi
from auditwheel.wheeltools import InWheelCtx, add_platforms

Expand All @@ -29,12 +29,13 @@ def main(wheel_path, abi, wheel_dir):
if not exists(wheel_dir):
os.makedirs(wheel_dir)

reqd_tag = get_priority_by_name(abi)
policies = WheelPolicies()
reqd_tag = policies.get_priority_by_name(abi)
out_wheel = repair_wheel(wheel_path, abi, wheel_dir)

if out_wheel is not None:
analyzed_tag = analyze_wheel_abi(out_wheel).overall_tag
if reqd_tag < get_priority_by_name(analyzed_tag):
analyzed_tag = analyze_wheel_abi(policies, out_wheel, frozenset()).overall_tag
if reqd_tag < policies.get_priority_by_name(analyzed_tag):
print(
"Wheel is eligible for a higher priority tag. "
f"You requested {abi} but I have found this wheel is "
Expand Down
4 changes: 2 additions & 2 deletions bindings/python/cibw_before_build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ if [[ "$CIBW_BUILD" == *"macosx_"* ]]
then
if [[ "$ARCHFLAGS" == *"arm64"* ]]
then
platform="macosx_11_0_arm64"
platform="macosx_12_0_arm64"
export CMAKE_OSX_ARCHITECTURES="arm64"
else
platform="macosx_10_14_x86_64"
platform="macosx_12_0_x86_64"
export CMAKE_OSX_ARCHITECTURES="x86_64"
fi

Expand Down
9 changes: 6 additions & 3 deletions bindings/python/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@ requires = [
# ARROW-248, pin to less than 72.2.
"setuptools>=70,<72.2",
"cython>=3.0",
# Needed for numpy headers.
"numpy>=2.0",
# Must be kept in sync with "project.dependencies" below.
"pyarrow>=17.0,<17.1.0",
"pyarrow>=18.0,<18.1.0",
]

[project]
Expand All @@ -27,14 +29,15 @@ classifiers = [
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: Implementation :: CPython",
"Topic :: Database",
]
readme = "README.md"
requires-python = ">=3.9"
dependencies = [
# Must be kept in sync with "build_sytem.requires" above.
"pyarrow >=17.0,<17.1",
"pyarrow >=18.0,<18.1",
"pymongo >=4.4,<5",
"pandas >=1.3.5,<3",
"packaging >=23.2",
Expand Down Expand Up @@ -84,7 +87,7 @@ archs = "x86_64 aarch64"
manylinux-x86_64-image = "manylinux_2_28"
manylinux-aarch64-image = "manylinux_2_28"
repair-wheel-command = [
"pip install \"auditwheel>=5,<6\"",
"pip install \"auditwheel>=6,<7\"",
"python addtags.py {wheel} {dest_dir}"
]

Expand Down

0 comments on commit 8fcc9ba

Please sign in to comment.