Closed Andrew-S-Rosen closed 2 months ago
@yadudoc --- I'd be interested to get your thoughts on this one. It seems you have had similar ideas in prior issues, such as in https://github.com/Parsl/parsl/issues/1790#issuecomment-657710015. I would love to see at least some degree of Parsl-based introspection, and I'm curious what your perspective is.
My proposal would be the following: if an object __contains__
an AppFuture
, then Parsl should know to implicitly block and resolve. This would cover the keys of dictionaries, and first level of lists and tuples, among other iterables. It would not be recursive, but I'd argue that this is better than nothing at all.
Closed in #3111.
Describe the bug
When passing a
dict
ortuple
(or other iterable) with anAppFuture
in it as the input to aPythonApp
, Parsl does not implicitly know to block and resolve it before proceeding with the next task.In both scenarios, you will get the same
TypeError: expected str, bytes or os.PathLike object, not AppFuture
because theAppFuture
is not automatically resolved by the time it gets to thePath()
call.