浏览:python静态分析工具

prospector的Python项目详细描述


Latest Version of ProspectorBuild StatusCode HealthTest CoverageDocumentation

关于

prospector是一个分析python代码并输出有关 错误、潜在问题、违反惯例和复杂性。

它将其他python分析工具(如 Pylintpep8, 以及McCabe complexity。 见Supported Tools 完整列表的文档部分。

prospector的主要目标是“开箱即用”。其他人的共同抱怨 python分析工具需要很长时间来筛选与错误相关的内容 或者对你自己的编码风格感兴趣。“浏览”提供了一些默认配置文件,其中 希望能提供一个很好的起点,很快就会有用,并且适应 输出取决于项目使用的库。

安装

通过运行以下命令,可以使用pip安装浏览:

pip install prospector

浏览的可选依赖项,如pyroma,也可以通过运行:

pip install prospector[with_pyroma]

有关所有可选依赖项的列表,请参阅readthedocs上的可选附加功能部分 在Supported Tools Extras上翻页。

有关安装该工具的详细信息,请参见 ^工具主页的{a11} 准备好了。

用法

只需从项目的根目录运行prospector即可:

prospector

这将输出指出潜在问题或错误的消息列表,例如:

prospector.tools.base (prospector/tools/base.py):
    L5:0 ToolBase: pylint - R0922
    Abstract class is only referenced 1 times

选项

运行prospector --help获取选项及其效果的完整列表。

输出格式

默认的输出格式prospector被设计为人类可读。用于分析 (例如,对于报告),可以使用--output-format json标志来获取json格式 输出。

配置文件

“浏览”可使用“配置文件”配置。这些是可组合的yaml文件,具有 禁用或启用工具或消息。有关详细信息,请阅读 the documentation about profiles

如果您的代码使用框架和库

通常,Pylint之类的工具会在代码中发现错误,而这些错误并不是错误,例如,由于类的属性是 由项目使用的库或框架在运行时创建。 例如,在默认情况下,pylint将在访问objects时为django模型生成一个错误,作为 objects属性不是Model类定义的一部分。

prospector通过向底层工具提供对这些框架的理解来缓解这种情况。

“浏览者”将尝试直观显示项目使用的库 detecting dependencies并自动打开 支持必要的库。您可以在报告的元数据部分中看到运行了哪些适配器。

如果“浏览”无法正确检测项目的依赖项,则可以从命令行中手动指定它们:

prospector --uses django celery

此外,如果“浏览”自动检测到实际上不使用的库,则可以 完全关闭自动检测:

prospector --no-autodetect

注意,尽可能地,这些适配器被编写为底层的插件或扩展 工具,以便在不需要“浏览”的情况下使用它们。例如,django支持作为pylint插件提供。

严格性

prospector有一个可配置的“严格”级别,它将确定搜索错误的严格程度:

prospector --strictness high

可能的值是verylowlowmediumhighveryhigh

“浏览”默认情况下不包含文档警告,但您可以 这是关于使用--doc-warnings标志的。

预提交

如果希望更改Git中的文件时自动运行“浏览” 存储库,您可以安装pre-commit并添加以下内容 给你的报告发短信ries'.pre-commit-config.yaml

repos:
-   repo: https://github.com/PyCQA/prospector
    rev: 1.1.7 # The version of Prospector to use, at least 1.1.7
    hooks:
    -   id: prospector

许可证

“浏览”在GPLV2许可下可用。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用ObjectOutput/InputStream从自定义位置读/写   Java队列数组只打印出打印方法中for循环中的最后一个元素   java如何使用searchManager搜索和筛选listview   java ValueAnimator更改背景颜色   java什么是AOSP工具链?   序列化Java/Serializable仅覆盖已更改的对象   java Android单例类仅在第二次刷新时更新   将文本追加到JTextPane时,JTextPane的java滚动条不可见   java行为和繁忙指示器   javaspring,Thymeleaf和CSS如何给错误着色   java如何在两个测试类之间共享外部资源?   java Druid longSum度量未填充   按下按钮时,java列表不会显示(+字符串参数“流派”不存在)   java在Hibernate中如何延迟加载子记录?   java为对象提供随机统计信息   java如何使用GWT编辑器框架编辑多值字段?