Continued implementing the delayed import.

Sun, 10 Feb 2013 15:17:59 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 10 Feb 2013 15:17:59 +0100
changeset 2401
4f428de32b69
parent 2400
c1726b754f96
child 2402
304fcefd3b04

Continued implementing the delayed import.

DocumentationTools/APIGenerator.py file | annotate | diff | comparison | revisions
DocumentationTools/IndexGenerator.py file | annotate | diff | comparison | revisions
DocumentationTools/ModuleDocumentor.py file | annotate | diff | comparison | revisions
E5Gui/E5ComboBox.py file | annotate | diff | comparison | revisions
E5Gui/E5LineEdit.py file | annotate | diff | comparison | revisions
E5Gui/E5ModelToolBar.py file | annotate | diff | comparison | revisions
E5Network/E5NetworkMonitor.py file | annotate | diff | comparison | revisions
E5Network/E5NetworkProxyFactory.py file | annotate | diff | comparison | revisions
E5Network/E5SslCertificatesDialog.py file | annotate | diff | comparison | revisions
Graphics/ApplicationDiagramBuilder.py file | annotate | diff | comparison | revisions
Graphics/ImportsDiagramBuilder.py file | annotate | diff | comparison | revisions
Graphics/PackageDiagramBuilder.py file | annotate | diff | comparison | revisions
Graphics/UMLClassDiagramBuilder.py file | annotate | diff | comparison | revisions
Graphics/UMLDialog.py file | annotate | diff | comparison | revisions
Graphics/UMLGraphicsView.py file | annotate | diff | comparison | revisions
--- a/DocumentationTools/APIGenerator.py	Sun Feb 10 14:48:24 2013 +0100
+++ b/DocumentationTools/APIGenerator.py	Sun Feb 10 15:17:59 2013 +0100
@@ -8,8 +8,6 @@
 
 """
 
-from QScintilla.Editor import Editor
-
 
 class APIGenerator(object):
     """
@@ -79,6 +77,8 @@
         """
         Private method to generate the api section for global variables.
         """
+        from QScintilla.Editor import Editor
+        
         moduleNameStr = "{0}".format(self.moduleName)
         
         for globalName in sorted(self.module.globals.keys()):
@@ -107,6 +107,8 @@
         
         @param classname Name of the class containing the method. (string)
         """
+        from QScintilla.Editor import Editor
+        
         _class = self.module.classes[className]
         methods = sorted(list(_class.methods.keys()))
         if '__init__' in methods:
@@ -140,6 +142,8 @@
         
         @param classname Name of the class containing the class variables. (string)
         """
+        from QScintilla.Editor import Editor
+        
         _class = self.module.classes[className]
         classNameStr = "{0}{1}.".format(self.moduleName, className)
         for variable in sorted(_class.globals.keys()):
@@ -156,6 +160,8 @@
         """
         Private method to generate the api section for functions.
         """
+        from QScintilla.Editor import Editor
+        
         funcNames = sorted(list(self.module.functions.keys()))
         for funcName in funcNames:
             if not self.__isPrivate(self.module.functions[funcName]):
--- a/DocumentationTools/IndexGenerator.py	Sun Feb 10 14:48:24 2013 +0100
+++ b/DocumentationTools/IndexGenerator.py	Sun Feb 10 15:17:59 2013 +0100
@@ -10,9 +10,6 @@
 import sys
 import os
 
-from . import TemplatesListsStyle
-from . import TemplatesListsStyleCSS
-
 from Utilities import joinext
 
 
@@ -42,6 +39,7 @@
         self.stylesheet = stylesheet
         
         if self.stylesheet:
+            from . import TemplatesListsStyleCSS
             self.headerTemplate = TemplatesListsStyleCSS.headerTemplate
             self.footerTemplate = TemplatesListsStyleCSS.footerTemplate
             self.indexBodyTemplate = TemplatesListsStyleCSS.indexBodyTemplate
@@ -51,6 +49,7 @@
                 TemplatesListsStyleCSS.indexListModulesTemplate
             self.indexListEntryTemplate = TemplatesListsStyleCSS.indexListEntryTemplate
         else:
+            from . import TemplatesListsStyle
             self.headerTemplate = TemplatesListsStyle.headerTemplate.format(**colors)
             self.footerTemplate = TemplatesListsStyle.footerTemplate.format(**colors)
             self.indexBodyTemplate = \
--- a/DocumentationTools/ModuleDocumentor.py	Sun Feb 10 14:48:24 2013 +0100
+++ b/DocumentationTools/ModuleDocumentor.py	Sun Feb 10 15:17:59 2013 +0100
@@ -14,9 +14,6 @@
 import sys
 import re
 
