该项目不再积极维护。
内容
Tidypy是一种封装许多其他静态分析工具的工具,并使其易于配置,执行和查看其结果。
*.py源文件。除了执行代码上的许多不同工具外,它还可以检查您的YAML,JSON,PO,POT和RST文件。pyproject.toml文件,由PEP 518定义。所有工具的所有选项都在一个地方声明,而不是要求您以不同的方式配置每个工具。# noqa评论,以轻松忽略任何工具报告的问题。安装TidyPy( pip install tidypy tidypy时,应在您的环境中可用:
$ tidypy--螺旋
用法:tidypy [options]命令[args] ...
在Python项目上执行多个静态分析工具的工具
并汇总结果。
选项:
- Version显示版本和退出。
- 主持人显示此消息和退出。
命令:
检查在项目文件上执行工具。
Default-Config输出默认配置,可用于
引导自己的配置文件。
扩展输出所有可用的tidypy扩展名的清单。
安装VCS将Tidypy作为预先承诺的挂钩安装到指定的
VCS。
列表代码输出所有已知问题代码的清单
可以举报。
吹扫-Config-cache删除了从
在主要配置之外。
删除-VC从指定的
VCS。
要使TidyPy分析您的项目,请使用check子命令:
$ tidypy检查 - 螺旋
用法:Tidypy检查[选项] [路径]
在项目文件上执行工具。
接受一个论点,这是通往Python项目基础的道路。
如果未指定,则默认为当前工作目录。
选项:
-x, - 隔离正则指定正则表达式匹配
反对您想排除的道路
考试。可以指定多个
时代。覆盖指定的表达式
在配置文件中。
-t,-tool [Bandit | dlint |根除| JSONLINT |清单| McCabe | Polint | Pycodestyle | Pydiatra | Pydoctyle | Pydocstyle | Pydocstyle | Pyflakes | Pyflakes | Pylint | Pyromal | Pyroma | pyroma | rstlint | rstlint |秘密| Vulture | Vulture | Vulture | Yamllint]
指定在此期间使用的工具的名称
考试。可以指定多个
时代。覆盖配置文件。
-r, - 报告[控制台,CSV,Custom,Json,Null,PyCodestyle,Pycodestyle,Pylint,Pylint-parsable,toml,yaml] [:filename]
指定要执行的报告的名称
考试后。可以指定一个
使用表单-r的可选输出文件名
报告:文件名。如果文件名不设,则
报告将在Stdout上写。可以
多次指定。覆盖
配置文件。
-c, - config文件名指定了通往幻想的路径
配置文件而不是
在项目中找到的配置
pyproject.toml。
- 工人num_workers同时使用的工人人数
执行工具。覆盖
配置文件。
- 易于混合禁用各种问题的合并
工具当Tidypy认为它们等效时。
覆盖配置文件。
- 可行的过程禁用进度栏的显示。
- disable-noqa可以禁用使用使用的能力
Python文件中的“#NOQA”注释。
- 可访问时可用于检索时缓存的使用
“扩展”引用的配置
选项。
- 主持人显示此消息和退出。
如果您需要使用默认选项生成骨架配置文件,请使用default-config子命令:
$ tidypy默认config-螺旋
用法:tidypy默认config [options]
输出默认配置,可用于引导您自己的
配置文件。
选项:
- 型 - 八型将配置输出,以便可以在pyproject.toml中使用它
文件。
- 主持人显示此消息和退出。
如果您想查看可以返回的可能问题代码的列表,请使用list-codes命令:
$ tidypy列表编码 - 螺旋
用法:Tidypy列表编码[选项]
输出工具可能报告的所有已知问题代码的列表。
选项:
-t,-tool [Bandit | dlint |根除| JSONLINT |清单| McCabe | Polint | Pycodestyle | Pydiatra | Pydoctyle | Pydocstyle | Pydocstyle | Pyflakes | Pyflakes | Pylint | Pyromal | Pyroma | pyroma | rstlint | rstlint |秘密| Vulture | Vulture | Vulture | Yamllint]
指定代码的工具的名称
应该输出。如果未指定,默认
到所有工具。
-f, - format [toml | json | yaml | csv]
指定工具的格式
应该输出。如果未指定,默认
到汤姆尔。
- 主持人显示此消息和退出。
如果要在项目的VCS中安装或删除作为预先承诺的钩子,请使用install-vcs / remove-vcs子命令:
$ tidypy install-vcs-Help
用法:tidypy install-vcs [options] vcs [path]
将TIDYPY作为预先承诺的钩子安装到指定的VC中。
接受两个论点:
VCS:将钩子安装到的版本控制系统。选择:
Git,HG
路径:通往存储库底座的路径,将钩子安装到。
如果未指定,则默认为当前工作目录。
选项:
- 如果发现缝隙
问题。
- 主持人显示此消息和退出。
$ tidypy remove-vcs-Help
用法:tidypy remove-vcs [options] vcs [path]
从指定的VC中删除tidypy的预加入钩。
接受两个论点:
VCS:从中卸下钩子的版本控制系统。选择:
Git,HG
路径:通往存储库底座的路径以从中卸下钩子。如果
未指定,默认为当前工作目录。
选项:
- 主持人显示此消息和退出。
如果您想启用tidypy的bash完成,请在外壳中运行以下内容(或将其放入bash启动脚本中):
$ est
如果您不想在系统或Virtualenv上本地安装Tidypy,则可以使用已发布的Docker Image:
$ docker run -rm -tty -tty -volume =`pwd`:/project tidypy/tidypy
上面的命令将在当前目录的内容上运行tidypy check 。如果您想在其他目录上运行它,请将`pwd`更改为所需的任何路径(目标是将项目目录安装到容器/project量中)。
以这种方式运行易变具有一些限制,主要是围绕以下事实:由于Tidypy是按照自己的,孤立的Python环境运行的,诸如Pylint之类的工具将无法在本地安装您的项目包装,因此它可能会报告围绕“ Import-Error”,“无名模型”,“ No Mecember”,“ No-Meber”,“”,“”等误报,等等。
如果要运行check以外的其他命令,请在调用Docker时通过该命令:
$ docker run - rm -tty -tty-volume =`pwd`:/project tidypy/tidypy tidypy list-codes
托多
除了通过配置文件从工具中忽略整个文件,工具或特定问题类型外,还可以使用Python源文件中的注释来忽略特定行上的问题。有些工具为此具有自己的内置支持和符号:
# pylint评论# nosec评论# noqa评论# noqa评论# pragma: whitelist secret评论Tidypy超出了这些特定于工具的标志,可以在全球范围内为Python源文件实现# noqa 。无论工具提出什么工具,它都会忽略具有# noqa评论的行的问题。如果您只想在行上忽略特定类型的问题,则可以使用以下语法:
#NOQA:Code1,Code2
或者,如果在多个工具中使用了特定代码,则可以在注释中指定确切的工具:
#NOQA:PyCodestyle:Code1,Pylint:Code2
或者,如果您想忽略任何特定工具在行上提出的任何问题,则可以指定该工具:
#NOQA: @PyCodestyle, @Pylint
当然,如果需要,可以在单个评论中混合所有三个符号:
#NOQA:Code1,Pylint:Code2,@PyCodestyle
您可以通过在命令行上指定--disable-noqa选项,或者通过将noqa选项设置为“配置文件中的false来禁用Tidypy的NOQA行为。不过,请注意:目前的PyCodestyle和PydocStyle不尊重此选项,并且将始终尊重他们发现的任何# noqa评论。
开箱即用,Tidypy包括对许多工具的支持:
Tidypy包括许多不同的方法来介绍和/或导出项目分析的结果。开箱即用,提供以下内容:
filename , line , character , tool , code , message 。Tidypy包含少数插件/集成,将其连接到其他工具中。
--tidypy ,或将其作为addopts属性的一部分包含在pytest config中。--with-tidypy ,也可以将with-tidypy属性设置为setup.cfg中的1 。tidypy测试将tidypy包含在您的PBBT脚本中。要启用它,您可以在运行PBBT时在命令行上指定--extend=tidypy.plugin.pbbt ,或在setup.cfg或pbbt.yaml中设置extend属性为tidypy.plugin.pbbt 。存在一个简单的接口,用于扩展潮论,以包括更多和不同的工具和记者。要添加一个工具,请创建一个扩展tidypy.tool的类,在您的setup.py中,请声明tidypy.tools的entry_point 。
entry_points = {
'tidypy.tools':[
'myCooltool = path.to.model:myCoolToolClassName',
],,
}
要添加记者,该过程几乎是相同的,只是您扩展了tidypy.Report并声明tidypy.reports的entry_point 。
是的,发生了。我选择遵循此工具的理念是,我不希望它向我隐藏任何东西。我希望其默认行为能够使用最令人讨厌的设置执行其套件中的每个工具。然后,当我看到全部损坏范围时,我可以决定通过项目级配置禁用特定工具或问题。我认为如果有人花时间对特定问题进行检查,他们必须认为这有一定的价值。如果我的工具默认情况下将其隐藏起来,那么我将无法从中获得任何好处。
通常,当您认为自己“完成”时,我不建议开始使用衬里或其他类型的静态分析仪。您应该在项目开始时将它们纳入工作流程中 - 就像您(或应该)单位测试一样。这样,您就很早就找到东西并向它们学习(或禁用它们)。当您逐步解决这些任务时,要处理的任务要艰巨得多。
贡献是最欢迎的。特别是如果它们是错误修复!要在此代码上进行黑客攻击,只需克隆它,然后运行make setup即可。这将使用所需的所有工具创建Virtualenv。 Makefile还具有运行Pytest Suite的test目标,并且是在本身上运行Tidypy的lint目标。
Tidypy按照MIT许可的条款发布。