Skip to content

Commit 8dc323f

Browse files
author
Jeremi Do Dinh
authored
SONARPY-1462-hotfix Add quick fix for equality checks against np.nan. (#1578)
1 parent 716e412 commit 8dc323f

File tree

3 files changed

+8
-8
lines changed

3 files changed

+8
-8
lines changed

python-checks/src/main/java/org/sonar/python/checks/NumpyIsNanCheck.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@
3636
@Rule(key = "S6725")
3737
public class NumpyIsNanCheck extends PythonSubscriptionCheck {
3838

39-
private static final String MESSAGE = "Don't perform an equality check against \"numpy.nan\".";
40-
private static final String QUICK_FIX_MESSAGE_EQUALITY = "Replace this equality check with numpy.isnan().";
41-
private static final String QUICK_FIX_MESSAGE_INEQUALITY = "Replace this inequality check with !numpy.isnan().";
39+
private static final String MESSAGE = "Don't perform an equality/inequality check against \"numpy.nan\".";
40+
private static final String QUICK_FIX_MESSAGE_EQUALITY = "Replace this equality check with \"numpy.isnan()\".";
41+
private static final String QUICK_FIX_MESSAGE_INEQUALITY = "Replace this inequality check with \"not numpy.isnan()\".";
4242

4343
@Override
4444
public void initialize(Context context) {
@@ -83,7 +83,7 @@ private static String addPrefix(BinaryExpression be) {
8383
if ("==".equals(be.operator().value())) {
8484
return "";
8585
} else {
86-
return "!";
86+
return "not ";
8787
}
8888
}
8989

python-checks/src/test/java/org/sonar/python/checks/NumpyIsNanCheckTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@
2626
class NumpyIsNanCheckTest {
2727

2828
NumpyIsNanCheck check = new NumpyIsNanCheck();
29-
private static final String QUICK_FIX_MESSAGE_EQUALITY = "Replace this equality check with numpy.isnan().";
30-
private static final String QUICK_FIX_MESSAGE_INEQUALITY = "Replace this inequality check with !numpy.isnan().";
29+
private static final String QUICK_FIX_MESSAGE_EQUALITY = "Replace this equality check with \"numpy.isnan()\".";
30+
private static final String QUICK_FIX_MESSAGE_INEQUALITY = "Replace this inequality check with \"not numpy.isnan()\".";
3131

3232
@Test
3333
void test() {
@@ -66,7 +66,7 @@ void quickFixTestNotEqual() {
6666

6767
final String compliant = "import numpy as np\n" +
6868
"def foo(x):\n" +
69-
" if !np.isnan(x): print(1)";
69+
" if not np.isnan(x): print(1)";
7070

7171
performVerification(nonCompliant1, compliant, QUICK_FIX_MESSAGE_INEQUALITY);
7272
performVerification(nonCompliant2, compliant, QUICK_FIX_MESSAGE_INEQUALITY);

python-checks/src/test/resources/checks/numpyIsNan.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
def foo1(x):
22
import numpy as np
3-
if x == np.nan: print(1) # Noncompliant {{Don't perform an equality check against "numpy.nan".}}
3+
if x == np.nan: print(1) # Noncompliant {{Don't perform an equality/inequality check against "numpy.nan".}}
44
# ^^^^^^^^^^^
55
if np.nan == x: print(1) # Noncompliant
66
if x != np.nan: print(1) # Noncompliant

0 commit comments

Comments
 (0)