diff --git a/dask/array/core.py b/dask/array/core.py
--- a/dask/array/core.py
+++ b/dask/array/core.py
@@ -1,3 +1,5 @@
+from __future__ import annotations
+
 import contextlib
 import math
 import operator
@@ -9,7 +11,7 @@
 import uuid
 import warnings
 from bisect import bisect
-from collections.abc import Iterable, Iterator, Mapping
+from collections.abc import Collection, Hashable, Iterable, Iterator, Mapping
 from functools import partial, reduce, wraps
 from itertools import product, zip_longest
 from numbers import Integral, Number
@@ -910,12 +912,12 @@ def broadcast_chunks(*chunkss):
 
 
 def store(
-    sources,
+    sources: Array | Collection[Array],
     targets,
-    lock=True,
-    regions=None,
-    compute=True,
-    return_stored=False,
+    lock: bool | Lock = True,
+    regions: tuple[slice, ...] | Collection[tuple[slice, ...]] | None = None,
+    compute: bool = True,
+    return_stored: bool = False,
     **kwargs,
 ):
     """Store dask arrays in array-like objects, overwrite data in target
@@ -931,23 +933,35 @@ def store(
     Parameters
     ----------
 
-    sources: Array or iterable of Arrays
-    targets: array-like or Delayed or iterable of array-likes and/or Delayeds
+    sources: Array or collection of Arrays
+    targets: array-like or Delayed or collection of array-likes and/or Delayeds
         These should support setitem syntax ``target[10:20] = ...``
     lock: boolean or threading.Lock, optional
         Whether or not to lock the data stores while storing.
         Pass True (lock each file individually), False (don't lock) or a
         particular :class:`threading.Lock` object to be shared among all writes.
-    regions: tuple of slices or list of tuples of slices
+    regions: tuple of slices or collection of tuples of slices
         Each ``region`` tuple in ``regions`` should be such that
         ``target[region].shape = source.shape``
         for the corresponding source and target in sources and targets,
         respectively. If this is a tuple, the contents will be assumed to be
         slices, so do not provide a tuple of tuples.
     compute: boolean, optional
-        If true compute immediately, return :class:`dask.delayed.Delayed` otherwise
+        If true compute immediately; return :class:`dask.delayed.Delayed` otherwise.
     return_stored: boolean, optional
         Optionally return the stored result (default False).
+    kwargs:
+        Parameters passed to compute/persist (only used if compute=True)
+
+    Returns
+    -------
+
+    If return_stored=True
+        tuple of Arrays
+    If return_stored=False and compute=True
+        None
+    If return_stored=False and compute=False
+        Delayed
 
     Examples
     --------
@@ -991,65 +1005,83 @@ def store(
         )
 
     # Optimize all sources together
-    sources_dsk = HighLevelGraph.merge(*[e.__dask_graph__() for e in sources])
-    sources_dsk = Array.__dask_optimize__(
-        sources_dsk, list(core.flatten([e.__dask_keys__() for e in sources]))
+    sources_hlg = HighLevelGraph.merge(*[e.__dask_graph__() for e in sources])
+    sources_layer = Array.__dask_optimize__(
+        sources_hlg, list(core.flatten([e.__dask_keys__() for e in sources]))
     )
-    sources2 = [Array(sources_dsk, e.name, e.chunks, meta=e) for e in sources]
+    sources_name = "store-sources-" + tokenize(sources)
+    layers = {sources_name: sources_layer}
+    dependencies = {sources_name: set()}
 
     # Optimize all targets together
-    targets2 = []
     targets_keys = []
-    targets_dsk = []
-    for e in targets:
-        if isinstance(e, Delayed):
-            targets2.append(e.key)
-            targets_keys.extend(e.__dask_keys__())
-            targets_dsk.append(e.__dask_graph__())
-        elif is_dask_collection(e):
+    targets_dsks = []
+    for t in targets:
+        if isinstance(t, Delayed):
+            targets_keys.append(t.key)
+            targets_dsks.append(t.__dask_graph__())
+        elif is_dask_collection(t):
             raise TypeError("Targets must be either Delayed objects or array-likes")
-        else:
-            targets2.append(e)
 
-    targets_dsk = HighLevelGraph.merge(*targets_dsk)
-    targets_dsk = Delayed.__dask_optimize__(targets_dsk, targets_keys)
+    if targets_dsks:
+        targets_hlg = HighLevelGraph.merge(*targets_dsks)
+        targets_layer = Delayed.__dask_optimize__(targets_hlg, targets_keys)
+        targets_name = "store-targets-" + tokenize(targets_keys)
+        layers[targets_name] = targets_layer
+        dependencies[targets_name] = set()
 
     load_stored = return_stored and not compute
-    toks = [str(uuid.uuid1()) for _ in range(len(sources))]
-    store_dsk = HighLevelGraph.merge(
-        *[
-            insert_to_ooc(s, t, lock, r, return_stored, load_stored, tok)
-            for s, t, r, tok in zip(sources2, targets2, regions, toks)
-        ]
-    )
-    store_keys = list(store_dsk.keys())
 
-    store_dsk = HighLevelGraph.merge(store_dsk, targets_dsk, sources_dsk)
-    store_dsk = HighLevelGraph.from_collections(id(store_dsk), dict(store_dsk))
+    map_names = [
+        "store-map-" + tokenize(s, t if isinstance(t, Delayed) else id(t), r)
+        for s, t, r in zip(sources, targets, regions)
+    ]
+    map_keys = []
+
+    for s, t, n, r in zip(sources, targets, map_names, regions):
+        map_layer = insert_to_ooc(
+            keys=s.__dask_keys__(),
+            chunks=s.chunks,
+            out=t.key if isinstance(t, Delayed) else t,
+            name=n,
+            lock=lock,
+            region=r,
+            return_stored=return_stored,
+            load_stored=load_stored,
+        )
+        layers[n] = map_layer
+        if isinstance(t, Delayed):
+            dependencies[n] = {sources_name, targets_name}
+        else:
+            dependencies[n] = {sources_name}
+        map_keys += map_layer.keys()
 
     if return_stored:
+        store_dsk = HighLevelGraph(layers, dependencies)
         load_store_dsk = store_dsk
         if compute:
-            store_dlyds = [Delayed(k, store_dsk) for k in store_keys]
+            store_dlyds = [Delayed(k, store_dsk) for k in map_keys]
             store_dlyds = persist(*store_dlyds, **kwargs)
             store_dsk_2 = HighLevelGraph.merge(*[e.dask for e in store_dlyds])
+            load_store_dsk = retrieve_from_ooc(map_keys, store_dsk, store_dsk_2)
+            map_names = ["load-" + n for n in map_names]
 
-            load_store_dsk = retrieve_from_ooc(store_keys, store_dsk, store_dsk_2)
-
-        result = tuple(
-            Array(load_store_dsk, "load-store-%s" % t, s.chunks, meta=s)
-            for s, t in zip(sources, toks)
+        return tuple(
+            Array(load_store_dsk, n, s.chunks, meta=s)
+            for s, n in zip(sources, map_names)
         )
 
-        return result
+    elif compute:
+        store_dsk = HighLevelGraph(layers, dependencies)
+        compute_as_if_collection(Array, store_dsk, map_keys, **kwargs)
+        return None
+
     else:
-        if compute:
-            compute_as_if_collection(Array, store_dsk, store_keys, **kwargs)
-            return None
-        else:
-            name = "store-" + str(uuid.uuid1())
-            dsk = HighLevelGraph.merge({name: store_keys}, store_dsk)
-            return Delayed(name, dsk)
+        key = "store-" + tokenize(map_names)
+        layers[key] = {key: map_keys}
+        dependencies[key] = set(map_names)
+        store_dsk = HighLevelGraph(layers, dependencies)
+        return Delayed(key, store_dsk)
 
 
 def blockdims_from_blockshape(shape, chunks):
@@ -2878,7 +2910,7 @@ def auto_chunks(chunks, shape, limit, dtype, previous_chunks=None):
         limit = parse_bytes(limit)
 
     if dtype is None:
-        raise TypeError("DType must be known for auto-chunking")
+        raise TypeError("dtype must be known for auto-chunking")
 
     if dtype.hasobject:
         raise NotImplementedError(
@@ -4038,17 +4070,29 @@ def load_chunk(out, index, lock):
 
 
 def insert_to_ooc(
-    arr, out, lock=True, region=None, return_stored=False, load_stored=False, tok=None
-):
+    keys: list,
+    chunks: tuple[tuple[int, ...], ...],
+    out,
+    name: str,
+    *,
+    lock: Lock | bool = True,
+    region: slice | None = None,
+    return_stored: bool = False,
+    load_stored: bool = False,
+) -> dict:
     """
     Creates a Dask graph for storing chunks from ``arr`` in ``out``.
 
     Parameters
     ----------
