Я использую deoplete-jedi для автозаполнения в Neovim. Я обнаружил, что автозаполнение не работает, если я создаю экземпляр объекта Image с использованием метода Image.open () при использовании Подушка . Но для экземпляра Image, созданного с использованием метода Image.new () , автозаполнение работает правильно.
После долгих отладок я наконец-то выяснил причину. Поскольку пакет Jedi не может предоставить дополнения для экземпляра Image, созданного методом Image.open()
.
В приведенном ниже коде показаны различия:
import jedi
source1 = '''
from PIL import Image
im = Image.new('test.jpg', (128, 128))
im.
'''
script1 = jedi.Script(source1, 4, len('im.'), 'example1.py')
print(script1.completions())
source2 = '''
from PIL import Image
im = Image.open('test.jpg')
im.
'''
script2 = jedi.Script(source2, 4, len('im.'), 'example2.py')
print(script2.completions())
Поскольку оба метода возвращают объект Image, я не знаю, почему автозаполнение ведет себя по-разному.
Информация о версии
- Python: Python 3.6.8
- джедай: 0,13,3
- Подушка: 5.2.0