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())
}