This is an automated email from the ASF dual-hosted git repository.

yihua pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/hudi-rs.git


The following commit(s) were added to refs/heads/main by this push:
     new 75872134 build(python): bound the datafusion extra to the 54.x major 
(#720)
75872134 is described below

commit 75872134ca6127ff4f3c38a39a819082041764bf
Author: Y Ethan Guo <[email protected]>
AuthorDate: Fri Sep 4 08:03:49 2026 -0700

    build(python): bound the datafusion extra to the 54.x major (#720)
---
 python/pyproject.toml             | 4 +++-
 python/src/datafusion_internal.rs | 2 +-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/python/pyproject.toml b/python/pyproject.toml
index 11253b1d..0777de8e 100644
--- a/python/pyproject.toml
+++ b/python/pyproject.toml
@@ -53,7 +53,9 @@ lint = [
     "mypy==2.3.1",
 ]
 datafusion = [
-    "datafusion==54.0.0",
+    # The FFI contract is per DataFusion major: keep the Python package on the
+    # same major as the Rust workspace's datafusion dependency.
+    "datafusion>=54.0.0,<55",
 ]
 
 [tool.maturin]
diff --git a/python/src/datafusion_internal.rs 
b/python/src/datafusion_internal.rs
index f25167d0..96f46cdd 100644
--- a/python/src/datafusion_internal.rs
+++ b/python/src/datafusion_internal.rs
@@ -56,7 +56,7 @@ fn extract_codec(session: Bound<PyAny>) -> 
PyResult<FFI_LogicalExtensionCodec> {
     // holds. It does not settle which `datafusion-ffi` built it, because the
     // name carries no version: a `datafusion` wheel built against another 
major
     // would present the same name over a different layout. Holding the two in
-    // step is what the pinned `datafusion` extra in pyproject.toml is for.
+    // step is what the major-bounded `datafusion` extra in pyproject.toml is 
for.
     let codec = unsafe { codec.cast::<FFI_LogicalExtensionCodec>().as_ref() };
     Ok(codec.clone())
 }

Reply via email to