def test_to_task_dasks(): a = delayed(1, name='a') b = delayed(2, name='b') task, dasks = to_task_dasks([a, b, 3]) assert task == ['a', 'b', 3] assert len(dasks) == 2 assert a.dask in dasks assert b.dask in dasks task, dasks = to_task_dasks((a, b, 3)) assert task == (tuple, ['a', 'b', 3]) assert len(dasks) == 2 assert a.dask in dasks assert b.dask in dasks task, dasks = to_task_dasks({a: 1, b: 2}) assert (task == (dict, [['b', 2], ['a', 1]]) or task == (dict, [['a', 1], ['b', 2]])) assert len(dasks) == 2 assert a.dask in dasks assert b.dask in dasks f = namedtuple('f', ['x', 'y']) x = f(1, 2) task, dasks = to_task_dasks(x) assert task == x assert dasks == []
def test_unquote(): from dask.diagnostics.profile_visualize import unquote from dask.delayed import to_task_dasks f = lambda x: to_task_dasks(x)[0] t = {'a': 1, 'b': 2, 'c': 3} assert unquote(f(t)) == t t = {'a': [1, 2, 3], 'b': 2, 'c': 3} assert unquote(f(t)) == t t = [1, 2, 3] assert unquote(f(t)) == t
def test_array_delayed(): np = pytest.importorskip('numpy') da = pytest.importorskip('dask.array') arr = np.arange(100).reshape((10, 10)) darr = da.from_array(arr, chunks=(5, 5)) val = delayed(sum)([arr, darr, 1]) assert isinstance(val, Delayed) assert np.allclose(val.compute(), arr + arr + 1) assert val.sum().compute() == (arr + arr + 1).sum() assert val[0, 0].compute() == (arr + arr + 1)[0, 0] task, dsk = to_task_dasks(darr) orig = set(darr.dask) final = set(dsk) assert orig.issubset(final) diff = final.difference(orig) assert len(diff) == 1
def test_array_delayed(): np = pytest.importorskip('numpy') da = pytest.importorskip('dask.array') arr = np.arange(100).reshape((10, 10)) darr = da.from_array(arr, chunks=(5, 5)) val = delayed(sum)([arr, darr, 1]) assert isinstance(val, Delayed) assert np.allclose(val.compute(), arr + arr + 1) assert val.sum().compute() == (arr + arr + 1).sum() assert val[0, 0].compute() == (arr + arr + 1)[0, 0] task, dasks = to_task_dasks(darr) assert len(dasks) == 1 orig = set(darr.dask) final = set(dasks[0]) assert orig.issubset(final) diff = final.difference(orig) assert len(diff) == 1
def to_task_dasks_params(expr, **kwargs): task, dasks = to_task_dasks(expr, **kwargs) params = to_params(expr, **kwargs) return task, dasks, params