如何为整个项目忽略pyre check python包中的特定错误
我使用pyre检查静态类型测试,我想忽略项目中的特定错误 例如:未定义的属性[16]:模块如何为整个项目忽略pyre check python包中的特定错误,python,pyre-check,pysa,Python,Pyre Check,Pysa,我使用pyre检查静态类型测试,我想忽略项目中的特定错误 例如:未定义的属性[16]:模块google.protobuf.struct\u pb2没有属性\u struct 假设我想从我的项目中忽略这个错误,我该怎么做呢?我相信你要查找的内容可以在中找到。 所以你需要做的是根据文档写一个具体的评论。 在您的情况下,这样做会有所帮助: # pyre-ignore[16] here will be the line of code causing the error 我不熟悉你的项目,但你有更多的
google.protobuf.struct\u pb2
没有属性\u struct
假设我想从我的项目中忽略这个错误,我该怎么做呢?我相信你要查找的内容可以在中找到。 所以你需要做的是根据文档写一个具体的评论。 在您的情况下,这样做会有所帮助:
# pyre-ignore[16]
here will be the line of code causing the error
我不熟悉你的项目,但你有更多的选择。我想你可以为自己选一个合适的 您可以使用以下注释掉的行抑制代码中的特定错误:
# pyre-ignore[16]:
That part which raises the error
或
如果在Python文件的开头声明以下注释掉的行,则可以抑制文件中的所有错误:
# pyre-ignore-all-errors
您可以使用正则表达式排除有问题的文件(不完全建议这样做,因为其他错误也将被抑制) 您可以通过两种方式完成:
exclude
参数放入PyRe配置文件(.pyer\u配置
)exclude
参数(--exclude从解析中排除与此regexp匹配的文件和目录)
老实说,我认为您希望在分析中完全禁用
未定义属性[16]
错误,但不幸的是,PyRe目前不支持此选项。也许,如果您重写PyRe实现的某些部分,您可以实现它,但这并不好,我想这不是一个选项
引用:
.py
文件中存在但未在相应的.pyi
文件中定义的类、属性或函数时,会发生此类错误。换句话说,这样的错误发生在源代码和类型提示存根之间的不一致上。在您的例子中,\u STRUCT
类是在STRUCT\u pb2.py
中定义的,但没有在Pyre开发者提供的.pyi
文件中定义,即,/pyr\u check/typeshed/third\u party/2and3/google/protobuf/STRUCT\u pb2.pyi
在这种情况下,您可以尝试从相应软件包的开发人员处获取.pyi
文件,并替换pyretypeshed
目录中的文件。但是,包的开发人员提供的.pyi
文件通常不注释以\uuu
开头的类或方法。根据定义,以单下划线开头的名称保留供内部使用
_单前导下划线:弱“内部使用”指示器。例如,from M M import*不导入名称以
下划线
设计用于通过M import*使用的模块应使用
all防止导出全局变量的机制,或使用较旧的惯例,在这些全局变量前面加下划线(您可以使用下划线)
您可能希望这样做,以表明这些全局变量是“模块非公共的”)
仅对非公共方法和实例使用一个前导下划线
变量
公共属性不应具有前导下划线
内部接口(包、模块、类、函数、属性
(或其他名称)仍应以单个前导作为前缀
下划线
如果无法从开发人员处获取update.pyi文件,或者该文件不包含以下划线为前缀的名称定义,则可以自己将这些名称添加到Pyre开发人员提供的.pyi文件中
还有一个小小的提示是,它花了太多的时间挖掘,最后直接向我指出了它,但您可以使用以下命令在文件顶部抑制给定类型的所有错误:
# pyre-ignore-all-errors[16]
# pyre-ignore-all-errors[56]
# pyre-ignore-all-errors[16]
# pyre-ignore-all-errors[56]