Python kodunu Rust aracının pylyzer'ıyla analiz edin

Draqon

Aktif Üye
Açık kaynaklı proje pylyzer'ı Python komut dosyalarını analiz eder ve örneğin Visual Studio Code için bir dil sunucusu olarak hizmet eder. Bakımcılar aracı Rust'ta yazdığından beri, benzer programlardan yüz kat daha hızlı olduğunu söylüyorlar.

Reklamcılık



Performansı ptype ve pyright ile karşılaştırmak için ekip, Intel M3 işlemcili (1,1 GHz) ve 8 GB LPDDR3 belleğe (1867 MHz) sahip bir MacBook (2016 başı) kullandı. Tür denetimine ek olarak, pylyzer Python komut dosyalarını erişim ihlalleri (sınırların dışında) ve sözlüklerde var olmayan anahtarlar açısından test eder. Bir dil sunucusu olarak tamamlayabilir ve yeniden adlandırabilir. Bu amaçlar doğrultusunda, Marketplace'te VS Code uzantısı olarak da mevcuttur ve aşağıdakilerle birlikte kullanılabilir: code --install-extension pylyzer.pylyzer yüklemek.

Web sitesinin diğer analiz araçlarına göre öne çıkardığı bir diğer avantaj ise hata mesajlarının anlaşılmasının kolay olmasıdır. Hem analizci hem de dil sunucusu, Python'a aktarılan ve bu dili, JavaScript için TypeScript'e benzer şekilde statik türlerle genişleten Erg programlama dilindeki ilgili araçları temel alır. pylyzer, Python'u Soyut Sözdizimi Ağacına (AST) dönüştürür ve ardından bunu bir Erg AST'ye dönüştürür. Bu, Erg'in tip test cihazı tarafından işlenir.




Pylyzer'dan hata raporu



pylyzer, analiz sırasında belirli hata mesajlarını gösterir.


(Resim: pilizör)



Geliştirme ekibi bir dizi sınırlamaya dikkat çekiyor: pylyzer statik olarak yazılmış kodu varsayıyor, yansımalar gibi meta işlevler hatalara yol açabilir. Standart olmayan API'lerde sorunlar olabilir. Ayrıca: “Pylyzer'ın tür kontrolü muhafazakar olduğundan, birçok (muhtemelen yanlış tanımlanmış) hata meydana gelebilir. Bunu çözmek için çalışıyoruz…”. Rust için minimum gereksinim 1.76.0 sürümüdür.




Performans analizörü



Geliştirme ekibine göre bir Rust aracı olarak pylyzer rakiplerinden daha hızlı.


(Resim: pilizör)



Daha fazla bilgiye projenin MIT Lisansı altında yayınlanan GitHub sayfasından ulaşılabilir.


(DSÖ)



Haberin Sonu