From c3791d024ac6103e732c74618886e81510e16a35 Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Sun, 4 Jun 2023 20:09:06 +0100 Subject: [PATCH] `pathlib`: `is_mount()` is implemented on Windows on py312+ (#10257) --- stdlib/pathlib.pyi | 4 ++++ tests/stubtest_allowlists/win32-py310.txt | 1 + tests/stubtest_allowlists/win32-py311.txt | 1 + tests/stubtest_allowlists/win32-py37.txt | 1 + tests/stubtest_allowlists/win32-py38.txt | 1 + tests/stubtest_allowlists/win32-py39.txt | 1 + tests/stubtest_allowlists/win32.txt | 3 --- 7 files changed, 9 insertions(+), 3 deletions(-) diff --git a/stdlib/pathlib.pyi b/stdlib/pathlib.pyi index 7aec66b58..e390e7178 100644 --- a/stdlib/pathlib.pyi +++ b/stdlib/pathlib.pyi @@ -159,6 +159,10 @@ class Path(PurePath): # so it's safer to pretend they don't exist def owner(self) -> str: ... def group(self) -> str: ... + + # This method does "exist" on Windows on <3.12, but always raises NotImplementedError + # On py312+, it works properly on Windows, as with all other platforms + if sys.platform != "win32" or sys.version_info >= (3, 12): def is_mount(self) -> bool: ... if sys.version_info >= (3, 9): diff --git a/tests/stubtest_allowlists/win32-py310.txt b/tests/stubtest_allowlists/win32-py310.txt index 9999729fe..e62c9f696 100644 --- a/tests/stubtest_allowlists/win32-py310.txt +++ b/tests/stubtest_allowlists/win32-py310.txt @@ -12,4 +12,5 @@ subprocess.STARTUPINFO.copy # pathlib methods that exist on Windows, but always raise NotImplementedError, # so are omitted from the stub +pathlib.Path.is_mount pathlib.WindowsPath.is_mount diff --git a/tests/stubtest_allowlists/win32-py311.txt b/tests/stubtest_allowlists/win32-py311.txt index 6a4bb0a3a..f3eb72c32 100644 --- a/tests/stubtest_allowlists/win32-py311.txt +++ b/tests/stubtest_allowlists/win32-py311.txt @@ -15,4 +15,5 @@ subprocess.STARTUPINFO.copy # pathlib methods that exist on Windows, but always raise NotImplementedError, # so are omitted from the stub +pathlib.Path.is_mount pathlib.WindowsPath.is_mount diff --git a/tests/stubtest_allowlists/win32-py37.txt b/tests/stubtest_allowlists/win32-py37.txt index e806f8fa4..05db77c1e 100644 --- a/tests/stubtest_allowlists/win32-py37.txt +++ b/tests/stubtest_allowlists/win32-py37.txt @@ -14,6 +14,7 @@ urllib.parse.parse_qsl # pathlib methods that exist on Windows, but always raise NotImplementedError, # so are omitted from the stub +pathlib.Path.is_mount pathlib.WindowsPath.group pathlib.WindowsPath.owner pathlib.WindowsPath.is_mount diff --git a/tests/stubtest_allowlists/win32-py38.txt b/tests/stubtest_allowlists/win32-py38.txt index 44d8c508e..493696529 100644 --- a/tests/stubtest_allowlists/win32-py38.txt +++ b/tests/stubtest_allowlists/win32-py38.txt @@ -15,6 +15,7 @@ subprocess.STARTUPINFO.copy # pathlib methods that exist on Windows, but always raise NotImplementedError, # so are omitted from the stub +pathlib.Path.is_mount pathlib.WindowsPath.group pathlib.WindowsPath.owner pathlib.WindowsPath.is_mount diff --git a/tests/stubtest_allowlists/win32-py39.txt b/tests/stubtest_allowlists/win32-py39.txt index 5af02679e..f61f8653c 100644 --- a/tests/stubtest_allowlists/win32-py39.txt +++ b/tests/stubtest_allowlists/win32-py39.txt @@ -11,4 +11,5 @@ subprocess.STARTUPINFO.copy # pathlib methods that exist on Windows, but always raise NotImplementedError, # so are omitted from the stub +pathlib.Path.is_mount pathlib.WindowsPath.is_mount diff --git a/tests/stubtest_allowlists/win32.txt b/tests/stubtest_allowlists/win32.txt index 7e68abf51..cc851bf28 100644 --- a/tests/stubtest_allowlists/win32.txt +++ b/tests/stubtest_allowlists/win32.txt @@ -66,6 +66,3 @@ tty # pathlib functions that rely on modules that don't exist on Windows pathlib.Path.owner pathlib.Path.group -# pathlib methods that exist on Windows, but always raise NotImplementedError, -# so are omitted from the stub -pathlib.Path.is_mount