-    arr: da.Array
-        A dask array
+    keys: list
+        Dask keys of the input array
+    chunks: tuple
+        Dask chunks of the input array
     out: array-like
-        Where to store results too.
+        Where to store results to
+    name: str
+        First element of dask keys
     lock: Lock-like or bool, optional
         Whether to lock or with what (default is ``True``,
         which means a :class:`threading.Lock` instance).
@@ -4062,51 +4106,53 @@ def insert_to_ooc(
         Whether to handling loading from ``out`` at the same time.
         Ignored if ``return_stored`` is not ``True``.
         (default is ``False``, meaning defer to ``return_stored``).
-    tok: str, optional
-        Token to use when naming keys
+
+    Returns
+    -------
+    dask graph of store operation
 
     Examples
     --------
     >>> import dask.array as da
     >>> d = da.ones((5, 6), chunks=(2, 3))
     >>> a = np.empty(d.shape)
-    >>> insert_to_ooc(d, a)  # doctest: +SKIP
+    >>> insert_to_ooc(d.__dask_keys__(), d.chunks, a, "store-123")  # doctest: +SKIP
     """
 
     if lock is True:
         lock = Lock()
 
-    slices = slices_from_chunks(arr.chunks)
+    slices = slices_from_chunks(chunks)
     if region:
         slices = [fuse_slice(region, slc) for slc in slices]
 
-    name = "store-%s" % (tok or str(uuid.uuid1()))
-    func = store_chunk
-    args = ()
     if return_stored and load_stored:
-        name = "load-%s" % name
         func = load_store_chunk
-        args = args + (load_stored,)
+        args = (load_stored,)
+    else:
+        func = store_chunk
+        args = ()
 
     dsk = {
         (name,) + t[1:]: (func, t, out, slc, lock, return_stored) + args
-        for t, slc in zip(core.flatten(arr.__dask_keys__()), slices)
+        for t, slc in zip(core.flatten(keys), slices)
     }
-
     return dsk
 
 
-def retrieve_from_ooc(keys, dsk_pre, dsk_post=None):
+def retrieve_from_ooc(
+    keys: Collection[Hashable], dsk_pre: Mapping, dsk_post: Mapping
+) -> dict:
     """
     Creates a Dask graph for loading stored ``keys`` from ``dsk``.
 
     Parameters
     ----------
-    keys: Sequence
+    keys: Collection
         A sequence containing Dask graph keys to load
     dsk_pre: Mapping
         A Dask graph corresponding to a Dask Array before computation
-    dsk_post: Mapping, optional
+    dsk_post: Mapping
         A Dask graph corresponding to a Dask Array after computation
 
     Examples
@@ -4114,13 +4160,9 @@ def retrieve_from_ooc(keys, dsk_pre, dsk_post=None):
     >>> import dask.array as da
     >>> d = da.ones((5, 6), chunks=(2, 3))
     >>> a = np.empty(d.shape)
-    >>> g = insert_to_ooc(d, a)
-    >>> retrieve_from_ooc(g.keys(), g)  # doctest: +SKIP
+    >>> g = insert_to_ooc(d.__dask_keys__(), d.chunks, a, "store-123")
+    >>> retrieve_from_ooc(g.keys(), g, {k: k for k in g.keys()})  # doctest: +SKIP
     """
-
-    if not dsk_post:
-        dsk_post = {k: k for k in keys}
-
     load_dsk = {
         ("load-" + k[0],) + k[1:]: (load_chunk, dsk_post[k]) + dsk_pre[k][3:-1]
         for k in keys
diff --git a/dask/dataframe/io/csv.py b/dask/dataframe/io/csv.py
--- a/dask/dataframe/io/csv.py
+++ b/dask/dataframe/io/csv.py
@@ -162,7 +162,7 @@ def pandas_read_text(
     kwargs : dict
         A dictionary of keyword arguments to be passed to ``reader``
     dtypes : dict
-        DTypes to assign to columns
+        dtypes to assign to columns
     path : tuple
         A tuple containing path column name, path to file, and an ordered list of paths.
 

diff --git a/dask/array/tests/test_array_core.py b/dask/array/tests/test_array_core.py
--- a/dask/array/tests/test_array_core.py
+++ b/dask/array/tests/test_array_core.py
@@ -1852,6 +1852,11 @@ def test_store_compute_false():
 
     v = store([a, b], [at, bt], compute=False)
     assert isinstance(v, Delayed)
+
+    # You need a well-formed HighLevelgraph for e.g. dask.graph_manipulation.bind
+    for layer in v.__dask_layers__():
+        assert layer in v.dask.layers
+
     assert (at == 0).all() and (bt == 0).all()
     assert all([ev is None for ev in v.compute()])
     assert (at == 2).all() and (bt == 3).all()
@@ -2004,6 +2009,18 @@ def test_store_multiprocessing_lock():
     assert st is None
 
 
+@pytest.mark.parametrize("return_stored", [False, True])
+@pytest.mark.parametrize("delayed_target", [False, True])
+def test_store_deterministic_keys(return_stored, delayed_target):
+    a = da.ones((10, 10), chunks=(2, 2))
+    at = np.zeros(shape=(10, 10))
+    if delayed_target:
+        at = delayed(at)
+    st1 = a.store(at, return_stored=return_stored, compute=False)
+    st2 = a.store(at, return_stored=return_stored, compute=False)
+    assert st1.dask.keys() == st2.dask.keys()
+
+
 def test_to_hdf5():
     h5py = pytest.importorskip("h5py")
     x = da.ones((4, 4), chunks=(2, 2))
diff --git a/dask/tests/test_order.py b/dask/tests/test_order.py
--- a/dask/tests/test_order.py
+++ b/dask/tests/test_order.py
@@ -868,9 +868,8 @@ def test_array_store_final_order(tmpdir):
     o = order(d.dask)
 
     # Find the lowest store. Dask starts here.
-    stores = [k for k in o if isinstance(k, tuple) and k[0].startswith("store-")]
+    stores = [k for k in o if isinstance(k, tuple) and k[0].startswith("store-map-")]
     first_store = min(stores, key=lambda k: o[k])
-    first_store
     connected_stores = [k for k in stores if k[-1] == first_store[-1]]
     disconnected_stores = [k for k in stores if k[-1] != first_store[-1]]
 

`KeyError` in `dask.graph_manipulation.bind`
The snippet below using `dask.graph_manipulation.bind`:

```python
from dask.graph_manipulation import bind
import dask.array as da

data = da.from_array([1,2,3])
checkpoint = data.to_zarr('test.zarr', compute=False)
stored_data = bind(da.from_zarr('test.zarr'), checkpoint)

# This raises a key error:
stored_data.compute()
```

raises the following `KeyError`:

```python
Traceback (most recent call last):
  File "/Users/james/projects/dask/dask/bind-bug.py", line 9, in <module>
    stored_data.compute()
  File "/Users/james/projects/dask/dask/dask/base.py", line 288, in compute
    (result,) = compute(self, traverse=False, **kwargs)
  File "/Users/james/projects/dask/dask/dask/base.py", line 564, in compute
    dsk = collections_to_dsk(collections, optimize_graph, **kwargs)
  File "/Users/james/projects/dask/dask/dask/base.py", line 340, in collections_to_dsk
    dsk = opt(dsk, keys, **kwargs)
  File "/Users/james/projects/dask/dask/dask/array/optimization.py", line 47, in optimize
    dsk = dsk.cull(set(keys))
  File "/Users/james/projects/dask/dask/dask/highlevelgraph.py", line 952, in cull
    for layer_name in reversed(self._toposort_layers()):
  File "/Users/james/projects/dask/dask/dask/highlevelgraph.py", line 918, in _toposort_layers
    reverse_deps[dep].append(k)
KeyError: 'store-18df878e-2b9c-11ec-bead-acde48001122'
```

cc @crusaderky 

dask/array/tests/test_array_core.py::test_store_deterministic_keys[False-True] dask/array/tests/test_array_core.py::test_store_deterministic_keys[False-False] dask/tests/test_order.py::test_array_store_final_order dask/array/tests/test_array_core.py::test_store_compute_false dask/array/tests/test_array_core.py::test_store_deterministic_keys[True-True] dask/array/tests/test_array_core.py::test_store_deterministic_keys[True-False]
dask/array/tests/test_array_core.py::test_normalize_chunks_nan dask/tests/test_order.py::test_order_empty dask/array/tests/test_array_core.py::test_stack_scalars dask/array/tests/test_array_core.py::test_astype dask/tests/test_order.py::test_ordering_keeps_groups_together[abcde] dask/array/tests/test_array_core.py::test_meta[dtype1] dask/array/tests/test_array_core.py::test_vindex_basic dask/array/tests/test_array_core.py::test_from_array_with_missing_chunks dask/array/tests/test_array_core.py::test_setitem_extended_API_2d[index11-value11] dask/array/tests/test_array_core.py::test_reshape[original_shape15-new_shape15-2] dask/array/tests/test_array_core.py::test_from_array_scalar[int32] dask/array/tests/test_array_core.py::test_elemwise_uneven_chunks dask/tests/test_order.py::test_prefer_short_dependents[abcde] dask/array/tests/test_array_core.py::test_broadcast_operator[u_shape3-v_shape3] dask/array/tests/test_array_core.py::test_to_hdf5 dask/array/tests/test_array_core.py::test_matmul dask/array/tests/test_array_core.py::test_map_blocks_block_info_with_new_axis dask/tests/test_order.py::test_avoid_broker_nodes[edcba] dask/array/tests/test_array_core.py::test_to_delayed_optimize_graph dask/array/tests/test_array_core.py::test_concatenate_axes dask/tests/test_order.py::test_avoid_upwards_branching_complex[edcba] dask/array/tests/test_array_core.py::test_broadcast_to_scalar dask/array/tests/test_array_core.py::test_reshape[original_shape31-new_shape31-chunks31] dask/array/tests/test_array_core.py::test_Array_computation dask/array/tests/test_array_core.py::test_compute_chunk_sizes_warning_fixes_to_zarr dask/array/tests/test_array_core.py::test_normalize_chunks_tuples_of_tuples dask/array/tests/test_array_core.py::test_broadcast_operator[u_shape4-v_shape4] dask/array/tests/test_array_core.py::test_no_chunks_yes_chunks dask/array/tests/test_array_core.py::test_map_blocks_block_info dask/array/tests/test_array_core.py::test_asanyarray dask/array/tests/test_array_core.py::test_broadcast_to_chunks dask/array/tests/test_array_core.py::test_block_simple_column_wise dask/array/tests/test_array_core.py::test_vindex_negative dask/array/tests/test_array_core.py::test_blockwise_zero_shape_new_axes dask/array/tests/test_array_core.py::test_normalize_chunks_auto_2d[shape2-auto-10-expected2] dask/array/tests/test_array_core.py::test_slice_reversed dask/array/tests/test_array_core.py::test_keys dask/array/tests/test_array_core.py::test_reshape[original_shape9-new_shape9-2] dask/array/tests/test_array_core.py::test_map_blocks_with_changed_dimension dask/array/tests/test_array_core.py::test_setitem_extended_API_2d[3-value7] dask/array/tests/test_array_core.py::test_from_array_ndarray_onechunk dask/array/tests/test_array_core.py::test_broadcast_against_zero_shape dask/array/tests/test_array_core.py::test_reshape[original_shape28-new_shape28-chunks28] dask/tests/test_order.py::test_local_parents_of_reduction[abcde] dask/array/tests/test_array_core.py::test_repr_html_array_highlevelgraph dask/array/tests/test_array_core.py::test_repr_meta dask/array/tests/test_array_core.py::test_slicing_with_ellipsis dask/array/tests/test_array_core.py::test_elemwise_with_lists[other0-100] dask/tests/test_order.py::test_deep_bases_win_over_dependents[abcde] dask/tests/test_order.py::test_ordering_keeps_groups_together[edcba] dask/array/tests/test_array_core.py::test_block_with_1d_arrays_column_wise dask/array/tests/test_array_core.py::test_from_array_scalar[uint64] dask/array/tests/test_array_core.py::test_setitem_extended_API_2d[index16--1] dask/array/tests/test_array_core.py::test_block_no_lists dask/array/tests/test_array_core.py::test_delayed_array_key_hygeine dask/tests/test_order.py::test_prefer_short_narrow[edcba] dask/array/tests/test_array_core.py::test_setitem_extended_API_2d[index2--1] dask/array/tests/test_array_core.py::test_from_array_scalar[int64] dask/array/tests/test_array_core.py::test_chunked_dot_product dask/array/tests/test_array_core.py::test_setitem_extended_API_2d[index9-value9] dask/array/tests/test_array_core.py::test_reshape[original_shape24-new_shape24-6] dask/array/tests/test_array_core.py::test_from_array_scalar[datetime64] dask/array/tests/test_array_core.py::test_bool dask/tests/test_order.py::test_nearest_neighbor[abcde] dask/array/tests/test_array_core.py::test_normalize_chunks_auto_2d[shape0-chunks0-20-expected0] dask/array/tests/test_array_core.py::test_reshape[original_shape3-new_shape3-12] dask/array/tests/test_array_core.py::test_reshape[original_shape17-new_shape17-3] dask/array/tests/test_array_core.py::test_normalize_chunks dask/array/tests/test_array_core.py::test_elemwise_dtype dask/tests/test_order.py::test_dont_run_all_dependents_too_early[edcba] dask/array/tests/test_array_core.py::test_from_array_minus_one dask/array/tests/test_array_core.py::test_map_blocks_with_invalid_drop_axis dask/array/tests/test_array_core.py::test_setitem_extended_API_1d dask/tests/test_order.py::test_prefer_short_ancestor[edcba] dask/array/tests/test_array_core.py::test_3925 dask/array/tests/test_array_core.py::test_memmap dask/tests/test_order.py::test_switching_dependents[edcba] dask/array/tests/test_array_core.py::test_slicing_with_object_dtype dask/array/tests/test_array_core.py::test_from_array_scalar[timedelta64] dask/array/tests/test_array_core.py::test_vindex_identity dask/array/tests/test_array_core.py::test_from_array_tasks_always_call_getter[x3-1] dask/array/tests/test_array_core.py::test_broadcast_operator[u_shape5-v_shape5] dask/array/tests/test_array_core.py::test_from_array_scalar[int] dask/array/tests/test_array_core.py::test_long_slice dask/tests/test_order.py::test_many_branches_use_ndependencies[edcba] dask/array/tests/test_array_core.py::test_reshape[original_shape13-new_shape13-2] dask/array/tests/test_array_core.py::test_field_access_with_shape dask/array/tests/test_array_core.py::test_vindex_errors dask/array/tests/test_array_core.py::test_from_array_scalar[int8] dask/array/tests/test_array_core.py::test_map_blocks_with_negative_drop_axis dask/array/tests/test_array_core.py::test_block_empty_lists dask/array/tests/test_array_core.py::test_broadcast_operator[u_shape1-v_shape1] dask/array/tests/test_array_core.py::test_store_delayed_target dask/array/tests/test_array_core.py::test_align_chunks_to_previous_chunks dask/array/tests/test_array_core.py::test_from_array_scalar[object_] dask/array/tests/test_array_core.py::test_regular_chunks[data6] dask/array/tests/test_array_core.py::test_from_array_scalar[int16] dask/array/tests/test_array_core.py::test_h5py_newaxis dask/array/tests/test_array_core.py::test_setitem_extended_API_2d[index3--1] dask/array/tests/test_array_core.py::test_from_array_ndarray_getitem dask/array/tests/test_array_core.py::test_reshape[original_shape4-new_shape4-12] dask/array/tests/test_array_core.py::test_block_tuple dask/array/tests/test_array_core.py::test_setitem_extended_API_2d[index10-value10] dask/array/tests/test_array_core.py::test_getter dask/array/tests/test_array_core.py::test_compute_chunk_sizes dask/array/tests/test_array_core.py::test_reshape[original_shape33-new_shape33-chunks33] dask/array/tests/test_array_core.py::test_elemwise_with_ndarrays dask/array/tests/test_array_core.py::test_elemwise_differently_chunked dask/array/tests/test_array_core.py::test_setitem_extended_API_2d_rhs_func_of_lhs dask/array/tests/test_array_core.py::test_slice_with_integer_types dask/array/tests/test_array_core.py::test_copy_mutate dask/array/tests/test_array_core.py::test_auto_chunks_h5py dask/array/tests/test_array_core.py::test_store_regions dask/array/tests/test_array_core.py::test_chunk_assignment_invalidates_cached_properties dask/array/tests/test_array_core.py::test_constructors_chunks_dict dask/array/tests/test_array_core.py::test_setitem_extended_API_0d dask/array/tests/test_array_core.py::test_stack_promote_type dask/array/tests/test_array_core.py::test_from_array_dask_array dask/array/tests/test_array_core.py::test_h5py_tokenize dask/array/tests/test_array_core.py::test_block_mixed_1d_and_2d dask/tests/test_order.py::test_switching_dependents[abcde] dask/array/tests/test_array_core.py::test_elemwise_on_scalars dask/tests/test_order.py::test_avoid_upwards_branching_complex[abcde] dask/array/tests/test_array_core.py::test_chunked_transpose_plus_one dask/array/tests/test_array_core.py::test_reshape[original_shape32-new_shape32-chunks32] dask/array/tests/test_array_core.py::test_store_kwargs dask/array/tests/test_array_core.py::test_elemwise_with_lists[other2-6] dask/array/tests/test_array_core.py::test_np_array_with_zero_dimensions dask/array/tests/test_array_core.py::test_concatenate3_2 dask/array/tests/test_array_core.py::test_concatenate3_nep18_dispatching[False] dask/array/tests/test_array_core.py::test_regular_chunks[data5] dask/array/tests/test_array_core.py::test_numblocks_suppoorts_singleton_block_dims dask/array/tests/test_array_core.py::test_reshape_splat dask/array/tests/test_array_core.py::test_from_array_scalar[uint32] dask/array/tests/test_array_core.py::test_from_array_scalar[uint16] dask/array/tests/test_array_core.py::test_broadcast_dimensions dask/array/tests/test_array_core.py::test_reshape[original_shape0-new_shape0-chunks0] dask/array/tests/test_array_core.py::test_elemwise_name dask/array/tests/test_array_core.py::test_setitem_extended_API_2d[index14--1] dask/array/tests/test_array_core.py::test_setitem_extended_API_2d[index8-value8] dask/array/tests/test_array_core.py::test_from_array_scalar[longdouble] dask/array/tests/test_array_core.py::test_from_array_list[x0] dask/array/tests/test_array_core.py::test_from_array_meta dask/array/tests/test_array_core.py::test_from_array_scalar[clongdouble] dask/array/tests/test_array_core.py::test_block_nested dask/array/tests/test_array_core.py::test_reshape[original_shape8-new_shape8-4] dask/array/tests/test_array_core.py::test_blockwise_zero_shape dask/array/tests/test_array_core.py::test_broadcast_arrays dask/array/tests/test_array_core.py::test_reshape[original_shape25-new_shape25-6] dask/array/tests/test_array_core.py::test_Array_numpy_gufunc_call__array_ufunc__02 dask/array/tests/test_array_core.py::test_from_zarr_name dask/array/tests/test_array_core.py::test_reshape[original_shape14-new_shape14-2] dask/array/tests/test_array_core.py::test_blockwise_1_in_shape_III dask/array/tests/test_array_core.py::test_reshape[original_shape5-new_shape5-chunks5] dask/array/tests/test_array_core.py::test_map_blocks_optimize_blockwise[<lambda>0] dask/array/tests/test_array_core.py::test_index_with_integer_types dask/array/tests/test_array_core.py::test_map_blocks_infer_chunks_broadcast dask/array/tests/test_array_core.py::test_no_chunks dask/array/tests/test_array_core.py::test_asarray_h5py[asanyarray] dask/tests/test_order.py::test_map_overlap[edcba] dask/array/tests/test_array_core.py::test_from_array_scalar[uint8] dask/array/tests/test_array_core.py::test_map_blocks_optimize_blockwise[<lambda>1] dask/array/tests/test_array_core.py::test_scipy_sparse_concatenate[1] dask/tests/test_order.py::test_order_cycle dask/array/tests/test_array_core.py::test_optimize dask/array/tests/test_array_core.py::test_elemwise_with_lists[other1-6] dask/array/tests/test_array_core.py::test_Array dask/array/tests/test_array_core.py::test_repr dask/tests/test_order.py::test_many_branches_use_ndependencies[abcde] dask/tests/test_order.py::test_order_doesnt_fail_on_mixed_type_keys[abcde] dask/array/tests/test_array_core.py::test_setitem_extended_API_2d[index1--1] dask/array/tests/test_array_core.py::test_reshape_unknown_dimensions dask/array/tests/test_array_core.py::test_concatenate_types[dtypes0] dask/array/tests/test_array_core.py::test_concatenate_rechunk dask/array/tests/test_array_core.py::test_from_array_scalar[float] dask/array/tests/test_array_core.py::test_concatenate_zero_size dask/array/tests/test_array_core.py::test_top_with_kwargs dask/array/tests/test_array_core.py::test_zarr_pass_mapper dask/array/tests/test_array_core.py::test_dont_dealias_outputs dask/array/tests/test_array_core.py::test_view_fortran dask/array/tests/test_array_core.py::test_stack dask/array/tests/test_array_core.py::test_top dask/array/tests/test_array_core.py::test_normalize_chunks_auto_1d[24-5-expected3] dask/array/tests/test_array_core.py::test_point_slicing dask/array/tests/test_array_core.py::test_setitem_2d dask/array/tests/test_array_core.py::test_store_method_return dask/array/tests/test_array_core.py::test_from_array_tasks_always_call_getter[x2-1] dask/array/tests/test_array_core.py::test_pandas_from_dask_array dask/array/tests/test_array_core.py::test_broadcast_arrays_uneven_chunks dask/array/tests/test_array_core.py::test_from_array_name dask/array/tests/test_array_core.py::test_blockwise_1_in_shape_I dask/array/tests/test_array_core.py::test_store_nocompute_regions dask/array/tests/test_array_core.py::test_array_picklable[array1] dask/array/tests/test_array_core.py::test_timedelta_op dask/array/tests/test_array_core.py::test_compute_chunk_sizes_2d_array dask/array/tests/test_array_core.py::test_block_with_1d_arrays_row_wise dask/array/tests/test_array_core.py::test_from_array_scalar[complex128] dask/array/tests/test_array_core.py::test_vindex_merge dask/tests/test_order.py::test_prefer_deep[edcba] dask/array/tests/test_array_core.py::test_from_array_dask_collection_warns dask/array/tests/test_array_core.py::test_setitem_extended_API_2d[index6-value6] dask/array/tests/test_array_core.py::test_block_with_1d_arrays_multiple_rows dask/array/tests/test_array_core.py::test_broadcast_shapes dask/array/tests/test_array_core.py::test_warn_bad_rechunking dask/array/tests/test_array_core.py::test_map_blocks dask/array/tests/test_array_core.py::test_elemwise_with_lists[other0-6] dask/array/tests/test_array_core.py::test_zarr_group dask/array/tests/test_array_core.py::test_block_complicated dask/tests/test_order.py::test_gh_3055 dask/array/tests/test_array_core.py::test_concatenate_stack_dont_warn dask/array/tests/test_array_core.py::test_block_simple_row_wise dask/array/tests/test_array_core.py::test_from_array_scalar[complex] dask/array/tests/test_array_core.py::test_common_blockdim dask/array/tests/test_array_core.py::test_raise_informative_errors_no_chunks dask/array/tests/test_array_core.py::test_map_blocks_no_array_args dask/array/tests/test_array_core.py::test_from_array_with_lock dask/array/tests/test_array_core.py::test_store dask/array/tests/test_array_core.py::test_reshape[original_shape29-new_shape29-chunks29] dask/array/tests/test_array_core.py::test_raise_on_bad_kwargs dask/tests/test_order.py::test_type_comparisions_ok[edcba] dask/array/tests/test_array_core.py::test_zarr_nocompute dask/tests/test_order.py::test_dont_run_all_dependents_too_early[abcde] dask/array/tests/test_array_core.py::test_reshape[original_shape12-new_shape12-2] dask/array/tests/test_array_core.py::test_reshape[original_shape30-new_shape30-chunks30] dask/array/tests/test_array_core.py::test_map_blocks_with_changed_dimension_and_broadcast_chunks dask/array/tests/test_array_core.py::test_no_chunks_slicing_2d dask/array/tests/test_array_core.py::test_setitem_extended_API_2d[index4--1] dask/array/tests/test_array_core.py::test_block_with_mismatched_shape dask/array/tests/test_array_core.py::test_from_array_scalar[bytes] dask/array/tests/test_array_core.py::test_dtype dask/array/tests/test_array_core.py::test_to_zarr_unknown_chunks_raises dask/array/tests/test_array_core.py::test_map_blocks_with_constants dask/array/tests/test_array_core.py::test_uneven_chunks_that_fit_neatly dask/array/tests/test_array_core.py::test_asarray_h5py[asarray] dask/array/tests/test_array_core.py::test_asarray_chunks dask/array/tests/test_array_core.py::test_from_array_chunks_dict dask/array/tests/test_array_core.py::test_scipy_sparse_concatenate[0] dask/array/tests/test_array_core.py::test_from_array_scalar[str] dask/array/tests/test_array_core.py::test_map_blocks_block_info_with_drop_axis dask/array/tests/test_array_core.py::test_setitem_1d dask/array/tests/test_array_core.py::test_blockdims_from_blockshape dask/array/tests/test_array_core.py::test_T dask/array/tests/test_array_core.py::test_zarr_existing_array dask/array/tests/test_array_core.py::test_normalize_chunks_object_dtype[object] dask/array/tests/test_array_core.py::test_zero_sized_array_rechunk dask/array/tests/test_array_core.py::test_getem dask/array/tests/test_array_core.py::test_reshape[original_shape27-new_shape27-chunks27] dask/array/tests/test_array_core.py::test_reshape[original_shape11-new_shape11-2] dask/array/tests/test_array_core.py::test_reshape[original_shape6-new_shape6-4] dask/array/tests/test_array_core.py::test_elemwise_consistent_names dask/array/tests/test_array_core.py::test_blockwise_1_in_shape_II dask/array/tests/test_array_core.py::test_from_array_raises_on_bad_chunks dask/array/tests/test_array_core.py::test_matmul_array_ufunc dask/array/tests/test_array_core.py::test_regular_chunks[data7] dask/array/tests/test_array_core.py::test_setitem_extended_API_2d_mask[index0-value0] dask/array/tests/test_array_core.py::test_map_blocks_chunks dask/array/tests/test_array_core.py::test_view dask/array/tests/test_array_core.py::test_map_blocks_name dask/array/tests/test_array_core.py::test_broadcast_operator[u_shape0-v_shape0] dask/array/tests/test_array_core.py::test_reshape[original_shape26-new_shape26-chunks26] dask/array/tests/test_array_core.py::test_Array_numpy_gufunc_call__array_ufunc__01 dask/array/tests/test_array_core.py::test_broadcast_to dask/array/tests/test_array_core.py::test_regular_chunks[data4] dask/array/tests/test_array_core.py::test_nbytes_auto dask/array/tests/test_array_core.py::test_tiledb_roundtrip dask/array/tests/test_array_core.py::test_broadcast_operator[u_shape6-v_shape6] dask/array/tests/test_array_core.py::test_array_compute_forward_kwargs dask/tests/test_order.py::test_break_ties_by_str[abcde] dask/array/tests/test_array_core.py::test_reshape[original_shape18-new_shape18-4] dask/array/tests/test_array_core.py::test_normalize_chunks_object_dtype[dtype1] dask/array/tests/test_array_core.py::test_broadcast_operator[u_shape2-v_shape2] dask/array/tests/test_array_core.py::test_compute_chunk_sizes_warning_fixes_slicing dask/array/tests/test_array_core.py::test_from_array_list[x2] dask/array/tests/test_array_core.py::test_map_blocks_with_chunks dask/array/tests/test_array_core.py::test_from_array_scalar[bytes_] dask/array/tests/test_array_core.py::test_stack_errs dask/array/tests/test_array_core.py::test_dont_fuse_outputs dask/tests/test_order.py::test_order_doesnt_fail_on_mixed_type_keys[edcba] dask/array/tests/test_array_core.py::test_blocks_indexer dask/array/tests/test_array_core.py::test_reshape[original_shape16-new_shape16-chunks16] dask/array/tests/test_array_core.py::test_itemsize dask/array/tests/test_array_core.py::test_compute_chunk_sizes_warning_fixes_concatenate dask/tests/test_order.py::test_order_with_equal_dependents[abcde] dask/array/tests/test_array_core.py::test_from_array_list[x1] dask/array/tests/test_array_core.py::test_setitem_extended_API_2d[index17--1] dask/array/tests/test_array_core.py::test_index_array_with_array_2d dask/array/tests/test_array_core.py::test_array_picklable[array0] dask/array/tests/test_array_core.py::test_asarray[asanyarray] dask/array/tests/test_array_core.py::test_zarr_return_stored[True] dask/array/tests/test_array_core.py::test_broadcast_chunks dask/array/tests/test_array_core.py::test_slicing_with_non_ndarrays dask/array/tests/test_array_core.py::test_uneven_chunks dask/array/tests/test_array_core.py::test_cumulative dask/array/tests/test_array_core.py::test_map_blocks_infer_newaxis dask/array/tests/test_array_core.py::test_reshape[original_shape34-new_shape34-chunks34] dask/tests/test_order.py::test_break_ties_by_str[edcba] dask/array/tests/test_array_core.py::test_reshape[original_shape23-new_shape23-6] dask/tests/test_order.py::test_deep_bases_win_over_dependents[edcba] dask/array/tests/test_array_core.py::test_from_array_tasks_always_call_getter[x1--1] dask/array/tests/test_array_core.py::test_map_blocks_delayed dask/array/tests/test_array_core.py::test_slice_with_floats dask/array/tests/test_array_core.py::test_setitem_extended_API_2d[index0--1] dask/array/tests/test_array_core.py::test_dask_array_holds_scipy_sparse_containers dask/array/tests/test_array_core.py::test_normalize_chunks_auto_1d[23-5-expected4] dask/array/tests/test_array_core.py::test_slicing_with_ndarray dask/array/tests/test_array_core.py::test_from_array_scalar[bool] dask/array/tests/test_array_core.py::test_reshape[original_shape22-new_shape22-24] dask/array/tests/test_array_core.py::test_map_blocks_large_inputs_delayed dask/array/tests/test_array_core.py::test_empty_array dask/array/tests/test_array_core.py::test_asanyarray_datetime64 dask/array/tests/test_array_core.py::test_zero_slice_dtypes dask/tests/test_order.py::test_map_overlap[abcde] dask/array/tests/test_array_core.py::test_regular_chunks[data3] dask/array/tests/test_array_core.py::test_reshape[original_shape2-new_shape2-5] dask/array/tests/test_array_core.py::test_normalize_chunks_auto_2d[shape1-chunks1-20-expected1] dask/array/tests/test_array_core.py::test_zarr_return_stored[False] dask/array/tests/test_array_core.py::test_from_array_no_asarray[True-ndarray] dask/tests/test_order.py::test_prefer_short_dependents[edcba] dask/array/tests/test_array_core.py::test_chunks_is_immutable dask/tests/test_order.py::test_avoid_broker_nodes[abcde] dask/array/tests/test_array_core.py::test_from_array_scalar[float16] dask/array/tests/test_array_core.py::test_zarr_inline_array dask/array/tests/test_array_core.py::test_map_blocks2 dask/array/tests/test_array_core.py::test_blockwise_large_inputs_delayed dask/array/tests/test_array_core.py::test_operator_dtype_promotion dask/array/tests/test_array_core.py::test_reshape[original_shape7-new_shape7-4] dask/array/tests/test_array_core.py::test_ellipsis_slicing dask/tests/test_order.py::test_base_of_reduce_preferred[abcde] dask/array/tests/test_array_core.py::test_from_array_copy dask/array/tests/test_array_core.py::test_concatenate_errs dask/array/tests/test_array_core.py::test_to_delayed dask/array/tests/test_array_core.py::test_vindex_nd dask/array/tests/test_array_core.py::test_npartitions dask/array/tests/test_array_core.py::test_normalize_chunks_auto_1d[100-10-expected0] dask/tests/test_order.py::test_terminal_node_backtrack dask/tests/test_order.py::test_use_structure_not_keys[abcde] dask/array/tests/test_array_core.py::test_compute_chunk_sizes_3d_array dask/array/tests/test_array_core.py::test_regular_chunks[data1] dask/array/tests/test_array_core.py::test_top_supports_broadcasting_rules dask/array/tests/test_array_core.py::test_from_delayed dask/tests/test_order.py::test_nearest_neighbor[edcba] dask/tests/test_order.py::test_eager_to_compute_dependent_to_free_parent dask/array/tests/test_array_core.py::test_broadcast_to_array dask/array/tests/test_array_core.py::test_normalize_chunks_auto_1d[20-10-expected1] dask/array/tests/test_array_core.py::test_from_array_scalar[longlong] dask/array/tests/test_array_core.py::test_setitem_extended_API_2d[index13-value13] dask/array/tests/test_array_core.py::test_block_3d dask/array/tests/test_array_core.py::test_reshape_exceptions dask/array/tests/test_array_core.py::test_blockwise_literals dask/array/tests/test_array_core.py::test_from_delayed_meta dask/array/tests/test_array_core.py::test_Array_normalizes_dtype dask/array/tests/test_array_core.py::test_from_array_tasks_always_call_getter[x0-chunks0] dask/array/tests/test_array_core.py::test_compute_chunk_sizes_warning_fixes_rechunk dask/array/tests/test_array_core.py::test_top_literals dask/array/tests/test_array_core.py::test_compute_chunk_sizes_warning_fixes_to_svg dask/array/tests/test_array_core.py::test_from_array_scalar[float64] dask/tests/test_order.py::test_order_with_equal_dependents[edcba] dask/array/tests/test_array_core.py::test_map_blocks_with_kwargs dask/array/tests/test_array_core.py::test_normalize_chunks_auto_3d dask/array/tests/test_array_core.py::test_from_array_scalar[bool_] dask/array/tests/test_array_core.py::test_stack_rechunk dask/array/tests/test_array_core.py::test_reshape[original_shape1-new_shape1-5] dask/array/tests/test_array_core.py::test_setitem_extended_API_2d[index15--1] dask/array/tests/test_array_core.py::test_regular_chunks[data2] dask/array/tests/test_array_core.py::test_concatenate_types[dtypes1] dask/array/tests/test_array_core.py::test_reshape[original_shape21-new_shape21-1] dask/array/tests/test_array_core.py::test_stack_zero_size dask/tests/test_order.py::test_string_ordering_dependents dask/array/tests/test_array_core.py::test_broadcast_dimensions_works_with_singleton_dimensions dask/array/tests/test_array_core.py::test_A_property dask/array/tests/test_array_core.py::test_from_array_inline dask/array/tests/test_array_core.py::test_full dask/array/tests/test_array_core.py::test_from_array_scalar[void] dask/array/tests/test_array_core.py::test_concatenate dask/array/tests/test_array_core.py::test_map_blocks_block_info_with_broadcast dask/array/tests/test_array_core.py::test_size dask/array/tests/test_array_core.py::test_meta[None] dask/array/tests/test_array_core.py::test_partitions_indexer dask/array/tests/test_array_core.py::test_read_zarr_chunks dask/array/tests/test_array_core.py::test_normalize_chunks_auto_1d[20-5-expected2] dask/array/tests/test_array_core.py::test_tiledb_multiattr dask/tests/test_order.py::test_prefer_short_narrow[abcde] dask/array/tests/test_array_core.py::test_from_array_scalar[ulonglong] dask/array/tests/test_array_core.py::test_reshape[original_shape10-new_shape10-2] dask/array/tests/test_array_core.py::test_compute_chunk_sizes_warning_fixes_reduction dask/array/tests/test_array_core.py::test_point_slicing_with_full_slice dask/array/tests/test_array_core.py::test_reshape[original_shape19-new_shape19-chunks19] dask/array/tests/test_array_core.py::test_regular_chunks[data0] dask/array/tests/test_array_core.py::test_rechunk_auto dask/array/tests/test_array_core.py::test_reshape[original_shape20-new_shape20-1] dask/array/tests/test_array_core.py::test_astype_gh1151 dask/array/tests/test_array_core.py::test_to_npy_stack dask/array/tests/test_array_core.py::test_zarr_roundtrip dask/tests/test_order.py::test_type_comparisions_ok[abcde] dask/tests/test_order.py::test_local_parents_of_reduction[edcba] dask/array/tests/test_array_core.py::test_slicing_flexible_type dask/array/tests/test_array_core.py::test_chunks_error dask/array/tests/test_array_core.py::test_dask_layers dask/array/tests/test_array_core.py::test_dtype_complex dask/array/tests/test_array_core.py::test_constructor_plugin dask/array/tests/test_array_core.py::test_concatenate_fixlen_strings dask/array/tests/test_array_core.py::test_uneven_chunks_blockwise dask/array/tests/test_array_core.py::test_from_array_getitem dask/array/tests/test_array_core.py::test_map_blocks3 dask/array/tests/test_array_core.py::test_3851 dask/array/tests/test_array_core.py::test_block_invalid_nesting dask/array/tests/test_array_core.py::test_elemwise_with_lists[other1-100] dask/array/tests/test_array_core.py::test_setitem_errs dask/array/tests/test_array_core.py::test_reshape_fails_for_dask_only dask/array/tests/test_array_core.py::test_short_stack dask/array/tests/test_array_core.py::test_map_blocks_dtype_inference dask/array/tests/test_array_core.py::test_concatenate3_nep18_dispatching[True] dask/array/tests/test_array_core.py::test_blockwise_concatenate dask/array/tests/test_array_core.py::test_setitem_on_read_only_blocks dask/array/tests/test_array_core.py::test_empty_chunks_in_array_len dask/array/tests/test_array_core.py::test_setitem_extended_API_2d[index12-value12] dask/tests/test_order.py::test_stacklimit[abcde] dask/array/tests/test_array_core.py::test_from_array_scalar[complex64] dask/array/tests/test_array_core.py::test_no_warnings_on_metadata dask/tests/test_order.py::test_use_structure_not_keys[edcba] dask/array/tests/test_array_core.py::test_from_array_scalar[float32] dask/array/tests/test_array_core.py::test_from_zarr_unique_name dask/array/tests/test_array_core.py::test_nbytes dask/array/tests/test_array_core.py::test_concatenate3_on_scalars dask/array/tests/test_array_core.py::test_from_array_scalar[str_] dask/array/tests/test_array_core.py::test_from_array_no_asarray[False-matrix] dask/array/tests/test_array_core.py::test_store_locks dask/array/tests/test_array_core.py::test_blockwise_with_numpy_arrays dask/array/tests/test_array_core.py::test_raise_on_no_chunks dask/array/tests/test_array_core.py::test_index_array_with_array_1d dask/tests/test_order.py::test_base_of_reduce_preferred[edcba] dask/array/tests/test_array_core.py::test_from_func dask/array/tests/test_array_core.py::test_compute_chunk_sizes_warning_fixes_reshape dask/array/tests/test_array_core.py::test_asarray[asarray] dask/array/tests/test_array_core.py::test_setitem_extended_API_2d_mask[index1-value1] dask/tests/test_order.py::test_prefer_short_ancestor[abcde] dask/tests/test_order.py::test_stacklimit[edcba] dask/array/tests/test_array_core.py::test_elemwise_with_lists[other2-100] dask/array/tests/test_array_core.py::test_normalize_chunks_auto_1d[1000-167-expected5] dask/tests/test_order.py::test_prefer_deep[abcde] dask/array/tests/test_array_core.py::test_field_access dask/array/tests/test_array_core.py::test_setitem_extended_API_2d[5--1] dask/tests/test_order.py::test_string_ordering