src/eric7/Graphics/PackageDiagramBuilder.py

branch
eric7
changeset 9646
ab5678db972f
parent 9645
31aaa11672d3
child 9653
e67609152c5e
diff -r 31aaa11672d3 -r ab5678db972f src/eric7/Graphics/PackageDiagramBuilder.py
--- a/src/eric7/Graphics/PackageDiagramBuilder.py	Fri Dec 23 11:37:49 2022 +0100
+++ b/src/eric7/Graphics/PackageDiagramBuilder.py	Sat Dec 24 17:31:46 2022 +0100
@@ -154,15 +154,14 @@
         subpackagesDict = {}
         subpackagesList = []
 
-        # TODO: replace os.listdir() with os.scandir()
-        for subpackage in os.listdir(self.package):
-            subpackagePath = os.path.join(self.package, subpackage)
-            if (
-                os.path.isdir(subpackagePath)
-                and subpackage != "__pycache__"
-                and len(glob.glob(os.path.join(subpackagePath, "__init__.*"))) != 0
-            ):
-                subpackagesList.append(subpackagePath)
+        with os.scandir(self.package) as dirEntriesIterator:
+            for subpackage in dirEntriesIterator:
+                if (
+                    subpackage.is_dir()
+                    and subpackage.name != "__pycache__"
+                    and len(glob.glob(os.path.join(subpackage.path, "__init__.*"))) != 0
+                ):
+                    subpackagesList.append(subpackage.path)
 
         tot = 0
         for ext in supportedExt:
@@ -178,6 +177,7 @@
         )
         progress.setWindowTitle(self.tr("Package Diagram"))
         try:
+            start = 0
             progress.show()
             QApplication.processEvents()
 
@@ -190,7 +190,7 @@
                     modules.extend(
                         glob.glob(FileSystemUtilities.normjoinpath(subpackage, ext))
                     )
-                for prog, module in enumerate(modules):
+                for prog, module in enumerate(modules, start=start):
                     progress.setValue(prog)
                     if time.monotonic() - now > 0.01:
                         QApplication.processEvents()
@@ -206,6 +206,7 @@
                         if "." in name:
                             name = name.rsplit(".", 1)[1]
                         subpackagesDict[packageName].append(name)
+                start = prog
                 subpackagesDict[packageName].sort()
                 # move __init__ to the front
                 if "__init__" in subpackagesDict[packageName]:

eric ide

mercurial