
pylyzer adalah penganalisa kode statis / server bahasa untuk python, ditulis dalam karat.
pip install pylyzercargo install pylyzer --lockedgit clone https://github.com/mtshiba/pylyzer.git
cargo install --path . --locked Pastikan cargo / rustc terkini, karena Pylyzer dapat ditulis dengan fitur bahasa terbaru (stabil).
pylyzer file.pyJika Anda tidak menentukan jalur file, Pylyzer akan secara otomatis mencari titik masuk.
pylyzerOpsi ini digunakan ketika editor LSP-AWARE membutuhkan argumen untuk memulai Pylyzer.
pylyzer --serverUntuk opsi lain, periksa manual.
Rata -rata, Pylyzer dapat memeriksa skrip Python lebih dari 100 kali lebih cepat dari Pytype dan Pyright 1 . Ini sebagian besar disebabkan oleh fakta bahwa Pylyzer diimplementasikan dalam karat.
Sementara laporan kesalahan PyType/Pyright tidak terbaca, Pylyzer menunjukkan di mana kesalahan terjadi dan memberikan pesan kesalahan yang jelas.
Pylyzer sebagai server bahasa mendukung berbagai fitur, seperti penyelesaian dan penggantian nama (server bahasa adalah adaptasi dari ERG Language Server (ELS). Untuk informasi lebih lanjut tentang fitur yang diimplementasikan, silakan lihat di sini).
Anda dapat menginstal ekstensi vScode dari pasar atau dari baris perintah:
code --install-extension pylyzer.pylyzerRuff, seperti Pylyzer, adalah alat analisis kode statis untuk Python yang ditulis dalam karat, tetapi Ruff adalah linter dan pylyzer adalah tipe checker & server bahasa. Pylyzer tidak melakukan linting & formatting, dan Ruff tidak melakukan pemeriksaan tipe.
Pylyzer menggunakan tipe pemeriksa bahasa pemrograman ERG secara internal. Bahasa ini adalah bahasa yang ditranspilasi yang menargetkan Python, dan memiliki sistem tipe statis.
Pylyzer mengonversi ast Python menjadi erg asts dan meneruskannya ke pemeriksa tipe ERG. Kemudian menampilkan hasil dengan modifikasi yang sesuai.
Inspektur tipe Pylyzer hanya mengasumsikan kode yang diketik secara statis, sehingga Anda tidak dapat memeriksa kode menggunakan refleksi, seperti exec , setattr , dll.
Pylyzer (= sistem tipe ERG) memiliki deklarasi tipe sendiri untuk API standar Python. Pengetikan semua API tidak lengkap dan dapat mengakibatkan kesalahan bahwa API seperti itu tidak ada.
Karena jenis pengecekan Pylyzer konservatif, Anda mungkin menghadapi banyak kesalahan (mungkin palsu positif). Kami sedang berupaya memperbaiki ini, tetapi jika Anda khawatir tentang kesalahan editor, silakan matikan fitur diagnostik.
async/awaitlistdicttuplesettypingUnionOptionalLiteralCallableAnyTypeVarTypedDictClassVarGenericProtocolFinalAnnotatedTypeAliasTypeGuardcollections.abcIterableIteratorMappingSequencetyping.cast ) is , isinstance ) pyi (Stub) # type: ... ) pippoetryuvKami mencari kontributor untuk membantu kami meningkatkan Pylyzer. Jika Anda tertarik untuk berkontribusi dan memiliki pertanyaan, jangan ragu untuk menghubungi kami.
1 Tes Kinerja dilakukan di MacBook (awal 2016) dengan prosesor Intel Core M3 1,1 GHz dan 8 GB 1867 MHz LPDDR3 memori.↩