# pylint: disable=no-method-argument, missing-docstring def function_3_args(first_argument, second_argument, third_argument): """three arguments function""" return first_argument, second_argument, third_argument def function_default_arg(one=1, two=2): """function with default value""" return two, one def args_out_of_order(): """Tests for arguments-out-of-order""" first_argument = 1 second_argument = 2 third_argument = 3 one = 1 two = 2 function_3_args(first_argument, third_argument, second_argument) # [arguments-out-of-order] function_3_args(second_argument, first_argument, # [arguments-out-of-order] third_argument=third_argument) function_default_arg(two, one) # [arguments-out-of-order] # Checking exceptions: # supplying the same attribute twice instead of two different ones function_3_args(first_argument, first_argument, third_argument) # keyword passing function_default_arg(two=two, one=one) # anything other than named attributes function_3_args(1, list, 1 + 2) # The check assumes you know better if at least 1 arg does not match the function signature function_3_args(one, third_argument, second_argument) # we currently don't warn for the case where keyword args have been swapped function_default_arg(two=one, one=two) # ensure object methods are checked correctly despite implicit self class TestClass: @staticmethod def function_0_args(): return def function_2_args(self, first_argument, second_argument=2): return first_argument, second_argument TestClass().function_2_args(second_argument, first_argument) # [arguments-out-of-order] TestClass().function_2_args(first_argument, second_argument=second_argument) TestClass.function_0_args()