亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何忽略整個項目的pyre-check python包中的特定錯誤

如何忽略整個項目的pyre-check python包中的特定錯誤

慕絲7291255 2022-01-11 18:02:46
我正在使用 pyre-checking 進行靜態類型測試,我想忽略我項目中的特定錯誤。例如:未定義屬性[16]:模塊google.protobuf.struct_pb2沒有屬性_STRUCT。假設如果我想從我的項目中忽略這個錯誤,我該怎么做?
查看完整描述

3 回答

?
catspeake

TA貢獻1111條經驗 獲得超0個贊

我不熟悉您的項目,但您有更多選擇。我想你可以選擇適合你的。


您可以使用以下注釋掉的行來抑制代碼中的特定錯誤:


# pyre-ignore[16]:

That part which raises the error

或者


That part which raises the error  # pyre-ignore[16]

如果在 Python 文件的開頭聲明以下注釋掉的行,則可以抑制文件中的所有錯誤:


# pyre-ignore-all-errors

您可以使用正則表達式排除有問題的文件或文件(不完全推薦,因為其他錯誤也會被抑制)。


你可以通過兩種方式做到這一點:


將exclude參數放入PyRe 配置文件 ( .pyre_configuration)

exclude在命令行中使用參數 ( --exclude EXCLUDE     Exclude files and directories matching this regexp from parsing)

老實說,我認為您想完全禁用Undefined attribute [16]分析中的錯誤,但不幸的是目前 PyRe 不支持此選項。也許如果你重寫 PyRe 實現的某些部分,你可以達到它,但它不是很好,我想這不是一個選擇。


查看完整回答
反對 回復 2022-01-11
?
慕哥9229398

TA貢獻1877條經驗 獲得超6個贊

我相信您可以在文檔中找到您要查找的內容。所以你需要做的是根據文檔寫一個具體的評論。在你的情況下,這樣的事情會有所幫助:


# pyre-ignore[16]

here will be the line of code causing the error


查看完整回答
反對 回復 2022-01-11
?
呼如林

TA貢獻1798條經驗 獲得超3個贊

另一種選擇是修復此錯誤而不是抑制它。

當您使用.py文件中存在但未在相應.pyi文件中定義的類或屬性或函數時,會發生此類錯誤。換句話說,此類錯誤發生在源代碼和類型提示存根之間的不一致處。在您的情況下,_STRUCT該類在 中定義struct_pb2.py,但未在.pyiPyre 開發人員提供的文件中定義,即/pyre_check/typeshed/third_party/2and3/google/protobuf/struct_pb2.pyi.

在這種情況下,您可以嘗試.pyi從相應包的開發人員處獲取文件并替換 pyretypeshed目錄中的文件。但是,.pyi包的開發者提供的文件通常不會注釋以_.開頭的類或方法。根據PEP 8 -- Python 代碼樣式指南 | Python.org保留以單個下劃線開頭的名稱供內部使用

_single_leading_underscore:弱“內部使用”指標。例如,from M import * 不會導入名稱以下劃線開頭的對象。

為通過 from M import * 使用而設計的模塊應使用 all機制來防止導出全局變量,或使用在此類全局變量前加下劃線的舊約定(您可能希望這樣做以指示這些全局變量是“模塊非公共”)。

僅對非公共方法和實例變量使用一個前導下劃線。

公共屬性不應有前導下劃線。

內部接口(包、模塊、類、函數、屬性或其他名稱)仍應以單個前導下劃線作為前綴。

如果您無法從開發人員那里獲得更新的 .pyi 文件,或者它不包含帶有下劃線前綴的名稱定義,您可以自己將這些名稱添加到 Pyre 開發人員提供的 .pyi 文件中。

Errors |還有一個小提示。Pyre (pyre-check.org)


查看完整回答
反對 回復 2022-01-11
  • 3 回答
  • 0 關注
  • 280 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號