跳转到主要内容

Pylint JSON报告转换为HTML

项目描述

pylint-json2html

A pylint JSON report file to HTML: pylint is used to generate a JSON report, and this tool will transform this report into an HTML document

usage: pylint-json2html [-h] [-o FILENAME] [-e OUTPUT_ENCODING]
                        [-t FILENAME] [-f FORMAT] [FILENAME]

Transform Pylint JSON report to HTML

positional arguments:
FILENAME              Pylint JSON report input file (or stdin)

optional arguments:
-h, --help          show this help message and exit
-o FILENAME, --output FILENAME
                    Pylint HTML report output file (or stdout)
-e ENCODING, --encoding ENCODING
                    Encoding used to write output file (if not stdout);
                    default to utf-8
-t FILENAME, --template FILENAME
                    Jinja2 custom template to generate report
-f FORMAT, --input-format FORMAT
                    Pylint JSON Report input type (json or jsonextended)

为什么?

从其 1.7 版本 开始,Pylint 不再提供HTML输出格式。发布说明中提到

它曾是Pylint的二等公民,大多数时候被忽视。现在我们有JSON报告器,它可以作为构建比Pylint当前能生成的更美观的HTML报告的基础。这是从Pylint中移除冗余功能的一部分工作。

我同意这个说法。很少有人使用HTML报告,而Pylint也变得过时了。其核心功能复杂,需要花费大量时间和精力 - 我首先要感谢这个软件最初的存在!

所以,这就是它:一个满足我自身需求的插件。我将其作为开源共享,为什么不呢?

安装

要安装此工具,请使用pip

(venv) $ pip install pylint-json2html

您可以从GitHub仓库下载源代码,并使用setup.py文件进行安装开发,但除非您打算为此小型项目做出贡献,否则不建议这样做。

用法

我最喜欢的使用pylintpylint-json2html的方式是这样的

(venv) $ pylint my_package | pylint-json2html -o pylint.html

前提是您已经用以下方式配置了您的Pylint配置文件

[REPORTS]
output-format=json

但您可以先生成一个JSON文件,然后使用pylint-json2html来读取它

(venv) $ pylint your_package > pylint.json
(venv) $ pylint-json2html -o pylint.html pylint.json

您也可以重定向pylint-json2html的stdout

(venv) $ pylint-json2html pylint.json > pylint.html

您可以指定写入文件时使用的输出编码。注意,您不能对stdout这样做(如果您想控制它,您将不得不配置您环境的locale)

(venv) $ pylint-json2html -o pylint.html -e utf-8 pylint.json

这在您的locale类似于cp1252latin1时尤其有用,您想确保您的输出文件被正确地以utf-8格式写入(当与Python文件一起工作时应该是这样的)。

扩展报告

实际上,我之前说的最喜欢的用法并不准确,正确的是这个

(venv) $ pylint my_package | pylint-json2html -f jsonextended -o pylint.html

使用以下Pylint配置

[MASTER]
load-plugins=pylint_json2html

[REPORTS]
output-format=jsonextended

pylint_json2html是一个Pylint插件,它添加了一个新的输出格式:jsonextended。默认情况下,json格式只包含消息列表,而此新格式还包括指标,例如分析的语句数量或依赖关系列表。

上述配置可以使用命令行进行测试

(venv) $ pylint --load-plugins=pylint_json2html \
                --output-format=jsonextended your_package > pylint.json

然后,您将能够使用JSON扩展报告生成HTML报告

(venv) $ pylint-json2html -f jsonextended -o pylint.html pylint.json

就这样!

自定义模板

此插件使用Jinja2模板生成HTML输出,但您可能需要自己的模板。为此,您可以使用选项-t/--template,如下所示

(venv) $ pylint-json2html -f jsonextended -t custom.tpl -o pylint.html pylint.json

报告

在您的模板中,您有访问权限的report对象

  • report.score:pylint给出的分数,仅适用于jsonextended格式
  • report.previous_score:pylint给出的先前分数,仅适用于jsonextended格式
  • report.modules:一个包含2值元组的列表:(module, messages)

模块对象

  • module.name:模块名称
  • module.path:模块文件的路径

messages值是一个字典列表,每个字典都有以下键

  • line
  • column
  • type
  • symbol
  • message-id
  • obj
  • message

指标

在您的模板中,您有访问权限的metrics字典,以下键:typessymbolsmodulespaths。它们每个都包含一个字典。

编码

默认模板包含以下标题

<meta charset="utf-8">

因此,如果您想使用不同的输出编码,请确保

  1. 您可以使用该编码对pylint的输出进行编码
  2. 并且您使用自己的自定义模板来更改该meta标签,否则在浏览器中看起来可能不太好

项目详情


下载文件

下载适合您平台文件。如果您不确定选择哪个,了解更多关于安装包的信息。

源代码分发

pylint-json2html-0.5.0.tar.gz (13.2 kB 查看散列)

上传时间

构建分发

pylint_json2html-0.5.0-py3-none-any.whl (13.3 kB 查看哈希)

上传时间 Python 3

支持者