剛剛開源的 Python 靜態型別檢查器:Pyright
近日,開發者 msfterictraut 在 GitHub 上提交了一個名為 Pyrignt 的開源專案,這是一個 Python 的靜態型別檢查器,主要是為了解決 mypy 等現有的 Python 型別檢查器無法解決的問題。
Pyright 的編寫語言是 TypeScript,可在節點內執行,適用於大型 Python 原始碼庫,不需要安裝 Python 環境或匯入的第三方軟體包,在與 VS Code 編輯器一起使用時,使用節點作為其擴充套件執行時。
相比於 mypy 等其它型別的檢查器,Pyright 的速度可以達到 5 倍甚至更多,在“watch”模式下執行,在修改檔案時執行快速增量更新。
Pyright 提供以下語言服務功能:
- 懸停顯示型別資訊的工具提示
- 符號定義的連結
- 在編輯期間智慧優先順序排隊“實時”反饋
Pyright 實現了一種服務,可為語言伺服器提供一個介面,當其擁有一個程式例項之後,將會跟蹤配置檔案和所有構成分析基礎的原始檔,跟蹤多個 sourceFile 物件。每個原始檔代表磁碟上一個 Python 原始檔的內容,檔案的整個分析狀態,例如分析的每個中間結果、最終結果以及產生的診斷(警告和錯誤)都會一一跟蹤到。同時,程式也會通過 importResolver 來解析每個原始檔中引用的匯入模組。
與微軟官方支援的 Microsoft Python 語言伺服器相比,Pyright 的特點在於其提供了一些獨特的功能,如更多的可配置性、命令列執行和更好的效能。目前,Pyright 只發布了 1.0.1 版本,還處於需要大家積極建設貢獻的階段,感興趣的小夥伴可以點選下方 GitHub 地址。
Pyright GitHub 地址:https://github.com/Microsoft/pyright