Path 1: 304 calls (0.54)

set() (303) {'*args'} (1)

'differing-type-doc' (158) 'differing-param-doc' (146)

{'self', 'cls'} (303) {'self', 'cls', '*args'} (1)

{'self'} (232) {'self', 'x', 'y'} (23) {'param1'} (16) {'arg1', 'arg2'} (8) {'x', 'y'} (6) {'self', 'value'} (6) {'par1'} (3) {'self', 'my_param'} (3)...

FunctionDef (285) ClassDef (11) AsyncFunctionDef (8)

1def _compare_different_args(
2        self,
3        found_argument_names: set[str],
4        message_id: str,
5        not_needed_names: set[str],
6        expected_argument_names: set[str],
7        warning_node: nodes.NodeNG,
8    ) -> None:
9        """Compare the found argument names with the expected ones and
10        generate a message if there are extra arguments found.
11
12        :param found_argument_names: argument names found in the docstring
13
14        :param message_id: pylint message id
15
16        :param not_needed_names: names that may be omitted
17
18        :param expected_argument_names: Expected argument names
19
20        :param warning_node: The node to be analyzed
21        """
22        # Handle variadic and keyword args without asterisks
23        modified_expected_argument_names: set[str] = set()
24        for name in expected_argument_names:
25            if name.replace("*", "") in found_argument_names:
26                modified_expected_argument_names.add(name.replace("*", ""))
27            else:
28                modified_expected_argument_names.add(name)
29
30        differing_argument_names = (
31            (modified_expected_argument_names ^ found_argument_names)
32            - not_needed_names
33            - expected_argument_names
34        )
35
36        if differing_argument_names:
37            self.add_message(
38                message_id,
39                args=(", ".join(sorted(differing_argument_names)),),
40                node=warning_node,
41                confidence=HIGH,
42            )
            

Path 2: 129 calls (0.23)

{'named_arg'} (27) {'doc_type'} (20) {'y'} (12) {'arg'} (12) {'yarg'} (6) {'my_param'} (5) {'arg1'} (4) {'**kwargs', 'named_arg'} (4) {'arg1', 'arg3'}...

'differing-param-doc' (68) 'differing-type-doc' (61)

{'self', 'cls'} (106) {'self', 'cls', '*args'} (12) {'self', 'cls', '**kwargs'} (11)

