Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为整个项目忽略pyre check python包中的特定错误_Python_Pyre Check_Pysa - Fatal编程技术网

如何为整个项目忽略pyre check python包中的特定错误

如何为整个项目忽略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 我不熟悉你的项目,但你有更多的

我使用pyre检查静态类型测试,我想忽略项目中的特定错误

例如:未定义的属性[16]:模块
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
    文件,并替换pyre
    typeshed
    目录中的文件。但是,包的开发人员提供的
    .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]