Я пытаюсь заставить jedi правильно работать с библиотекой boto3 для Amazon Web Services ( https://github.com/boto/boto3 ).
Наверное, проще всего объяснить на примере:
$ python
Python 3.4.3 (default, Jul 16 2015, 13:03:44)
[GCC 5.1.1 20150618 (Red Hat 5.1.1-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import boto3
>>> sqs = boto3.resource("sqs", region_name="us-west-2")
>>> sqs.<TAB><TAB>
sqs.Message( sqs.__dict__ sqs.__format__(
sqs.__hash__ sqs.__module__ sqs.__reduce_ex__(
sqs.__str__( sqs.get_queue_by_name(
...
>>> type(sqs)
<class 'boto3.resources.factory.sqs'>
>>>
В интерактивном интерпретаторе я получаю правильное завершение класса. Введите джедай:
>>> import jedi
>>> jedi.__version__
'0.9.0'
>>> jedi.Script('import boto3; sqs = boto3.resou').completions()
[<Completion: resource>, <Completion: resources>]
>>>
До сих пор работаю здесь! Но потом...
>>> code = 'import boto3; sqs = boto3.resource("sqs", region_name="us-west-2"); sqs.'
>>> jedi.Script(code).completions()
[]
>>>
Я не уверен, виноват ли я, библиотека или джедай.
EDIT: Похоже, что у PyCharm та же проблема: PyCharm intellisense для boto3