From fa3ffceef7f5bbc5757bb0c9ee12d12219744efc Mon Sep 17 00:00:00 2001 From: Kevin Kirsche Date: Tue, 26 Jul 2022 10:12:39 -0400 Subject: [PATCH 1/6] fix: Add missing multiprocessing/resource-tracker type hints --- stdlib/multiprocessing/resource_tracker.pyi | 34 +++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 stdlib/multiprocessing/resource_tracker.pyi diff --git a/stdlib/multiprocessing/resource_tracker.pyi b/stdlib/multiprocessing/resource_tracker.pyi new file mode 100644 index 000000000000..63913d9dbbb8 --- /dev/null +++ b/stdlib/multiprocessing/resource_tracker.pyi @@ -0,0 +1,34 @@ +from _typeshed import StrOrBytesPath +from typing import Any, Sized +from signal import Signals +from collections.abc import Callable +from threading import Lock + +__all__ = ["ensure_running", "register", "unregister"] + +_HAVE_SIGMASK: bool = ... +_IGNORED_SIGNALS: tuple[Signals, Signals] = ... + +_CLEANUP_FUNCS: dict[str, Callable[[Any], Any]] = ... + +class ResourceTracker: + _lock: Lock + _fd: int | None + _pid: int | None + + def __init__(self) -> None: ... + def _stop(self) -> None: ... + def getfd(self) -> int | None: ... + def ensure_running(self) -> None: ... + def _check_alive(self) -> bool: ... + def register(self, name: Sized, rtype: object) -> None: ... + def unregister(self, name: Sized, rtype: object) -> None: ... + def _send(self, cmd: object, name: Sized, rtype: object) -> None: ... + +_resource_tracker: ResourceTracker = ... +ensure_running: Callable[[], None] = ... +register: Callable[[Sized, object], None] = ... +unregister: Callable[[Sized, object], None] = ... +getfd: Callable[[], int | None] = ... + +def main(fd: StrOrBytesPath | int) -> None: ... From cde7ab56e62d93b466e1bdb6b3c6cee778f03221 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 26 Jul 2022 14:15:34 +0000 Subject: [PATCH 2/6] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stdlib/multiprocessing/resource_tracker.pyi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stdlib/multiprocessing/resource_tracker.pyi b/stdlib/multiprocessing/resource_tracker.pyi index 63913d9dbbb8..c3d220a1cc22 100644 --- a/stdlib/multiprocessing/resource_tracker.pyi +++ b/stdlib/multiprocessing/resource_tracker.pyi @@ -1,8 +1,8 @@ from _typeshed import StrOrBytesPath -from typing import Any, Sized -from signal import Signals from collections.abc import Callable +from signal import Signals from threading import Lock +from typing import Any, Sized __all__ = ["ensure_running", "register", "unregister"] From 274b04017d23eb2e3c88bd4125b0fbad364a5d94 Mon Sep 17 00:00:00 2001 From: Kevin Kirsche Date: Tue, 26 Jul 2022 13:16:31 -0400 Subject: [PATCH 3/6] fix: add missing `VERSIONS` entry for multiprocessing.resource_tracker --- stdlib/VERSIONS | 1 + 1 file changed, 1 insertion(+) diff --git a/stdlib/VERSIONS b/stdlib/VERSIONS index 1d48a312abf4..d396ce4d0560 100644 --- a/stdlib/VERSIONS +++ b/stdlib/VERSIONS @@ -173,6 +173,7 @@ modulefinder: 2.7- msilib: 2.7- msvcrt: 2.7- multiprocessing: 2.7- +multiprocessing.resource_tracker: 3.8- multiprocessing.shared_memory: 3.8- netrc: 2.7- nis: 2.7- From 0b780620fe9a44c5815b53e9e28b6a9435f29906 Mon Sep 17 00:00:00 2001 From: Kevin Kirsche Date: Tue, 26 Jul 2022 13:21:06 -0400 Subject: [PATCH 4/6] fix: use collections.abc.Sized instead of typing.Sized --- stdlib/multiprocessing/resource_tracker.pyi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stdlib/multiprocessing/resource_tracker.pyi b/stdlib/multiprocessing/resource_tracker.pyi index c3d220a1cc22..0def21392126 100644 --- a/stdlib/multiprocessing/resource_tracker.pyi +++ b/stdlib/multiprocessing/resource_tracker.pyi @@ -1,8 +1,8 @@ from _typeshed import StrOrBytesPath -from collections.abc import Callable +from collections.abc import Callable, Sized from signal import Signals from threading import Lock -from typing import Any, Sized +from typing import Any __all__ = ["ensure_running", "register", "unregister"] From c74e59c08c5b8e14c508889a647386dd01ea42e1 Mon Sep 17 00:00:00 2001 From: Kevin Kirsche Date: Wed, 27 Jul 2022 11:49:46 -0400 Subject: [PATCH 5/6] fix: remove private methods / vars and address re-exported methods --- stdlib/multiprocessing/resource_tracker.pyi | 25 +++++---------------- 1 file changed, 5 insertions(+), 20 deletions(-) diff --git a/stdlib/multiprocessing/resource_tracker.pyi b/stdlib/multiprocessing/resource_tracker.pyi index 0def21392126..dfbf8c77c0ed 100644 --- a/stdlib/multiprocessing/resource_tracker.pyi +++ b/stdlib/multiprocessing/resource_tracker.pyi @@ -1,34 +1,19 @@ from _typeshed import StrOrBytesPath -from collections.abc import Callable, Sized -from signal import Signals -from threading import Lock -from typing import Any +from collections.abc import Sized __all__ = ["ensure_running", "register", "unregister"] -_HAVE_SIGMASK: bool = ... -_IGNORED_SIGNALS: tuple[Signals, Signals] = ... - -_CLEANUP_FUNCS: dict[str, Callable[[Any], Any]] = ... - class ResourceTracker: - _lock: Lock - _fd: int | None - _pid: int | None - def __init__(self) -> None: ... - def _stop(self) -> None: ... def getfd(self) -> int | None: ... def ensure_running(self) -> None: ... - def _check_alive(self) -> bool: ... def register(self, name: Sized, rtype: object) -> None: ... def unregister(self, name: Sized, rtype: object) -> None: ... - def _send(self, cmd: object, name: Sized, rtype: object) -> None: ... _resource_tracker: ResourceTracker = ... -ensure_running: Callable[[], None] = ... -register: Callable[[Sized, object], None] = ... -unregister: Callable[[Sized, object], None] = ... -getfd: Callable[[], int | None] = ... +ensure_running = _resource_tracker.ensure_running +register = _resource_tracker.register +unregister = _resource_tracker.unregister +getfd = _resource_tracker.getfd def main(fd: StrOrBytesPath | int) -> None: ... From ad723ba3c64207f554314b66225c1e259f29aa88 Mon Sep 17 00:00:00 2001 From: Kevin Kirsche Date: Wed, 27 Jul 2022 12:19:20 -0400 Subject: [PATCH 6/6] fix: use Incomplete instead of `object` for rtype parameter --- stdlib/multiprocessing/resource_tracker.pyi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/stdlib/multiprocessing/resource_tracker.pyi b/stdlib/multiprocessing/resource_tracker.pyi index dfbf8c77c0ed..98abb075fb3d 100644 --- a/stdlib/multiprocessing/resource_tracker.pyi +++ b/stdlib/multiprocessing/resource_tracker.pyi @@ -1,4 +1,4 @@ -from _typeshed import StrOrBytesPath +from _typeshed import Incomplete, StrOrBytesPath from collections.abc import Sized __all__ = ["ensure_running", "register", "unregister"] @@ -7,8 +7,8 @@ class ResourceTracker: def __init__(self) -> None: ... def getfd(self) -> int | None: ... def ensure_running(self) -> None: ... - def register(self, name: Sized, rtype: object) -> None: ... - def unregister(self, name: Sized, rtype: object) -> None: ... + def register(self, name: Sized, rtype: Incomplete) -> None: ... + def unregister(self, name: Sized, rtype: Incomplete) -> None: ... _resource_tracker: ResourceTracker = ... ensure_running = _resource_tracker.ensure_running