Skip to content
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
25 changes: 4 additions & 21 deletions .github/workflows/dist-python.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,17 +39,10 @@ jobs:
- [ubuntu-24.04, manylinux_aarch64]
- [macos-14, macosx_*]
- [windows-2022, win_amd64]
python: ["cp39", "cp310", "cp311", "cp312", "cp313", "cp313t"]
python: ["cp310", "cp311", "cp312", "cp313", "cp314", "cp314t"]
exclude:
- buildplat: [macos-14, macosx_*]
python: "cp39"
- buildplat: [windows-2022, win_amd64]
python: "cp313t"
include:
- buildplat: [macos-latest, macosx_*]
python: "cp39"


python: "cp314t"
steps:
- name: Checkout pymongoarrow
uses: actions/checkout@v6
Expand Down Expand Up @@ -87,22 +80,12 @@ jobs:
pipx install "cmake>=3.15,<4"

- name: Install deps
run: python -m pip install "cibuildwheel>=2.4,<3" uv rust-just

- name: Build MacOS Py39 Wheels
if: ${{ matrix.python == 'cp39' && matrix.buildplat[0] == 'macos-11' }}
env:
MACOS_TEST_SKIP: "*arm64"
CIBW_BUILD: cp39-macosx_*
CIBW_ENABLE: cpython-freethreading
MACOSX_DEPLOYMENT_TARGET: "10.14"
run: python -m cibuildwheel --output-dir wheelhouse
run: python -m pip install "cibuildwheel>=3.3,<4" uv rust-just

- name: Build wheels
if: ${{ matrix.buildplat[0] != 'macos-11' }}
env:
CIBW_BUILD: ${{ matrix.python }}-${{ matrix.buildplat[1] }}
CIBW_ENABLE: cpython-freethreading
MACOSX_DEPLOYMENT_TARGET: "12.0"
run: python -m cibuildwheel --output-dir wheelhouse

Expand All @@ -123,7 +106,7 @@ jobs:
- uses: actions/setup-python@v6
with:
# Build sdist on lowest supported Python
python-version: '3.9'
python-version: '3.10'

- name: Install deps
run: |
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/test-python.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:
strategy:
matrix:
os: ["ubuntu-latest", "macos-latest", "windows-latest"]
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.13t"]
python-version: [ "3.10", "3.11", "3.12", "3.13", "3.14", "3.14t"]
fail-fast: false
name: CPython ${{ matrix.python-version }}-${{ matrix.os }}
steps:
Expand Down Expand Up @@ -138,7 +138,7 @@ jobs:
- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: 3.9
python-version: "3.10"
cache: 'pip'
cache-dependency-path: '**/pyproject.toml'
- name: Install Deps
Expand All @@ -159,7 +159,7 @@ jobs:
- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: 3.9
python-version: "3.10"
cache: 'pip'
cache-dependency-path: '**/pyproject.toml'
- name: Install Deps
Expand Down
6 changes: 6 additions & 0 deletions bindings/python/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,12 @@

---

# Changes in Version 1.11.0 (2025/XX/YY)

- Add support for PyArrow 22.0.
- Add support for Python 3.14 and 3.14 free-threaded on Linux and MacOS.
- Drop support for Python 3.9 and Python 3.13 free-threaded.

# Changes in Version 1.10.0 (2025/08/05)

- Add support for PyArrow 21.0.
Expand Down
2 changes: 1 addition & 1 deletion bindings/python/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ be of interest or that has already been addressed.

## Supported Interpreters

PyMongoArrow supports CPython 3.9+ and PyPy3.9+. Language features not
PyMongoArrow supports CPython 3.10+. Language features not
supported by all interpreters can not be used.

## Style Guide
Expand Down
2 changes: 1 addition & 1 deletion bindings/python/justfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import-check:
uv run python -c "from pymongoarrow.lib import libbson_version"

benchmark *args:
uv sync --dev --extra test --extra test-polars --extra test-pandas
uv sync --dev --group benchmark --extra test --extra test-polars --extra test-pandas
uv run asv run -e --python=$(uv run python -c "import sys;print(sys.executable)") {{args}}

install:
Expand Down
15 changes: 9 additions & 6 deletions bindings/python/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ requires = [
# Needed for numpy headers.
"numpy>=2.0",
# Must be kept in sync with "project.dependencies" below.
"pyarrow>=21.0,<21.1.0",
"pyarrow>=22.0,<22.1.0",
]

[project]
Expand All @@ -25,19 +25,19 @@ classifiers = [
"Operating System :: POSIX",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: Python :: Implementation :: CPython",
"Topic :: Database",
]
readme = "README.md"
requires-python = ">=3.9"
requires-python = ">=3.10"
dependencies = [
# Must be kept in sync with "build_sytem.requires" above.
"pyarrow >=21.0,<21.1",
"pyarrow >=22.0,<22.1",
"pymongo >=4.4,<5",
"numpy>=2.0.1",
"packaging >=23.2",
Expand Down Expand Up @@ -107,6 +107,7 @@ filterwarnings = [
"error",
"module:The global interpreter lock:RuntimeWarning", # from pandas
"module:matching against an empty string will:pytest.PytestWarning", # from pandas
"module:.*behaviour will change in pandas 3.0:FutureWarning", # from pandas
]

[tool.ruff]
Expand Down Expand Up @@ -149,17 +150,19 @@ exclude = [
"setup.py" = ["PTH", "EM", "B", "S", "E501"]
"docs/source/conf.py" = ["E501", "S", "PTH"]
"benchmarks.py" = ["T201", "E501", "C4"]
"test/*.py" = ["PT", "S", "ARG", "B", "C", "EM", "E501", "RUF005"]
"test/*.py" = ["PT", "S", "ARG", "B", "C", "EM", "E501", "RUF005", "UP038"]

[dependency-groups]
dev = [
"asv>=0.6.4",
"check-manifest>=0.50",
"packaging>=25.0",
"pre-commit>=4.2.0",
"setuptools>=79.0.0",
"sphinx-autobuild>=2024.10.3",
]
benchmark = [
"asv>=0.6.4"
]
docs = [
"sphinx>=5.3,<9",
"sphinx_rtd_theme>=2,<4",
Expand Down
Loading
Loading