Sonarqube将介绍如何使用#NOSONAR抑制Python中的特定警告

Sonarqube将介绍如何使用#NOSONAR抑制Python中的特定警告,python,sonarqube,Python,Sonarqube,在Python中,我们可以通过应用#NOSONAR注释来抑制代码中特定行的所有Sonarqube警告。这并不理想。是否有一种方法可以抑制特定错误,而不是抑制所有错误 例如,您可能有一个带有两个警告的函数: Function "foo" has 8 parameters, which is greater than the 7 authorized. Refactor this function to reduce its Cognitive Complexity from 17 to the 1

在Python中,我们可以通过应用
#NOSONAR
注释来抑制代码中特定行的所有Sonarqube警告。这并不理想。是否有一种方法可以抑制特定错误,而不是抑制所有错误

例如,您可能有一个带有两个警告的函数:

Function "foo" has 8 parameters, which is greater than the 7 authorized.
Refactor this function to reduce its Cognitive Complexity from 17 to the 15 allowed

如何抑制第一个,而不是第二个?

如果使用Jenkins,这是一个解决方法,这并不完美。它可用于抑制整个文件的特定警告(而不仅仅是一个函数)

在Jenkins属性文件中添加如下内容:

sonar.issue.ignore.multicriteria=e1
sonar.issue.ignore.multicriteria.e1.ruleKey=python:S107
sonar.issue.ignore.multicriteria.e1.resourceKey=path/to/file.py

其中,
python:S107
是具有7个以上参数的函数的规则键,
path/to/file.py
是要为其抑制此特定规则的文件。不幸的是,它将对整个文件而不是特定函数禁用它。

如果我没有弄错你的问题……你的意思是你想使用“@SuppressWarnings(“squid:S####”)”而不是NOSONAR?@Ehsan在Python中可用
@SuppressWarnings
?我以为这只在Java中被允许。这能回答你的问题吗@agabrys不,这个答案说,使用#NOSONAR“是一种全局问题抑制:它可以消除所有在线问题,而不仅仅是某个特定规则的问题。”我正在寻找一种机制来抑制某个特定规则,而不是所有规则。