From da10e94d4d1ed8119aa9b802ea0fee1666b0250a Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Tue, 4 Jan 2022 10:53:17 +0000 Subject: [PATCH 1/4] Update posixpath.pyi --- stdlib/posixpath.pyi | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/stdlib/posixpath.pyi b/stdlib/posixpath.pyi index ae3d0d5cc65f..c760519b1603 100644 --- a/stdlib/posixpath.pyi +++ b/stdlib/posixpath.pyi @@ -60,10 +60,13 @@ def normpath(path: AnyStr) -> AnyStr: ... def commonpath(paths: Sequence[StrPath]) -> str: ... @overload def commonpath(paths: Sequence[BytesPath]) -> bytes: ... +# First parameter is not actually pos-only, +# but must be defined as pos-only in the stub or cross-platform code doesn't type-check, +# as the parameter name is different in ntpath.join() @overload -def join(a: StrPath, *paths: StrPath) -> str: ... +def join(__a: StrPath, *paths: StrPath) -> str: ... @overload -def join(a: BytesPath, *paths: BytesPath) -> bytes: ... +def join(__a: BytesPath, *paths: BytesPath) -> bytes: ... if sys.version_info >= (3, 10): @overload From 705276094c29f22831ce05025a431a9f08ed664d Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Tue, 4 Jan 2022 10:55:01 +0000 Subject: [PATCH 2/4] Update ntpath.pyi --- stdlib/ntpath.pyi | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/stdlib/ntpath.pyi b/stdlib/ntpath.pyi index 45d715704157..f691356cb702 100644 --- a/stdlib/ntpath.pyi +++ b/stdlib/ntpath.pyi @@ -48,11 +48,13 @@ altsep: str if sys.version_info < (3, 7) and sys.platform == "win32": def splitunc(p: AnyStr) -> tuple[AnyStr, AnyStr]: ... # deprecated -# Similar to posixpath, but have slightly different argument names +# First parameter is not actually pos-only, +# but must be defined as pos-only in the stub or cross-platform code doesn't type-check, +# as the parameter name is different in posixpath.join() @overload -def join(path: StrPath, *paths: StrPath) -> str: ... +def join(__path: StrPath, *paths: StrPath) -> str: ... @overload -def join(path: BytesPath, *paths: BytesPath) -> bytes: ... +def join(__path: BytesPath, *paths: BytesPath) -> bytes: ... if sys.platform == "win32": if sys.version_info >= (3, 10): From 72e8e5e5052e700872a741da4df5c190d742de67 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 4 Jan 2022 11:02:12 +0000 Subject: [PATCH 3/4] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stdlib/posixpath.pyi | 1 + 1 file changed, 1 insertion(+) diff --git a/stdlib/posixpath.pyi b/stdlib/posixpath.pyi index c760519b1603..58cadb4de03c 100644 --- a/stdlib/posixpath.pyi +++ b/stdlib/posixpath.pyi @@ -60,6 +60,7 @@ def normpath(path: AnyStr) -> AnyStr: ... def commonpath(paths: Sequence[StrPath]) -> str: ... @overload def commonpath(paths: Sequence[BytesPath]) -> bytes: ... + # First parameter is not actually pos-only, # but must be defined as pos-only in the stub or cross-platform code doesn't type-check, # as the parameter name is different in ntpath.join() From 4237479829012961446e1bcdd300147f488a25e1 Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Tue, 4 Jan 2022 11:05:08 +0000 Subject: [PATCH 4/4] Update py310.txt --- tests/stubtest_allowlists/py310.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/stubtest_allowlists/py310.txt b/tests/stubtest_allowlists/py310.txt index 531b40bc44c9..390ca296106c 100644 --- a/tests/stubtest_allowlists/py310.txt +++ b/tests/stubtest_allowlists/py310.txt @@ -115,6 +115,10 @@ contextlib.AbstractContextManager.__exit__ io.IncrementalNewlineDecoder.setstate typing.SupportsRound.__round__ types.DynamicClassAttribute..* # In the stub we pretend it's an alias for property, but it has positional-only differences +# These three have a pos-or-keyword first parameter at runtime, but deliberately have a pos-only first parameter in the stub. #6812 +posixpath.join +ntpath.join +os.path.join # These enums derive from (str, Enum). See comment in py3_common.txt pstats.SortKey.__new__