Python kodunu Rust pylyzer aracıyla analiz edin

Saberie

Active member
Açık kaynaklı pylyzer projesi Python komut dosyalarını ayrıştırır ve örneğin Visual Studio Code için bir dil sunucusu olarak hizmet eder. Bakımcılar aracı Rust'ta yazdığından, bunun benzer programlardan yüz kat daha hızlı olduğunu söylüyorlar.

Duyuru



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 vurguladığı bir diğer avantaj da hata mesajlarının anlaşılmasının kolay olmasıdır. Hem ayrıştırıcı hem de dil sunucusu, Python'a bağlanan ve bu dili, JavaScript için TypeScript'e benzer şekilde statik türlerle genişleten Erg programlama dilinin ilgili araçlarını temel alır. pylyzer, Python'u soyut bir sözdizimi ağacına (AST) dönüştürür ve ardından onu bir Erg AST'ye dönüştürür. Bu, Erg tipi test cihazı tarafından işlenir.




Pylyzer'dan hata raporu



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


(Resim: Pylyzer)



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'lerle ilgili sorunlar olabilir. Ayrıca: “Pylyzer türü kontrolü muhafazakar olduğundan, birçok (muhtemelen yanlış tanımlanmış) hata meydana gelebilir. Bu sorunu çö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 Pylyzer, bir Rust aracı olarak rakiplerinden daha hızlı.


(Resim: Pylyzer)



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


(DSÖ)



Haberin Sonu
 
Üst