Skip to content

INTPYTHON-391 Add support for pyarrow 18.0.0 and Python 3.13 #247

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 14 commits into from
Oct 30, 2024
Merged
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
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"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How come 12 was chosen (Monterey), not 14 (Sonoma)? And .0 instead of latest .7?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We're matching the upstream wheels

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
Loading