[IPython-dev] New Feature, feedback requested, IPython Jedi Completions

Matthias Bussonnier bussonniermatthias at gmail.com
Fri May 20 22:47:47 EDT 2016


Hi Brian, yes:

https://github.com/ipython/ipython/issues/9460 (crash IPython on tab completion)
https://github.com/ipython/ipython/issues/9458 ( `[x for x in n<tab>
if condition]` -> garbage, can't complete in middle of line)
https://github.com/ipython/ipython/issues/9442 (need to type 2 letters
of a token to actually complete)
https://github.com/ipython/ipython/issues/9402 (ipython foo.py >
foo.out ; crash ipython)

Plus a few personal communication I got from users frustrated that
couldn't get work done, and things like

`from foo.bar import a_thi<tab>` -> `from foo.bar importort
fromfoo.barfoo a_thing`

You can look at the list of issue on github:

https://github.com/ipython/ipython/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+jedi


More generally I think we can make a much better integration with jedi
if we update the IPython completion machinery instead of bolting jedi
on the side. And we can likely iron af ew of jedi quirk with the
`Interpreter` completer, that report each completion as being a module
for example.

If you really don't suffer from any of above issues it should be
pretty straitforward to implement the reverted code as a custom
completer.

Cheers,
-- 
M

On Fri, May 20, 2016 at 7:11 PM, Brian Granger <ellisonbg at gmail.com> wrote:
> I was enjoying the new completions in ipython. Can you outline what
> undesired side effects there were. I am fine reverting for 5.0, just
> curious.
>
> On Fri, May 20, 2016 at 4:04 PM, Matthias Bussonnier
> <bussonniermatthias at gmail.com> wrote:
>> So small update,
>>
>> Integrating with jedi completion had a few undesired side-effect, well
>> roll back the integration for 5.0 and rework it for 6.0.
>> So no jedi for now...
>>
>> Still for it was a nice experience and the integration in 6.0 should
>> improve completion a lot.
>>
>> Thanks !
>> --
>> M
>>
>> On Thu, May 5, 2016 at 9:39 AM, Brian Granger <ellisonbg at gmail.com> wrote:
>>> Awesome!!!
>>>
>>> On Thu, May 5, 2016 at 9:34 AM, Matthias Bussonnier
>>> <bussonniermatthias at gmail.com> wrote:
>>>> Hello List,
>>>>
>>>> A few minutes ago we merged a PR[1] adding jedi[2] integration to IPython,
>>>> this make the IPython completer a bit smarter,
>>>> as it now knows about situation like:
>>>>
>>>> In[1]: ('je'+'di').upper().<tab>
>>>>
>>>> Where it will infer that you are actually calling a method on a string,
>>>> which before was requiring setting `IPCompleter.greedy` to `true`
>>>> which has the drawback of evaluating your code with its side effects.
>>>>
>>>> Though, the API Jedi provide and API IPython expect are slightly different,
>>>> we did our best to adapt the two, still I would expect
>>>> a few edge cases to appear where the result of the completion might be
>>>> wrong.
>>>>
>>>> We would appreciate if you could look out for these cases, and report any
>>>> completion that misbehave.
>>>> This will likely affect both IPython when using the notebook, and the plain
>>>> IPython terminal.
>>>>
>>>> Enjoy pressing the "weaponized" tab key even more, and kudos to @liukelly
>>>> [3] for her work
>>>>
>>>> Thanks,
>>>>
>>>> --
>>>> Matthias
>>>>
>>>> Extra notes: Jedi appears as a mandatory dependency, but IPython should
>>>> still work if Jedi is not importable.
>>>> IPCompleter.use_jedi_completions=<Bool> config parameter can be use to
>>>> deactivate jedi completions if they are by any chance annoying.
>>>>
>>>> [1] https://github.com/ipython/ipython/pull/9375
>>>> [2] http://jedi.jedidjah.ch/en/latest/
>>>> [3] https://github.com/liukelly
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> IPython-dev mailing list
>>>> IPython-dev at scipy.org
>>>> https://mail.scipy.org/mailman/listinfo/ipython-dev
>>>>
>>>
>>>
>>>
>>> --
>>> Brian E. Granger
>>> Associate Professor of Physics and Data Science
>>> Cal Poly State University, San Luis Obispo
>>> @ellisonbg on Twitter and GitHub
>>> bgranger at calpoly.edu and ellisonbg at gmail.com
>>> _______________________________________________
>>> IPython-dev mailing list
>>> IPython-dev at scipy.org
>>> https://mail.scipy.org/mailman/listinfo/ipython-dev
>> _______________________________________________
>> IPython-dev mailing list
>> IPython-dev at scipy.org
>> https://mail.scipy.org/mailman/listinfo/ipython-dev
>
>
>
> --
> Brian E. Granger
> Associate Professor of Physics and Data Science
> Cal Poly State University, San Luis Obispo
> @ellisonbg on Twitter and GitHub
> bgranger at calpoly.edu and ellisonbg at gmail.com
> _______________________________________________
> IPython-dev mailing list
> IPython-dev at scipy.org
> https://mail.scipy.org/mailman/listinfo/ipython-dev



More information about the IPython-dev mailing list