From 087fb6b96d264895634ef62cc9aab9f66397e5d4 Mon Sep 17 00:00:00 2001 From: Kevin Kirsche Date: Thu, 28 Jul 2022 11:19:43 -0400 Subject: [PATCH] Add `multiprocessing.popen_fork` submodule (#8420) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Alex Waygood --- stdlib/multiprocessing/popen_fork.pyi | 23 +++++++++++++++++++++++ tests/stubtest_allowlists/win32.txt | 3 +++ 2 files changed, 26 insertions(+) create mode 100644 stdlib/multiprocessing/popen_fork.pyi diff --git a/stdlib/multiprocessing/popen_fork.pyi b/stdlib/multiprocessing/popen_fork.pyi new file mode 100644 index 000000000..3db6a8439 --- /dev/null +++ b/stdlib/multiprocessing/popen_fork.pyi @@ -0,0 +1,23 @@ +import sys +from typing import ClassVar + +from .process import BaseProcess +from .util import Finalize + +if sys.platform != "win32": + __all__ = ["Popen"] + + class Popen: + finalizer: Finalize | None + method: ClassVar[str] + pid: int + returncode: int | None + sentinel: int # doesn't exist if os.fork in _launch returns 0 + + def __init__(self, process_obj: BaseProcess) -> None: ... + def duplicate_for_child(self, fd: int) -> int: ... + def poll(self, flag: int = ...) -> int | None: ... + def wait(self, timeout: float | None = ...) -> int | None: ... + def terminate(self) -> None: ... + def kill(self) -> None: ... + def close(self) -> None: ... diff --git a/tests/stubtest_allowlists/win32.txt b/tests/stubtest_allowlists/win32.txt index de2c86775..ab0bb8516 100644 --- a/tests/stubtest_allowlists/win32.txt +++ b/tests/stubtest_allowlists/win32.txt @@ -56,6 +56,9 @@ syslog termios xxlimited +# Multiprocessing.popen_fork exists on Windows but fails to import +multiprocessing.popen_fork + # Modules that rely on _curses curses curses.ascii