Method: pylint.pyreverse.diagrams.ClassDiagram.extract_relationships
Calls: 46, Exceptions: 30, Paths: 7Back
Path 1: 17 calls (0.37)
KeyError (17)
1def extract_relationships(self) -> None:
2 """Extract relationships between nodes in the diagram."""
3 for obj in self.classes():
4 node = obj.node
5 obj.attrs = self.get_attrs(node)
6 obj.methods = self.get_methods(node)
7 # shape
8 if is_interface(node):
9 obj.shape = "interface"
10 else:
11 obj.shape = "class"
12 # inheritance link
13 for par_node in node.ancestors(recurs=False):
14 try:
15 par_obj = self.object_from_node(par_node)
16 self.add_relationship(obj, par_obj, "specialization")
17 except KeyError:
18 continue
19 # implements link
20 for impl_node in node.implements:
21 try:
22 impl_obj = self.object_from_node(impl_node)
23 self.add_relationship(obj, impl_obj, "implements")
24 except KeyError:
25 continue
26
27 # associations & aggregations links
28 for name, values in list(node.aggregations_type.items()):
29 for value in values:
30 self.assign_association_relationship(
31 value, obj, name, "aggregation"
32 )
33
34 for name, values in list(node.associations_type.items()) + list(
35 node.locals_type.items()
36 ):
37 for value in values:
38 self.assign_association_relationship(
39 value, obj, name, "association"
40 )
Path 2: 16 calls (0.35)
1def extract_relationships(self) -> None:
2 """Extract relationships between nodes in the diagram."""
3 for obj in self.classes():
4 node = obj.node
5 obj.attrs = self.get_attrs(node)
6 obj.methods = self.get_methods(node)
7 # shape
8 if is_interface(node):
9 obj.shape = "interface"
10 else:
11 obj.shape = "class"
12 # inheritance link
13 for par_node in node.ancestors(recurs=False):
14 try:
15 par_obj = self.object_from_node(par_node)
16 self.add_relationship(obj, par_obj, "specialization")
17 except KeyError:
18 continue
19 # implements link
20 for impl_node in node.implements:
21 try:
22 impl_obj = self.object_from_node(impl_node)
23 self.add_relationship(obj, impl_obj, "implements")
24 except KeyError:
25 continue
26
27 # associations & aggregations links
28 for name, values in list(node.aggregations_type.items()):
29 for value in values:
30 self.assign_association_relationship(
31 value, obj, name, "aggregation"
32 )
33
34 for name, values in list(node.associations_type.items()) + list(
35 node.locals_type.items()
36 ):
37 for value in values:
38 self.assign_association_relationship(
39 value, obj, name, "association"
40 )
Path 3: 5 calls (0.11)
KeyError (5)
1def extract_relationships(self) -> None:
2 """Extract relationships between nodes in the diagram."""
3 for obj in self.classes():
4 node = obj.node
5 obj.attrs = self.get_attrs(node)
6 obj.methods = self.get_methods(node)
7 # shape
8 if is_interface(node):
9 obj.shape = "interface"
10 else:
11 obj.shape = "class"
12 # inheritance link
13 for par_node in node.ancestors(recurs=False):
14 try:
15 par_obj = self.object_from_node(par_node)
16 self.add_relationship(obj, par_obj, "specialization")
17 except KeyError:
18 continue
19 # implements link
20 for impl_node in node.implements:
21 try:
22 impl_obj = self.object_from_node(impl_node)
23 self.add_relationship(obj, impl_obj, "implements")
24 except KeyError:
25 continue
26
27 # associations & aggregations links
28 for name, values in list(node.aggregations_type.items()):
29 for value in values:
30 self.assign_association_relationship(
31 value, obj, name, "aggregation"
32 )
33
34 for name, values in list(node.associations_type.items()) + list(
35 node.locals_type.items()
36 ):
37 for value in values:
38 self.assign_association_relationship(
39 value, obj, name, "association"
40 )
Path 4: 3 calls (0.07)
KeyError (3)
1def extract_relationships(self) -> None:
2 """Extract relationships between nodes in the diagram."""
3 for obj in self.classes():
4 node = obj.node
5 obj.attrs = self.get_attrs(node)
6 obj.methods = self.get_methods(node)
7 # shape
8 if is_interface(node):
9 obj.shape = "interface"
10 else:
11 obj.shape = "class"
12 # inheritance link
13 for par_node in node.ancestors(recurs=False):
14 try:
15 par_obj = self.object_from_node(par_node)
16 self.add_relationship(obj, par_obj, "specialization")
17 except KeyError:
18 continue
19 # implements link
20 for impl_node in node.implements:
21 try:
22 impl_obj = self.object_from_node(impl_node)
23 self.add_relationship(obj, impl_obj, "implements")
24 except KeyError:
25 continue
26
27 # associations & aggregations links
28 for name, values in list(node.aggregations_type.items()):
29 for value in values:
30 self.assign_association_relationship(
31 value, obj, name, "aggregation"
32 )
33
34 for name, values in list(node.associations_type.items()) + list(
35 node.locals_type.items()
36 ):
37 for value in values:
38 self.assign_association_relationship(
39 value, obj, name, "association"
40 )
Path 5: 3 calls (0.07)
KeyError (3)
1def extract_relationships(self) -> None:
2 """Extract relationships between nodes in the diagram."""
3 for obj in self.classes():
4 node = obj.node
5 obj.attrs = self.get_attrs(node)
6 obj.methods = self.get_methods(node)
7 # shape
8 if is_interface(node):
9 obj.shape = "interface"
10 else:
11 obj.shape = "class"
12 # inheritance link
13 for par_node in node.ancestors(recurs=False):
14 try:
15 par_obj = self.object_from_node(par_node)
16 self.add_relationship(obj, par_obj, "specialization")
17 except KeyError:
18 continue
19 # implements link
20 for impl_node in node.implements:
21 try:
22 impl_obj = self.object_from_node(impl_node)
23 self.add_relationship(obj, impl_obj, "implements")
24 except KeyError:
25 continue
26
27 # associations & aggregations links
28 for name, values in list(node.aggregations_type.items()):
29 for value in values:
30 self.assign_association_relationship(
31 value, obj, name, "aggregation"
32 )
33
34 for name, values in list(node.associations_type.items()) + list(
35 node.locals_type.items()
36 ):
37 for value in values:
38 self.assign_association_relationship(
39 value, obj, name, "association"
40 )
Path 6: 1 calls (0.02)
KeyError (1)
1def extract_relationships(self) -> None:
2 """Extract relationships between nodes in the diagram."""
3 for obj in self.classes():
4 node = obj.node
5 obj.attrs = self.get_attrs(node)
6 obj.methods = self.get_methods(node)
7 # shape
8 if is_interface(node):
9 obj.shape = "interface"
10 else:
11 obj.shape = "class"
12 # inheritance link
13 for par_node in node.ancestors(recurs=False):
14 try:
15 par_obj = self.object_from_node(par_node)
16 self.add_relationship(obj, par_obj, "specialization")
17 except KeyError:
18 continue
19 # implements link
20 for impl_node in node.implements:
21 try:
22 impl_obj = self.object_from_node(impl_node)
23 self.add_relationship(obj, impl_obj, "implements")
24 except KeyError:
25 continue
26
27 # associations & aggregations links
28 for name, values in list(node.aggregations_type.items()):
29 for value in values:
30 self.assign_association_relationship(
31 value, obj, name, "aggregation"
32 )
33
34 for name, values in list(node.associations_type.items()) + list(
35 node.locals_type.items()
36 ):
37 for value in values:
38 self.assign_association_relationship(
39 value, obj, name, "association"
40 )
Path 7: 1 calls (0.02)
KeyError (1)
1def extract_relationships(self) -> None:
2 """Extract relationships between nodes in the diagram."""
3 for obj in self.classes():
4 node = obj.node
5 obj.attrs = self.get_attrs(node)
6 obj.methods = self.get_methods(node)
7 # shape
8 if is_interface(node):
9 obj.shape = "interface"
10 else:
11 obj.shape = "class"
12 # inheritance link
13 for par_node in node.ancestors(recurs=False):
14 try:
15 par_obj = self.object_from_node(par_node)
16 self.add_relationship(obj, par_obj, "specialization")
17 except KeyError:
18 continue
19 # implements link
20 for impl_node in node.implements:
21 try:
22 impl_obj = self.object_from_node(impl_node)
23 self.add_relationship(obj, impl_obj, "implements")
24 except KeyError:
25 continue
26
27 # associations & aggregations links
28 for name, values in list(node.aggregations_type.items()):
29 for value in values:
30 self.assign_association_relationship(
31 value, obj, name, "aggregation"
32 )
33
34 for name, values in list(node.associations_type.items()) + list(
35 node.locals_type.items()
36 ):
37 for value in values:
38 self.assign_association_relationship(
39 value, obj, name, "association"
40 )