eric7/Graphics/PackageDiagramBuilder.py

branch
eric7
changeset 8943
23f9c7b9e18e
parent 8881
54e42bc2437a
equal deleted inserted replaced
8940:e91951ff3bbd 8943:23f9c7b9e18e
6 """ 6 """
7 Module implementing a dialog showing an UML like class diagram of a package. 7 Module implementing a dialog showing an UML like class diagram of a package.
8 """ 8 """
9 9
10 import glob 10 import glob
11 import os.path 11 import os
12 import time
12 from itertools import zip_longest 13 from itertools import zip_longest
13 14
14 from PyQt6.QtWidgets import QApplication, QGraphicsTextItem 15 from PyQt6.QtWidgets import QApplication, QGraphicsTextItem
15 16
16 from EricWidgets.EricProgressDialog import EricProgressDialog 17 from EricWidgets.EricProgressDialog import EricProgressDialog
108 progress.setWindowTitle(self.tr("Package Diagram")) 109 progress.setWindowTitle(self.tr("Package Diagram"))
109 try: 110 try:
110 progress.show() 111 progress.show()
111 QApplication.processEvents() 112 QApplication.processEvents()
112 113
114 now = time.monotonic()
113 for prog, module in enumerate(modules): 115 for prog, module in enumerate(modules):
114 progress.setValue(prog) 116 progress.setValue(prog)
115 QApplication.processEvents() 117 if time.monotonic() - now > 0.01:
118 QApplication.processEvents()
119 now = time.monotonic()
116 try: 120 try:
117 mod = Utilities.ModuleParser.readModule( 121 mod = Utilities.ModuleParser.readModule(
118 module, extensions=extensions, caching=False) 122 module, extensions=extensions, caching=False)
119 except ImportError: 123 except ImportError:
120 continue 124 continue
172 progress.setWindowTitle(self.tr("Package Diagram")) 176 progress.setWindowTitle(self.tr("Package Diagram"))
173 try: 177 try:
174 progress.show() 178 progress.show()
175 QApplication.processEvents() 179 QApplication.processEvents()
176 180
181 now = time.monotonic()
177 for subpackage in subpackagesList: 182 for subpackage in subpackagesList:
178 packageName = os.path.basename(subpackage) 183 packageName = os.path.basename(subpackage)
179 subpackagesDict[packageName] = [] 184 subpackagesDict[packageName] = []
180 modules = [] 185 modules = []
181 for ext in supportedExt: 186 for ext in supportedExt:
182 modules.extend(glob.glob( 187 modules.extend(glob.glob(
183 Utilities.normjoinpath(subpackage, ext))) 188 Utilities.normjoinpath(subpackage, ext)))
184 for prog, module in enumerate(modules): 189 for prog, module in enumerate(modules):
185 progress.setValue(prog) 190 progress.setValue(prog)
186 QApplication.processEvents() 191 if time.monotonic() - now > 0.01:
192 QApplication.processEvents()
193 now = time.monotonic()
187 try: 194 try:
188 mod = Utilities.ModuleParser.readModule( 195 mod = Utilities.ModuleParser.readModule(
189 module, extensions=extensions, caching=False) 196 module, extensions=extensions, caching=False)
190 except ImportError: 197 except ImportError:
191 continue 198 continue

eric ide

mercurial