diff options
| author | Emile Anclin <emile.anclin@logilab.fr> | 2008-08-18 17:21:05 +0200 |
|---|---|---|
| committer | Emile Anclin <emile.anclin@logilab.fr> | 2008-08-18 17:21:05 +0200 |
| commit | 298eca7a8cc8b8d9457e51241e8e687dcc36a19f (patch) | |
| tree | f031065fcd2018580040987a221ead663a114339 /pyreverse | |
| parent | c6e544de3a4033c77652f7ee78ad25c953d5510d (diff) | |
| download | pylint-298eca7a8cc8b8d9457e51241e8e687dcc36a19f.tar.gz | |
filter doubled class names
Diffstat (limited to 'pyreverse')
| -rw-r--r-- | pyreverse/diagrams.py | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/pyreverse/diagrams.py b/pyreverse/diagrams.py index 422b300..1f7e653 100644 --- a/pyreverse/diagrams.py +++ b/pyreverse/diagrams.py @@ -79,12 +79,9 @@ class ClassDiagram(Figure, FilterMixIn): for node_name, ass_nodes in node.instance_attrs_type.items(): if not self.show_attr(node_name): continue - for ass_node in ass_nodes: - if isinstance(ass_node, astng.Instance): - ass_node = ass_node._proxied - if isinstance(ass_node, astng.Class) \ - and hasattr(ass_node, "name") and not self.has_node(ass_node): - node_name = "%s : %s" % (node_name, ass_node.name) + names = self.class_names(ass_nodes) + if names: + node_name = "%s : %s" % (node_name, ", ".join(names)) attrs.append(node_name) return attrs @@ -101,6 +98,18 @@ class ClassDiagram(Figure, FilterMixIn): self._nodes[node] = ent self.objects.append(ent) + def class_names(self, nodes): + """return class names if needed in diagram""" + names = [] + for ass_node in nodes: + if isinstance(ass_node, astng.Instance): + ass_node = ass_node._proxied + if isinstance(ass_node, astng.Class) \ + and hasattr(ass_node, "name") and not self.has_node(ass_node): + if ass_node.name not in names: + names.append(ass_node.name) + return names + def nodes(self): """return the list of underlying nodes """ |
