multiprocessing classes SimpleQueue and Queue don't support typing in 3.11.0 · Issue #99509 · python/cpython (original) (raw)

Bug report

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

Minimal, reproducible example:

from multiprocessing import Queue multiprocessing_queue: Queue[str] = Queue()

or

from multiprocessing import SimpleQueue multiprocessing_queue: SimpleQueue[str] = SimpleQueue()

Result - error:

multiprocessing_queue: SimpleQueue[str] = SimpleQueue()
                       ~~~~~~~~~~~^^^^^

TypeError: 'method' object is not subscriptable

How it should work:

It should work like Queue from the queue module:

from queue import Queue standard_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