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                    )