summaryrefslogtreecommitdiff
path: root/pyreverse
diff options
context:
space:
mode:
authorEmile Anclin <emile.anclin@logilab.fr>2008-08-04 18:06:04 +0200
committerEmile Anclin <emile.anclin@logilab.fr>2008-08-04 18:06:04 +0200
commitf23b322503438b07cb81f6bc08605e3d4f4f3674 (patch)
tree9f0fd991839600c72054662bf6b0bebb859d37e7 /pyreverse
parent0c904d4ed88bed7877ffcc31e013d6b28a26f1cd (diff)
downloadpylint-f23b322503438b07cb81f6bc08605e3d4f4f3674.tar.gz
add module-names option and adapt to current default behavior
Diffstat (limited to 'pyreverse')
-rw-r--r--pyreverse/diadefslib.py34
1 files changed, 22 insertions, 12 deletions
diff --git a/pyreverse/diadefslib.py b/pyreverse/diadefslib.py
index 63ef9ba..ae83771 100644
--- a/pyreverse/diadefslib.py
+++ b/pyreverse/diadefslib.py
@@ -139,7 +139,8 @@ class DefaultDiadefGenerator(LocalsVisitor):
* a package diagram including project's modules
* a class diagram including project's classes
"""
- def __init__(self, linker):
+ def __init__(self, linker, include_module_name = False):
+ self.include_module_name = include_module_name
LocalsVisitor.__init__(self)
self.linker = linker
@@ -183,7 +184,11 @@ class DefaultDiadefGenerator(LocalsVisitor):
return
self._cleanup(node)
self.linker.visit(node)
- self.classdiagram.add_object(node=node, title=node.name)
+ title = node.name
+ if self.include_module_name:
+ title = '%s.%s' % (node.root().name , title)
+ print "class node title : " , title
+ self.classdiagram.add_object(node=node, title=title)
def _cleanup( self, node ):
"""cleanup locals inserted by the astng builder to mimick python
@@ -202,7 +207,7 @@ class ClassDiadefGenerator:
def __init__(self, linker):
self.linker = linker
-
+
def class_diagram(self, project, klass,
include_level=-1, include_module_name= True):
"""return a class diagram definition for the given klass and its related
@@ -250,11 +255,9 @@ class ClassDiadefGenerator:
def add_class_def(self, diagram, klass_node):
"""add a class definition to the class diagram
"""
+ title = klass_node.name
if self.include_module_name:
- module_name = klass_node.root().name
- title = '%s.%s' % (module_name, klass_node.name)
- else:
- title = klass_node.name
+ title = '%s.%s' % (klass_node.root().name , title)
self.linker.visit(klass_node)
diagram.add_object(node=klass_node, title=title)
@@ -279,10 +282,13 @@ class DiadefsHandler(OptionsProviderMixIn):
help="create a class diagram with all classes related to <class> ")),
("search-level",
dict(dest="include_level", action="store",type='int',
- metavar='<depth>', default=-1, help='depth of related class search') ),
+ metavar='<depth>', default=-1, help='depth of search for associated classes') ),
+ ("module-names",
+ dict(dest="module_names", action="store",short="m",type='yn', metavar='[yn]',
+ default=None, help='include module name in representation of classes') ),
)
-
+
def get_diadefs(self, project, linker):
"""get the diagrams configuration data, either from a specified file or
generated
@@ -297,13 +303,17 @@ class DiadefsHandler(OptionsProviderMixIn):
for package_diagram in diadefs.get('package-diagram', ()):
resolver.resolve_packages(package_diagram)
generator = ClassDiadefGenerator(linker)
- incl_level = int(self.config.include_level)
+ level = int(self.config.include_level)
+ m = self.config.module_names
+
for klass in self.config.classes:
- diagrams.append(generator.class_diagram(project, klass, incl_level))
+ if m == None: # show modules for classes by default
+ m = True
+ diagrams.append(generator.class_diagram(project, klass, level, m))
# FIXME: generate only if no option provided
# or generate one
if not diagrams:
- diagrams += DefaultDiadefGenerator(linker).visit(project)
+ diagrams += DefaultDiadefGenerator(linker,m).visit(project)
for diagram in diagrams:
diagram.extract_relationships()
return diagrams