multiprocessing classes SimpleQueue and Queue don't support typing in 3.11.0

rafrafek · GitHub

Bug report

SimpleQueue and Queue classes from multiprocessing module in Python 3.11.0 do not support type [str] annotation.

Minimal, reproducible example:

frommultiprocessingimportQueuemultiprocessing_queue: Queue[str] =Queue()or

frommultiprocessingimportSimpleQueuemultiprocessing_queue: SimpleQueue[str] =SimpleQueue()Result - error:

multiprocessing_queue: SimpleQueue[str] = SimpleQueue() ~~~~~~~~~~~^^^^^TypeError: 'method' object is not subscriptableHow it should work:

It should work like Queue from the queue module:

fromqueueimportQueuestandard_queue: Queue[str] =Queue()Result - no error.

Why do I need this?

I want my IDE to know that queue.get() returns str object.

Your environment

Python 3.11.0 arm64
Python 3.11.0 (main, Nov 4 2022, 17:22:54) [Clang 14.0.0 (clang-1400.0.29.202)] on darwin
MacBook M1 Pro macOS Ventura 13.0.1.

Linked PRs

gh-99509: Add __class_getitem__ to multiprocessing.Queue #99511