-
-
Notifications
You must be signed in to change notification settings - Fork 30.9k
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
bpo-45192: Fix a bug that infers the type of an os.PathLike[bytes] object as str #28323
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…ject as str 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.
sobolevn
reviewed
Sep 16, 2021
Misc/NEWS.d/next/Library/2021-09-14-15-52-47.bpo-45192.DjA-BI.rst
Outdated
Show resolved
Hide resolved
Misc/NEWS.d/next/Library/2021-09-14-15-52-47.bpo-45192.DjA-BI.rst
Outdated
Show resolved
Hide resolved
This PR is stale because it has been open for 30 days with no activity. |
I’m waiting for review. |
github-actions
bot
removed
the
stale
Stale PR or inactive for long period of time.
label
Oct 19, 2021
Closing and re-opening to re-trigger CI. |
ambv
added
needs backport to 3.9
only security fixes
needs backport to 3.10
only security fixes
labels
Oct 20, 2021
Thanks @rekyungmin for the PR, and @ambv for merging it 🌮🎉.. I'm working now to backport this PR to: 3.9, 3.10. |
GH-29111 is a backport of this pull request to the 3.10 branch. |
GH-29112 is a backport of this pull request to the 3.9 branch. |
miss-islington
pushed a commit
to miss-islington/cpython
that referenced
this pull request
Oct 20, 2021
…ject as str (pythonGH-28323) 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 6270d3e) Co-authored-by: Kyungmin Lee <rekyungmin@gmail.com>
miss-islington
pushed a commit
to miss-islington/cpython
that referenced
this pull request
Oct 20, 2021
…ject as str (pythonGH-28323) 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 6270d3e) Co-authored-by: Kyungmin Lee <rekyungmin@gmail.com>
ambv
pushed a commit
that referenced
this pull request
Oct 20, 2021
…ject 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 6270d3e) Co-authored-by: Kyungmin Lee <rekyungmin@gmail.com>
ambv
pushed a commit
that referenced
this pull request
Oct 20, 2021
…ject as str (GH-28323) (GH-29111) 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 6270d3e) Co-authored-by: Kyungmin Lee <rekyungmin@gmail.com>
shihai1991
added a commit
to shihai1991/cpython
that referenced
this pull request
Oct 21, 2021
* main: (263 commits) bpo-45521: Fix a bug in the obmalloc radix tree code. (pythonGH-29051) bpo-45522: Allow to disable freelists on build time (pythonGH-29056) bpo-34451: Document prompt and output toggle feature in html tutorial (pythonGH-27105) bpo-44019: Add operator.call() to __all__ for the operator module (pythonGH-29110) bpo-45315: PyType_FromSpec: Copy spec->name and have the type own the memory for its name (pythonGH-29103) bpo-44220: Export PyStructSequence_UnnamedField in the limited API (pythonGH-26331) bpo-44174: [Enum] add reference to name mangling (pythonGH-29116) bpo-45548: add some missing entries to `Modules/Setup` (pythonGH-29115) bpo-35673: Add a public alias for namespace package __loader__ attribute (python#29049) bpo-45192: Fix a bug that infers the type of an os.PathLike[bytes] object as str (pythonGH-28323) bpo-45527: Don't count cache hits, just misses. (pythonGH-29092) bpo-45320: Remove long-deprecated inspect methods (pythonGH-28618) bpo-41374: Remove obsolete exclusion of netinet/tcp.h on Cygwin (pythonGH-21649) bpo-45532: Replace 'default' with 'main' as default in sys.version (pythonGH-29100) bpo-45464: [doc] Explain that subclassing multiple exceptions is fragile (pythonGH-29094) Cleanup a couple of comments left on PR 28775 post-merge. (pythonGH-29079) bpo-45536: Check OpenSSL APIs in configure (pythonGH-29088) Add PEPs 593 & 647 to list of PEPs at top of typing docs (pythonGH-29097) Add a comment about how to fix bogus test_host_resolution_bad_address failures (python#29085) bpo-44525: Specialize simple Python calls. (pythonGH-29033) ...
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
The tempfile module has been updated to accept an object implementing
os.PathLike
protocol for path-related parameters as of Python 3.6 (e.g.dir
parameter). Anos.PathLike
object represents a filesystem path as astr
orbytes
object (i.e.def __fspath__(self) -> Union[str, bytes]:
). However, if an object implementingos.PathLike[bytes]
is passed as adir
argument, aTypeError
is raised:This bug occurs because the
tempfile._infer_return_type
function considers all non-bytes objects asstr
._infer_return_type
function should inferos.PathLike[str]
object asstr
type andos.PathLike[bytes]
object asbytes type
.https://bugs.python.org/issue45192