diff --git a/stdlib/@tests/stubtest_allowlists/darwin-py314.txt b/stdlib/@tests/stubtest_allowlists/darwin-py314.txt index 31c60195d..128e49ac2 100644 --- a/stdlib/@tests/stubtest_allowlists/darwin-py314.txt +++ b/stdlib/@tests/stubtest_allowlists/darwin-py314.txt @@ -13,7 +13,6 @@ ctypes.c_float_complex._type_ ctypes.c_longdouble_complex._type_ multiprocessing.popen_fork.Popen.interrupt multiprocessing.reduction.ACKNOWLEDGE -posix.readinto # ======= diff --git a/stdlib/@tests/stubtest_allowlists/linux-py314.txt b/stdlib/@tests/stubtest_allowlists/linux-py314.txt index c6e1bc3bd..091e7257d 100644 --- a/stdlib/@tests/stubtest_allowlists/linux-py314.txt +++ b/stdlib/@tests/stubtest_allowlists/linux-py314.txt @@ -21,11 +21,6 @@ ctypes.c_longdouble_complex._type_ errno.EHWPOISON multiprocessing.popen_fork.Popen.interrupt multiprocessing.reduction.ACKNOWLEDGE -os.SCHED_DEADLINE -os.SCHED_NORMAL -posix.SCHED_DEADLINE -posix.SCHED_NORMAL -posix.readinto select.EPOLLWAKEUP socket.CAN_RAW_ERR_FILTER socket.IPV6_RECVERR diff --git a/stdlib/@tests/stubtest_allowlists/py314.txt b/stdlib/@tests/stubtest_allowlists/py314.txt index eac9334bc..5115fe7a8 100644 --- a/stdlib/@tests/stubtest_allowlists/py314.txt +++ b/stdlib/@tests/stubtest_allowlists/py314.txt @@ -90,8 +90,6 @@ multiprocessing.managers._BaseDictProxy.__ror__ multiprocessing.managers._BaseDictProxy.fromkeys multiprocessing.process.BaseProcess.interrupt multiprocessing.synchronize.SemLock.locked -os.__all__ -os.readinto pkgutil.__all__ pkgutil.find_loader pkgutil.get_loader diff --git a/stdlib/os/__init__.pyi b/stdlib/os/__init__.pyi index d0ef614ab..5286c76d1 100644 --- a/stdlib/os/__init__.pyi +++ b/stdlib/os/__init__.pyi @@ -160,6 +160,8 @@ __all__ = [ "walk", "write", ] +if sys.version_info >= (3, 14): + __all__ += ["readinto"] if sys.platform == "darwin" and sys.version_info >= (3, 12): __all__ += ["PRIO_DARWIN_BG", "PRIO_DARWIN_NONUI", "PRIO_DARWIN_PROCESS", "PRIO_DARWIN_THREAD"] if sys.platform == "darwin" and sys.version_info >= (3, 10): @@ -208,6 +210,8 @@ if sys.platform == "linux": "removexattr", "setxattr", ] +if sys.platform == "linux" and sys.version_info >= (3, 14): + __all__ += ["SCHED_DEADLINE", "SCHED_NORMAL"] if sys.platform == "linux" and sys.version_info >= (3, 13): __all__ += [ "POSIX_SPAWN_CLOSEFROM", @@ -570,6 +574,10 @@ if sys.platform == "linux": SCHED_IDLE: int SCHED_RESET_ON_FORK: int +if sys.version_info >= (3, 14) and sys.platform == "linux": + SCHED_DEADLINE: int + SCHED_NORMAL: int + if sys.platform != "win32": RTLD_LAZY: int RTLD_NOW: int @@ -1149,6 +1157,9 @@ if sys.platform != "win32": def readv(fd: int, buffers: SupportsLenAndGetItem[WriteableBuffer], /) -> int: ... def writev(fd: int, buffers: SupportsLenAndGetItem[ReadableBuffer], /) -> int: ... +if sys.version_info >= (3, 14): + def readinto(fd: int, buffer: ReadableBuffer, /) -> int: ... + @final class terminal_size(structseq[int], tuple[int, int]): if sys.version_info >= (3, 10): diff --git a/stdlib/posix.pyi b/stdlib/posix.pyi index 88f4135af..6d0d76ab8 100644 --- a/stdlib/posix.pyi +++ b/stdlib/posix.pyi @@ -250,6 +250,12 @@ if sys.platform != "win32": timerfd_settime_ns as timerfd_settime_ns, ) + if sys.version_info >= (3, 14): + from os import readinto as readinto + + if sys.version_info >= (3, 14) and sys.platform == "linux": + from os import SCHED_DEADLINE as SCHED_DEADLINE, SCHED_NORMAL as SCHED_NORMAL + if sys.platform != "linux": from os import O_EXLOCK as O_EXLOCK, O_SHLOCK as O_SHLOCK, chflags as chflags, lchflags as lchflags, lchmod as lchmod