diff --git a/src/dask_awkward/lib/core.py b/src/dask_awkward/lib/core.py index 7496b5e5..0ee988b1 100644 --- a/src/dask_awkward/lib/core.py +++ b/src/dask_awkward/lib/core.py @@ -1623,6 +1623,16 @@ def map_partitions( kwarg_flat_deps, kwarg_repacker = unpack_collections(kwargs, traverse=traverse) flat_deps, _ = unpack_collections(*args, *kwargs.values(), traverse=traverse) + if len(flat_deps) == 0: + message = ( + "map_partitions expects at least one Dask collection instance, " + "you are passing non-Dask collections to dask-awkward code.\n" + "observed argument types:\n" + ) + for arg in args: + message += f"- {type(arg)}" + raise TypeError(message) + arg_flat_deps_expanded = [] arg_repackers = [] arg_lens_for_repackers = [] diff --git a/tests/test_core.py b/tests/test_core.py index 55a9cb94..c688097e 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -812,3 +812,11 @@ def test_dask_array_in_map_partitions(daa, caa): def test_dask_awkward_Array_copy(daa): c = copy.copy(daa) assert_eq(daa, c) + + +def test_map_partitions_no_dask_collections_passed(caa): + with pytest.raises( + TypeError, + match="map_partitions expects at least one Dask collection", + ): + dak.num(caa.points.x, axis=1)