-from . import TemplatesListsStyle
-from . import TemplatesListsStyleCSS
-
 from Utilities import html_uencode
 from Utilities.ModuleParser import RB_SOURCE, Function
 
@@ -74,6 +71,7 @@
         self.stylesheet = stylesheet
         
         if self.stylesheet:
+            from . import TemplatesListsStyleCSS
             self.headerTemplate = TemplatesListsStyleCSS.headerTemplate
             self.footerTemplate = TemplatesListsStyleCSS.footerTemplate
             self.moduleTemplate = TemplatesListsStyleCSS.moduleTemplate
@@ -110,6 +108,7 @@
             self.seeLinkTemplate = TemplatesListsStyleCSS.seeLinkTemplate
             self.sinceInfoTemplate = TemplatesListsStyleCSS.sinceInfoTemplate
         else:
+            from . import TemplatesListsStyle
             self.headerTemplate = TemplatesListsStyle.headerTemplate.format(**colors)
             self.footerTemplate = TemplatesListsStyle.footerTemplate.format(**colors)
             self.moduleTemplate = TemplatesListsStyle.moduleTemplate.format(**colors)
--- a/E5Gui/E5ComboBox.py	Sun Feb 10 14:48:24 2013 +0100
+++ b/E5Gui/E5ComboBox.py	Sun Feb 10 15:17:59 2013 +0100
@@ -9,8 +9,6 @@
 
 from PyQt4.QtGui import QComboBox
 
-from .E5LineEdit import E5LineEdit, E5ClearableLineEdit
-
 
 class E5ComboBox(QComboBox):
     """
@@ -27,6 +25,7 @@
         
         self.setMinimumHeight(24)
         
+        from .E5LineEdit import E5LineEdit
         self.__lineedit = E5LineEdit(self, inactiveText)
         self.setLineEdit(self.__lineedit)
         
@@ -62,5 +61,6 @@
         """
         super().__init__(parent, inactiveText)
         
+        from .E5LineEdit import E5ClearableLineEdit
         self.__lineedit = E5ClearableLineEdit(self, inactiveText)
         self.setLineEdit(self.__lineedit)
--- a/E5Gui/E5LineEdit.py	Sun Feb 10 14:48:24 2013 +0100
+++ b/E5Gui/E5LineEdit.py	Sun Feb 10 15:17:59 2013 +0100
@@ -11,8 +11,6 @@
 from PyQt4.QtGui import QLineEdit, QStyle, QPainter, QPalette, QStyleOptionFrameV2, \
     QWidget, QHBoxLayout, QBoxLayout, QLayout, QApplication, QSpacerItem, QSizePolicy
 
-from E5Gui.E5LineEditButton import E5LineEditButton
-
 import UI.PixmapCache
 
 
@@ -286,6 +284,7 @@
         
         super().__init__(parent, inactiveText)
         
+        from E5Gui.E5LineEditButton import E5LineEditButton
         self.__clearButton = E5LineEditButton(self)
         self.__clearButton.setIcon(UI.PixmapCache.getIcon("clearLeft.png"))
         self.addWidget(self.__clearButton, side)
--- a/E5Gui/E5ModelToolBar.py	Sun Feb 10 14:48:24 2013 +0100
+++ b/E5Gui/E5ModelToolBar.py	Sun Feb 10 15:17:59 2013 +0100
@@ -10,8 +10,6 @@
 from PyQt4.QtCore import pyqtSignal, Qt, QModelIndex, QPoint, QEvent
 from PyQt4.QtGui import QApplication, QDrag, QPixmap, QToolBar, QIcon, QToolButton
 
-from .E5ModelMenu import E5ModelMenu
-
 
 class E5ModelToolBar(QToolBar):
     """
@@ -148,6 +146,7 @@
         
         @return menu for a tool bar action (E5ModelMenu)
         """
+        from .E5ModelMenu import E5ModelMenu
         return E5ModelMenu(self)
     
     def eventFilter(self, obj, evt):
--- a/E5Network/E5NetworkMonitor.py	Sun Feb 10 14:48:24 2013 +0100
+++ b/E5Network/E5NetworkMonitor.py	Sun Feb 10 15:17:59 2013 +0100
@@ -11,8 +11,6 @@
 from PyQt4.QtGui import QDialog, QStandardItemModel, QSortFilterProxyModel
 from PyQt4.QtNetwork import QNetworkRequest, QNetworkAccessManager
 
