Skip to content

Commit 1d11fcb

Browse files
committed
Partially Revert "Skip reads when completely overwriting boundary chunks"
This reverts commit edbba37.
1 parent 26f63a3 commit 1d11fcb

File tree

1 file changed

+4
-22
lines changed

1 file changed

+4
-22
lines changed

src/zarr/core/indexing.py

Lines changed: 4 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -403,24 +403,16 @@ def __iter__(self) -> Iterator[ChunkDimProjection]:
403403
dim_chunk_sel_start = self.start - dim_offset
404404
dim_out_offset = 0
405405

406-
# Use None to indicate this selection ends at the chunk edge
407-
# This is useful for is_total_slice at boundary chunks,
408406
if self.stop > dim_limit:
409407
# selection ends after current chunk
410-
dim_chunk_sel_stop = None # dim_chunk_len
408+
dim_chunk_sel_stop = dim_chunk_len
411409

412410
else:
413411
# selection ends within current chunk
414-
if dim_chunk_ix == (self.nchunks - 1):
415-
# all of the last chunk is included
416-
dim_chunk_sel_stop = None
417-
else:
418-
dim_chunk_sel_stop = self.stop - dim_offset
412+
dim_chunk_sel_stop = self.stop - dim_offset
419413

420414
dim_chunk_sel = slice(dim_chunk_sel_start, dim_chunk_sel_stop, self.step)
421-
dim_chunk_nitems = ceildiv(
422-
((dim_chunk_sel_stop or dim_chunk_len) - dim_chunk_sel_start), self.step
423-
)
415+
dim_chunk_nitems = ceildiv((dim_chunk_sel_stop - dim_chunk_sel_start), self.step)
424416

425417
# If there are no elements on the selection within this chunk, then skip
426418
if dim_chunk_nitems == 0:
@@ -1386,17 +1378,7 @@ def is_total_slice(item: Selection, shape: ChunkCoords) -> bool:
13861378
isinstance(dim_sel, slice)
13871379
and (
13881380
(dim_sel == slice(None))
1389-
or (
1390-
dim_sel.stop is not None
1391-
and (dim_sel.stop - dim_sel.start == dim_len)
1392-
and (dim_sel.step in [1, None])
1393-
)
1394-
# starts exactly at a chunk
1395-
or (
1396-
(dim_sel.start % dim_len == 0)
1397-
and dim_sel.stop is None
1398-
and (dim_sel.step in [1, None])
1399-
)
1381+
or ((dim_sel.stop - dim_sel.start == dim_len) and (dim_sel.step in [1, None]))
14001382
)
14011383
)
14021384
for dim_sel, dim_len in zip(item, shape, strict=False)

0 commit comments

Comments
 (0)