eric6/Graphics/ImportsDiagramBuilder.py

branch
maintenance
changeset 8273
698ae46f40a4
parent 8043
0acf98cd089a
parent 8270
6ba3564b7161
child 8400
b3eefd7e58d1
equal deleted inserted replaced
8190:fb0ef164f536 8273:698ae46f40a4
38 @param package name of a python package to show the import 38 @param package name of a python package to show the import
39 relationships (string) 39 relationships (string)
40 @param showExternalImports flag indicating to show exports from 40 @param showExternalImports flag indicating to show exports from
41 outside the package (boolean) 41 outside the package (boolean)
42 """ 42 """
43 super(ImportsDiagramBuilder, self).__init__(dialog, view, project) 43 super().__init__(dialog, view, project)
44 self.setObjectName("ImportsDiagram") 44 self.setObjectName("ImportsDiagram")
45 45
46 self.showExternalImports = showExternalImports 46 self.showExternalImports = showExternalImports
47 self.packagePath = os.path.abspath(package) 47 self.packagePath = os.path.abspath(package)
48 48
59 hasInit = len(glob.glob(os.path.join(ppath, '__init__.*'))) > 0 59 hasInit = len(glob.glob(os.path.join(ppath, '__init__.*'))) > 0
60 self.shortPackage = self.packagePath.replace(ppath, '').replace( 60 self.shortPackage = self.packagePath.replace(ppath, '').replace(
61 os.sep, '.')[1:] 61 os.sep, '.')[1:]
62 62
63 pname = self.project.getProjectName() 63 pname = self.project.getProjectName()
64 if pname: 64 name = (
65 name = self.tr("Imports Diagramm {0}: {1}").format( 65 self.tr("Imports Diagramm {0}: {1}").format(
66 pname, self.project.getRelativePath(self.packagePath)) 66 pname, self.project.getRelativePath(self.packagePath))
67 else: 67 if pname else
68 name = self.tr("Imports Diagramm: {0}").format( 68 self.tr("Imports Diagramm: {0}").format(self.packagePath)
69 self.packagePath) 69 )
70 self.umlView.setDiagramName(name) 70 self.umlView.setDiagramName(name)
71 71
72 def __buildModulesDict(self): 72 def __buildModulesDict(self):
73 """ 73 """
74 Private method to build a dictionary of modules contained in the 74 Private method to build a dictionary of modules contained in the
92 progress = E5ProgressDialog( 92 progress = E5ProgressDialog(
93 self.tr("Parsing modules..."), 93 self.tr("Parsing modules..."),
94 None, 0, tot, self.tr("%v/%m Modules"), self.parent()) 94 None, 0, tot, self.tr("%v/%m Modules"), self.parent())
95 progress.setWindowTitle(self.tr("Imports Diagramm")) 95 progress.setWindowTitle(self.tr("Imports Diagramm"))
96 try: 96 try:
97 prog = 0
98 progress.show() 97 progress.show()
99 QApplication.processEvents() 98 QApplication.processEvents()
100 for module in modules: 99 for prog, module in enumerate(modules):
101 progress.setValue(prog) 100 progress.setValue(prog)
102 QApplication.processEvents() 101 QApplication.processEvents()
103 prog = prog + 1
104 try: 102 try:
105 mod = Utilities.ModuleParser.readModule( 103 mod = Utilities.ModuleParser.readModule(
106 module, extensions=extensions, caching=False) 104 module, extensions=extensions, caching=False)
107 except ImportError: 105 except ImportError:
108 continue 106 continue
142 packageList = self.shortPackage.split('.') 140 packageList = self.shortPackage.split('.')
143 packageListLen = len(packageList) 141 packageListLen = len(packageList)
144 for module in sortedkeys: 142 for module in sortedkeys:
145 impLst = [] 143 impLst = []
146 for i in modules[module].imports: 144 for i in modules[module].imports:
147 if i.startswith(self.package): 145 n = (i[len(self.package) + 1:]
148 n = i[len(self.package) + 1:] 146 if i.startswith(self.package) else i)
149 else:
150 n = i
151 if i in modules: 147 if i in modules:
152 impLst.append(n) 148 impLst.append(n)
153 elif self.showExternalImports: 149 elif self.showExternalImports:
154 impLst.append(n) 150 impLst.append(n)
155 if n not in externalMods: 151 if n not in externalMods:
247 """ 243 """
248 Private method to generate the associations between the module shapes. 244 Private method to generate the associations between the module shapes.
249 245
250 @param shapes list of shapes 246 @param shapes list of shapes
251 """ 247 """
252 from .AssociationItem import AssociationItem, Imports 248 from .AssociationItem import AssociationItem, AssociationType
253 for module in list(shapes.keys()): 249 for module in list(shapes.keys()):
254 for rel in shapes[module][1]: 250 for rel in shapes[module][1]:
255 assoc = AssociationItem( 251 assoc = AssociationItem(
256 shapes[module][0], shapes[rel][0], 252 shapes[module][0], shapes[rel][0],
257 Imports, 253 AssociationType.IMPORTS,
258 colors=self.umlView.getDrawingColors()) 254 colors=self.umlView.getDrawingColors())
259 self.scene.addItem(assoc) 255 self.scene.addItem(assoc)
260 256
261 def getPersistenceData(self): 257 def getPersistenceData(self):
262 """ 258 """

eric ide

mercurial