Skip to content

Commit a1399c6

Browse files
maxrjoneskeewis
andauthored
Apply suggestions from code review
Co-authored-by: Justus Magin <keewis@users.noreply.github.com>
1 parent 4232437 commit a1399c6

2 files changed

Lines changed: 7 additions & 11 deletions

File tree

xarray/backends/chunks.py

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -169,14 +169,10 @@ def _build_rectilinear_grid_chunks(
169169
region_start = region.start or 0
170170
region_stop = region.stop or sum(chunk_sizes)
171171

172-
boundaries = [0]
173-
for cs in chunk_sizes:
174-
boundaries.append(boundaries[-1] + cs)
172+
boundaries = [0, *itertools.accumulate(chunk_sizes, initial=0)]
175173

176174
result = []
177-
for i in range(len(chunk_sizes)):
178-
chunk_start = boundaries[i]
179-
chunk_end = boundaries[i + 1]
175+
for chunk_start, chunk_end in itertools.pairwise(boundaries):
180176

181177
if chunk_end <= region_start or chunk_start >= region_stop:
182178
continue
@@ -227,7 +223,7 @@ def _validate_rectilinear_chunk_alignment(
227223
enc_stops = set(itertools.accumulate(enc_chunks))
228224
region_start = region.start or 0
229225
dask_stops = {region_start + s for s in itertools.accumulate(dask_chunks)}
230-
# The final stop (total size) always matches — exclude it
226+
# The final stop (total size) always matches. Exclude it.
231227
total = sum(enc_chunks)
232228
enc_stops.discard(total)
233229
dask_stops.discard(total)
@@ -276,7 +272,7 @@ def validate_grid_chunks_alignment(
276272
strict=True,
277273
):
278274
if isinstance(chunk_size, (list, tuple)):
279-
# Rectilinear dimension use boundary-based validation
275+
# Rectilinear dimension: use boundary-based validation
280276
_validate_rectilinear_chunk_alignment(
281277
dask_chunks=v_chunks,
282278
enc_chunks=chunk_size,
@@ -286,7 +282,7 @@ def validate_grid_chunks_alignment(
286282
)
287283
continue
288284

289-
# Regular dimension existing validation logic
285+
# Regular dimension: use existing validation logic
290286
for i, chunk in enumerate(v_chunks[1:-1]):
291287
if chunk % chunk_size:
292288
raise ValueError(

xarray/backends/zarr.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -366,10 +366,10 @@ def _determine_zarr_chunks(enc_chunks, var_chunks, ndim, name, zarr_format):
366366
)
367367
has_larger_final = any(chunks[0] < chunks[-1] for chunks in var_chunks)
368368
if has_varying_interior or has_larger_final:
369-
# Truly rectilinear return dask-style tuples of per-chunk sizes.
369+
# Truly rectilinear: return dask-style tuples of per-chunk sizes.
370370
# Requires zarr config: array.rectilinear_chunks = True
371371
return tuple(var_chunks)
372-
# Regular chunks return the first chunk size per dimension
372+
# Regular chunks: return the first chunk size per dimension
373373
return tuple(chunk[0] for chunk in var_chunks)
374374

375375
if any(len(set(chunks[:-1])) > 1 for chunks in var_chunks):

0 commit comments

Comments
 (0)