Repository navigation
gh-161788: Handle path-like commands in shutil.which() - #161789
Builder106 wants to merge 1 commit into
Conversation
Resolve command objects through the path protocol before selecting text or bytes handling. This preserves the documented bytes return type for path-like objects backed by bytes. Ref python#161788
picnixz
left a comment
There was a problem hiding this comment.
I don't think we ever actually accepted path-like objects for shutil.which() btw. So this is not an issue and rather a new feature. However, I don't think it's correct to accept pathlike because of the way we treat bytes for now. shutil.which(s: T) returns an object type T and returning a bytes instead of a path of bytes seems also wrong.
|
A Python core developer has requested some changes be made to your pull request before we can consider merging it. If you could please address their requests along with any other requests in other reviews from core developers that would be appreciated. Once you have made the requested changes, please leave a comment on this pull request containing the phrase |
Resolve
cmdwithos.fspath()beforeshutil.which()decides whether to use text or bytes paths. This makes bytes-backed path-like commands behave like directbytescommands and preserves the existing return type.The regression test runs through the existing text and bytes
TestWhichvariants.Tests
All 240 tests passed; 52 platform-specific tests were skipped on Linux ARM64.