Jedi adalah alat analisis statis untuk Python yang biasanya digunakan di plugin IDE/editor. Jedi memiliki fokus pada pelengkapan otomatis dan fungsi goto. Fitur lainnya termasuk refactoring, pencarian kode dan pencarian referensi.
Jedi memiliki API sederhana untuk digunakan. Ada implementasi referensi sebagai VIM-Plugin. Pelengkapan otomatis di REPL Anda juga dimungkinkan, IPython menggunakannya secara asli dan untuk REPL CPython Anda dapat menginstalnya. Jedi telah diuji dengan baik dan bug seharusnya jarang terjadi.
Jedi saat ini dapat digunakan dengan editor/proyek berikut:
dan masih banyak lagi!
Ada beberapa server bahasa yang menggunakan Jedi:
Berikut beberapa gambar yang diambil dari jedi-vim:
Penyelesaian untuk hampir semua hal:
Dokumentasi:
Dapatkan versi terbaru dari github (cabang master harus selalu stabil/berfungsi).
Dokumen tersedia di https://jedi.readthedocs.org/en/latest/. Permintaan penarikan dengan penyempurnaan dan/atau perbaikan adalah hal yang luar biasa dan sangat disambut baik. Jedi menggunakan versi semantik.
Jika Anda ingin terus mendapatkan informasi terbaru tentang rilis, silakan berlangganan milis ini: https://groups.google.com/g/jedi-announce. Untuk berlangganan Anda cukup mengirim email kosong ke [email protected]
.
Anda dapat mengajukan masalah dan pertanyaan di pelacak masalah <https://github.com/davidhalter/jedi/>. Alternatifnya Anda juga bisa bertanya di Stack Overflow dengan label python-jedi
.
Lihat dokumennya.
Fitur Jedi tercantum di sini: Fitur.
Anda dapat menjalankan Jedi di Python 3.6+ tetapi ia juga harus memahami kode yang lebih lama dari versi tersebut. Selain itu Anda harus dapat menggunakan Virtualenvs dengan sangat baik.
Tips cara menggunakan Jedi secara efisien dapat ditemukan di sini.
Anda dapat menemukan dokumentasi lengkap untuk API di sini.
Ada perintah berikut:
jedi.Script.goto
jedi.Script.infer
jedi.Script.help
jedi.Script.complete
jedi.Script.get_references
jedi.Script.get_signatures
jedi.Script.get_context
Objek yang dikembalikan sangat kuat dan merupakan satu-satunya yang mungkin Anda perlukan.
Jedi adalah ketergantungan IPython. Oleh karena itu, pelengkapan otomatis di IPython dengan Jedi dapat dilakukan tanpa konfigurasi tambahan.
Berikut adalah contoh video tampilan penyelesaian REPL. Untuk shell python
Anda dapat mengaktifkan penyelesaian tab di REPL.
Untuk banyak bentuk analisis statis, Anda dapat mencoba menggunakan jedi.Script(...).get_names
. Ini akan mengembalikan daftar nama yang kemudian dapat Anda filter dan gunakan. Ada juga cara untuk membuat daftar kesalahan sintaksis dalam sebuah file: jedi.Script.get_syntax_errors
.
Jedi mendukung pemfaktoran ulang berikut:
jedi.Script.inline
jedi.Script.rename
jedi.Script.extract_function
jedi.Script.extract_variable
Ada dukungan untuk pencarian modul dengan jedi.Script.search
, dan pencarian proyek untuk jedi.Project.search
. Cara mencarinya adalah dengan memberikan nama seperti foo
atau menggunakan sintaksis bertitik seperti foo.bar
. Selain itu, Anda dapat memberikan tipe API seperti class foo.bar.Bar
. Ada juga fungsinya jedi.Script.complete_search
dan jedi.Project.complete_search
.
Ada dokumentasi pengembangan yang cukup bagus dan ekstensif.
Rangkaian pengujian menggunakan pytest
:
pip instal pytest
Jika Anda hanya ingin menguji versi Python tertentu (misalnya Python 3.8), caranya semudah:
python3.8 -m uji coba
Untuk informasi lebih rinci kunjungi dokumentasi pengujian.
Terima kasih banyak kepada semua kontributor!