Не работает аннотация типов. IDE не выводит подсказки. Что не так?

import multiprocessing
from multiprocessing import RLock


def main(locker: RLock) -> None:
    locker.acquire() # Не выводит подсказки, попробуйте набрать у себя


if __name__ == '__main__':
    lock = RLock()
    multiprocessing.Process(target=main, args=(lock,)).start()

При обращении внутри функции к аргументу locker, ide не выводит методы. Проверял на pycharm, vscode

введите сюда описание изображения

Если передать RLock явно, то выводит подсказки введите сюда описание изображения введите сюда описание изображения

Так ведь не должно быть, почему возникает такая аномалия? Я ведь указал тайпхинт, подсказки должны быть в любом случае


Ответы (1 шт):

Автор решения: vadim vaduxa

видимо потому что сам класс RLock находится в multiprocessing.synchronize, если указать от туда то все выводится

import multiprocessing.synchronize
import multiprocessing

def main(locker: multiprocessing.synchronize.RLock) -> None:
    locker.acquire()  # выводит подсказки

if __name__ == '__main__':
    # main(multiprocessing.RLock())
    pass
→ Ссылка