Method: pylint.checkers.design_analysis.MisdesignChecker.visit_functiondef
Calls: 3521, Exceptions: 0, Paths: 5Back
Path 1: 3411 calls (0.97)
FunctionDef (3358) AsyncFunctionDef (53)
1@only_required_for_messages(
2 "too-many-return-statements",
3 "too-many-branches",
4 "too-many-arguments",
5 "too-many-locals",
6 "too-many-statements",
7 "keyword-arg-before-vararg",
8 )
9 def visit_functiondef(self, node: nodes.FunctionDef) -> None:
10 """Check function name, docstring, arguments, redefinition,
11 variable names, max locals.
12 """
13 # init branch and returns counters
14 self._returns.append(0)
15 # check number of arguments
16 args = node.args.args
17 ignored_argument_names = self.linter.config.ignored_argument_names
18 if args is not None:
19 ignored_args_num = 0
20 if ignored_argument_names:
21 ignored_args_num = sum(
22 1 for arg in args if ignored_argument_names.match(arg.name)
23 )
24
25 argnum = len(args) - ignored_args_num
26 if argnum > self.linter.config.max_args:
27 self.add_message(
28 "too-many-arguments",
29 node=node,
30 args=(len(args), self.linter.config.max_args),
31 )
32 else:
33 ignored_args_num = 0
34 # check number of local variables
35 locnum = len(node.locals) - ignored_args_num
36
37 # decrement number of local variables if '_' is one of them
38 if "_" in node.locals:
39 locnum -= 1
40
41 if locnum > self.linter.config.max_locals:
42 self.add_message(
43 "too-many-locals",
44 node=node,
45 args=(locnum, self.linter.config.max_locals),
46 )
47 # init new statements counter
48 self._stmts.append(1)
Path 2: 100 calls (0.03)
FunctionDef (100)
1@only_required_for_messages(
2 "too-many-return-statements",
3 "too-many-branches",
4 "too-many-arguments",
5 "too-many-locals",
6 "too-many-statements",
7 "keyword-arg-before-vararg",
8 )
9 def visit_functiondef(self, node: nodes.FunctionDef) -> None:
10 """Check function name, docstring, arguments, redefinition,
11 variable names, max locals.
12 """
13 # init branch and returns counters
14 self._returns.append(0)
15 # check number of arguments
16 args = node.args.args
17 ignored_argument_names = self.linter.config.ignored_argument_names
18 if args is not None:
19 ignored_args_num = 0
20 if ignored_argument_names:
21 ignored_args_num = sum(
22 1 for arg in args if ignored_argument_names.match(arg.name)
23 )
24
25 argnum = len(args) - ignored_args_num
26 if argnum > self.linter.config.max_args:
27 self.add_message(
28 "too-many-arguments",
29 node=node,
30 args=(len(args), self.linter.config.max_args),
31 )
32 else:
33 ignored_args_num = 0
34 # check number of local variables
35 locnum = len(node.locals) - ignored_args_num
36
37 # decrement number of local variables if '_' is one of them
38 if "_" in node.locals:
39 locnum -= 1
40
41 if locnum > self.linter.config.max_locals:
42 self.add_message(
43 "too-many-locals",
44 node=node,
45 args=(locnum, self.linter.config.max_locals),
46 )
47 # init new statements counter
48 self._stmts.append(1)
Path 3: 6 calls (0.0)
FunctionDef (6)
1@only_required_for_messages(
2 "too-many-return-statements",
3 "too-many-branches",
4 "too-many-arguments",
5 "too-many-locals",
6 "too-many-statements",
7 "keyword-arg-before-vararg",
8 )
9 def visit_functiondef(self, node: nodes.FunctionDef) -> None:
10 """Check function name, docstring, arguments, redefinition,
11 variable names, max locals.
12 """
13 # init branch and returns counters
14 self._returns.append(0)
15 # check number of arguments
16 args = node.args.args
17 ignored_argument_names = self.linter.config.ignored_argument_names
18 if args is not None:
19 ignored_args_num = 0
20 if ignored_argument_names:
21 ignored_args_num = sum(
22 1 for arg in args if ignored_argument_names.match(arg.name)
23 )
24
25 argnum = len(args) - ignored_args_num
26 if argnum > self.linter.config.max_args:
27 self.add_message(
28 "too-many-arguments",
29 node=node,
30 args=(len(args), self.linter.config.max_args),
31 )
32 else:
33 ignored_args_num = 0
34 # check number of local variables
35 locnum = len(node.locals) - ignored_args_num
36
37 # decrement number of local variables if '_' is one of them
38 if "_" in node.locals:
39 locnum -= 1
40
41 if locnum > self.linter.config.max_locals:
42 self.add_message(
43 "too-many-locals",
44 node=node,
45 args=(locnum, self.linter.config.max_locals),
46 )
47 # init new statements counter
48 self._stmts.append(1)
Path 4: 3 calls (0.0)
FunctionDef (3)
1@only_required_for_messages(
2 "too-many-return-statements",
3 "too-many-branches",
4 "too-many-arguments",
5 "too-many-locals",
6 "too-many-statements",
7 "keyword-arg-before-vararg",
8 )
9 def visit_functiondef(self, node: nodes.FunctionDef) -> None:
10 """Check function name, docstring, arguments, redefinition,
11 variable names, max locals.
12 """
13 # init branch and returns counters
14 self._returns.append(0)
15 # check number of arguments
16 args = node.args.args
17 ignored_argument_names = self.linter.config.ignored_argument_names
18 if args is not None:
19 ignored_args_num = 0
20 if ignored_argument_names:
21 ignored_args_num = sum(
22 1 for arg in args if ignored_argument_names.match(arg.name)
23 )
24
25 argnum = len(args) - ignored_args_num
26 if argnum > self.linter.config.max_args:
27 self.add_message(
28 "too-many-arguments",
29 node=node,
30 args=(len(args), self.linter.config.max_args),
31 )
32 else:
33 ignored_args_num = 0
34 # check number of local variables
35 locnum = len(node.locals) - ignored_args_num
36
37 # decrement number of local variables if '_' is one of them
38 if "_" in node.locals:
39 locnum -= 1
40
41 if locnum > self.linter.config.max_locals:
42 self.add_message(
43 "too-many-locals",
44 node=node,
45 args=(locnum, self.linter.config.max_locals),
46 )
47 # init new statements counter
48 self._stmts.append(1)
Path 5: 1 calls (0.0)
AsyncFunctionDef (1)
1@only_required_for_messages(
2 "too-many-return-statements",
3 "too-many-branches",
4 "too-many-arguments",
5 "too-many-locals",
6 "too-many-statements",
7 "keyword-arg-before-vararg",
8 )
9 def visit_functiondef(self, node: nodes.FunctionDef) -> None:
10 """Check function name, docstring, arguments, redefinition,
11 variable names, max locals.
12 """
13 # init branch and returns counters
14 self._returns.append(0)
15 # check number of arguments
16 args = node.args.args
17 ignored_argument_names = self.linter.config.ignored_argument_names
18 if args is not None:
19 ignored_args_num = 0
20 if ignored_argument_names:
21 ignored_args_num = sum(
22 1 for arg in args if ignored_argument_names.match(arg.name)
23 )
24
25 argnum = len(args) - ignored_args_num
26 if argnum > self.linter.config.max_args:
27 self.add_message(
28 "too-many-arguments",
29 node=node,
30 args=(len(args), self.linter.config.max_args),
31 )
32 else:
33 ignored_args_num = 0
34 # check number of local variables
35 locnum = len(node.locals) - ignored_args_num
36
37 # decrement number of local variables if '_' is one of them
38 if "_" in node.locals:
39 locnum -= 1
40
41 if locnum > self.linter.config.max_locals:
42 self.add_message(
43 "too-many-locals",
44 node=node,
45 args=(locnum, self.linter.config.max_locals),
46 )
47 # init new statements counter
48 self._stmts.append(1)