-from .E5NetworkHeaderDetailsDialog import E5NetworkHeaderDetailsDialog
-
 from .Ui_E5NetworkMonitor import Ui_E5NetworkMonitor
 
 
@@ -190,6 +188,7 @@
         name = headerList.model().data(headerList.model().index(row, 0))
         value = headerList.model().data(headerList.model().index(row, 1))
         if self.__headersDlg is None:
+            from .E5NetworkHeaderDetailsDialog import E5NetworkHeaderDetailsDialog
             self.__headersDlg = E5NetworkHeaderDetailsDialog(self)
         self.__headersDlg.setData(name, value)
         self.__headersDlg.show()
--- a/E5Network/E5NetworkProxyFactory.py	Sun Feb 10 14:48:24 2013 +0100
+++ b/E5Network/E5NetworkProxyFactory.py	Sun Feb 10 15:17:59 2013 +0100
@@ -15,8 +15,6 @@
 
 from E5Gui import E5MessageBox
 
-from UI.AuthenticationDialog import AuthenticationDialog
-
 import Preferences
 import Globals
 import Utilities
@@ -52,6 +50,7 @@
         "<b>Connect to proxy '{0}' using:</b>")\
         .format(Utilities.html_encode(proxy.hostName()))
     
+    from UI.AuthenticationDialog import AuthenticationDialog
     dlg = AuthenticationDialog(info, proxy.user(), True)
     dlg.setData(proxy.user(), proxy.password())
     if dlg.exec_() == QDialog.Accepted:
--- a/E5Network/E5SslCertificatesDialog.py	Sun Feb 10 14:48:24 2013 +0100
+++ b/E5Network/E5SslCertificatesDialog.py	Sun Feb 10 15:17:59 2013 +0100
@@ -19,11 +19,6 @@
 
 from .Ui_E5SslCertificatesDialog import Ui_E5SslCertificatesDialog
 
-try:
-    from E5Network.E5SslInfoDialog import E5SslInfoDialog
-except ImportError:
-    pass
-
 import Preferences
 import Utilities
 import UI.PixmapCache
@@ -125,10 +120,14 @@
         """
         Private slot to show data of the selected server certificate.
         """
-        cert = QSslCertificate.fromData(
-            self.serversCertificatesTree.currentItem().data(0, self.CertRole))[0]
-        dlg = E5SslInfoDialog(cert, self)
-        dlg.exec_()
+        try:
+            from E5Network.E5SslInfoDialog import E5SslInfoDialog
+            cert = QSslCertificate.fromData(
+                self.serversCertificatesTree.currentItem().data(0, self.CertRole))[0]
+            dlg = E5SslInfoDialog(cert, self)
+            dlg.exec_()
+        except ImportError:
+            pass
     
     @pyqtSlot()
     def on_serversDeleteButton_clicked(self):
@@ -318,10 +317,14 @@
         """
         Private slot to show data of the selected CA certificate.
         """
-        cert = QSslCertificate.fromData(
-            self.caCertificatesTree.currentItem().data(0, self.CertRole))[0]
-        dlg = E5SslInfoDialog(cert, self)
-        dlg.exec_()
+        try:
+            from E5Network.E5SslInfoDialog import E5SslInfoDialog
+            cert = QSslCertificate.fromData(
+                self.caCertificatesTree.currentItem().data(0, self.CertRole))[0]
+            dlg = E5SslInfoDialog(cert, self)
+            dlg.exec_()
+        except ImportError:
+            pass
     
     @pyqtSlot()
     def on_caDeleteButton_clicked(self):
--- a/Graphics/ApplicationDiagramBuilder.py	Sun Feb 10 14:48:24 2013 +0100
+++ b/Graphics/ApplicationDiagramBuilder.py	Sun Feb 10 15:17:59 2013 +0100
@@ -15,12 +15,8 @@
 from E5Gui import E5MessageBox
 
 from .UMLDiagramBuilder import UMLDiagramBuilder
-from .PackageItem import PackageItem, PackageModel
-from .AssociationItem import AssociationItem, Imports
 
-import Utilities.ModuleParser
 import Utilities
-
 import Preferences
 
 
@@ -66,6 +62,8 @@
                 None, 0, tot, self.parent())
             progress.show()
             QApplication.processEvents()
+            
+            import Utilities.ModuleParser
             for module in modules:
                 progress.setValue(prog)
                 QApplication.processEvents()
