Method: pylint.checkers.logging.LoggingChecker.visit_call
Calls: 5708, Exceptions: 0, Paths: 3Back
Path 1: 5609 calls (0.98)
Call (5609)
None (5609)
1def visit_call(self, node: nodes.Call) -> None:
2 """Checks calls to logging methods."""
3
4 def is_logging_name() -> bool:
5 return (
6 isinstance(node.func, nodes.Attribute)
7 and isinstance(node.func.expr, nodes.Name)
8 and node.func.expr.name in self._logging_names
9 )
10
11 def is_logger_class() -> tuple[bool, str | None]:
12 for inferred in infer_all(node.func):
13 if isinstance(inferred, astroid.BoundMethod):
14 parent = inferred._proxied.parent
15 if isinstance(parent, nodes.ClassDef) and (
16 parent.qname() == "logging.Logger"
17 or any(
18 ancestor.qname() == "logging.Logger"
19 for ancestor in parent.ancestors()
20 )
21 ):
22 return True, inferred._proxied.name
23 return False, None
24
25 if is_logging_name():
26 name = node.func.attrname
27 else:
28 result, name = is_logger_class()
29 if not result:
30 return
31 self._check_log_method(node, name)
Path 2: 91 calls (0.02)
Call (91)
1def visit_call(self, node: nodes.Call) -> None:
2 """Checks calls to logging methods."""
3
4 def is_logging_name() -> bool:
5 return (
6 isinstance(node.func, nodes.Attribute)
7 and isinstance(node.func.expr, nodes.Name)
8 and node.func.expr.name in self._logging_names
9 )
10
11 def is_logger_class() -> tuple[bool, str | None]:
12 for inferred in infer_all(node.func):
13 if isinstance(inferred, astroid.BoundMethod):
14 parent = inferred._proxied.parent
15 if isinstance(parent, nodes.ClassDef) and (
16 parent.qname() == "logging.Logger"
17 or any(
18 ancestor.qname() == "logging.Logger"
19 for ancestor in parent.ancestors()
20 )
21 ):
22 return True, inferred._proxied.name
23 return False, None
24
25 if is_logging_name():
26 name = node.func.attrname
27 else:
28 result, name = is_logger_class()
29 if not result:
30 return
31 self._check_log_method(node, name)
Path 3: 8 calls (0.0)
Call (8)
1def visit_call(self, node: nodes.Call) -> None:
2 """Checks calls to logging methods."""
3
4 def is_logging_name() -> bool:
5 return (
6 isinstance(node.func, nodes.Attribute)
7 and isinstance(node.func.expr, nodes.Name)
8 and node.func.expr.name in self._logging_names
9 )
10
11 def is_logger_class() -> tuple[bool, str | None]:
12 for inferred in infer_all(node.func):
13 if isinstance(inferred, astroid.BoundMethod):
14 parent = inferred._proxied.parent
15 if isinstance(parent, nodes.ClassDef) and (
16 parent.qname() == "logging.Logger"
17 or any(
18 ancestor.qname() == "logging.Logger"
19 for ancestor in parent.ancestors()
20 )
21 ):
22 return True, inferred._proxied.name
23 return False, None
24
25 if is_logging_name():
26 name = node.func.attrname
27 else:
28 result, name = is_logger_class()
29 if not result:
30 return
31 self._check_log_method(node, name)