src/eric7/Graphics/PackageDiagramBuilder.py

branch
eric7
changeset 9624
b47dfa7a137d
parent 9517
d73c3a1e432b
child 9645
31aaa11672d3
equal deleted inserted replaced
9623:9c1f429cb56b 9624:b47dfa7a137d
13 13
14 from itertools import zip_longest 14 from itertools import zip_longest
15 15
16 from PyQt6.QtWidgets import QApplication, QGraphicsTextItem 16 from PyQt6.QtWidgets import QApplication, QGraphicsTextItem
17 17
18 from eric7 import Preferences, Utilities 18 from eric7 import Globals, Preferences
19 from eric7.EricWidgets.EricProgressDialog import EricProgressDialog 19 from eric7.EricWidgets.EricProgressDialog import EricProgressDialog
20 from eric7.SystemUtilities import FileSystemUtilities
20 21
21 from .UMLDiagramBuilder import UMLDiagramBuilder 22 from .UMLDiagramBuilder import UMLDiagramBuilder
22 23
23 24
24 class PackageDiagramBuilder(UMLDiagramBuilder): 25 class PackageDiagramBuilder(UMLDiagramBuilder):
94 extensions = Preferences.getPython("Python3Extensions") + [".rb"] 95 extensions = Preferences.getPython("Python3Extensions") + [".rb"]
95 96
96 moduleDict = {} 97 moduleDict = {}
97 modules = [] 98 modules = []
98 for ext in supportedExt: 99 for ext in supportedExt:
99 modules.extend(glob.glob(Utilities.normjoinpath(self.package, ext))) 100 modules.extend(
101 glob.glob(FileSystemUtilities.normjoinpath(self.package, ext))
102 )
100 tot = len(modules) 103 tot = len(modules)
101 progress = EricProgressDialog( 104 progress = EricProgressDialog(
102 self.tr("Parsing modules..."), 105 self.tr("Parsing modules..."),
103 None, 106 None,
104 0, 107 0,
161 subpackagesList.append(subpackagePath) 164 subpackagesList.append(subpackagePath)
162 165
163 tot = 0 166 tot = 0
164 for ext in supportedExt: 167 for ext in supportedExt:
165 for subpackage in subpackagesList: 168 for subpackage in subpackagesList:
166 tot += len(glob.glob(Utilities.normjoinpath(subpackage, ext))) 169 tot += len(glob.glob(FileSystemUtilities.normjoinpath(subpackage, ext)))
167 progress = EricProgressDialog( 170 progress = EricProgressDialog(
168 self.tr("Parsing modules..."), 171 self.tr("Parsing modules..."),
169 None, 172 None,
170 0, 173 0,
171 tot, 174 tot,
181 for subpackage in subpackagesList: 184 for subpackage in subpackagesList:
182 packageName = os.path.basename(subpackage) 185 packageName = os.path.basename(subpackage)
183 subpackagesDict[packageName] = [] 186 subpackagesDict[packageName] = []
184 modules = [] 187 modules = []
185 for ext in supportedExt: 188 for ext in supportedExt:
186 modules.extend(glob.glob(Utilities.normjoinpath(subpackage, ext))) 189 modules.extend(
190 glob.glob(FileSystemUtilities.normjoinpath(subpackage, ext))
191 )
187 for prog, module in enumerate(modules): 192 for prog, module in enumerate(modules):
188 progress.setValue(prog) 193 progress.setValue(prog)
189 if time.monotonic() - now > 0.01: 194 if time.monotonic() - now > 0.01:
190 QApplication.processEvents() 195 QApplication.processEvents()
191 now = time.monotonic() 196 now = time.monotonic()
525 or not parts[1].startswith("no_attributes=") 530 or not parts[1].startswith("no_attributes=")
526 ): 531 ):
527 return False 532 return False
528 533
529 self.package = parts[0].split("=", 1)[1].strip() 534 self.package = parts[0].split("=", 1)[1].strip()
530 self.noAttrs = Utilities.toBool(parts[1].split("=", 1)[1].strip()) 535 self.noAttrs = Globals.toBool(parts[1].split("=", 1)[1].strip())
531 536
532 self.initialize() 537 self.initialize()
533 538
534 return True 539 return True
535 540
542 """ 547 """
543 data = { 548 data = {
544 "project_name": self.project.getProjectName(), 549 "project_name": self.project.getProjectName(),
545 "no_attributes": self.noAttrs, 550 "no_attributes": self.noAttrs,
546 "package": ( 551 "package": (
547 Utilities.fromNativeSeparators(self.__relPackage) 552 FileSystemUtilities.fromNativeSeparators(self.__relPackage)
548 if self.__relPackage 553 if self.__relPackage
549 else Utilities.fromNativeSeparators(self.package) 554 else FileSystemUtilities.fromNativeSeparators(self.package)
550 ), 555 ),
551 } 556 }
552 557
553 return data 558 return data
554 559
565 @rtype tuple of (bool, str) 570 @rtype tuple of (bool, str)
566 """ 571 """
567 try: 572 try:
568 self.noAttrs = data["no_attributes"] 573 self.noAttrs = data["no_attributes"]
569 574
570 package = Utilities.toNativeSeparators(data["package"]) 575 package = FileSystemUtilities.toNativeSeparators(data["package"])
571 if os.path.isabs(package): 576 if os.path.isabs(package):
572 self.package = package 577 self.package = package
573 self.__relPackage = "" 578 self.__relPackage = ""
574 else: 579 else:
575 # relative package paths indicate a project package 580 # relative package paths indicate a project package

eric ide

mercurial