Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I tested out
py_require()
on Windows and noticed a few issues:uv
writes progress updates to stdout on Windows. This interfered with our ability to resolve the path to the ephemeral python, since we expected stdout to contain just the filepath.To fix, I refactored
uv_get_or_create()
to pass through both stderr and stdout from uv, and write the python executable path to a temporary file instead of stdout.The codepath that installed uv produced a file named 'Out-Null' in the current working directory.
To fix, I refactored the
system2()
call to usestdout=FALSE
The codepath that installed uv didn't seem to handle paths or mixed / in the file correctly.
Rather than think too hard about how quoting needs to happen for cmd.exe calling powershell, I refactored the installer to pass filepaths via an envvar, and also, use
shortPathName()
.