-
Notifications
You must be signed in to change notification settings - Fork 240
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Virtualize filenames as in-container paths from point of view of WDL command #4527
Conversation
I tested this manually with:
The The output looks like this now (instead of crashing):
I think this is right: |
Shloka said this works for her real workflow. |
This looks good to me. The fix runs right on my machine and it looks similar to how MiniWDL deals with placeholder expressions. A bunch of the conformance tests all run properly on my end as well. |
src/toil/wdl/wdltoil.py
Outdated
|
||
if result is None: | ||
# We really shouldn't have files in here that we didn't virtualize. | ||
raise RuntimeError(f"File {filename} in container is not mounted from the host and can't be opened form the host") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
opened form the host
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Minor comment.
This should fix problems with WDL file manipulation functions not working right when called from command placeholder substitutions.
Now we have the "virtual" file name space be the inside of the container path space during WDL task commands, while the devirtualized path space is always the host side path space.
This should fix #4514 for files that aren't just converted from strings where that isn't really allowed, and should also fix #4515.
It doesn't really do anything for #4516, but is sort of relevant. With this, you only get the in-container path inside the command itself. If you go File to String elsewhere in the task, you get a URI.
Changelog Entry
To be copied to the draft changelog by merger:
Reviewer Checklist
issues/XXXX-fix-the-thing
in the Toil repo, or from an external repo.camelCase
that want to be insnake_case
.docs/running/{cliOptions,cwl,wdl}.rst
Merger Checklist