()
| 645 | |
| 646 | |
| 647 | def test_from_delayed(): |
| 648 | df = pd.DataFrame(data=np.random.normal(size=(10, 4)), columns=list("abcd")) |
| 649 | parts = [df.iloc[:1], df.iloc[1:3], df.iloc[3:6], df.iloc[6:10]] |
| 650 | dfs = [delayed(parts.__getitem__)(i) for i in range(4)] |
| 651 | meta = dfs[0].compute() |
| 652 | |
| 653 | my_len = lambda x: pd.Series([len(x)]) |
| 654 | |
| 655 | for divisions in [None, [0, 1, 3, 6, 10]]: |
| 656 | ddf = dd.from_delayed(dfs, meta=meta, divisions=divisions) |
| 657 | assert_eq(ddf, df) |
| 658 | assert list(ddf.map_partitions(my_len).compute()) == [1, 2, 3, 4] |
| 659 | assert ddf.known_divisions == (divisions is not None) |
| 660 | |
| 661 | s = dd.from_delayed([d.a for d in dfs], meta=meta.a, divisions=divisions) |
| 662 | assert_eq(s, df.a) |
| 663 | assert list(s.map_partitions(my_len).compute()) == [1, 2, 3, 4] |
| 664 | assert ddf.known_divisions == (divisions is not None) |
| 665 | |
| 666 | meta2 = [(c, "f8") for c in df.columns] |
| 667 | assert_eq(dd.from_delayed(dfs, meta=meta2), df) |
| 668 | assert_eq(dd.from_delayed([d.a for d in dfs], meta=("a", "f8")), df.a) |
| 669 | |
| 670 | with pytest.raises(ValueError): |
| 671 | dd.from_delayed(dfs, meta=meta, divisions=[0, 1, 3, 6]) |
| 672 | |
| 673 | with pytest.raises(ValueError) as e: |
| 674 | dd.from_delayed(dfs, meta=meta.a).compute() |
| 675 | assert str(e.value).startswith("Metadata mismatch found in `from_delayed`") |
| 676 | |
| 677 | |
| 678 | def test_from_delayed_to_dask_array(): |
nothing calls this directly
no test coverage detected
searching dependent graphs…