[Python-checkins] gh-99509: Add `__class_getitem__` to `multiprocessing.queues.Queue` (#99511)

JelleZijlstra webhook-mailer at python.org
Mon Dec 26 23:51:00 EST 2022


https://github.com/python/cpython/commit/ce39aaffeef9aa8af54a8554fe7a5609a6bba471
commit: ce39aaffeef9aa8af54a8554fe7a5609a6bba471
branch: main
author: Nikita Sobolev <mail at sobolevn.me>
committer: JelleZijlstra <jelle.zijlstra at gmail.com>
date: 2022-12-26T20:50:55-08:00
summary:

gh-99509: Add `__class_getitem__` to `multiprocessing.queues.Queue` (#99511)

files:
A Misc/NEWS.d/next/Library/2022-11-15-18-45-01.gh-issue-99509.FLK0xU.rst
M Lib/multiprocessing/queues.py
M Lib/test/test_genericalias.py

diff --git a/Lib/multiprocessing/queues.py b/Lib/multiprocessing/queues.py
index f37f114a9688..daf9ee94a194 100644
--- a/Lib/multiprocessing/queues.py
+++ b/Lib/multiprocessing/queues.py
@@ -280,6 +280,8 @@ def _on_queue_feeder_error(e, obj):
         import traceback
         traceback.print_exc()
 
+    __class_getitem__ = classmethod(types.GenericAlias)
+
 
 _sentinel = object()
 
diff --git a/Lib/test/test_genericalias.py b/Lib/test/test_genericalias.py
index 6d0a556b1f7f..9b59d1e3e0aa 100644
--- a/Lib/test/test_genericalias.py
+++ b/Lib/test/test_genericalias.py
@@ -31,11 +31,15 @@
     from multiprocessing.managers import ValueProxy
     from multiprocessing.pool import ApplyResult
     from multiprocessing.queues import SimpleQueue as MPSimpleQueue
+    from multiprocessing.queues import Queue as MPQueue
+    from multiprocessing.queues import JoinableQueue as MPJoinableQueue
 except ImportError:
     # _multiprocessing module is optional
     ValueProxy = None
     ApplyResult = None
     MPSimpleQueue = None
+    MPQueue = None
+    MPJoinableQueue = None
 try:
     from multiprocessing.shared_memory import ShareableList
 except ImportError:
@@ -130,7 +134,8 @@ class BaseTest(unittest.TestCase):
     if ctypes is not None:
         generic_types.extend((ctypes.Array, ctypes.LibraryLoader))
     if ValueProxy is not None:
-        generic_types.extend((ValueProxy, ApplyResult, MPSimpleQueue))
+        generic_types.extend((ValueProxy, ApplyResult,
+                              MPSimpleQueue, MPQueue, MPJoinableQueue))
 
     def test_subscriptable(self):
         for t in self.generic_types:
diff --git a/Misc/NEWS.d/next/Library/2022-11-15-18-45-01.gh-issue-99509.FLK0xU.rst b/Misc/NEWS.d/next/Library/2022-11-15-18-45-01.gh-issue-99509.FLK0xU.rst
new file mode 100644
index 000000000000..634281061cec
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2022-11-15-18-45-01.gh-issue-99509.FLK0xU.rst
@@ -0,0 +1 @@
+Add :pep:`585` support for :class:`multiprocessing.queues.Queue`.



More information about the Python-checkins mailing list