I have a situation similar to the one outlined here, except that instead of chaining tasks with multiple arguments, I want to chain tasks that return a dictionary with multi
chain and the other canvas primitives are in the family of
functional utilities like map and reduce.
E.g. where map(target, items) calls target(item) for every item in the list,
Python has a rarely used version of map called itertools.starmap,
which instead calls target(*item).
While we could add starchain and even kwstarchain to the toolbox, these
would be very specialized and probably not used as often.
Interestingly Python has made these unnecessary with the list and generator expressions,
so that map is replaced with [target(item) for item in item] and starmap with [target(*item) for item in item].
So instead of implementing several alternatives for each primitive I think we should focus on finding a more flexible way of supporting this, e.g. like having celery powered generator expressions (if possible, and if not something similarly powerful)