mirror of
https://github.com/python/cpython.git
synced 2025-10-31 21:51:50 +00:00
bpo-45192: Fix a bug that infers the type of an os.PathLike[bytes] object as str (GH-28323) (GH-29112)
An object implementing the os.PathLike protocol can represent a file
system path as a str or bytes object.
Therefore, _infer_return_type function should infer os.PathLike[str]
object as str type and os.PathLike[bytes] object as bytes type.
(cherry picked from commit 6270d3eeaf)
Co-authored-by: Kyungmin Lee <rekyungmin@gmail.com>
This commit is contained in:
parent
427ab124b3
commit
d33fae7105
3 changed files with 28 additions and 0 deletions
|
|
@ -88,6 +88,10 @@ def _infer_return_type(*args):
|
|||
for arg in args:
|
||||
if arg is None:
|
||||
continue
|
||||
|
||||
if isinstance(arg, _os.PathLike):
|
||||
arg = _os.fspath(arg)
|
||||
|
||||
if isinstance(arg, bytes):
|
||||
if return_type is str:
|
||||
raise TypeError("Can't mix bytes and non-bytes in "
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue