diff --git a/stdlib/multiprocessing/popen_spawn_posix.pyi b/stdlib/multiprocessing/popen_spawn_posix.pyi new file mode 100644 index 000000000000..81aaac7ca459 --- /dev/null +++ b/stdlib/multiprocessing/popen_spawn_posix.pyi @@ -0,0 +1,24 @@ +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: + fd: int + + def __init__(self, fd: int) -> None: ... + def detach(self) -> int: ... + + class Popen(popen_fork.Popen): + DupFd: ClassVar[type[_DupFd]] + finalizer: Finalize + pid: int # may not exist if _launch raises in second try / except + sentinel: int # may not exist if _launch raises in second try / except + + def __init__(self, process_obj: BaseProcess) -> None: ... + def duplicate_for_child(self, fd: int) -> int: ... diff --git a/tests/stubtest_allowlists/win32.txt b/tests/stubtest_allowlists/win32.txt index 16b7c26858d8..fadeac30eecf 100644 --- a/tests/stubtest_allowlists/win32.txt +++ b/tests/stubtest_allowlists/win32.txt @@ -56,9 +56,10 @@ syslog termios xxlimited -# multiprocessing.popen_fork and popen_forkserver exist on Windows but fail to import +# multiprocessing.popen_fork, popen_forkserver, and popen_spawn_posix exist on Windows but fail to import multiprocessing.popen_fork multiprocessing.popen_forkserver +multiprocessing.popen_spawn_posix # Modules that rely on _curses curses