pathlib: Python3.13 updates (#12048)

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
This commit is contained in:
Amin Alaee
2024-05-27 16:43:15 +02:00
committed by GitHub
parent 05955c0cb8
commit 460c35bd6f
4 changed files with 44 additions and 28 deletions

View File

@@ -20,8 +20,6 @@ os.ptsname
os.unlockpt
os.waitid
os.waitid_result
pathlib.Path.group
pathlib.Path.owner
posix.grantpt
posix.posix_openpt
posix.ptsname

View File

@@ -134,8 +134,6 @@ os.timerfd_gettime_ns
os.timerfd_settime
os.timerfd_settime_ns
os.unlockpt
pathlib.Path.group
pathlib.Path.owner
posix.POSIX_SPAWN_CLOSEFROM
posix.TFD_CLOEXEC
posix.TFD_NONBLOCK

View File

@@ -132,19 +132,6 @@ mimetypes.__all__
mimetypes.guess_file_type
mmap.mmap.seekable
multiprocessing.shared_memory.SharedMemory.__init__
pathlib.Path.__enter__
pathlib.Path.__exit__
pathlib.Path.from_uri
pathlib.Path.glob
pathlib.Path.is_dir
pathlib.Path.is_file
pathlib.Path.read_text
pathlib.Path.rglob
pathlib.PurePath.parser
pathlib.PurePosixPath.parser
pathlib.PureWindowsPath.parser
pathlib.UnsupportedOperation
pathlib.__all__
pdb.Pdb.MAX_CHAINED_EXCEPTION_DEPTH
pdb.Pdb.completedefault
pdb.Pdb.completenames

View File

@@ -1,4 +1,5 @@
import sys
import types
from _typeshed import (
OpenBinaryMode,
OpenBinaryModeReading,
@@ -14,7 +15,7 @@ from collections.abc import Callable, Generator, Iterator, Sequence
from io import BufferedRandom, BufferedReader, BufferedWriter, FileIO, TextIOWrapper
from os import PathLike, stat_result
from types import TracebackType
from typing import IO, Any, BinaryIO, Literal, overload
from typing import IO, Any, BinaryIO, ClassVar, Literal, overload
from typing_extensions import Self, deprecated
if sys.version_info >= (3, 9):
@@ -22,7 +23,14 @@ if sys.version_info >= (3, 9):
__all__ = ["PurePath", "PurePosixPath", "PureWindowsPath", "Path", "PosixPath", "WindowsPath"]
if sys.version_info >= (3, 13):
__all__ += ["UnsupportedOperation"]
class PurePath(PathLike[str]):
if sys.version_info >= (3, 13):
parser: ClassVar[types.ModuleType]
def full_match(self, pattern: StrPath, *, case_sensitive: bool | None = None) -> bool: ...
@property
def parts(self) -> tuple[str, ...]: ...
@property
@@ -94,8 +102,6 @@ class PureWindowsPath(PurePath): ...
class Path(PurePath):
def __new__(cls, *args: StrPath, **kwargs: Any) -> Self: ...
def __enter__(self) -> Self: ...
def __exit__(self, t: type[BaseException] | None, v: BaseException | None, tb: TracebackType | None) -> None: ...
@classmethod
def cwd(cls) -> Self: ...
if sys.version_info >= (3, 10):
@@ -105,17 +111,38 @@ class Path(PurePath):
def stat(self) -> stat_result: ...
def chmod(self, mode: int) -> None: ...
if sys.version_info >= (3, 12):
def exists(self, *, follow_symlinks: bool = True) -> bool: ...
if sys.version_info >= (3, 13):
@classmethod
def from_uri(cls, uri: str) -> Path: ...
def is_dir(self, *, follow_symlinks: bool = True) -> bool: ...
def is_file(self, *, follow_symlinks: bool = True) -> bool: ...
def read_text(self, encoding: str | None = None, errors: str | None = None, newline: str | None = None) -> str: ...
else:
def __enter__(self) -> Self: ...
def __exit__(self, t: type[BaseException] | None, v: BaseException | None, tb: TracebackType | None) -> None: ...
def is_dir(self) -> bool: ...
def is_file(self) -> bool: ...
def read_text(self, encoding: str | None = None, errors: str | None = None) -> str: ...
if sys.version_info >= (3, 13):
def glob(
self, pattern: str, *, case_sensitive: bool | None = None, recurse_symlinks: bool = False
) -> Generator[Self, None, None]: ...
def rglob(
self, pattern: str, *, case_sensitive: bool | None = None, recurse_symlinks: bool = False
) -> Generator[Self, None, None]: ...
elif sys.version_info >= (3, 12):
def glob(self, pattern: str, *, case_sensitive: bool | None = None) -> Generator[Self, None, None]: ...
def rglob(self, pattern: str, *, case_sensitive: bool | None = None) -> Generator[Self, None, None]: ...
else:
def exists(self) -> bool: ...
def glob(self, pattern: str) -> Generator[Self, None, None]: ...
def rglob(self, pattern: str) -> Generator[Self, None, None]: ...
def is_dir(self) -> bool: ...
def is_file(self) -> bool: ...
if sys.version_info >= (3, 12):
def exists(self, *, follow_symlinks: bool = True) -> bool: ...
else:
def exists(self) -> bool: ...
def is_symlink(self) -> bool: ...
def is_socket(self) -> bool: ...
def is_fifo(self) -> bool: ...
@@ -186,8 +213,12 @@ class Path(PurePath):
if sys.platform != "win32":
# These methods do "exist" on Windows, but they always raise NotImplementedError,
# so it's safer to pretend they don't exist
def owner(self) -> str: ...
def group(self) -> str: ...
if sys.version_info >= (3, 13):
def owner(self, *, follow_symlinks: bool = True) -> str: ...
def group(self, *, follow_symlinks: bool = True) -> str: ...
else:
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
@@ -212,7 +243,6 @@ class Path(PurePath):
def absolute(self) -> Self: ...
def expanduser(self) -> Self: ...
def read_bytes(self) -> bytes: ...
def read_text(self, encoding: str | None = None, errors: str | None = None) -> str: ...
def samefile(self, other_path: StrPath) -> bool: ...
def write_bytes(self, data: ReadableBuffer) -> int: ...
if sys.version_info >= (3, 10):
@@ -234,3 +264,6 @@ class Path(PurePath):
class PosixPath(Path, PurePosixPath): ...
class WindowsPath(Path, PureWindowsPath): ...
if sys.version_info >= (3, 13):
class UnsupportedOperation(NotImplementedError): ...