Jedi — это библиотека статического анализа для Python, предназначенная для обеспечения автодополнения, перехода к определению, рефакторинга и поиска по коду. Она используется в различных интегрированных средах разработки (IDE) и текстовых редакторах, таких как Vim, Emacs, Atom и других, предоставляя разработчикам инструменты для улучшения продуктивности и качества кода.
Библиотека Jedi была разработана с целью предоставить мощные средства статического анализа Python-кода. Она использует синтаксический анализатор, основанный на проекте parso, для построения абстрактного синтаксического дерева, что позволяет точно и эффективно выполнять анализ кода. Jedi поддерживает современные версии Python, включая 3.8 и выше, и учитывает особенности типизации, включая аннотации типов и stub-файлы.
- Автодополнение: Предоставляет интеллектуальные предложения по коду, включая методы, атрибуты и параметры функций, что ускоряет процесс написания кода и снижает количество ошибок.
- Переход к определению: Позволяет разработчикам быстро переходить к местам определения функций, классов и переменных, улучшая навигацию по коду.
- Поиск по коду: Обеспечивает возможность поиска всех вхождений идентификатора в проекте, что полезно для анализа использования переменных и функций.
- Рефакторинг: Поддерживает операции переименования и другие изменения кода, способствуя улучшению структуры и читаемости программы.
- Поддержка виртуальных окружений: Работает с различными средами Python, включая virtualenv и venv, что позволяет точно анализировать зависимости и конфигурации проекта.
- Совместимость с типизацией: Понимает аннотации типов и stub-файлы, что улучшает точность анализа и автодополнения.
- Использование в REPL: Интегрируется с REPL-средами, такими как IPython, предоставляя возможности автодополнения и навигации прямо в интерактивной оболочке.