資源 | Github項目推薦 | 微軟開源Python靜態類型檢查器Pyright
- 2019 年 10 月 31 日
- 筆記
微軟最新開源Python靜態類型檢查器Pyright,比mypy快5倍
Python語言的靜態類型檢查器
創建Pyright是為了填補像 mypy 這樣的現有Python類型檢查器的漏洞。
Github項目地址:(點擊鏈接可直接打開)
https://github.com/Microsoft/pyright
速度
Pyright通常比mypy和其他用Python編寫的類型檢查器快5倍或更多。它適用於大型Python源程式碼庫。它可以在「監視」模式下運行,並在修改文件時執行快速增量更新。
沒有Python環境的依賴
Pyright是用TypeScript編寫的,在節點內運行。 它不需要安裝Python環境或導入的第三方包。 當它使用節點作為其擴展運行時,與VS程式碼編輯器一起使用效果非常好。
可配置性
Pyright支援靈活配置,可以對設置進行精細控制。 可以為源庫的不同子集指定不同的「執行環境」。 每個環境都可以指定不同的PYTHONPATH設置、python語言版本和平台目標。
類型檢查功能
Pyright 支援:
- PEP 484 類型提示,包括泛型
- 變數注釋的 PEP 526 語法
- PEP 544 結構子類型
- 函數返回值、實例變數、類變數和全局變數的類型推斷
- 理解條件程式碼流構造的智慧類型約束,如 if/else 語句
內置類型存根
Pyright包含來自 Typeshed 的stdlib類型存根的最新副本。 它可以配置為使用Typeshed類型存根的另一個(可能是更新的或修改過的)副本。 當然,它也適用於作為項目一部分的自定義類型存根文件。
命令行或語言服務
Pyright包括用於VS Code的命令行工具和語言伺服器協議插件。
語言服務功能
Pyright提供以下的語言服務功能:
- 懸停工具提示顯示類型資訊
- 符號定義的鏈接
- 在編輯期間智慧優先順序排隊「實時」回饋
文檔
- 命令行選項
- 配置
- 入門
- Pyright內部
使用限制
Pyright目前僅提供對Python 3.0及更高版本的支援,且目前沒有支援舊版本的計劃。
FAQ
Q:Pyright和Microsoft Python VS Code插件有什麼區別?
A:Python VS Code插件是VS Code的官方Python支援擴展。 它由Microsoft的工程師團隊提供官方支援。 它支援各種功能,包括調試、linter插件、類型檢查插件等等。 Pyright完全專註於類型檢查。 這是一個沒有專門團隊的次要項目。
Q:Pyright和Microsoft Python語言伺服器有什麼區別?
A:Microsoft Python語言伺服器是一種語言伺服器協議(LSP)實現,可以和Microsoft Python VS Code插件配合使用,並由Microsoft工程師團隊提供官方支援。 它還提供類型檢查功能。 Pyright提供了與之重複的功能,但包括了一些獨特的功能,如可配置性更高、命令行執行和更好的性能。
安裝
你可以直接從VS Code安裝最新發布的Pyright VS Code擴展版本。只需打開擴展程式面板並搜索 pyright 即可。
最新版本的命令行工具可以使用npm命令: npm i pyright 進行安裝
全局安裝:npm i -g pyright
運行命令行工具:npx pyright <options>
構建說明
要構建項目,請注意以下事項:
- 安裝nodejs
- 在克隆源的主目錄中打開終端窗口
- 執行 npm run install:all 來安裝依賴項
- 執行 npm run build
構建VS Code擴展包,請注意以下事項:
- 步驟與以上部分相同,但是需要再加一個步驟:
執行 npm run package
生成的包(pyright-X.Y.Z.vsix)可以在客戶端目錄中找到。如需在VS Code中安裝,請轉到擴展面板,然後從菜單中選擇「從VSIX安裝…」,然後選擇對應的包即可。