The completer Completion API has seen an overhaul. The old ``Completer.complete()`` API is waiting deprecation and will soon be replaced by ``Completer.completions()``. This new API is capable of pulling completions from :any:`jedi`, thus allowing type inference on non-executed code. If :any:`jedi` is installed completion like the following are now becoming possible without code evaluation: >>> data = ['Number of users', 123_456] ... data[0]. IPython is now capable of inferring that `data[0]` is a string, and will suggest completions like `.capitalize`. The completion power of IPython will increase with new Jedi releases, and a number of bugs and more completions are already available on development version of :any:`jedi` if you are curious. User of the prompt_toolkit interface should also see the type of the item they are selecting (method, attribute, module, keyword ...). The use of Jedi also full fill a number of request and fix a number of bugs like case insensitive completion, completion after division operator: See :ghpull:`ipython/ipython#10182`. Extra patches and updates will be needed to the :any:`ipykernel` package for this feature to be available for this to be available to other clients like Notebook, Lab, Nteract, Hydrogen...