@@ -223,6 +221,7 @@
         @param x x-coordinate (float)
         @param y y-coordinate (float)
         """
+        from .PackageItem import PackageItem, PackageModel
         modules.sort()
         pm = PackageModel(name, modules)
         pw = PackageItem(pm, x, y, noModules=self.noModules, scene=self.scene)
@@ -235,6 +234,7 @@
         
         @param shapes list of shapes
         """
+        from .AssociationItem import AssociationItem, Imports
         for package in shapes:
             for rel in shapes[package][1]:
                 assoc = AssociationItem(
--- a/Graphics/ImportsDiagramBuilder.py	Sun Feb 10 14:48:24 2013 +0100
+++ b/Graphics/ImportsDiagramBuilder.py	Sun Feb 10 15:17:59 2013 +0100
@@ -13,10 +13,7 @@
 from PyQt4.QtGui import QProgressDialog, QApplication, QGraphicsTextItem
 
 from .UMLDiagramBuilder import UMLDiagramBuilder
-from .ModuleItem import ModuleItem, ModuleModel
-from .AssociationItem import AssociationItem, Imports
 
-import Utilities.ModuleParser
 import Utilities
 import Preferences
 
@@ -88,6 +85,7 @@
                 None, 0, tot, self.parent())
             progress.show()
             QApplication.processEvents()
+            import Utilities.ModuleParser
             for module in modules:
                 progress.setValue(prog)
                 QApplication.processEvents()
@@ -223,6 +221,7 @@
         @param x x-coordinate (float)
         @param y y-coordinate (float)
         """
+        from .ModuleItem import ModuleItem, ModuleModel
         classes.sort()
         impM = ModuleModel(name, classes)
         impW = ModuleItem(impM, x, y, scene=self.scene)
@@ -235,6 +234,7 @@
         
         @param shapes list of shapes
         """
+        from .AssociationItem import AssociationItem, Imports
         for module in list(shapes.keys()):
             for rel in shapes[module][1]:
                 assoc = AssociationItem(
--- a/Graphics/PackageDiagramBuilder.py	Sun Feb 10 14:48:24 2013 +0100
+++ b/Graphics/PackageDiagramBuilder.py	Sun Feb 10 15:17:59 2013 +0100
@@ -14,12 +14,7 @@
 from PyQt4.QtGui import QProgressDialog, QApplication, QGraphicsTextItem
 
 from .UMLDiagramBuilder import UMLDiagramBuilder
-from .ClassItem import ClassItem, ClassModel
-from .PackageItem import PackageItem, PackageModel
-from .AssociationItem import AssociationItem, Generalisation
-from . import GraphicsUtilities
 
-import Utilities.ModuleParser
 import Utilities
 import Preferences
 
@@ -89,6 +84,8 @@
                 None, 0, tot, self.parent())
             progress.show()
             QApplication.processEvents()
+            
+            import Utilities.ModuleParser
             for module in modules:
                 progress.setValue(prog)
                 QApplication.processEvents()
@@ -141,6 +138,8 @@
                 None, 0, tot, self.parent())
             progress.show()
             QApplication.processEvents()
+            
+            import Utilities.ModuleParser
             for subpackage in subpackagesList:
                 packageName = os.path.basename(subpackage)
                 subpackagesDict[packageName] = []
@@ -271,6 +270,7 @@
         
         The algorithm is borrowed from Boa Constructor.
         """
+        from . import GraphicsUtilities
         generations = GraphicsUtilities.sort(nodes, routes)
         
         # calculate width and height of all elements
@@ -345,6 +345,7 @@
         @param y y-coordinate (float)
         @param isRbModule flag indicating a Ruby module (boolean)
         """
+        from .ClassItem import ClassItem, ClassModel
         meths = sorted(_class.methods.keys())
         attrs = sorted(_class.attributes.keys())
         name = _class.name
@@ -366,6 +367,7 @@
         @param x x-coordinate (float)
         @param y y-coordinate (float)
         """
+        from .ClassItem import ClassItem, ClassModel
         cl = ClassModel(_class)
         cw = ClassItem(cl, True, x, y, noAttrs=self.noAttrs, scene=self.scene)
         cw.setId(self.umlView.getItemId())
@@ -381,6 +383,7 @@
         @param x x-coordinate (float)
         @param y y-coordinate (float)
         """
+        from .PackageItem import PackageItem, PackageModel
         pm = PackageModel(name, modules)
         pw = PackageItem(pm, x, y, scene=self.scene)
         pw.setId(self.umlView.getItemId())
