🛒 Arduino, ESP32 və modullar
Google Python tip yoxlamada Pytype-dən Pyrefly-ə keçdi
30 DƏQ ƏVVƏLProqramlaşdırma

Google Python tip yoxlamada Pytype-dən Pyrefly-ə keçdi

Google öz nəhəng Python kod bazasında statik tip yoxlamanı Meta-nın Rust-da yazdığı Pyrefly alətinə köçürdü. Nəticə: 10x sürət, 80% daha az hesablama resursu və daha dəqiq diaqnostika.

19 oktyabr 20262 dəq oxuma5 teqlər

Google öz nəhəng monoreposunda Python üçün əsas statik tip yoxlayıcını dəyişib: artıq daxili Pytype yox, Meta tərəfindən hazırlanmış open-source Pyrefly istifadə olunur. Bu keçid həm sürət, həm də infrastruktur xərcləri baxımından ciddi fərq yaradıb.

Niyə Pytype-dən imtina edildi?

On ildən çox Google Pytype-ə güvənib və typeshed kimi ekosistem layihələrinə töhfə verib. Amma Python-un typing sistemi sürətlə inkişaf etdikcə, Pytype-in memarlığı zəif yerə çevrilib:

  • Pytype AST yox, kompilyasiya olunmuş bytecode analiz edirdi
  • Python-un hər yeni versiyasında bytecode dəyişdiyi üçün PEP-lərə uyğunluğu saxlamaq baha başa gəlirdi
  • Müasir edit–check–build dövrləri üçün lazım olan cavab müddətinə çata bilmirdi

Google artıq elan edib ki, Python 3.12 Pytype-in dəstəklədiyi son versiya olacaq və bunun ardınca müasir open-source alternativlər qiymətləndirilib.

Pyrefly nə təklif edir?

Pyrefly Rust-da yazılıb və yüksək ötürmə qabiliyyəti üçün lazy, paralel analizdən istifadə edir. Google-un daxili testlərinə görə:

  • Təxminən 10x daha sürətlidir
  • İnkremental rebuild gecikməsini 98%-ə qədər azaldır
  • Təmiz build kritik yolunda tip yoxlama payını 90–99% kəsir
  • Gündəlik pik hesablama resursunu 80%+ azaldır

Texniki cəhətdən vacib üstünlüklər:

  • Rəsmi typing conformance test dəstində təxminən 97% uyğunluq
  • Yeni Python versiyaları və typing PEP-ləri ilə aktiv sinxronizasiya
  • Sound union checking – məsələn, int | None dəyərini int parametrə səssiz ötürməyə artıq icazə verilmir

Pyrefly həm də Rust-kompilyator üslublu diaqnostika verir: səhv sətri, problemli ifadəni və çox vaxt təklif olunan düzəlişi eyni blokda göstərir. Bu, böyük kod bazalarında xırda, amma kritik tipləşdirmə səhvlərini tez tapmağa kömək edir.

İcma və praktik tövsiyə

İnfoQ-da və forumlarda müzakirələrdə Pyrefly-in Mypy, Pyright və Ty ilə müqayisəsi davam edir. Bəzi tərtibatçılar Mypy 2.0-ın böyük layihələrdə kifayət qədər sürətli olduğunu deyir, digərləri isə yeni nəsil tip yoxlayıcıların hələ də bir neçə dəfə üstün performans verdiyini vurğulayır.

Python tərtibatçısı Amirrea Azadmher isə maraqlı məqama toxunur: tip yoxlayıcının dəyəri təkcə CI-də 30 saniyə qazanmaq deyil, redaktə–yoxlama dövrünü yaxşılaşdırmaqdır. Onun tövsiyəsi:

Pyright, Pyrefly, mypy seçirsinizsə, başqalarının monorepo rəqəmlərinə kor-koranə inanmayın. Soyuq və isti vaxtları öz ağacınızda ölçün və diaqnostika keyfiyyətini də qiymətləndirin.

Embedded.az oxucuları üçün nəticə aydındır: əgər Python-la böyük backend, data pipeline və ya embedded alət zənciri qurursunuzsa, Pyrefly kimi müasir tip yoxlayıcını sınaqdan keçirmək vaxtıdır.


Mənbə: Google, InfoQ · Üz şəkli: Google

Videolar

(1)