Method: pylint.checkers.utils.defnode_in_scope
Calls: 1277, Exceptions: 0, Paths: 12Back
Path 1: 681 calls (0.53)
Name (668) AssignName (9) DelName (4)
'x' (89) 'k' (34) 'i' (31) 'a' (30) 'args' (21) 'j' (20) 'y' (18) 'kwargs' (18) 'hi' (13) 'idx' (11)
Call (187) Module (88) BinOp (73) Tuple (43) Assign (36) ClassDef (35) Compare (30) Subscript (30) Comprehension (27) IfExp (22)
None (681)
1def defnode_in_scope(
2 var_node: nodes.NodeNG,
3 varname: str,
4 scope: nodes.NodeNG,
5) -> nodes.NodeNG | None:
6 if isinstance(scope, nodes.If):
7 for node in scope.body:
8 if isinstance(node, nodes.Nonlocal) and varname in node.names:
9 return node
10 if isinstance(node, nodes.Assign):
11 for target in node.targets:
12 if isinstance(target, nodes.AssignName) and target.name == varname:
13 return target
14 elif isinstance(scope, (COMP_NODE_TYPES, nodes.For)):
15 for ass_node in scope.nodes_of_class(nodes.AssignName):
16 if ass_node.name == varname:
17 return ass_node
18 elif isinstance(scope, nodes.With):
19 for expr, ids in scope.items:
20 if expr.parent_of(var_node):
21 break
22 if ids and isinstance(ids, nodes.AssignName) and ids.name == varname:
23 return ids
24 elif isinstance(scope, (nodes.Lambda, nodes.FunctionDef)):
25 if scope.args.is_argument(varname):
26 # If the name is found inside a default value
27 # of a function, then let the search continue
28 # in the parent's tree.
29 if scope.args.parent_of(var_node):
30 try:
31 scope.args.default_value(varname)
32 scope = scope.parent
33 defnode = defnode_in_scope(var_node, varname, scope)
34 except astroid.NoDefault:
35 pass
36 else:
37 return defnode
38 return scope
39 if getattr(scope, "name", None) == varname:
40 return scope
41 elif isinstance(scope, nodes.ExceptHandler):
42 if isinstance(scope.name, nodes.AssignName):
43 ass_node = scope.name
44 if ass_node.name == varname:
45 return ass_node
46 return None
Path 2: 292 calls (0.23)
Name (292)
'x' (84) 'i' (33) 'k' (31) 'y' (15) 'data' (15) 'v' (14) 'key' (11) 'item' (7) 'value' (6) 'elem' (6)
ListComp (147) GeneratorExp (67) DictComp (53) SetComp (23) For (2)
AssignName (292)
1def defnode_in_scope(
2 var_node: nodes.NodeNG,
3 varname: str,
4 scope: nodes.NodeNG,
5) -> nodes.NodeNG | None:
6 if isinstance(scope, nodes.If):
7 for node in scope.body:
8 if isinstance(node, nodes.Nonlocal) and varname in node.names:
9 return node
10 if isinstance(node, nodes.Assign):
11 for target in node.targets:
12 if isinstance(target, nodes.AssignName) and target.name == varname:
13 return target
14 elif isinstance(scope, (COMP_NODE_TYPES, nodes.For)):
15 for ass_node in scope.nodes_of_class(nodes.AssignName):
16 if ass_node.name == varname:
17 return ass_node
18 elif isinstance(scope, nodes.With):
19 for expr, ids in scope.items:
20 if expr.parent_of(var_node):
21 break
22 if ids and isinstance(ids, nodes.AssignName) and ids.name == varname:
23 return ids
24 elif isinstance(scope, (nodes.Lambda, nodes.FunctionDef)):
25 if scope.args.is_argument(varname):
26 # If the name is found inside a default value
27 # of a function, then let the search continue
28 # in the parent's tree.
29 if scope.args.parent_of(var_node):
30 try:
31 scope.args.default_value(varname)
32 scope = scope.parent
33 defnode = defnode_in_scope(var_node, varname, scope)
34 except astroid.NoDefault:
35 pass
36 else:
37 return defnode
38 return scope
39 if getattr(scope, "name", None) == varname:
40 return scope
41 elif isinstance(scope, nodes.ExceptHandler):
42 if isinstance(scope.name, nodes.AssignName):
43 ass_node = scope.name
44 if ass_node.name == varname:
45 return ass_node
46 return None
Path 3: 198 calls (0.16)
Name (198)
'x' (52) 'a' (21) 'y' (14) 'args' (12) 'i' (12) 'j' (11) 'hi' (11) 'kwargs' (10) 'lo' (10) 'p' (8)
Lambda (197) FunctionDef (1)
Lambda (197) FunctionDef (1)
1def defnode_in_scope(
2 var_node: nodes.NodeNG,
3 varname: str,
4 scope: nodes.NodeNG,
5) -> nodes.NodeNG | None:
6 if isinstance(scope, nodes.If):
7 for node in scope.body:
8 if isinstance(node, nodes.Nonlocal) and varname in node.names:
9 return node
10 if isinstance(node, nodes.Assign):
11 for target in node.targets:
12 if isinstance(target, nodes.AssignName) and target.name == varname:
13 return target
14 elif isinstance(scope, (COMP_NODE_TYPES, nodes.For)):
15 for ass_node in scope.nodes_of_class(nodes.AssignName):
16 if ass_node.name == varname:
17 return ass_node
18 elif isinstance(scope, nodes.With):
19 for expr, ids in scope.items:
20 if expr.parent_of(var_node):
21 break
22 if ids and isinstance(ids, nodes.AssignName) and ids.name == varname:
23 return ids
24 elif isinstance(scope, (nodes.Lambda, nodes.FunctionDef)):
25 if scope.args.is_argument(varname):
26 # If the name is found inside a default value
27 # of a function, then let the search continue
28 # in the parent's tree.
29 if scope.args.parent_of(var_node):
30 try:
31 scope.args.default_value(varname)
32 scope = scope.parent
33 defnode = defnode_in_scope(var_node, varname, scope)
34 except astroid.NoDefault:
35 pass
36 else:
37 return defnode
38 return scope
39 if getattr(scope, "name", None) == varname:
40 return scope
41 elif isinstance(scope, nodes.ExceptHandler):
42 if isinstance(scope.name, nodes.AssignName):
43 ass_node = scope.name
44 if ass_node.name == varname:
45 return ass_node
46 return None
Path 4: 81 calls (0.06)
Name (77) AssignName (3) DelName (1)
'x' (6) 'cnt' (4) 'xxx' (3) 'OtherClass' (3) 'a' (3) 'i' (2) 'j' (2) 'n' (2) 'Class' (2) 'datetime' (2)
FunctionDef (48) Lambda (32) AsyncFunctionDef (1)
None (81)
1def defnode_in_scope(
2 var_node: nodes.NodeNG,
3 varname: str,
4 scope: nodes.NodeNG,
5) -> nodes.NodeNG | None:
6 if isinstance(scope, nodes.If):
7 for node in scope.body:
8 if isinstance(node, nodes.Nonlocal) and varname in node.names:
9 return node
10 if isinstance(node, nodes.Assign):
11 for target in node.targets:
12 if isinstance(target, nodes.AssignName) and target.name == varname:
13 return target
14 elif isinstance(scope, (COMP_NODE_TYPES, nodes.For)):
15 for ass_node in scope.nodes_of_class(nodes.AssignName):
16 if ass_node.name == varname:
17 return ass_node
18 elif isinstance(scope, nodes.With):
19 for expr, ids in scope.items:
20 if expr.parent_of(var_node):
21 break
22 if ids and isinstance(ids, nodes.AssignName) and ids.name == varname:
23 return ids
24 elif isinstance(scope, (nodes.Lambda, nodes.FunctionDef)):
25 if scope.args.is_argument(varname):
26 # If the name is found inside a default value
27 # of a function, then let the search continue
28 # in the parent's tree.
29 if scope.args.parent_of(var_node):
30 try:
31 scope.args.default_value(varname)
32 scope = scope.parent
33 defnode = defnode_in_scope(var_node, varname, scope)
34 except astroid.NoDefault:
35 pass
36 else:
37 return defnode
38 return scope
39 if getattr(scope, "name", None) == varname:
40 return scope
41 elif isinstance(scope, nodes.ExceptHandler):
42 if isinstance(scope.name, nodes.AssignName):
43 ass_node = scope.name
44 if ass_node.name == varname:
45 return ass_node
46 return None
Path 5: 9 calls (0.01)
Name (9)
'item' (2) 'a' (2) 'n' (1) 'i' (1) 'aj' (1) 'j' (1) 'ai' (1)
ListComp (9)
None (9)
1def defnode_in_scope(
2 var_node: nodes.NodeNG,
3 varname: str,
4 scope: nodes.NodeNG,
5) -> nodes.NodeNG | None:
6 if isinstance(scope, nodes.If):
7 for node in scope.body:
8 if isinstance(node, nodes.Nonlocal) and varname in node.names:
9 return node
10 if isinstance(node, nodes.Assign):
11 for target in node.targets:
12 if isinstance(target, nodes.AssignName) and target.name == varname:
13 return target
14 elif isinstance(scope, (COMP_NODE_TYPES, nodes.For)):
15 for ass_node in scope.nodes_of_class(nodes.AssignName):
16 if ass_node.name == varname:
17 return ass_node
18 elif isinstance(scope, nodes.With):
19 for expr, ids in scope.items:
20 if expr.parent_of(var_node):
21 break
22 if ids and isinstance(ids, nodes.AssignName) and ids.name == varname:
23 return ids
24 elif isinstance(scope, (nodes.Lambda, nodes.FunctionDef)):
25 if scope.args.is_argument(varname):
26 # If the name is found inside a default value
27 # of a function, then let the search continue
28 # in the parent's tree.
29 if scope.args.parent_of(var_node):
30 try:
31 scope.args.default_value(varname)
32 scope = scope.parent
33 defnode = defnode_in_scope(var_node, varname, scope)
34 except astroid.NoDefault:
35 pass
36 else:
37 return defnode
38 return scope
39 if getattr(scope, "name", None) == varname:
40 return scope
41 elif isinstance(scope, nodes.ExceptHandler):
42 if isinstance(scope.name, nodes.AssignName):
43 ass_node = scope.name
44 if ass_node.name == varname:
45 return ass_node
46 return None
Path 6: 7 calls (0.01)
Name (7)
'x' (4) 'xxx' (2) 'var' (1)
If (7)
None (7)
1def defnode_in_scope(
2 var_node: nodes.NodeNG,
3 varname: str,
4 scope: nodes.NodeNG,
5) -> nodes.NodeNG | None:
6 if isinstance(scope, nodes.If):
7 for node in scope.body:
8 if isinstance(node, nodes.Nonlocal) and varname in node.names:
9 return node
10 if isinstance(node, nodes.Assign):
11 for target in node.targets:
12 if isinstance(target, nodes.AssignName) and target.name == varname:
13 return target
14 elif isinstance(scope, (COMP_NODE_TYPES, nodes.For)):
15 for ass_node in scope.nodes_of_class(nodes.AssignName):
16 if ass_node.name == varname:
17 return ass_node
18 elif isinstance(scope, nodes.With):
19 for expr, ids in scope.items:
20 if expr.parent_of(var_node):
21 break
22 if ids and isinstance(ids, nodes.AssignName) and ids.name == varname:
23 return ids
24 elif isinstance(scope, (nodes.Lambda, nodes.FunctionDef)):
25 if scope.args.is_argument(varname):
26 # If the name is found inside a default value
27 # of a function, then let the search continue
28 # in the parent's tree.
29 if scope.args.parent_of(var_node):
30 try:
31 scope.args.default_value(varname)
32 scope = scope.parent
33 defnode = defnode_in_scope(var_node, varname, scope)
34 except astroid.NoDefault:
35 pass
36 else:
37 return defnode
38 return scope
39 if getattr(scope, "name", None) == varname:
40 return scope
41 elif isinstance(scope, nodes.ExceptHandler):
42 if isinstance(scope.name, nodes.AssignName):
43 ass_node = scope.name
44 if ass_node.name == varname:
45 return ass_node
46 return None
Path 7: 3 calls (0.0)
Name (3)
'z' (1) 'x' (1) 'y' (1)
If (3)
AssignName (3)
1def defnode_in_scope(
2 var_node: nodes.NodeNG,
3 varname: str,
4 scope: nodes.NodeNG,
5) -> nodes.NodeNG | None:
6 if isinstance(scope, nodes.If):
7 for node in scope.body:
8 if isinstance(node, nodes.Nonlocal) and varname in node.names:
9 return node
10 if isinstance(node, nodes.Assign):
11 for target in node.targets:
12 if isinstance(target, nodes.AssignName) and target.name == varname:
13 return target
14 elif isinstance(scope, (COMP_NODE_TYPES, nodes.For)):
15 for ass_node in scope.nodes_of_class(nodes.AssignName):
16 if ass_node.name == varname:
17 return ass_node
18 elif isinstance(scope, nodes.With):
19 for expr, ids in scope.items:
20 if expr.parent_of(var_node):
21 break
22 if ids and isinstance(ids, nodes.AssignName) and ids.name == varname:
23 return ids
24 elif isinstance(scope, (nodes.Lambda, nodes.FunctionDef)):
25 if scope.args.is_argument(varname):
26 # If the name is found inside a default value
27 # of a function, then let the search continue
28 # in the parent's tree.
29 if scope.args.parent_of(var_node):
30 try:
31 scope.args.default_value(varname)
32 scope = scope.parent
33 defnode = defnode_in_scope(var_node, varname, scope)
34 except astroid.NoDefault:
35 pass
36 else:
37 return defnode
38 return scope
39 if getattr(scope, "name", None) == varname:
40 return scope
41 elif isinstance(scope, nodes.ExceptHandler):
42 if isinstance(scope.name, nodes.AssignName):
43 ass_node = scope.name
44 if ass_node.name == varname:
45 return ass_node
46 return None
Path 8: 2 calls (0.0)
AssignName (1) Name (1)
'i' (1) 'bug2' (1)
If (2)
Nonlocal (2)
1def defnode_in_scope(
2 var_node: nodes.NodeNG,
3 varname: str,
4 scope: nodes.NodeNG,
5) -> nodes.NodeNG | None:
6 if isinstance(scope, nodes.If):
7 for node in scope.body:
8 if isinstance(node, nodes.Nonlocal) and varname in node.names:
9 return node
10 if isinstance(node, nodes.Assign):
11 for target in node.targets:
12 if isinstance(target, nodes.AssignName) and target.name == varname:
13 return target
14 elif isinstance(scope, (COMP_NODE_TYPES, nodes.For)):
15 for ass_node in scope.nodes_of_class(nodes.AssignName):
16 if ass_node.name == varname:
17 return ass_node
18 elif isinstance(scope, nodes.With):
19 for expr, ids in scope.items:
20 if expr.parent_of(var_node):
21 break
22 if ids and isinstance(ids, nodes.AssignName) and ids.name == varname:
23 return ids
24 elif isinstance(scope, (nodes.Lambda, nodes.FunctionDef)):
25 if scope.args.is_argument(varname):
26 # If the name is found inside a default value
27 # of a function, then let the search continue
28 # in the parent's tree.
29 if scope.args.parent_of(var_node):
30 try:
31 scope.args.default_value(varname)
32 scope = scope.parent
33 defnode = defnode_in_scope(var_node, varname, scope)
34 except astroid.NoDefault:
35 pass
36 else:
37 return defnode
38 return scope
39 if getattr(scope, "name", None) == varname:
40 return scope
41 elif isinstance(scope, nodes.ExceptHandler):
42 if isinstance(scope.name, nodes.AssignName):
43 ass_node = scope.name
44 if ass_node.name == varname:
45 return ass_node
46 return None
Path 9: 1 calls (0.0)
Name (1)
'f' (1)
With (1)
AssignName (1)
1def defnode_in_scope(
2 var_node: nodes.NodeNG,
3 varname: str,
4 scope: nodes.NodeNG,
5) -> nodes.NodeNG | None:
6 if isinstance(scope, nodes.If):
7 for node in scope.body:
8 if isinstance(node, nodes.Nonlocal) and varname in node.names:
9 return node
10 if isinstance(node, nodes.Assign):
11 for target in node.targets:
12 if isinstance(target, nodes.AssignName) and target.name == varname:
13 return target
14 elif isinstance(scope, (COMP_NODE_TYPES, nodes.For)):
15 for ass_node in scope.nodes_of_class(nodes.AssignName):
16 if ass_node.name == varname:
17 return ass_node
18 elif isinstance(scope, nodes.With):
19 for expr, ids in scope.items:
20 if expr.parent_of(var_node):
21 break
22 if ids and isinstance(ids, nodes.AssignName) and ids.name == varname:
23 return ids
24 elif isinstance(scope, (nodes.Lambda, nodes.FunctionDef)):
25 if scope.args.is_argument(varname):
26 # If the name is found inside a default value
27 # of a function, then let the search continue
28 # in the parent's tree.
29 if scope.args.parent_of(var_node):
30 try:
31 scope.args.default_value(varname)
32 scope = scope.parent
33 defnode = defnode_in_scope(var_node, varname, scope)
34 except astroid.NoDefault:
35 pass
36 else:
37 return defnode
38 return scope
39 if getattr(scope, "name", None) == varname:
40 return scope
41 elif isinstance(scope, nodes.ExceptHandler):
42 if isinstance(scope.name, nodes.AssignName):
43 ass_node = scope.name
44 if ass_node.name == varname:
45 return ass_node
46 return None
Path 10: 1 calls (0.0)
Name (1)
'arg2' (1)
Lambda (1)
None (1)
1def defnode_in_scope(
2 var_node: nodes.NodeNG,
3 varname: str,
4 scope: nodes.NodeNG,
5) -> nodes.NodeNG | None:
6 if isinstance(scope, nodes.If):
7 for node in scope.body:
8 if isinstance(node, nodes.Nonlocal) and varname in node.names:
9 return node
10 if isinstance(node, nodes.Assign):
11 for target in node.targets:
12 if isinstance(target, nodes.AssignName) and target.name == varname:
13 return target
14 elif isinstance(scope, (COMP_NODE_TYPES, nodes.For)):
15 for ass_node in scope.nodes_of_class(nodes.AssignName):
16 if ass_node.name == varname:
17 return ass_node
18 elif isinstance(scope, nodes.With):
19 for expr, ids in scope.items:
20 if expr.parent_of(var_node):
21 break
22 if ids and isinstance(ids, nodes.AssignName) and ids.name == varname:
23 return ids
24 elif isinstance(scope, (nodes.Lambda, nodes.FunctionDef)):
25 if scope.args.is_argument(varname):
26 # If the name is found inside a default value
27 # of a function, then let the search continue
28 # in the parent's tree.
29 if scope.args.parent_of(var_node):
30 try:
31 scope.args.default_value(varname)
32 scope = scope.parent
33 defnode = defnode_in_scope(var_node, varname, scope)
34 except astroid.NoDefault:
35 pass
36 else:
37 return defnode
38 return scope
39 if getattr(scope, "name", None) == varname:
40 return scope
41 elif isinstance(scope, nodes.ExceptHandler):
42 if isinstance(scope.name, nodes.AssignName):
43 ass_node = scope.name
44 if ass_node.name == varname:
45 return ass_node
46 return None
Path 11: 1 calls (0.0)
Name (1)
'err' (1)
ExceptHandler (1)
AssignName (1)
1def defnode_in_scope(
2 var_node: nodes.NodeNG,
3 varname: str,
4 scope: nodes.NodeNG,
5) -> nodes.NodeNG | None:
6 if isinstance(scope, nodes.If):
7 for node in scope.body:
8 if isinstance(node, nodes.Nonlocal) and varname in node.names:
9 return node
10 if isinstance(node, nodes.Assign):
11 for target in node.targets:
12 if isinstance(target, nodes.AssignName) and target.name == varname:
13 return target
14 elif isinstance(scope, (COMP_NODE_TYPES, nodes.For)):
15 for ass_node in scope.nodes_of_class(nodes.AssignName):
16 if ass_node.name == varname:
17 return ass_node
18 elif isinstance(scope, nodes.With):
19 for expr, ids in scope.items:
20 if expr.parent_of(var_node):
21 break
22 if ids and isinstance(ids, nodes.AssignName) and ids.name == varname:
23 return ids
24 elif isinstance(scope, (nodes.Lambda, nodes.FunctionDef)):
25 if scope.args.is_argument(varname):
26 # If the name is found inside a default value
27 # of a function, then let the search continue
28 # in the parent's tree.
29 if scope.args.parent_of(var_node):
30 try:
31 scope.args.default_value(varname)
32 scope = scope.parent
33 defnode = defnode_in_scope(var_node, varname, scope)
34 except astroid.NoDefault:
35 pass
36 else:
37 return defnode
38 return scope
39 if getattr(scope, "name", None) == varname:
40 return scope
41 elif isinstance(scope, nodes.ExceptHandler):
42 if isinstance(scope.name, nodes.AssignName):
43 ass_node = scope.name
44 if ass_node.name == varname:
45 return ass_node
46 return None
Path 12: 1 calls (0.0)
Name (1)
'context' (1)
With (1)
None (1)
1def defnode_in_scope(
2 var_node: nodes.NodeNG,
3 varname: str,
4 scope: nodes.NodeNG,
5) -> nodes.NodeNG | None:
6 if isinstance(scope, nodes.If):
7 for node in scope.body:
8 if isinstance(node, nodes.Nonlocal) and varname in node.names:
9 return node
10 if isinstance(node, nodes.Assign):
11 for target in node.targets:
12 if isinstance(target, nodes.AssignName) and target.name == varname:
13 return target
14 elif isinstance(scope, (COMP_NODE_TYPES, nodes.For)):
15 for ass_node in scope.nodes_of_class(nodes.AssignName):
16 if ass_node.name == varname:
17 return ass_node
18 elif isinstance(scope, nodes.With):
19 for expr, ids in scope.items:
20 if expr.parent_of(var_node):
21 break
22 if ids and isinstance(ids, nodes.AssignName) and ids.name == varname:
23 return ids
24 elif isinstance(scope, (nodes.Lambda, nodes.FunctionDef)):
25 if scope.args.is_argument(varname):
26 # If the name is found inside a default value
27 # of a function, then let the search continue
28 # in the parent's tree.
29 if scope.args.parent_of(var_node):
30 try:
31 scope.args.default_value(varname)
32 scope = scope.parent
33 defnode = defnode_in_scope(var_node, varname, scope)
34 except astroid.NoDefault:
35 pass
36 else:
37 return defnode
38 return scope
39 if getattr(scope, "name", None) == varname:
40 return scope
41 elif isinstance(scope, nodes.ExceptHandler):
42 if isinstance(scope.name, nodes.AssignName):
43 ass_node = scope.name
44 if ass_node.name == varname:
45 return ass_node
46 return None