{'self', 'doc_type'} (20) {'**kwargs', 'named_arg'} (19) {'self', 'x', 'y'} (15) {'*args', 'named_arg'} (15) {'arg1', 'arg3', 'arg2'} (7) {'x', 'y', '...

FunctionDef (120) ClassDef (9)

1def _compare_different_args(
2        self,
3        found_argument_names: set[str],
4        message_id: str,
5        not_needed_names: set[str],
6        expected_argument_names: set[str],
7        warning_node: nodes.NodeNG,
8    ) -> None:
9        """Compare the found argument names with the expected ones and
10        generate a message if there are extra arguments found.
11
12        :param found_argument_names: argument names found in the docstring
13
14        :param message_id: pylint message id
15
16        :param not_needed_names: names that may be omitted
17
18        :param expected_argument_names: Expected argument names
19
20        :param warning_node: The node to be analyzed
21        """
22        # Handle variadic and keyword args without asterisks
23        modified_expected_argument_names: set[str] = set()
24        for name in expected_argument_names:
25            if name.replace("*", "") in found_argument_names:
26                modified_expected_argument_names.add(name.replace("*", ""))
27            else:
28                modified_expected_argument_names.add(name)
29
30        differing_argument_names = (
31            (modified_expected_argument_names ^ found_argument_names)
32            - not_needed_names
33            - expected_argument_names
34        )
35
36        if differing_argument_names:
37            self.add_message(
38                message_id,
39                args=(", ".join(sorted(differing_argument_names)),),
40                node=warning_node,
41                confidence=HIGH,
42            )
            

Path 3: 84 calls (0.15)

{'named_arg'} (20) {'par1'} (6) {'x', 'y', 'z'} (5) {'zarg', 'warg', 'yarg', 'xarg'} (5) {'_some_private_param', 'public_param'} (4) {'_new'} (4) {'bo...

'differing-param-doc' (43) 'differing-type-doc' (41)

{'self', 'cls'} (84)

{'named_arg'} (20) {'par1'} (6) {'zarg', 'warg', 'yarg', 'xarg'} (6) {'x', 'y', 'z'} (5) {'_some_private_param', 'public_param'} (4) {'_new'} (4) {'bo...

FunctionDef (84)

1def _compare_different_args(
2        self,
3        found_argument_names: set[str],
4        message_id: str,
5        not_needed_names: set[str],
6        expected_argument_names: set[str],
7        warning_node: nodes.NodeNG,
8    ) -> None:
9        """Compare the found argument names with the expected ones and
10        generate a message if there are extra arguments found.
11
12        :param found_argument_names: argument names found in the docstring
13
14        :param message_id: pylint message id
15
16        :param not_needed_names: names that may be omitted
17
18        :param expected_argument_names: Expected argument names
19
20        :param warning_node: The node to be analyzed
21        """
22        # Handle variadic and keyword args without asterisks
23        modified_expected_argument_names: set[str] = set()
24        for name in expected_argument_names:
25            if name.replace("*", "") in found_argument_names:
26                modified_expected_argument_names.add(name.replace("*", ""))
27            else:
28                modified_expected_argument_names.add(name)
29
30        differing_argument_names = (
31            (modified_expected_argument_names ^ found_argument_names)
32            - not_needed_names
33            - expected_argument_names
34        )
35
36        if differing_argument_names:
37            self.add_message(
38                message_id,
39                args=(", ".join(sorted(differing_argument_names)),),
40                node=warning_node,
41                confidence=HIGH,
42            )
            

Path 4: 24 calls (0.04)

set() (24)

'differing-param-doc' (12) 'differing-type-doc' (12)

{'self', 'cls'} (24)

set() (24)

FunctionDef (24)

1def _compare_different_args(
2        self,
3        found_argument_names: set[str],
4        message_id: str,
5        not_needed_names: set[str],
6        expected_argument_names: set[str],
7        warning_node: nodes.NodeNG,
8    ) -> None:
9        """Compare the found argument names with the expected ones and
10        generate a message if there are extra arguments found.
11
12        :param found_argument_names: argument names found in the docstring
13
14        :param message_id: pylint message id
15
16        :param not_needed_names: names that may be omitted
17
18        :param expected_argument_names: Expected argument names
19
20        :param warning_node: The node to be analyzed
21        """
22        # Handle variadic and keyword args without asterisks
23        modified_expected_argument_names: set[str] = set()
24        for name in expected_argument_names:
25            if name.replace("*", "") in found_argument_names:
26                modified_expected_argument_names.add(name.replace("*", ""))
27            else:
28                modified_expected_argument_names.add(name)
29
30        differing_argument_names = (
31            (modified_expected_argument_names ^ found_argument_names)
32            - not_needed_names
33            - expected_argument_names
34        )
35
36        if differing_argument_names:
37            self.add_message(
38                message_id,
39                args=(", ".join(sorted(differing_argument_names)),),
40                node=warning_node,
41                confidence=HIGH,
42            )
            

Path 5: 8 calls (0.01)

{'xarg1', 'yarg', 'zarg1'} (5) {'this', 'these', 'other'} (2) {'zarg1', 'xarg', 'yarg1'} (1)

'differing-param-doc' (4) 'differing-type-doc' (4)

{'self', 'cls'} (8)

{'zarg', 'yarg', 'xarg'} (6) {'this', 'that', 'other'} (2)

FunctionDef (8)

1def _compare_different_args(
2        self,
3        found_argument_names: set[str],
4        message_id: str,
5        not_needed_names: set[str],
6        expected_argument_names: set[str],
7        warning_node: nodes.NodeNG,
8    ) -> None:
9        """Compare the found argument names with the expected ones and
10        generate a message if there are extra arguments found.
11
12        :param found_argument_names: argument names found in the docstring
13
14        :param message_id: pylint message id
15
16        :param not_needed_names: names that may be omitted
17
18        :param expected_argument_names: Expected argument names
19
20        :param warning_node: The node to be analyzed
21        """
22        # Handle variadic and keyword args without asterisks
23        modified_expected_argument_names: set[str] = set()
24        for name in expected_argument_names:
25            if name.replace("*", "") in found_argument_names:
26                modified_expected_argument_names.add(name.replace("*", ""))
27            else:
28                modified_expected_argument_names.add(name)
29
30        differing_argument_names = (
31            (modified_expected_argument_names ^ found_argument_names)
32            - not_needed_names
33            - expected_argument_names
34        )
35
36        if differing_argument_names:
37            self.add_message(
38                message_id,
39                args=(", ".join(sorted(differing_argument_names)),),
40                node=warning_node,
41                confidence=HIGH,
42            )
            

Path 6: 6 calls (0.01)

{'yarg1'} (6)

'differing-param-doc' (3) 'differing-type-doc' (3)

{'self', 'cls'} (6)

{'yarg', 'xarg'} (4) {'zarg', 'yarg', 'xarg'} (2)

FunctionDef (6)

1def _compare_different_args(
2        self,
3        found_argument_names: set[str],
4        message_id: str,
5        not_needed_names: set[str],
6        expected_argument_names: set[str],
7        warning_node: nodes.NodeNG,
8    ) -> None:
9        """Compare the found argument names with the expected ones and
10        generate a message if there are extra arguments found.
11
12        :param found_argument_names: argument names found in the docstring
13
14        :param message_id: pylint message id
15
16        :param not_needed_names: names that may be omitted
17
18        :param expected_argument_names: Expected argument names
19
20        :param warning_node: The node to be analyzed
21        """
22        # Handle variadic and keyword args without asterisks
23        modified_expected_argument_names: set[str] = set()
24        for name in expected_argument_names:
25            if name.replace("*", "") in found_argument_names:
26                modified_expected_argument_names.add(name.replace("*", ""))
27            else:
28                modified_expected_argument_names.add(name)
29
30        differing_argument_names = (
31            (modified_expected_argument_names ^ found_argument_names)
32            - not_needed_names
33            - expected_argument_names
34        )
35
36        if differing_argument_names:
37            self.add_message(
38                message_id,
39                args=(", ".join(sorted(differing_argument_names)),),
40                node=warning_node,
41                confidence=HIGH,
42            )
            

Path 7: 3 calls (0.01)

{'param', 'par1'} (3)

'differing-param-doc' (3)

{'self', 'cls'} (3)

{'par1'} (3)

FunctionDef (3)

1def _compare_different_args(
2        self,
3        found_argument_names: set[str],
4        message_id: str,
5        not_needed_names: set[str],
6        expected_argument_names: set[str],
7        warning_node: nodes.NodeNG,
8    ) -> None:
9        """Compare the found argument names with the expected ones and
10        generate a message if there are extra arguments found.
11
12        :param found_argument_names: argument names found in the docstring
13
14        :param message_id: pylint message id
15
16        :param not_needed_names: names that may be omitted
17
18        :param expected_argument_names: Expected argument names
19
20        :param warning_node: The node to be analyzed
21        """
22        # Handle variadic and keyword args without asterisks
23        modified_expected_argument_names: set[str] = set()
24        for name in expected_argument_names:
25            if name.replace("*", "") in found_argument_names:
26                modified_expected_argument_names.add(name.replace("*", ""))
27            else:
28                modified_expected_argument_names.add(name)
29
30        differing_argument_names = (
31            (modified_expected_argument_names ^ found_argument_names)
32            - not_needed_names
33            - expected_argument_names
34        )
35
36        if differing_argument_names:
37            self.add_message(
38                message_id,
39                args=(", ".join(sorted(differing_argument_names)),),
40                node=warning_node,
41                confidence=HIGH,
42            )