def test_persist_nested(): a = delayed(1) + 5 b = a + 1 c = a + 2 result = persist({'a': a, 'b': [1, 2, b]}, (c, 2)) assert isinstance(result[0]['a'], Delayed) assert isinstance(result[0]['b'][2], Delayed) assert isinstance(result[1][0], Delayed) assert compute(*result) == ({'a': 6, 'b': [1, 2, 7]}, (8, 2)) res = persist([a, b], c, traverse=False) assert res[0][0] is a assert res[0][1] is b assert res[1].compute() == 8
def test_persist_array_bag(): x = da.arange(5, chunks=2) + 1 b = db.from_sequence([1, 2, 3]).map(inc) with pytest.raises(ValueError): persist(x, b) xx, bb = persist(x, b, get=dask.async.get_sync) assert isinstance(xx, da.Array) assert isinstance(bb, db.Bag) assert xx.name == x.name assert bb.name == b.name assert len(xx.dask) == xx.npartitions < len(x.dask) assert len(bb.dask) == bb.npartitions < len(b.dask) assert np.allclose(x, xx) assert list(b) == list(bb)
def test_persist_delayed(): x1 = delayed(1) x2 = delayed(inc)(x1) x3 = delayed(inc)(x2) xx, = persist(x3) assert isinstance(xx, Delayed) assert xx.key == x3.key assert len(xx.dask) == 1 assert x3.compute() == xx.compute()
def test_persist_literals(): assert persist(1, 2, 3) == (1, 2, 3)
def test_persist_delayedleaf(): x = delayed(1) (xx,) = persist(x) assert isinstance(xx, Delayed) assert xx.compute() == 1