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

kevinjqliu pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iceberg-python.git


The following commit(s) were added to refs/heads/main by this push:
     new 4071d39f Build: Bump datafusion to 52.3.0 and pyiceberg-core to 0.9.0 
(#3171)
4071d39f is described below

commit 4071d39f13fb8004d8d84827fca0d51d766ff114
Author: Kevin Liu <[email protected]>
AuthorDate: Fri Mar 20 18:10:08 2026 -0700

    Build: Bump datafusion to 52.3.0 and pyiceberg-core to 0.9.0 (#3171)
    
    <!--
    Thanks for opening a pull request!
    -->
    
    <!-- In the case this PR will resolve an issue, please replace
    ${GITHUB_ISSUE_ID} below with the actual Github issue id. -->
    <!-- Closes #${GITHUB_ISSUE_ID} -->
    
    # Rationale for this change
    Upgrade deps
    * datafusion 51 -> 52.3
    * pyiceberg-core 0.8.0 -> 0.9.0
    
    Update `__datafusion_table_provider__` to take in `session` param as per
    [df 52 migration
    
guide](https://github.com/apache/datafusion-python/blob/85a3595444e7946dc4eaa166cb4843bee2bf2f07/docs/source/user-guide/upgrade-guides.rst#datafusion-5200)
    
    Prevent `dependabot` from auto update `datafusion`, we do it manually
    
    ## Are these changes tested?
    
    ## Are there any user-facing changes?
    
    <!-- In the case of user-facing changes, please add the changelog label.
    -->
    
    ---------
    
    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] 
<49699333+dependabot[bot]@users.noreply.github.com>
---
 .github/dependabot.yml      |  2 ++
 pyiceberg/table/__init__.py |  7 ++++---
 pyproject.toml              |  6 +++---
 uv.lock                     | 37 ++++++++++++++++++-------------------
 4 files changed, 27 insertions(+), 25 deletions(-)

diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 7f5b7403..4416fc89 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -24,6 +24,8 @@ updates:
     schedule:
       interval: "weekly"
     open-pull-requests-limit: 50
+    ignore:
+      - dependency-name: "datafusion"
   - package-ecosystem: "github-actions"
     directory: "/"
     schedule:
diff --git a/pyiceberg/table/__init__.py b/pyiceberg/table/__init__.py
index 68089beb..bb8765b6 100644
--- a/pyiceberg/table/__init__.py
+++ b/pyiceberg/table/__init__.py
@@ -1559,7 +1559,7 @@ class Table:
 
         return pl.scan_iceberg(self)
 
-    def __datafusion_table_provider__(self) -> IcebergDataFusionTable:
+    def __datafusion_table_provider__(self, session: Any | None = None) -> 
IcebergDataFusionTable:
         """Return the DataFusion table provider PyCapsule interface.
 
         To support DataFusion features such as push down filtering, this 
function will return a PyCapsule
@@ -1598,11 +1598,12 @@ class Table:
         """
         from pyiceberg_core.datafusion import IcebergDataFusionTable
 
-        return IcebergDataFusionTable(
+        provider = IcebergDataFusionTable(
             identifier=self.name(),
             metadata_location=self.metadata_location,
             file_io_properties=self.io.properties,
-        ).__datafusion_table_provider__()
+        ).__datafusion_table_provider__
+        return provider(session)
 
 
 class StaticTable(Table):
diff --git a/pyproject.toml b/pyproject.toml
index 6eafa379..ad9bb7cb 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -55,7 +55,7 @@ pyiceberg = "pyiceberg.cli.console:run"
 [project.optional-dependencies]
 pyarrow = [
     "pyarrow>=17.0.0",
-    "pyiceberg-core>=0.5.1,<0.9.0",
+    "pyiceberg-core>=0.5.1,<0.10.0",
 ]
 pandas = [
     "pandas>=1.0.0",
@@ -93,8 +93,8 @@ sql-sqlite = ["sqlalchemy>=2.0.18,<3"]
 gcsfs = ["gcsfs>=2023.1.0"]
 rest-sigv4 = ["boto3>=1.24.59"]
 hf = ["huggingface-hub>=0.24.0"]
-pyiceberg-core = ["pyiceberg-core>=0.5.1,<0.9.0"]
-datafusion = ["datafusion>=51,<52"]
+pyiceberg-core = ["pyiceberg-core>=0.5.1,<0.10.0"]
+datafusion = ["datafusion>=52,<53"]
 gcp-auth = ["google-auth>=2.4.0"]
 entra-auth = ["azure-identity>=1.25.1"]
 geoarrow = ["geoarrow-pyarrow>=0.2.0"]
diff --git a/uv.lock b/uv.lock
index f0b1c890..f01fc1c6 100644
--- a/uv.lock
+++ b/uv.lock
@@ -1192,19 +1192,19 @@ wheels = [
 
 [[package]]
 name = "datafusion"
-version = "51.0.0"
+version = "52.3.0"
 source = { registry = "https://pypi.org/simple"; }
 dependencies = [
     { name = "pyarrow" },
     { name = "typing-extensions", marker = "python_full_version < '3.13'" },
 ]
-sdist = { url = 
"https://files.pythonhosted.org/packages/2c/6d/d0e2632c93bbcca0687eeda672af3f92042ecd349df7be55da86253594a9/datafusion-51.0.0.tar.gz";,
 hash = 
"sha256:1887c7d5ed3ae5d9f389e62ba869864afad4006a3f7c99ef0ca4707782a7838f", size 
= 193751, upload-time = "2026-01-09T13:23:41.562Z" }
+sdist = { url = 
"https://files.pythonhosted.org/packages/db/d4/a5ad7b665a80008901892fde61dc667318db0652a955d706ddca3a224b5a/datafusion-52.3.0.tar.gz";,
 hash = 
"sha256:2e8b02ad142b1a0d673f035d96a0944a640ac78275003d7e453cee4afe4a20a4", size 
= 205026, upload-time = "2026-03-16T10:54:07.739Z" }
 wheels = [
-    { url = 
"https://files.pythonhosted.org/packages/cf/a9/7717cec053a3309be3020fe3147e3f76e5bf21295fa8adf9b52dd44ea3ff/datafusion-51.0.0-cp310-abi3-macosx_10_12_x86_64.whl";,
 hash = 
"sha256:0c0d265fe3ee0dcbfa7cc3c64c7cd94fc493f38418bd79debb7ec29f29b7176e", size 
= 30389413, upload-time = "2026-01-09T13:23:23.266Z" },
-    { url = 
"https://files.pythonhosted.org/packages/55/45/72c9874fd3740a4cb9d55049fdbae0df512dc5433e9f1176f3cfd970f1a1/datafusion-51.0.0-cp310-abi3-macosx_11_0_arm64.whl";,
 hash = 
"sha256:43e6011db86e950bf9a21ed73cc089c2346b340a41a4f1044268af6c3a357acc", size 
= 26982206, upload-time = "2026-01-09T13:23:27.437Z" },
-    { url = 
"https://files.pythonhosted.org/packages/21/ac/b32ba1f25d38fc16e7623cc4bfb7bd68db61be2ef27b2d9969ea5c865765/datafusion-51.0.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";,
 hash = 
"sha256:e76803907150159aa059d5cc9291645bbaac1b6a46d07e56035118d327b741ae", size 
= 33246117, upload-time = "2026-01-09T13:23:30.981Z" },
-    { url = 
"https://files.pythonhosted.org/packages/0b/4e/437121422ef010690fc3cdd7f080203e986ba00e0e3c3b577e03f5b54ca2/datafusion-51.0.0-cp310-abi3-manylinux_2_28_aarch64.whl";,
 hash = 
"sha256:9d0cfabfe1853994adc2e6e9da5f36c1eb061102e34a2f1101fa935c6991c9e1", size 
= 31421867, upload-time = "2026-01-09T13:23:34.436Z" },
-    { url = 
"https://files.pythonhosted.org/packages/db/fc/58cf27fcb85b2fd2a698253ae46213b1cbda784407e205c148f4006c1429/datafusion-51.0.0-cp310-abi3-win_amd64.whl";,
 hash = 
"sha256:fd5f9abfd6669062debf0658d13e4583234c89d4df95faf381927b11cea411f5", size 
= 32517679, upload-time = "2026-01-09T13:23:39.615Z" },
+    { url = 
"https://files.pythonhosted.org/packages/55/63/1bb0737988cefa77274b459d64fa4b57ba4cf755639a39733e9581b5d599/datafusion-52.3.0-cp310-abi3-macosx_10_12_x86_64.whl";,
 hash = 
"sha256:a73f02406b2985b9145dd97f8221a929c9ef3289a8ba64c6b52043e240938528", size 
= 31503230, upload-time = "2026-03-16T10:53:50.312Z" },
+    { url = 
"https://files.pythonhosted.org/packages/d6/e3/ea3b79239953c3044d19d8e9581015da025b6640796db03799e435b17910/datafusion-52.3.0-cp310-abi3-macosx_11_0_arm64.whl";,
 hash = 
"sha256:118a1f0add6a3f91fcbc90c71819fe08750e2981637d5e7b346e099e94a20b8b", size 
= 28159497, upload-time = "2026-03-16T10:53:54.032Z" },
+    { url = 
"https://files.pythonhosted.org/packages/24/c8/7d325feb4b7509ae03857fd7e164e95ec72e8c9f3dfd3178ec7f80d53977/datafusion-52.3.0-cp310-abi3-manylinux_2_28_aarch64.whl";,
 hash = 
"sha256:253ce7aee5fe84bd6ee290c20608114114bdb5115852617f97d3855d36ad9341", size 
= 30769154, upload-time = "2026-03-16T10:53:57.835Z" },
+    { url = 
"https://files.pythonhosted.org/packages/37/ee/478689c69b3cb1ccabb2d52feac0c181f6cdf20b51a81df35344b1dab9a6/datafusion-52.3.0-cp310-abi3-manylinux_2_28_x86_64.whl";,
 hash = 
"sha256:2af3469d2f06959bec88579ab107a72f965de18b32e607069bbdd0b859ed8dbb", size 
= 33060335, upload-time = "2026-03-16T10:54:01.715Z" },
+    { url = 
"https://files.pythonhosted.org/packages/1c/48/01906ab5c1a70373c6874ac5192d03646fa7b94d9ff06e3f676cb6b0f43f/datafusion-52.3.0-cp310-abi3-win_amd64.whl";,
 hash = 
"sha256:9fb35738cf4dbff672dbcfffc7332813024cb0ad2ab8cda1fb90b9054277ab0c", size 
= 33765807, upload-time = "2026-03-16T10:54:05.728Z" },
 ]
 
 [[package]]
@@ -4692,7 +4692,7 @@ requires-dist = [
     { name = "cachetools", specifier = ">=5.5,<8.0" },
     { name = "click", specifier = ">=7.1.1,<9.0.0" },
     { name = "daft", marker = "extra == 'daft'", specifier = ">=0.5.0" },
-    { name = "datafusion", marker = "extra == 'datafusion'", specifier = 
">=51,<52" },
+    { name = "datafusion", marker = "extra == 'datafusion'", specifier = 
">=52,<53" },
     { name = "duckdb", marker = "extra == 'duckdb'", specifier = 
">=0.5.0,<2.0.0" },
     { name = "fsspec", specifier = ">=2023.1.0" },
     { name = "gcsfs", marker = "extra == 'gcsfs'", specifier = ">=2023.1.0" },
@@ -4711,8 +4711,8 @@ requires-dist = [
     { name = "pyarrow", marker = "extra == 'pyarrow'", specifier = ">=17.0.0" 
},
     { name = "pyarrow", marker = "extra == 'ray'", specifier = ">=17.0.0" },
     { name = "pydantic", specifier = 
">=2.0,!=2.4.0,!=2.4.1,!=2.12.0,!=2.12.1,<3.0" },
-    { name = "pyiceberg-core", marker = "extra == 'pyarrow'", specifier = 
">=0.5.1,<0.9.0" },
-    { name = "pyiceberg-core", marker = "extra == 'pyiceberg-core'", specifier 
= ">=0.5.1,<0.9.0" },
+    { name = "pyiceberg-core", marker = "extra == 'pyarrow'", specifier = 
">=0.5.1,<0.10.0" },
+    { name = "pyiceberg-core", marker = "extra == 'pyiceberg-core'", specifier 
= ">=0.5.1,<0.10.0" },
     { name = "pyparsing", specifier = ">=3.1.0,<4.0.0" },
     { name = "pyroaring", specifier = ">=1.0.0,<2.0.0" },
     { name = "python-snappy", marker = "extra == 'snappy'", specifier = 
">=0.6.0,<1.0.0" },
@@ -4771,17 +4771,16 @@ notebook = [{ name = "jupyterlab", specifier = 
">=4.0.0" }]
 
 [[package]]
 name = "pyiceberg-core"
-version = "0.8.0"
+version = "0.9.0"
 source = { registry = "https://pypi.org/simple"; }
-sdist = { url = 
"https://files.pythonhosted.org/packages/9c/a0/0bcedbbe901484aacb6c605505f8574fd65954826e592fdb163e1cfb09f2/pyiceberg_core-0.8.0.tar.gz";,
 hash = 
"sha256:59021ca5bc7ca95f2b06fb0730280fb3f60ed898060bcd874c156d093853b5f3", size 
= 618882, upload-time = "2026-01-20T00:50:40.076Z" }
+sdist = { url = 
"https://files.pythonhosted.org/packages/ab/a3/2fd5953aa1cdc8dca3b498b4d7691db8431a1199df95a4e826d120860880/pyiceberg_core-0.9.0.tar.gz";,
 hash = 
"sha256:c8493b99160c269e175757f46fc0ff06bc79314106865ec3cc49da07099194f4", size 
= 687481, upload-time = "2026-03-20T18:37:08.758Z" }
 wheels = [
-    { url = 
"https://files.pythonhosted.org/packages/77/e0/9a8fa537d29d34e3265682056d6517b926975107b5b1af6057d1713557d6/pyiceberg_core-0.8.0-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl";,
 hash = 
"sha256:d60c75a741a1d9199277a9e50fc3adbc84ab286a881f9b1f721fa120e7197912", size 
= 24733948, upload-time = "2026-01-20T00:50:20.566Z" },
-    { url = 
"https://files.pythonhosted.org/packages/6d/3e/f5522c1e9c20c3e89bfd76b2f54ba38e57389e5a2872233e49e60a131e04/pyiceberg_core-0.8.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl";,
 hash = 
"sha256:1d71e566b2d56141760ff8734667eede5a5d60963dfbcdce80c2dd3cf2edb39d", size 
= 11682041, upload-time = "2026-01-20T00:50:22.843Z" },
-    { url = 
"https://files.pythonhosted.org/packages/95/4b/f799e5c7a2b2ede75514e64901503358a7a134ca1ea217fd86535af533b6/pyiceberg_core-0.8.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";,
 hash = 
"sha256:82782d1b974200c5526d069391ba2bc235a868b5d0d6ac17ca406df735ab89a3", size 
= 13835428, upload-time = "2026-01-20T00:50:25.021Z" },
-    { url = 
"https://files.pythonhosted.org/packages/0b/ff/2dbd6f7c99a2f782f908be2cc997371de45cc1df61abeeff1fc0165c05b6/pyiceberg_core-0.8.0-cp310-abi3-manylinux_2_28_aarch64.whl";,
 hash = 
"sha256:0e14b2aea26293ba5878c398adc880fff0f1ce5d989e00d4b1a930c143541114", size 
= 14580807, upload-time = "2026-01-20T00:50:27.158Z" },
-    { url = 
"https://files.pythonhosted.org/packages/bc/13/176c2b00a9b804af79d8b697ba1a2525f4390e959be777076972071ca069/pyiceberg_core-0.8.0-cp310-abi3-win_amd64.whl";,
 hash = 
"sha256:a5726cc62f9ac2582a0d5dde92e4140b711b5e29ec0c6c636d6d2782d984031b", size 
= 13354110, upload-time = "2026-01-20T00:50:29.785Z" },
-    { url = 
"https://files.pythonhosted.org/packages/43/33/2c93b4d40f38e173dcfb2f555a2d992e3345d38eba8f8fbb2731c2e18462/pyiceberg_core-0.8.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl";,
 hash = 
"sha256:0c51f1e6a4112864c8fface904429814b26baa45efab7efbae8013796e815915", size 
= 11682427, upload-time = "2026-01-20T00:50:31.714Z" },
-    { url = 
"https://files.pythonhosted.org/packages/7c/97/25e835c2bf9b090bf97174638bc26a034952208e2767730035e285766bb6/pyiceberg_core-0.8.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl";,
 hash = 
"sha256:6d2e71fb83ae578d93f24699ee131b77e5ee630b8ec6310acf570d04062ef2fb", size 
= 14581679, upload-time = "2026-01-20T00:50:33.869Z" },
+    { url = 
"https://files.pythonhosted.org/packages/fa/2f/ccb605b8f09dc417dc01345f13273688efcd08e9a4c8297749fab20a1441/pyiceberg_core-0.9.0-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl";,
 hash = 
"sha256:c359af999247087119f5986c11420eaa41cc31d30de89cf59ddc3077c4498523", size 
= 18447345, upload-time = "2026-03-20T18:36:46.952Z" },
+    { url = 
"https://files.pythonhosted.org/packages/c7/c0/f1b0d969b8c29d76c2a5bce8bdc5cc7ad50d91f221f287b5a00f144475b0/pyiceberg_core-0.9.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl";,
 hash = 
"sha256:117e38359219d2834b949124027d0c9d82d42bb5b41e7475bd484bb1769703ea", size 
= 8796400, upload-time = "2026-03-20T18:36:49.444Z" },
+    { url = 
"https://files.pythonhosted.org/packages/c2/70/1d80a9f612748f8fdd62c5acddddac89b8c5834f44d10a522657e3b7b041/pyiceberg_core-0.9.0-cp310-abi3-manylinux_2_28_aarch64.whl";,
 hash = 
"sha256:125272db73593b4153d7a95f559ab1e5623b60564c5e45fb89cf638f4b57870a", size 
= 10869079, upload-time = "2026-03-20T18:36:52.182Z" },
+    { url = 
"https://files.pythonhosted.org/packages/46/30/5b65a2748ed6d96ca9fbc68a99eb9430127a0387393c92efb363fc709c98/pyiceberg_core-0.9.0-cp310-abi3-win_amd64.whl";,
 hash = 
"sha256:b0d126bdd901a7a3e9b42901a22be9c221b46a8e9931ee2da404508f891e03a2", size 
= 9924305, upload-time = "2026-03-20T18:36:54.28Z" },
+    { url = 
"https://files.pythonhosted.org/packages/c1/6e/9a2bdad1efc1aefe6bf9651eb2251ca28a09ed4309ce50d365abb3640e5a/pyiceberg_core-0.9.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl";,
 hash = 
"sha256:c67d9e4d2c5d831796fe51d63d7edb95fb4db4d6c05ff9c653873d52be8816cf", size 
= 8796030, upload-time = "2026-03-20T18:36:58.98Z" },
+    { url = 
"https://files.pythonhosted.org/packages/d3/12/59167a1ec7868eb06178bf91c16ffbc0f646ea8a09bef04b3b2433c5e290/pyiceberg_core-0.9.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl";,
 hash = 
"sha256:cad7fc1faac17455122d4abf6f7f83e818cbc66d20720a6c53395cd07e154370", size 
= 10869219, upload-time = "2026-03-20T18:37:00.98Z" },
 ]
 
 [[package]]

Reply via email to