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 |