Skip to content

Commit 938eaf1

Browse files
committed
Make normalize_chunks a cubed function
1 parent 95b3dd4 commit 938eaf1

File tree

10 files changed

+32
-19
lines changed

10 files changed

+32
-19
lines changed

cubed/array/overlap.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
from cubed.backend_array_api import namespace as nxp
44
from cubed.core.ops import map_selection
55
from cubed.types import T_RectangularChunks
6-
from cubed.utils import _cumsum
7-
from cubed.vendor.dask.array.core import normalize_chunks
6+
from cubed.utils import _cumsum, normalize_chunks
87
from cubed.vendor.dask.array.overlap import coerce_boundary, coerce_depth
98
from cubed.vendor.dask.utils import has_keyword
109

cubed/array_api/creation_functions.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@
1111
virtual_in_memory,
1212
virtual_offsets,
1313
)
14-
from cubed.utils import normalize_shape, to_chunksize
15-
from cubed.vendor.dask.array.core import normalize_chunks
14+
from cubed.utils import normalize_chunks, normalize_shape, to_chunksize
1615

1716
if TYPE_CHECKING:
1817
from .array_object import Array

cubed/array_api/manipulation_functions.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,14 @@
2121
map_blocks,
2222
map_selection,
2323
)
24-
from cubed.utils import block_id_to_offset, get_item, offset_to_block_id, to_chunksize
25-
from cubed.vendor.dask.array.core import broadcast_chunks, normalize_chunks
24+
from cubed.utils import (
25+
block_id_to_offset,
26+
get_item,
27+
normalize_chunks,
28+
offset_to_block_id,
29+
to_chunksize,
30+
)
31+
from cubed.vendor.dask.array.core import broadcast_chunks
2632
from cubed.vendor.dask.array.reshape import reshape_rechunk
2733
from cubed.vendor.dask.array.utils import validate_axis
2834

cubed/core/array.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@
99
from cubed.runtime.types import Callback, Executor
1010
from cubed.spec import Spec, spec_from_config
1111
from cubed.storage.zarr import open_if_lazy_zarr_array
12-
from cubed.utils import array_memory, itemsize
13-
from cubed.vendor.dask.array.core import normalize_chunks
12+
from cubed.utils import array_memory, itemsize, normalize_chunks
1413

1514
from .plan import arrays_to_plan
1615

cubed/core/groupby.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
from cubed.array_api.manipulation_functions import broadcast_to, expand_dims
44
from cubed.backend_array_api import namespace as nxp
55
from cubed.core.ops import map_blocks, map_selection, reduction
6-
from cubed.utils import get_item
7-
from cubed.vendor.dask.array.core import normalize_chunks
6+
from cubed.utils import get_item, normalize_chunks
87

98
if TYPE_CHECKING:
109
from cubed.array_api.array_object import Array

cubed/core/indexing.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@
99
from cubed.backend_array_api import backend_array_to_numpy_array
1010
from cubed.core.array import CoreArray
1111
from cubed.core.ops import general_blockwise, map_selection, merge_chunks
12-
from cubed.utils import array_size
13-
from cubed.vendor.dask.array.core import normalize_chunks
12+
from cubed.utils import array_size, normalize_chunks
1413

1514
if TYPE_CHECKING:
1615
from cubed.array_api.array_object import Array

cubed/core/ops.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@
3131
array_size,
3232
get_item,
3333
itemsize,
34+
normalize_chunks,
3435
offset_to_block_id,
3536
to_chunksize,
3637
)
3738
from cubed.utils import numblocks as compute_numblocks
38-
from cubed.vendor.dask.array.core import normalize_chunks
3939
from cubed.vendor.dask.array.utils import validate_axis
4040
from cubed.vendor.dask.blockwise import broadcast_dimensions
4141
from cubed.vendor.dask.utils import has_keyword

cubed/primitive/blockwise.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@
2525
chunk_memory,
2626
get_item,
2727
map_nested,
28+
normalize_chunks,
2829
split_into,
2930
to_chunksize,
3031
)
3132
from cubed.utils import numblocks as compute_numblocks
32-
from cubed.vendor.dask.array.core import normalize_chunks
3333
from cubed.vendor.dask.blockwise import _get_coord_mapping, _make_dims, lol_product
3434
from cubed.vendor.dask.core import flatten
3535

cubed/random.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55
from cubed.backend_array_api import namespace as nxp
66
from cubed.backend_array_api import numpy_array_to_backend_array
77
from cubed.core.ops import map_blocks
8-
from cubed.utils import block_id_to_offset, normalize_shape
9-
from cubed.vendor.dask.array.core import normalize_chunks
8+
from cubed.utils import block_id_to_offset, normalize_chunks, normalize_shape
109

1110

1211
def random(size, *, dtype=nxp.float64, chunks=None, spec=None):

cubed/utils.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,17 @@
1313
from operator import add, mul
1414
from pathlib import Path
1515
from posixpath import join
16-
from typing import Dict, Tuple, Union, cast
16+
from typing import Dict, Optional, Tuple, Union, cast
1717
from urllib.parse import quote, unquote, urlsplit, urlunsplit
1818

1919
import numpy as np
2020
import tlz as toolz
2121
from toolz import reduce
2222

2323
from cubed.backend_array_api import namespace as nxp
24-
from cubed.types import T_DType, T_RectangularChunks, T_RegularChunks, T_Shape
25-
from cubed.vendor.dask.array.core import _check_regular_chunks, normalize_chunks
24+
from cubed.types import T_Chunks, T_DType, T_RectangularChunks, T_RegularChunks, T_Shape
25+
from cubed.vendor.dask.array.core import _check_regular_chunks
26+
from cubed.vendor.dask.array.core import normalize_chunks as dask_normalize_chunks
2627

2728
PathType = Union[str, Path]
2829

@@ -369,3 +370,15 @@ def normalize_dtype(dtype, device=None) -> T_DType:
369370

370371
def itemsize(dtype: T_DType) -> int:
371372
return dtype.itemsize
373+
374+
375+
def normalize_chunks(
376+
chunks: T_Chunks,
377+
shape: Optional[T_Shape] = None,
378+
limit: Optional[int] = None,
379+
dtype: Optional[T_DType] = None,
380+
previous_chunks: Optional[T_RectangularChunks] = None,
381+
) -> T_RectangularChunks:
382+
return dask_normalize_chunks(
383+
chunks, shape=shape, limit=limit, dtype=dtype, previous_chunks=previous_chunks
384+
)

0 commit comments

Comments
 (0)