Работая с автозаполнением-python атома, который использует jedi, я обнаружил, что есть неправильные предложения для модуля multiprocessing
в python3
. Вот пример:
>>> import jedi
>>> source = '''
... import multiprocessing as mp
... mp.Pro'''
>>> script = jedi.Script(source, 3, len('mp.Pro'), 'example.py')
>>> script.completions()
[<Completion: process>]
Модуль на самом деле имеет пакет process
, но также имеет класс Process
внутри области модуля:
>>> import multiprocessing as mp
>>> [n for n in mp.__all__ if n.endswith('rocess')]
['Process', 'current_process']
Сравнивая модуль multiprocessing
python2 и python3, я обнаружил, что они немного отличаются. Современная версия импортирует пространство имен пространства имен контекста по умолчанию:
globals().update((name, getattr(context._default_context, name))
for name in context._default_context.__all__)
__all__ = context._default_context.__all__
К сожалению, у меня нет никаких идей, как решить эту проблему или обойти ее. У Вас есть какие-то предложения?