diff --git a/stdlib/multiprocessing/popen_forkserver.pyi b/stdlib/multiprocessing/popen_forkserver.pyi new file mode 100644 index 000000000..d28c7245f --- /dev/null +++ b/stdlib/multiprocessing/popen_forkserver.pyi @@ -0,0 +1,22 @@ +import sys +from multiprocessing.process import BaseProcess +from typing import ClassVar + +from . import popen_fork +from .util import Finalize + +if sys.platform != "win32": + __all__ = ["Popen"] + + class _DupFd: + def __init__(self, ind: int) -> None: ... + def detach(self) -> int: ... + + class Popen(popen_fork.Popen): + DupFd: ClassVar[type[_DupFd]] + finalizer: Finalize + sentinel: int + + def __init__(self, process_obj: BaseProcess) -> None: ... + def duplicate_for_child(self, fd: int) -> int: ... + def poll(self, flag: int = ...) -> int | None: ... diff --git a/tests/stubtest_allowlists/win32.txt b/tests/stubtest_allowlists/win32.txt index ab0bb8516..16b7c2685 100644 --- a/tests/stubtest_allowlists/win32.txt +++ b/tests/stubtest_allowlists/win32.txt @@ -56,8 +56,9 @@ syslog termios xxlimited -# Multiprocessing.popen_fork exists on Windows but fails to import +# multiprocessing.popen_fork and popen_forkserver exist on Windows but fail to import multiprocessing.popen_fork +multiprocessing.popen_forkserver # Modules that rely on _curses curses