MCPcopy
hub / github.com/dask/dask / test_dask_layers_to_delayed

Function test_dask_layers_to_delayed

dask/bag/tests/test_bag.py:1666–1695  ·  view source on GitHub ↗
(optimize)

Source from the content-addressed store, hash-verified

1664
1665@pytest.mark.parametrize("optimize", [False, True])
1666def test_dask_layers_to_delayed(optimize):
1667 # `da.Array.to_delayed` causes the layer name to not match the key.
1668 # Ensure the layer name is propagated between `Delayed` and `Item`.
1669 pytest.importorskip("numpy")
1670 da = pytest.importorskip("dask.array")
1671 i = db.Item.from_delayed(da.ones(1).to_delayed()[0])
1672 name = i.key[0]
1673 assert i.key[1:] == (0,)
1674 assert i.dask.layers.keys() == {f"delayed-{name}"}
1675 assert i.dask.dependencies == {f"delayed-{name}": set()}
1676 assert i.__dask_layers__() == (f"delayed-{name}",)
1677
1678 arr = da.ones(1) + 1
1679 delayed = arr.to_delayed(optimize_graph=optimize)[0]
1680 i = db.Item.from_delayed(delayed)
1681 assert i.key == delayed.key
1682 assert i.dask is delayed.dask
1683 assert i.__dask_layers__() == delayed.__dask_layers__()
1684
1685 back = i.to_delayed(optimize_graph=optimize)
1686 assert back.__dask_layers__() == i.__dask_layers__()
1687
1688 if not optimize:
1689 assert back.dask is arr.dask
1690 # When not optimized, the key is not a layer in the graph, so using it should fail
1691 with pytest.raises(ValueError, match="not in"):
1692 db.Item(back.dask, back.key)
1693
1694 with pytest.raises(ValueError, match="not in"):
1695 db.Item(arr.dask, (arr.name,), layer="foo")
1696
1697
1698def test_to_dataframe_optimize_graph():

Callers

nothing calls this directly

Calls 6

setClass · 0.85
from_delayedMethod · 0.80
to_delayedMethod · 0.45
onesMethod · 0.45
keysMethod · 0.45
__dask_layers__Method · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…