diff --git a/python/src/com/jetbrains/python/inspections/PyTypeCheckerInspection.java b/python/src/com/jetbrains/python/inspections/PyTypeCheckerInspection.java index 75bb46cd5f7c..509803fb2b4c 100644 --- a/python/src/com/jetbrains/python/inspections/PyTypeCheckerInspection.java +++ b/python/src/com/jetbrains/python/inspections/PyTypeCheckerInspection.java @@ -99,8 +99,12 @@ public class PyTypeCheckerInspection extends PyInspection { continue; } if (p.hasDefaultValue()) { - final PyExpression value = p.getDefaultValue(); - final String keyName = key.getName(); + final PyExpression value = p.getDefaultValue(); + String keyName = key.getName(); + if (key instanceof PyKeywordArgument) { + final PyExpression valueExpression = ((PyKeywordArgument)key).getValueExpression(); + keyName = valueExpression != null ? valueExpression.getName() : ""; + } if (value != null && keyName != null && keyName.equals(value.getName())) continue; } diff --git a/python/testData/inspections/PyNumpyType/DefaultValueKeyword.py b/python/testData/inspections/PyNumpyType/DefaultValueKeyword.py new file mode 100644 index 000000000000..9ae9aca6137c --- /dev/null +++ b/python/testData/inspections/PyNumpyType/DefaultValueKeyword.py @@ -0,0 +1,59 @@ +def set_printoptions(precision=None, threshold=None, edgeitems=None, + linewidth=None, suppress=None, + nanstr=None, infstr=None, + formatter=None): + """ + Set printing options. + + These options determine the way floating point numbers, arrays and + other NumPy objects are displayed. + + Parameters + ---------- + precision : int, optional + Number of digits of precision for floating point output (default 8). + threshold : int, optional + Total number of array elements which trigger summarization + rather than full repr (default 1000). + edgeitems : int, optional + Number of array items in summary at beginning and end of + each dimension (default 3). + linewidth : int, optional + The number of characters per line for the purpose of inserting + line breaks (default 75). + suppress : bool, optional + Whether or not suppress printing of small floating point values + using scientific notation (default False). + nanstr : str, optional + String representation of floating point not-a-number (default nan). + infstr : str, optional + String representation of floating point infinity (default inf). + formatter : dict of callables, optional + If not None, the keys should indicate the type(s) that the respective + formatting function applies to. Callables should return a string. + Types that are not specified (by their corresponding keys) are handled + by the default formatters. Individual types for which a formatter + can be set are:: + + - 'bool' + - 'int' + - 'timedelta' : a `numpy.timedelta64` + - 'datetime' : a `numpy.datetime64` + - 'float' + - 'longfloat' : 128-bit floats + - 'complexfloat' + - 'longcomplexfloat' : composed of two 128-bit floats + - 'numpy_str' : types `numpy.string_` and `numpy.unicode_` + - 'str' : all other strings + + Other keys that can be used to set a group of types at once are:: + + - 'all' : sets all types + - 'int_kind' : sets 'int' + - 'float_kind' : sets 'float' and 'longfloat' + - 'complex_kind' : sets 'complexfloat' and 'longcomplexfloat' + - 'str_kind' : sets 'str' and 'numpystr' + """ + pass + +set_printoptions(formatter=None) \ No newline at end of file diff --git a/python/testSrc/com/jetbrains/python/inspections/PyNumpyTypeTest.java b/python/testSrc/com/jetbrains/python/inspections/PyNumpyTypeTest.java index e53f1b977ba3..84bc1a9f5372 100644 --- a/python/testSrc/com/jetbrains/python/inspections/PyNumpyTypeTest.java +++ b/python/testSrc/com/jetbrains/python/inspections/PyNumpyTypeTest.java @@ -54,6 +54,10 @@ public class PyNumpyTypeTest extends PyTestCase { doTest(); } + public void testDefaultValueKeyword() { + doTest(); + } + public void testSort() { doTest(); }