3 回答

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 實現的某些部分,你可以達到它,但它不是很好,我想這不是一個選擇。

TA貢獻1877條經驗 獲得超6個贊
我相信您可以在文檔中找到您要查找的內容。所以你需要做的是根據文檔寫一個具體的評論。在你的情況下,這樣的事情會有所幫助:
# pyre-ignore[16]
here will be the line of code causing the error

TA貢獻1798條經驗 獲得超3個贊
另一種選擇是修復此錯誤而不是抑制它。
當您使用.py
文件中存在但未在相應.pyi
文件中定義的類或屬性或函數時,會發生此類錯誤。換句話說,此類錯誤發生在源代碼和類型提示存根之間的不一致處。在您的情況下,_STRUCT
該類在 中定義struct_pb2.py
,但未在.pyi
Pyre 開發人員提供的文件中定義,即/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)
添加回答
舉報