eric6/Graphics/ApplicationDiagramBuilder.py

changeset 8270
6ba3564b7161
parent 8220
006ee31b4835
child 8273
698ae46f40a4
child 8286
62ae22eae123
diff -r 87f521f359d5 -r 6ba3564b7161 eric6/Graphics/ApplicationDiagramBuilder.py
--- a/eric6/Graphics/ApplicationDiagramBuilder.py	Thu Apr 29 17:39:17 2021 +0200
+++ b/eric6/Graphics/ApplicationDiagramBuilder.py	Fri Apr 30 19:54:20 2021 +0200
@@ -105,46 +105,44 @@
         sceneRect = self.umlView.sceneRect()
         
         modules = self.__buildModulesDict()
-        sortedkeys = sorted(modules.keys())
         
         # step 1: build a dictionary of packages
-        for module in sortedkeys:
-            li = module.split('.')
-            package = '.'.join(li[:-1])
-            if package in packages:
-                packages[package][0].append(li[-1])
+        for module in sorted(modules.keys()):
+            packageName, moduleName = module.rsplit(".", 1)
+            if packageName in packages:
+                packages[packageName][0].append(moduleName)
             else:
-                packages[package] = ([li[-1]], [])
+                packages[packageName] = ([moduleName], [])
                 
         # step 2: assign modules to dictionaries and update import relationship
-        for module in sortedkeys:
-            li = module.split('.')
-            package = '.'.join(li[:-1])
+        for module in sorted(modules.keys()):
+            package = module.rsplit(".", 1)[0]
             impLst = []
-            for i in modules[module].imports:
-                if i in modules:
-                    impLst.append(i)
+            for moduleImport in modules[module].imports:
+                if moduleImport in modules:
+                    impLst.append(moduleImport)
                 else:
-                    if i.find('.') == -1:
-                        n = "{0}.{1}".format(modules[module].package, i)
+                    if moduleImport.find('.') == -1:
+                        n = "{0}.{1}".format(modules[module].package,
+                                             moduleImport)
                         if n in modules:
                             impLst.append(n)
                         else:
-                            n = "{0}.{1}".format(project, i)
+                            n = "{0}.{1}".format(project, moduleImport)
                             if n in modules:
                                 impLst.append(n)
                             elif n in packages:
                                 n = "{0}.<<Dummy>>".format(n)
                                 impLst.append(n)
                     else:
-                        n = "{0}.{1}".format(project, i)
+                        n = "{0}.{1}".format(project, moduleImport)
                         if n in modules:
                             impLst.append(n)
-            for i in list(modules[module].from_imports.keys()):
-                if i.startswith('.'):
-                    dots = len(i) - len(i.lstrip('.'))
+            for moduleImport in list(modules[module].from_imports.keys()):
+                if moduleImport.startswith('.'):
+                    dots = len(moduleImport) - len(moduleImport.lstrip('.'))
                     if dots == 1:
-                        i = i[1:]
+                        moduleImport = moduleImport[1:]
                     elif dots > 1:
                         packagePath = os.path.dirname(modules[module].file)
                         hasInit = True
@@ -159,38 +157,38 @@
                         )
                         packageList = shortPackage.split('.')[1:]
                         packageListLen = len(packageList)
-                        i = '.'.join(
+                        moduleImport = '.'.join(
                             packageList[:packageListLen - dots + 1] +
-                            [i[dots:]])
+                            [moduleImport[dots:]])
                 
-                if i in modules:
-                    impLst.append(i)
+                if moduleImport in modules:
+                    impLst.append(moduleImport)
                 else:
-                    if i.find('.') == -1:
-                        n = "{0}.{1}".format(modules[module].package, i)
+                    if moduleImport.find('.') == -1:
+                        n = "{0}.{1}".format(modules[module].package,
+                                             moduleImport)
                         if n in modules:
                             impLst.append(n)
                         else:
-                            n = "{0}.{1}".format(project, i)
+                            n = "{0}.{1}".format(project, moduleImport)
                             if n in modules:
                                 impLst.append(n)
                             elif n in packages:
                                 n = "{0}.<<Dummy>>".format(n)
                                 impLst.append(n)
                     else:
-                        n = "{0}.{1}".format(project, i)
+                        n = "{0}.{1}".format(project, moduleImport)
                         if n in modules:
                             impLst.append(n)
-            for imp in impLst:
-                impPackage = '.'.join(imp.split('.')[:-1])
+            for moduleImport in impLst:
+                impPackage = moduleImport.rsplit(".", 1)[0]
                 if (
                     impPackage not in packages[package][1] and
                     impPackage != package
                 ):
                     packages[package][1].append(impPackage)
                     
-        sortedkeys = sorted(packages.keys())
-        for package in sortedkeys:
+        for package in sorted(packages.keys()):
             if package:
                 relPackage = package.replace(project, '')
                 if relPackage and relPackage[0] == '.':
@@ -251,12 +249,12 @@
         
         @param shapes list of shapes
         """
-        from .AssociationItem import AssociationItem, Imports
+        from .AssociationItem import AssociationItem, AssociationType
         for package in shapes:
             for rel in shapes[package][1]:
                 assoc = AssociationItem(
                     shapes[package][0], shapes[rel][0],
-                    Imports,
+                    AssociationType.IMPORTS,
                     colors=self.umlView.getDrawingColors())
                 self.scene.addItem(assoc)
     

eric ide

mercurial