Skip to content

Commit cb40015

Browse files
committed
wip refactor get_partial_values
1 parent d7cfbee commit cb40015

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

src/zarr/storage/object_store.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
from collections.abc import AsyncGenerator, Coroutine, Iterable
1616
from typing import Any
1717

18+
from obstore import Buffer as ObjectStoreBuffer
1819
from obstore import ListStream, ObjectMeta
1920
from obstore.store import ObjectStore as _ObjectStore
2021

@@ -71,21 +72,21 @@ async def get_partial_values(
7172
for idx, (path, range_) in enumerate(key_ranges):
7273
per_file_requests[path].append((range_[0], range_[1], idx))
7374

74-
futs: list[Coroutine[Any, Any, list[bytes]]] = []
75+
futs: list[Coroutine[Any, Any, list[ObjectStoreBuffer]]] = []
7576
for path, ranges in per_file_requests.items():
76-
offsets = [r[0] for r in ranges]
77-
lengths = [r[1] - r[0] for r in ranges]
78-
fut = obs.get_ranges_async(self.store, path, offsets=offsets, lengths=lengths)
77+
starts = [r[0] for r in ranges]
78+
ends = [r[1] for r in ranges]
79+
fut = obs.get_ranges_async(self.store, path, starts=starts, ends=ends)
7980
futs.append(fut)
8081

8182
result = await asyncio.gather(*futs)
8283

83-
output_buffers: list[bytes] = [b""] * len(key_ranges)
84+
output_buffers: list[type[BufferPrototype]] = [b""] * len(key_ranges)
8485
for per_file_request, buffers in zip(per_file_requests.items(), result, strict=True):
8586
path, ranges = per_file_request
8687
for buffer, ranges_ in zip(buffers, ranges, strict=True):
8788
initial_index = ranges_[2]
88-
output_buffers[initial_index] = buffer
89+
output_buffers[initial_index] = prototype.buffer.from_buffer(memoryview(buffer))
8990

9091
return output_buffers
9192

0 commit comments

Comments
 (0)