Skip to content

chore(python/sedonadb,python/sedonadb-zarr): Update pyo3 to 0.29 - #1017

Merged
paleolimbot merged 2 commits into
apache:mainfrom
paleolimbot:pyo3-upgrade-more
Jun 30, 2026
Merged

chore(python/sedonadb,python/sedonadb-zarr): Update pyo3 to 0.29#1017
paleolimbot merged 2 commits into
apache:mainfrom
paleolimbot:pyo3-upgrade-more

Conversation

@paleolimbot

@paleolimbot paleolimbot commented Jun 29, 2026

Copy link
Copy Markdown
Member

Quick follow-up to #1012 (which took care of the hard part of enabling free threading) and taking care of the harder upgrade...this updates to the latest version fixes compile errors in the process.

Closes #949.

@paleolimbot
paleolimbot marked this pull request as ready for review June 29, 2026 20:57
@paleolimbot
paleolimbot requested a review from Copilot June 29, 2026 20:57

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Updates the Python extension crates (python/sedonadb and python/sedonadb-zarr) to use PyO3 0.29 via the workspace dependency, and adjusts the Rust bindings to match PyO3 API and macro changes introduced in the newer version.

Changes:

  • Bump PyO3 to 0.29.0 at the workspace level and switch Python crates to pyo3 = { workspace = true }.
  • Update PyO3 interop code to newer APIs (e.g., PyCapsule::new_with_value, cast()/into_bound()), and adjust #[pyclass(...)] options.
  • Refresh Cargo.lock to reflect the dependency upgrade.

Reviewed changes

Copilot reviewed 12 out of 13 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
python/sedonadb/src/udf.rs Updates PyO3 capsule creation and casting APIs; adjusts #[pyclass] options for UDF wrapper types.
python/sedonadb/src/schema.rs Updates Arrow schema capsule creation and #[pyclass] options for schema/type wrappers.
python/sedonadb/src/raster_loader.rs Updates PyO3 downcasting to cast() and adjusts #[pyclass] options/derives for raster loader types.
python/sedonadb/src/import_from.rs Updates capsule creation and capsule validation to use pointer_checked.
python/sedonadb/src/expr.rs Enables extraction from Python objects for internal expr wrapper types via from_py_object.
python/sedonadb/src/error.rs Adds PyClassGuardError conversion to PySedonaError (but currently has a compile-signature issue).
python/sedonadb/src/datasource.rs Marks PyExternalFormat as extractable from Python objects; updates capsule creation for Arrow stream.
python/sedonadb/src/dataframe.rs Updates capsule creation for FFI table provider and Arrow streams; removes now-unneeded CString usage.
python/sedonadb/Cargo.toml Switches PyO3 dependency to workspace-managed.
python/sedonadb-zarr/src/lib.rs Updates Arrow stream capsule creation and #[pyclass] options for view entry type.
python/sedonadb-zarr/Cargo.toml Switches PyO3 dependency to workspace-managed.
Cargo.toml Adds workspace dependency pyo3 = { version = "0.29.0" }.
Cargo.lock Updates locked dependency graph for PyO3 0.29.0 and transitive changes.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread python/sedonadb/src/error.rs

@james-willis james-willis left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

nice work

@paleolimbot
paleolimbot merged commit 981bfc0 into apache:main Jun 30, 2026
17 checks passed
@paleolimbot
paleolimbot deleted the pyo3-upgrade-more branch June 30, 2026 18:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants