MCPcopy
hub / github.com/dask/dask / convert_legacy_task

Function convert_legacy_task

dask/_task_spec.py:203–256  ·  view source on GitHub ↗
(
    key: KeyType | None,
    task: _T,
    all_keys: Container,
)

Source from the content-addressed store, hash-verified

201
202
203def convert_legacy_task(
204 key: KeyType | None,
205 task: _T,
206 all_keys: Container,
207) -> GraphNode | _T:
208 if isinstance(task, GraphNode):
209 return task
210
211 if type(task) is tuple and task and callable(task[0]):
212 func, args = task[0], task[1:]
213 new_args = []
214 new: object
215 for a in args:
216 if isinstance(a, dict):
217 new = Dict(a)
218 else:
219 new = convert_legacy_task(None, a, all_keys)
220 new_args.append(new)
221 return Task(key, func, *new_args)
222 try:
223 if isinstance(task, (int, float, str, tuple)):
224 if task in all_keys:
225 if key is None:
226 return Alias(task)
227 else:
228 return Alias(key, target=task)
229 except TypeError:
230 # Unhashable
231 pass
232
233 if isinstance(task, (list, tuple, set, frozenset)):
234 if is_namedtuple_instance(task):
235 return _wrap_namedtuple_task(
236 key,
237 task,
238 partial(
239 convert_legacy_task,
240 None,
241 all_keys=all_keys,
242 ),
243 )
244 else:
245 parsed_args = tuple(convert_legacy_task(None, t, all_keys) for t in task)
246 if any(isinstance(a, GraphNode) for a in parsed_args):
247 return Task(key, _identity_cast, *parsed_args, typ=type(task))
248 else:
249 return cast(_T, type(task)(parsed_args))
250 elif _is_dask_future(task):
251 if key is None:
252 return Alias(task.key) # type: ignore[attr-defined]
253 else:
254 return Alias(key, target=task.key) # type: ignore[attr-defined]
255 else:
256 return task
257
258
259def convert_legacy_graph(

Callers 2

read_pandasFunction · 0.90
convert_legacy_graphFunction · 0.85

Calls 7

is_namedtuple_instanceFunction · 0.90
DictClass · 0.85
TaskClass · 0.85
AliasClass · 0.85
_wrap_namedtuple_taskFunction · 0.85
anyFunction · 0.85
_is_dask_futureFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…