Repolode
davidhalter

davidhalter/jedi

Библиотека статического анализа Python для автодополнения, перехода к определению, рефакторинга и поиска по коду; используется преимущественно в плагинах для редакторов.

Звёзды
6,186
Форки
549
Открытые issues
58
Последний коммит
6 дней назад

Что это?

Jedi — библиотека статического анализа Python, которую обычно встраивают в IDE и редакторы для автодополнения и перехода к определению. Через API инструменты могут запрашивать варианты дополнения, сигнатуры, документацию, предполагаемые типы и ссылки для кода в заданной позиции, не запуская программу.

Помимо автодополнения, Jedi поддерживает рефакторинг: переименование, встраивание, выделение функции и выделение переменной. Также библиотека позволяет выводить список синтаксических ошибок, перечислять имена и искать код в модулях и проектах. Jedi работает с virtualenv и используется в REPL IPython, который включает библиотеку в свои зависимости.

Jedi используется в плагинах для редакторов, таких как jedi-vim и расширение Python для VS Code, а также в языковых серверах, например jedi-language-server и python-lsp-server. Библиотека поддерживает Python 3.10 и новее, но при этом может анализировать и более старый код.

Ключевые возможности

  • 01Автодополнение и переход к определению в коде на Python
  • 02Сигнатуры, документация и вывод типов в позиции курсора
  • 03Рефакторинг: переименование, встраивание, выделение функции и выделение переменной
  • 04Поиск ссылок и кода в модулях и проектах
  • 05Поддержка virtualenv и вывод списка синтаксических ошибок

Сценарии использования

  • Добавление автодополнения и перехода по коду на Python в текстовый редактор или IDE
  • Создание языкового сервера Python для интеграции с редактором
  • Включение автодополнения по Tab в REPL IPython или CPython
  • Автоматизация рефакторинга или поиска по коду в проектах на Python

Быстрый старт

  1. 1

    Установите Jedi из PyPI

    pip install jedi
  2. 2

    Запустите набор тестов (необязательно): установите pytest

    pip install pytest

Что важно знать

  • В первую очередь предназначен для плагинов редакторов и автодополнения, а не для использования как самостоятельный инструмент.
  • Автор выпустил Zuban как преемника Jedi.

Темы

Частые вопросы

Что такое jedi?
Библиотека статического анализа Python для автодополнения, перехода к определению, рефакторинга и поиска по коду; используется преимущественно в плагинах для редакторов. Jedi — библиотека статического анализа Python, которую обычно встраивают в IDE и редакторы для автодополнения и перехода к определению. Через API инструменты могут запрашивать варианты дополнения, сигнатуры, документацию, предполагаемые типы и ссылки для кода в заданной позиции, не запуская программу.
jedi можно использовать бесплатно? Какая у него лицензия?
jedi распространяется с открытым исходным кодом под лицензией Other. Перед использованием в коммерческих продуктах проверьте условия лицензии.
jedi всё ещё поддерживается?
Активно поддерживается. Последний коммит в jedi — 2 нояб. 2026 г..
Для чего можно использовать jedi?
Добавление автодополнения и перехода по коду на Python в текстовый редактор или IDE Создание языкового сервера Python для интеграции с редактором Включение автодополнения по Tab в REPL IPython или CPython Автоматизация рефакторинга или поиска по коду в проектах на Python
Как установить jedi?
Установите Jedi из PyPI: pip install jedi Запустите набор тестов (необязательно): установите pytest: pip install pytest
Где скачать jedi?
Исходный код и инструкции по установке — на GitHub: https://github.com/davidhalter/jedi

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

OpenRewrite — движок автоматического рефакторинга с открытым исходным кодом: он применяет рецепты к коду во множестве репозиториев, помогая мигрировать на новые версии фреймворков и устранять уязвимости.

4 тыс.+9 за неделю602JavaApache-2.0Активно поддерживаетсяОбновлён 6 часов назад

Статический анализатор Ruby, который выводит типы из кода без аннотаций и стремится сообщать только о достоверно выявленных ошибках, например неопределённых методах и вызовах на nil.

1072RubyMPL-2.0Обновлён 13 часов назад