{"id":13448199,"url":"https://github.com/davidhalter/jedi","last_synced_at":"2025-05-12T22:28:16.320Z","repository":{"id":2513591,"uuid":"3489194","full_name":"davidhalter/jedi","owner":"davidhalter","description":"Awesome autocompletion, static analysis and refactoring library for python","archived":false,"fork":false,"pushed_at":"2025-03-14T17:20:41.000Z","size":13134,"stargazers_count":5929,"open_issues_count":84,"forks_count":518,"subscribers_count":113,"default_branch":"master","last_synced_at":"2025-05-05T17:21:07.876Z","etag":null,"topics":["auto-complete","python","refactoring","static-analysis","type-inference"],"latest_commit_sha":null,"homepage":"http://jedi.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/davidhalter.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.txt","dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["davidhalter"]}},"created_at":"2012-02-19T23:12:30.000Z","updated_at":"2025-05-03T00:39:31.000Z","dependencies_parsed_at":"2024-06-18T10:56:27.776Z","dependency_job_id":"13ca49d9-c38c-4bc9-a56a-1f58e7f0923a","html_url":"https://github.com/davidhalter/jedi","commit_stats":{"total_commits":7969,"total_committers":176,"mean_commits":45.27840909090909,"dds":0.1522148324758439,"last_synced_commit":"30adf43a8929ade8a9e0abee6921a5043c962215"},"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidhalter%2Fjedi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidhalter%2Fjedi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidhalter%2Fjedi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidhalter%2Fjedi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davidhalter","download_url":"https://codeload.github.com/davidhalter/jedi/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253832600,"owners_count":21971297,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["auto-complete","python","refactoring","static-analysis","type-inference"],"created_at":"2024-07-31T05:01:38.592Z","updated_at":"2025-05-12T22:28:16.292Z","avatar_url":"https://github.com/davidhalter.png","language":"Python","readme":"####################################################################################\nJedi - an awesome autocompletion, static analysis and refactoring library for Python\n####################################################################################\n\n.. image:: http://isitmaintained.com/badge/open/davidhalter/jedi.svg\n    :target: https://github.com/davidhalter/jedi/issues\n    :alt: The percentage of open issues and pull requests\n\n.. image:: http://isitmaintained.com/badge/resolution/davidhalter/jedi.svg\n    :target: https://github.com/davidhalter/jedi/issues\n    :alt: The resolution time is the median time an issue or pull request stays open.\n\n.. image:: https://github.com/davidhalter/jedi/workflows/ci/badge.svg?branch=master\n    :target: https://github.com/davidhalter/jedi/actions\n    :alt: Tests\n\n.. image:: https://pepy.tech/badge/jedi\n    :target: https://pepy.tech/project/jedi\n    :alt: PyPI Downloads\n\n\nJedi is a static analysis tool for Python that is typically used in\nIDEs/editors plugins. Jedi has a focus on autocompletion and goto\nfunctionality. Other features include refactoring, code search and finding\nreferences.\n\nJedi has a simple API to work with. There is a reference implementation as a\n`VIM-Plugin \u003chttps://github.com/davidhalter/jedi-vim\u003e`_. Autocompletion in your\nREPL is also possible, IPython uses it natively and for the CPython REPL you\ncan install it. Jedi is well tested and bugs should be rare.\n\nJedi can currently be used with the following editors/projects:\n\n- Vim (jedi-vim_, YouCompleteMe_, deoplete-jedi_, completor.vim_)\n- `Visual Studio Code`_ (via `Python Extension \u003chttps://marketplace.visualstudio.com/items?itemName=ms-python.python\u003e`_)\n- Emacs (Jedi.el_, company-mode_, elpy_, anaconda-mode_, ycmd_)\n- Sublime Text (SublimeJEDI_ [ST2 + ST3], anaconda_ [only ST3])\n- TextMate_ (Not sure if it's actually working)\n- Kate_ version 4.13+ supports it natively, you have to enable it, though.  [`see\n  \u003chttps://projects.kde.org/projects/kde/applications/kate/repository/show?rev=KDE%2F4.13\u003e`_]\n- Atom_ (autocomplete-python-jedi_)\n- `GNOME Builder`_ (with support for GObject Introspection)\n- Gedit (gedi_)\n- wdb_ - Web Debugger\n- `Eric IDE`_\n- `IPython 6.0.0+ \u003chttps://ipython.readthedocs.io/en/stable/whatsnew/version6.html\u003e`_\n- `xonsh shell \u003chttps://xon.sh/contents.html\u003e`_ has `jedi extension \u003chttps://xon.sh/xontribs.html#jedi\u003e`_\n\nand many more!\n\nThere are a few language servers that use Jedi:\n\n- `jedi-language-server \u003chttps://github.com/pappasam/jedi-language-server\u003e`_\n- `python-language-server \u003chttps://github.com/palantir/python-language-server\u003e`_ (currently unmaintained)\n- `python-lsp-server \u003chttps://github.com/python-lsp/python-lsp-server\u003e`_ (fork from python-language-server)\n- `anakin-language-server \u003chttps://github.com/muffinmad/anakin-language-server\u003e`_\n\nHere are some pictures taken from jedi-vim_:\n\n.. image:: https://github.com/davidhalter/jedi/raw/master/docs/_screenshots/screenshot_complete.png\n\nCompletion for almost anything:\n\n.. image:: https://github.com/davidhalter/jedi/raw/master/docs/_screenshots/screenshot_function.png\n\nDocumentation:\n\n.. image:: https://github.com/davidhalter/jedi/raw/master/docs/_screenshots/screenshot_pydoc.png\n\n\nGet the latest version from `github \u003chttps://github.com/davidhalter/jedi\u003e`_\n(master branch should always be kind of stable/working).\n\nDocs are available at `https://jedi.readthedocs.org/en/latest/\n\u003chttps://jedi.readthedocs.org/en/latest/\u003e`_. Pull requests with enhancements\nand/or fixes are awesome and most welcome. Jedi uses `semantic versioning\n\u003chttps://semver.org/\u003e`_.\n\nIf you want to stay **up-to-date** with releases, please **subscribe** to this\nmailing list: https://groups.google.com/g/jedi-announce. To subscribe you can\nsimply send an empty email to ``jedi-announce+subscribe@googlegroups.com``.\n\nIssues \u0026 Questions\n==================\n\nYou can file issues and questions in the `issue tracker\n\u003chttps://github.com/davidhalter/jedi/\u003e`. Alternatively you can also ask on\n`Stack Overflow \u003chttps://stackoverflow.com/questions/tagged/python-jedi\u003e`_ with\nthe label ``python-jedi``.\n\nInstallation\n============\n\n`Check out the docs \u003chttps://jedi.readthedocs.org/en/latest/docs/installation.html\u003e`_.\n\nFeatures and Limitations\n========================\n\nJedi's features are listed here:\n`Features \u003chttps://jedi.readthedocs.org/en/latest/docs/features.html\u003e`_.\n\nYou can run Jedi on Python 3.6+ but it should also\nunderstand code that is older than those versions. Additionally you should be\nable to use `Virtualenvs \u003chttps://jedi.readthedocs.org/en/latest/docs/api.html#environments\u003e`_\nvery well.\n\nTips on how to use Jedi efficiently can be found `here\n\u003chttps://jedi.readthedocs.org/en/latest/docs/features.html#recipes\u003e`_.\n\nAPI\n---\n\nYou can find a comprehensive documentation for the\n`API here \u003chttps://jedi.readthedocs.org/en/latest/docs/api.html\u003e`_.\n\nAutocompletion / Goto / Documentation\n-------------------------------------\n\nThere are the following commands:\n\n- ``jedi.Script.goto``\n- ``jedi.Script.infer``\n- ``jedi.Script.help``\n- ``jedi.Script.complete``\n- ``jedi.Script.get_references``\n- ``jedi.Script.get_signatures``\n- ``jedi.Script.get_context``\n\nThe returned objects are very powerful and are really all you might need.\n\nAutocompletion in your REPL (IPython, etc.)\n-------------------------------------------\n\nJedi is a dependency of IPython. Autocompletion in IPython with Jedi is\ntherefore possible without additional configuration.\n\nHere is an `example video \u003chttps://vimeo.com/122332037\u003e`_ how REPL completion\ncan look like.\nFor the ``python`` shell you can enable tab completion in a `REPL\n\u003chttps://jedi.readthedocs.org/en/latest/docs/usage.html#tab-completion-in-the-python-shell\u003e`_.\n\nStatic Analysis\n---------------\n\nFor a lot of forms of static analysis, you can try to use\n``jedi.Script(...).get_names``. It will return a list of names that you can\nthen filter and work with. There is also a way to list the syntax errors in a\nfile: ``jedi.Script.get_syntax_errors``.\n\n\nRefactoring\n-----------\n\nJedi supports the following refactorings:\n\n- ``jedi.Script.inline``\n- ``jedi.Script.rename``\n- ``jedi.Script.extract_function``\n- ``jedi.Script.extract_variable``\n\nCode Search\n-----------\n\nThere is support for module search with ``jedi.Script.search``, and project\nsearch for ``jedi.Project.search``. The way to search is either by providing a\nname like ``foo`` or by using dotted syntax like ``foo.bar``. Additionally you\ncan provide the API type like ``class foo.bar.Bar``. There are also the\nfunctions ``jedi.Script.complete_search`` and ``jedi.Project.complete_search``.\n\nDevelopment\n===========\n\nThere's a pretty good and extensive `development documentation\n\u003chttps://jedi.readthedocs.org/en/latest/docs/development.html\u003e`_.\n\nTesting\n=======\n\nThe test suite uses ``pytest``::\n\n    pip install pytest\n\nIf you want to test only a specific Python version (e.g. Python 3.8), it is as\neasy as::\n\n    python3.8 -m pytest\n\nFor more detailed information visit the `testing documentation\n\u003chttps://jedi.readthedocs.org/en/latest/docs/testing.html\u003e`_.\n\nAcknowledgements\n================\n\nThanks a lot to all the\n`contributors \u003chttps://jedi.readthedocs.org/en/latest/docs/acknowledgements.html\u003e`_!\n\n\n.. _jedi-vim: https://github.com/davidhalter/jedi-vim\n.. _youcompleteme: https://github.com/ycm-core/YouCompleteMe\n.. _deoplete-jedi: https://github.com/zchee/deoplete-jedi\n.. _completor.vim: https://github.com/maralla/completor.vim\n.. _Jedi.el: https://github.com/tkf/emacs-jedi\n.. _company-mode: https://github.com/syohex/emacs-company-jedi\n.. _elpy: https://github.com/jorgenschaefer/elpy\n.. _anaconda-mode: https://github.com/proofit404/anaconda-mode\n.. _ycmd: https://github.com/abingham/emacs-ycmd\n.. _sublimejedi: https://github.com/srusskih/SublimeJEDI\n.. _anaconda: https://github.com/DamnWidget/anaconda\n.. _wdb: https://github.com/Kozea/wdb\n.. _TextMate: https://github.com/lawrenceakka/python-jedi.tmbundle\n.. _Kate: https://kate-editor.org\n.. _Atom: https://atom.io/\n.. _autocomplete-python-jedi: https://atom.io/packages/autocomplete-python-jedi\n.. _GNOME Builder: https://wiki.gnome.org/Apps/Builder\n.. _Visual Studio Code: https://code.visualstudio.com/\n.. _gedi: https://github.com/isamert/gedi\n.. _Eric IDE: https://eric-ide.python-projects.org\n","funding_links":["https://github.com/sponsors/davidhalter"],"categories":["Python","Development Environment","Containers \u0026 Language Extentions \u0026 Linting","HarmonyOS","Python 程序","Awesome Python","Code Refactoring"],"sub_categories":["Code and Run","For Python","Windows Manager","网络服务_其他","Editor Plugins and IDEs"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidhalter%2Fjedi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidhalter%2Fjedi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidhalter%2Fjedi/lists"}