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