Jedi - an awesome autocompletion, static analysis and refactoring library for Python¶
Jedi is a static analysis tool for Python that is typically used in IDEs/editors plugins. Jedi has a focus on autocompletion and goto functionality. Other features include refactoring, code search and finding references.
Jedi has a simple API to work with. There is a reference implementation as a VIM-Plugin. Autocompletion in your REPL is also possible, IPython uses it natively and for the CPython REPL you can install it. Jedi is well tested and bugs should be rare.
Here’s a simple example of the autocompletion feature:
>>> import jedi >>> source = ''' ... import json ... json.lo''' >>> script = jedi.Script(source, path='example.py') >>> script <Script: 'example.py' ...> >>> completions = script.complete(3, len('json.lo')) >>> completions [<Completion: load>, <Completion: loads>] >>> print(completions.complete) ad >>> print(completions.name) load
Autocompletion can for example look like this in jedi-vim: