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
2 changes: 2 additions & 0 deletions icechunk-python/python/icechunk/_icechunk_python.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -1243,6 +1243,8 @@ class PyStore:
@property
def supports_writes(self) -> bool: ...
@property
def supports_consolidated_metadata(self) -> bool: ...
@property
def supports_deletes(self) -> bool: ...
async def set(self, key: str, value: bytes) -> None: ...
async def set_if_not_exists(self, key: str, value: bytes) -> None: ...
Expand Down
4 changes: 4 additions & 0 deletions icechunk-python/python/icechunk/store.py
Original file line number Diff line number Diff line change
Expand Up @@ -320,6 +320,10 @@ def supports_listing(self) -> bool:
"""Does the store support listing?"""
return self._store.supports_listing

@property
def supports_consolidated_metadata(self) -> bool:
return self._store.supports_consolidated_metadata

@property
def supports_deletes(self) -> bool:
return self._store.supports_deletes
Expand Down
6 changes: 6 additions & 0 deletions icechunk-python/src/store.rs
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,12 @@ impl PyStore {
})
}

#[getter]
fn supports_consolidated_metadata(&self) -> PyIcechunkStoreResult<bool> {
let supports = self.0.supports_consolidated_metadata()?;
Ok(supports)
}

#[getter]
fn supports_deletes(&self) -> PyIcechunkStoreResult<bool> {
let supports_deletes = self.0.supports_deletes()?;
Expand Down
7 changes: 7 additions & 0 deletions icechunk-python/tests/test_store.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,3 +67,10 @@ async def test_support_dimension_names_null() -> None:
(await store.get("0/zarr.json", prototype=default_buffer_prototype())).to_bytes()
)
assert "dimension_names" not in meta


def test_doesnt_support_consolidated_metadata() -> None:
repo = parse_repo("memory", "test")
session = repo.writable_session("main")
store = session.store
assert not store.supports_consolidated_metadata
5 changes: 5 additions & 0 deletions icechunk/src/store.rs
Original file line number Diff line number Diff line change
Expand Up @@ -271,6 +271,11 @@ impl Store {
Ok(true)
}

#[instrument(skip_all)]
pub fn supports_consolidated_metadata(&self) -> StoreResult<bool> {
Ok(false)
}

#[instrument(skip_all)]
pub fn supports_deletes(&self) -> StoreResult<bool> {
Ok(true)
Expand Down