Jedi - an awesome autocompletion, static analysis and refactoring library for Python

GitHub stars The percentage of open issues and pull requests The resolution time is the median time an issue or pull request stays open. Linux Tests Windows Tests Coverage status

Github Repository

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='')
>>> script
<Script: '' ...>
>>> completions = script.complete(3, len('json.lo'))
>>> completions
[<Completion: load>, <Completion: loads>]
>>> print(completions[0].complete)
>>> print(completions[0].name)

Autocompletion can for example look like this in jedi-vim: