Use os.fsencode() and os.fsdecode() for pathlike byte strings #3489
+2
−2
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.
Closes #3485 (possibly - testing todo)
https://peps.python.org/pep-0519/ "Adding a file system path protocol" (Python-Version: 3.6)
" If a str is desired and the encoding of bytes should be assumed to be the default file system encoding, then os.fsdecode() should be used."
https://peps.python.org/pep-0529/ "Change Windows filesystem encoding to UTF-8" (Python-Version: 3.6)
"On Windows bytes cannot round-trip all characters used in paths, as Python internally uses the *A functions and hence the encoding is “whatever the active code page is”. Since the active code page cannot represent all Unicode characters, the conversion of a path into bytes can lose information without warning or any available indication."
https://docs.python.org/3/library/sys.html#sys.getfilesystemencoding
"os.fsencode() and os.fsdecode() should be used to ensure that the correct encoding and errors mode are used."