gpt4 book ai didi

python - 如何从 python 代码执行 pylint 命令。另外 pylint 中的哪些参数可以根据我的需要生成日志消息

转载 作者:太空宇宙 更新时间:2023-11-03 19:44:56 28 4
gpt4 key购买 nike

我有一个场景,当我想使用 Python 文件运行 pylint 命令时。使用我正在使用的命令提示符

python3 -m pylint test.py

除此之外,我想格式化我的消息,以便以后可以使用 split 方法来分隔参数并像 Excel 一样输入报告。还要将 C0103 等代码替换为更有意义的名称。我在命令提示符下尝试了以下命令,但无法得到正确的答案

python3 -m pylint --msg-template="{module}{obj}{line}{column}{msg}" init.py

代码

# all of the following are equivalent
my_string = 'Hello'
print(my_string)

my_string = "Hello"
print(my_string)

my_string = '''Hello'''
print(my_string)

# triple quotes string can extend multiple lines
my_string = """Hello, welcome to
the world of Python"""
print(my_string)

输出

python3 -m pylint init.py
************* Module init
init.py:14:0: C0304: Final newline missing (missing-final-newline)
init.py:1:0: C0114: Missing module docstring (missing-module-docstring)
init.py:2:0: C0103: Constant name "my_string" doesn't conform to UPPER_CASE naming style (invalid-name)
init.py:5:0: C0103: Constant name "my_string" doesn't conform to UPPER_CASE naming style (invalid-name)
init.py:8:0: C0103: Constant name "my_string" doesn't conform to UPPER_CASE naming style (invalid-name)
init.py:12:0: C0103: Constant name "my_string" doesn't conform to UPPER_CASE naming style (invalid-name)

-------------------------------------------------------------------
Your code has been rated at 2.50/10 (previous run: -1.39/10, +3.89)

最佳答案

Apart from this i want to format my message such that i can later use split method to separate the arguments and feed in report like excel.

python3 -m pylint --msg-template="{module}{obj}{line}{column}{msg}" init.py

您是否考虑过在消息模板中添加分隔符?

因为在这里您只是将所有项目混在一起,这似乎不是很有帮助或有用,但也不难修复:

$ python3 -m pylint --msg-template="{module}{obj}{line}{column}{msg}" test.py
************* Module test
test10Missing module docstring
test20Constant name "my_string" doesn't conform to UPPER_CASE naming style

------------------------------------------------------------------
Your code has been rated at 0.00/10 (previous run: 0.00/10, +0.00)

$ python3 -m pylint --msg-template="{module}|{obj}|{line}|{column}|{msg}" test.py
************* Module test
test||1|0|Missing module docstring
test||2|0|Constant name "my_string" doesn't conform to UPPER_CASE naming style

------------------------------------------------------------------
Your code has been rated at 0.00/10 (previous run: 0.00/10, +0.00)

尽管如果您想以编程方式使用输出,-f 参数可能更有用。 pylint -f json 会将所有诊断转储为 json 对象数组,例如具有良好命名属性的数组。

Also replace code's like C0103 with more meaningful name. I tried below command from command prompt but could not get proper answer

从文档中,您想要的模板项是symbol,即“消息的符号名称”:

$ pylint test.py
************* Module test
test.py:1:0: C0114: Missing module docstring (missing-module-docstring)
test.py:2:0: C0103: Constant name "my_string" doesn't conform to UPPER_CASE naming style (invalid-name)

------------------------------------------------------------------
Your code has been rated at 0.00/10 (previous run: 4.29/10, -4.29)

$ pylint --msg-template='{msg_id}' test.py
************* Module test
C0114
C0103

------------------------------------------------------------------
Your code has been rated at 0.00/10 (previous run: 0.00/10, +0.00)

$ pylint --msg-template='{symbol}' test.py
************* Module test
missing-module-docstring
invalid-name

------------------------------------------------------------------
Your code has been rated at 0.00/10 (previous run: 0.00/10, +0.00)

I have a scenario when i want to run the pylint command using a Python file.

使用子进程运行 pylint 可能是最简单且支持最好的方法。你可以手动配置和运行pylint.lint.PyLinter,但据我所知,它没有文档记录,不受支持,绝对是一个痛苦的事情,而且很容易摔倒(就像 pylint 中的崩溃一样) - 遗憾的是,这很常见 --- 将删除整个脚本)。我们曾经在 $dayjob 中这样做过,然后又回到在子进程中运行 CLI,它更加可靠。

关于python - 如何从 python 代码执行 pylint 命令。另外 pylint 中的哪些参数可以根据我的需要生成日志消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60202640/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com