@@ -392,6 +395,7 @@
         
         @param routes list of relationsships
         """
+        from .AssociationItem import AssociationItem, Generalisation
         for route in routes:
             if len(route) > 1:
                 assoc = AssociationItem(
--- a/Graphics/UMLClassDiagramBuilder.py	Sun Feb 10 14:48:24 2013 +0100
+++ b/Graphics/UMLClassDiagramBuilder.py	Sun Feb 10 15:17:59 2013 +0100
@@ -16,9 +16,6 @@
 import Preferences
 
 from .UMLDiagramBuilder import UMLDiagramBuilder
-from .ClassItem import ClassItem, ClassModel
-from .AssociationItem import AssociationItem, Generalisation
-from . import GraphicsUtilities
 
 
 class UMLClassDiagramBuilder(UMLDiagramBuilder):
@@ -152,6 +149,7 @@
         
         The algorithm is borrowed from Boa Constructor.
         """
+        from . import GraphicsUtilities
         generations = GraphicsUtilities.sort(nodes, routes)
         
         # calculate width and height of all elements
@@ -226,6 +224,7 @@
         @param y y-coordinate (float)
         @param isRbModule flag indicating a Ruby module (boolean)
         """
+        from .ClassItem import ClassItem, ClassModel
         meths = sorted(_class.methods.keys())
         attrs = sorted(_class.attributes.keys())
         name = _class.name
@@ -249,6 +248,7 @@
         @param x x-coordinate (float)
         @param y y-coordinate (float)
         """
+        from .ClassItem import ClassItem, ClassModel
         cl = ClassModel(_class)
         cw = ClassItem(cl, True, x, y, noAttrs=self.noAttrs, scene=self.scene)
         cw.setId(self.umlView.getItemId())
@@ -262,6 +262,7 @@
         
         @param routes list of relationsships
         """
+        from .AssociationItem import AssociationItem, Generalisation
         for route in routes:
             if len(route) > 1:
                 assoc = AssociationItem(
--- a/Graphics/UMLDialog.py	Sun Feb 10 14:48:24 2013 +0100
+++ b/Graphics/UMLDialog.py	Sun Feb 10 15:17:59 2013 +0100
@@ -13,8 +13,6 @@
 from E5Gui import E5MessageBox, E5FileDialog
 from E5Gui.E5MainWindow import E5MainWindow
 
-from .UMLGraphicsView import UMLGraphicsView
-
 import UI.Config
 import UI.PixmapCache
 
@@ -50,6 +48,7 @@
         self.__diagramType = diagramType
         self.__project = project
         
+        from .UMLGraphicsView import UMLGraphicsView
         self.scene = QGraphicsScene(0.0, 0.0, 800.0, 600.0)
         self.umlView = UMLGraphicsView(self.scene, parent=self)
         self.builder = self.__diagramBuilder(self.__diagramType, path, **kwargs)
--- a/Graphics/UMLGraphicsView.py	Sun Feb 10 14:48:24 2013 +0100
+++ b/Graphics/UMLGraphicsView.py	Sun Feb 10 15:17:59 2013 +0100
@@ -16,11 +16,6 @@
 from E5Gui.E5ZoomWidget import E5ZoomWidget
 
 from .UMLItem import UMLItem
-from .AssociationItem import AssociationItem
-from .ClassItem import ClassItem
-from .ModuleItem import ModuleItem
-from .PackageItem import PackageItem
-from .UMLSceneSizeDialog import UMLSceneSizeDialog
 
 import UI.Config
 import UI.PixmapCache
@@ -300,6 +295,7 @@
         """
         Private method to handle the set size context menu entry.
         """
+        from .UMLSceneSizeDialog import UMLSceneSizeDialog
         rect = self._getDiagramRect(10)
         sceneRect = self.scene().sceneRect()
         dlg = UMLSceneSizeDialog(sceneRect.width(), sceneRect.height(),
@@ -677,6 +673,7 @@
                 item.getId(), item.x(), item.y(), item.getItemType(),
                 item.buildItemDataString()))
         
+        from .AssociationItem import AssociationItem
         for item in self.filteredItems(self.scene().items(), AssociationItem):
             lines.append("association: {0}".format(item.buildAssociationItemDataString()))
         
@@ -697,6 +694,11 @@
             return False, 0
         self.diagramName = data[0].split(": ", 1)[1].strip()
         
+        from .ClassItem import ClassItem
+        from .ModuleItem import ModuleItem
+        from .PackageItem import PackageItem
+        from .AssociationItem import AssociationItem
+        
         linenum = 0
         for line in data[1:]:
             linenum += 1

eric ide

mercurial