gh-99509: Add __class_getitem__ to multiprocessing.queues.Queue (… · python/cpython@ce39aaf (original) (raw)

3 files changed

lines changed

Original file line number Diff line number Diff line change
@@ -280,6 +280,8 @@ def _on_queue_feeder_error(e, obj):
280 280 import traceback
281 281 traceback.print_exc()
282 282
283 +__class_getitem__ = classmethod(types.GenericAlias)
284 +
283 285
284 286 _sentinel = object()
285 287
Original file line number Diff line number Diff line change
@@ -31,11 +31,15 @@
31 31 from multiprocessing.managers import ValueProxy
32 32 from multiprocessing.pool import ApplyResult
33 33 from multiprocessing.queues import SimpleQueue as MPSimpleQueue
34 +from multiprocessing.queues import Queue as MPQueue
35 +from multiprocessing.queues import JoinableQueue as MPJoinableQueue
34 36 except ImportError:
35 37 # _multiprocessing module is optional
36 38 ValueProxy = None
37 39 ApplyResult = None
38 40 MPSimpleQueue = None
41 +MPQueue = None
42 +MPJoinableQueue = None
39 43 try:
40 44 from multiprocessing.shared_memory import ShareableList
41 45 except ImportError:
@@ -130,7 +134,8 @@ class BaseTest(unittest.TestCase):
130 134 if ctypes is not None:
131 135 generic_types.extend((ctypes.Array, ctypes.LibraryLoader))
132 136 if ValueProxy is not None:
133 -generic_types.extend((ValueProxy, ApplyResult, MPSimpleQueue))
137 +generic_types.extend((ValueProxy, ApplyResult,
138 +MPSimpleQueue, MPQueue, MPJoinableQueue))
134 139
135 140 def test_subscriptable(self):
136 141 for t in self.generic_types:
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1 +Add :pep:`585` support for :class:`multiprocessing.queues.Queue`.