Mon, 11 Feb 2013 18:13:10 +0100
Continued implementing the delayed import.
--- a/PyUnit/UnittestDialog.py Mon Feb 11 14:08:08 2013 +0100 +++ b/PyUnit/UnittestDialog.py Mon Feb 11 18:13:10 2013 +0100 @@ -23,9 +23,6 @@ from E5Gui.E5MainWindow import E5MainWindow from .Ui_UnittestDialog import Ui_UnittestDialog -from .Ui_UnittestStacktraceDialog import Ui_UnittestStacktraceDialog - -from DebugClients.Python3.coverage import coverage import UI.PixmapCache @@ -339,6 +336,8 @@ mainScript = os.path.abspath(prog) else: mainScript = os.path.abspath(prog) + + from DebugClients.Python3.coverage import coverage cover = coverage( data_file="{0}.coverage".format(os.path.splitext(mainScript)[0])) cover.use_cache(True) @@ -593,6 +592,7 @@ test, tracebackText = lbitem.data(Qt.UserRole) # now build the dialog + from .Ui_UnittestStacktraceDialog import Ui_UnittestStacktraceDialog self.dlg = QDialog() ui = Ui_UnittestStacktraceDialog() ui.setupUi(self.dlg)
--- a/QScintilla/Editor.py Mon Feb 11 14:08:08 2013 +0100 +++ b/QScintilla/Editor.py Mon Feb 11 18:13:10 2013 +0100 @@ -20,29 +20,10 @@ from E5Gui.E5Application import e5App from E5Gui import E5FileDialog, E5MessageBox -from . import Exporters -from . import Lexers -from . import TypingCompleters from .QsciScintillaCompat import QsciScintillaCompat, QSCINTILLA_VERSION -from .SpellChecker import SpellChecker -from .SpellCheckingDialog import SpellCheckingDialog - -from Debugger.EditBreakpointDialog import EditBreakpointDialog - -from DebugClients.Python3.coverage import coverage - -from DataViews.CodeMetricsDialog import CodeMetricsDialog -from DataViews.PyCoverageDialog import PyCoverageDialog -from DataViews.PyProfileDialog import PyProfileDialog - -from Tasks.Task import Task - -from .Printer import Printer import Preferences import Utilities -from Utilities.py3flakes.checker import Checker -from Utilities.py3flakes.messages import ImportStarUsed import UI.PixmapCache @@ -829,6 +810,7 @@ self.languagesActGrp.addAction(self.noLanguageAct) menu.addSeparator() + from . import Lexers self.supportedLanguages = {} supportedLanguages = Lexers.getSupportedLanguages() languages = sorted(list(supportedLanguages.keys())) @@ -920,6 +902,7 @@ """ menu = QMenu(self.trUtf8("Export as")) + from . import Exporters supportedExporters = Exporters.getSupportedFormats() exporters = sorted(list(supportedExporters.keys())) for exporter in exporters: @@ -1151,6 +1134,7 @@ @param exporterFormat format the file should be exported into (string) """ if exporterFormat: + from . import Exporters exporter = Exporters.getExporter(exporterFormat, self) if exporter: exporter.exportSource() @@ -1440,6 +1424,7 @@ pyname = language.split("|", 1)[1] language = "" + from . import Lexers self.lexer_ = Lexers.getLexer(language, self, pyname=pyname) if self.lexer_ is None: self.setLexer() @@ -1548,6 +1533,7 @@ elif self.isRubyFile(): apiLanguage = "Ruby" + from . import TypingCompleters self.completer = TypingCompleters.getCompleter(apiLanguage, self) def getCompleter(self): @@ -2094,6 +2080,7 @@ if not index.isValid(): return + from Debugger.EditBreakpointDialog import EditBreakpointDialog dlg = EditBreakpointDialog((self.fileName, ln), (cond, temp, enabled, ignorecount), self.condHistory, self, modal=True) @@ -2263,6 +2250,7 @@ """ Public slot to print the text. """ + from .Printer import Printer printer = Printer(mode=QPrinter.HighResolution) sb = e5App().getObject("UserInterface").statusBar() printDialog = QPrintDialog(printer, self) @@ -2299,6 +2287,7 @@ Public slot to show a print preview of the text. """ from PyQt4.QtGui import QPrintPreviewDialog + from .Printer import Printer printer = Printer(mode=QPrinter.HighResolution) fn = self.getFileName() @@ -2368,6 +2357,7 @@ """ Public slot to extract all tasks. """ + from Tasks.Task import Task markers = { Task.TypeWarning: Preferences.getTasks("TasksWarningMarkers").split(), Task.TypeNote: Preferences.getTasks("TasksNoteMarkers").split(), @@ -2774,6 +2764,8 @@ path = os.path.dirname(self.fileName) if not path: path = Preferences.getMultiProject("Workspace") or Utilities.getHomeDir() + + from . import Lexers if self.fileName: filterPattern = "(*{0})".format(os.path.splitext(self.fileName)[1]) for filter in Lexers.getSaveFileFiltersList(True): @@ -4441,6 +4433,7 @@ self.menuActs["TypingAidsEnabled"].setChecked( self.completer is not None and self.completer.isEnabled()) + from .SpellChecker import SpellChecker spellingAvailable = SpellChecker.isAvailable() self.menuActs["SpellCheck"].setEnabled(spellingAvailable) self.menuActs["SpellCheckSelection"].setEnabled( @@ -4764,6 +4757,9 @@ int(errorline), int(errorindex), True, _error) else: if Preferences.getFlakes("IncludeInSyntaxCheck"): + from Utilities.py3flakes.checker import Checker + from Utilities.py3flakes.messages import ImportStarUsed + ignoreStarImportWarnings = \ Preferences.getFlakes("IgnoreStarImportWarnings") try: @@ -4827,6 +4823,7 @@ if not self.checkDirty(): return + from DataViews.CodeMetricsDialog import CodeMetricsDialog self.codemetrics = CodeMetricsDialog() self.codemetrics.show() self.codemetrics.start(self.fileName) @@ -4892,6 +4889,7 @@ """ fn = self.__getCodeCoverageFile() if fn: + from DataViews.PyCoverageDialog import PyCoverageDialog self.codecoverage = PyCoverageDialog() self.codecoverage.show() self.codecoverage.start(fn, self.fileName) @@ -4913,6 +4911,7 @@ fn = self.__getCodeCoverageFile() if fn: + from DebugClients.Python3.coverage import coverage cover = coverage(data_file=fn) cover.use_cache(True) cover.load() @@ -5035,6 +5034,7 @@ else: return + from DataViews.PyProfileDialog import PyProfileDialog self.profiledata = PyProfileDialog() self.profiledata.show() self.profiledata.start(fn, self.fileName) @@ -6242,6 +6242,7 @@ if Preferences.getEditor("SpellCheckingEnabled"): self.__spellCheckStringsOnly = Preferences.getEditor("SpellCheckStringsOnly") if self.spell is None: + from .SpellChecker import SpellChecker self.spell = SpellChecker(self, self.spellingIndicator, checkRegion=self.isSpellCheckRegion) self.setSpellingForProject() @@ -6316,6 +6317,7 @@ """ if self.spell: cline, cindex = self.getCursorPosition() + from .SpellCheckingDialog import SpellCheckingDialog dlg = SpellCheckingDialog(self.spell, 0, self.length(), self) dlg.exec_() self.setCursorPosition(cline, cindex) @@ -6326,6 +6328,7 @@ """ Private slot to spell check the current selection. """ + from .SpellCheckingDialog import SpellCheckingDialog sline, sindex, eline, eindex = self.getSelection() startPos = self.positionFromLineIndex(sline, sindex) endPos = self.positionFromLineIndex(eline, eindex) @@ -6336,6 +6339,7 @@ """ Private slot to check the word below the spelling context menu. """ + from .SpellCheckingDialog import SpellCheckingDialog line, index = self.lineIndexFromPosition(self.spellingMenuPos) wordStart, wordEnd = self.getWordBoundaries(line, index) wordStartPos = self.positionFromLineIndex(line, wordStart)
--- a/QScintilla/EditorAssembly.py Mon Feb 11 14:08:08 2013 +0100 +++ b/QScintilla/EditorAssembly.py Mon Feb 11 18:13:10 2013 +0100 @@ -11,10 +11,6 @@ from PyQt4.QtCore import QTimer from PyQt4.QtGui import QWidget, QGridLayout, QComboBox -from .Editor import Editor - -from Utilities.ModuleParser import Module, Function, getTypeFromTypeName - import UI.PixmapCache @@ -43,6 +39,7 @@ self.__globalsCombo = QComboBox() self.__membersCombo = QComboBox() + from .Editor import Editor self.__editor = Editor(dbs, fn, vm, filetype, editor, tv) self.__layout.addWidget(self.__globalsCombo, 0, 0) @@ -125,6 +122,7 @@ return # step 2.1: add class methods + from Utilities.ModuleParser import Function items = {} for meth in entry.methods.values(): if meth.modifier == Function.Static: @@ -190,6 +188,8 @@ """ Private method to parse the editor source and repopulate the globals combo. """ + from Utilities.ModuleParser import Module, getTypeFromTypeName + self.__module = None sourceType = getTypeFromTypeName(self.__editor.determineFileType()) if sourceType != -1:
--- a/QScintilla/MiniEditor.py Mon Feb 11 14:08:08 2013 +0100 +++ b/QScintilla/MiniEditor.py Mon Feb 11 18:13:10 2013 +0100 @@ -21,15 +21,11 @@ from E5Gui import E5MessageBox, E5FileDialog from E5Gui.E5MainWindow import E5MainWindow -from . import Lexers from .QsciScintillaCompat import QsciScintillaCompat -from .SearchReplaceWidget import SearchReplaceWidget import UI.PixmapCache import UI.Config -from .Printer import Printer - from Globals import isMacPlatform import Utilities @@ -127,6 +123,7 @@ "search": [], "replace": [] } + from .SearchReplaceWidget import SearchReplaceWidget self.searchDlg = SearchReplaceWidget(False, self, self) self.replaceDlg = SearchReplaceWidget(True, self, self) @@ -2237,6 +2234,7 @@ """ Private slot to print the text. """ + from .Printer import Printer printer = Printer(mode=QPrinter.HighResolution) sb = self.statusBar() printDialog = QPrintDialog(printer, self) @@ -2272,6 +2270,7 @@ Private slot to show a print preview of the text. """ from PyQt4.QtGui import QPrintPreviewDialog + from .Printer import Printer printer = Printer(mode=QPrinter.HighResolution) if self.__curFile: @@ -2338,6 +2337,7 @@ self.languagesActGrp.addAction(self.noLanguageAct) menu.addSeparator() + from . import Lexers self.supportedLanguages = {} supportedLanguages = Lexers.getSupportedLanguages() languages = sorted(list(supportedLanguages.keys())) @@ -2501,6 +2501,7 @@ pyname = language.split("|", 1)[1] language = "" + from . import Lexers self.lexer_ = Lexers.getLexer(language, self.__textEdit, pyname=pyname) if self.lexer_ is None: self.__textEdit.setLexer()
--- a/QScintilla/SearchReplaceWidget.py Mon Feb 11 14:08:08 2013 +0100 +++ b/QScintilla/SearchReplaceWidget.py Mon Feb 11 18:13:10 2013 +0100 @@ -11,9 +11,6 @@ from PyQt4.QtGui import QWidget, QHBoxLayout, QToolButton, QScrollArea, QSizePolicy, \ QFrame -from .Ui_SearchWidget import Ui_SearchWidget -from .Ui_ReplaceWidget import Ui_ReplaceWidget - from .Editor import Editor from E5Gui.E5Action import E5Action @@ -52,6 +49,7 @@ self.findHistory = vm.getSRHistory('search') if replace: + from .Ui_ReplaceWidget import Ui_ReplaceWidget self.replaceHistory = vm.getSRHistory('replace') self.ui = Ui_ReplaceWidget() whatsThis = self.trUtf8(r""" @@ -63,6 +61,7 @@ """ ) else: + from .Ui_SearchWidget import Ui_SearchWidget self.ui = Ui_SearchWidget() whatsThis = self.trUtf8(r""" <b>Find</b>
--- a/QScintilla/Shell.py Mon Feb 11 14:08:08 2013 +0100 +++ b/QScintilla/Shell.py Mon Feb 11 18:13:10 2013 +0100 @@ -18,18 +18,14 @@ from E5Gui.E5Application import e5App from E5Gui import E5MessageBox -from . import Lexers from .QsciScintillaCompat import QsciScintillaCompat import Preferences import UI.PixmapCache -from UI.SearchWidget import SearchWidget from Debugger.DebugClientCapabilities import HasCompleter -from .ShellHistoryDialog import ShellHistoryDialog - class ShellAssembly(QWidget): """ @@ -47,6 +43,8 @@ super().__init__(parent) self.__shell = Shell(dbs, vm, self) + + from UI.SearchWidget import SearchWidget self.__searchWidget = SearchWidget(self.__shell, self, horizontal) self.__searchWidget.hide() @@ -290,6 +288,7 @@ """ self.language = language if Preferences.getShell("SyntaxHighlightingEnabled"): + from . import Lexers self.lexer_ = Lexers.getLexer(self.language, self) else: self.lexer_ = None @@ -568,6 +567,7 @@ """ Private slot to show the shell history dialog. """ + from .ShellHistoryDialog import ShellHistoryDialog dlg = ShellHistoryDialog(self.history, self.vm, self) if dlg.exec_() == QDialog.Accepted: self.historyLists[self.clientType] = dlg.getHistory()
--- a/QScintilla/Terminal.py Mon Feb 11 14:08:08 2013 +0100 +++ b/QScintilla/Terminal.py Mon Feb 11 18:13:10 2013 +0100 @@ -19,16 +19,12 @@ from E5Gui.E5Application import e5App -from . import Lexers from .QsciScintillaCompat import QsciScintillaCompat import Preferences import Utilities import UI.PixmapCache -from UI.SearchWidget import SearchWidget - -from .ShellHistoryDialog import ShellHistoryDialog class TerminalAssembly(QWidget): @@ -47,6 +43,8 @@ self.setWindowIcon(UI.PixmapCache.getIcon("eric.png")) self.__terminal = Terminal(vm, self) + + from UI.SearchWidget import SearchWidget self.__searchWidget = SearchWidget(self.__terminal, self) self.__searchWidget.hide() @@ -299,6 +297,7 @@ else: self.language = "Bash" if Preferences.getTerminal("SyntaxHighlightingEnabled"): + from . import Lexers self.lexer_ = Lexers.getLexer(self.language, self) else: self.lexer_ = None @@ -478,6 +477,7 @@ """ Private slot to show the shell history dialog. """ + from .ShellHistoryDialog import ShellHistoryDialog dlg = ShellHistoryDialog(self.history, self.vm, self) if dlg.exec_() == QDialog.Accepted: self.history = dlg.getHistory()
--- a/Snapshot/SnapWidget.py Mon Feb 11 14:08:08 2013 +0100 +++ b/Snapshot/SnapWidget.py Mon Feb 11 18:13:10 2013 +0100 @@ -22,10 +22,6 @@ from .Ui_SnapWidget import Ui_SnapWidget -from .SnapshotRegionGrabber import SnapshotRegionGrabber -from .SnapshotFreehandGrabber import SnapshotFreehandGrabber -from .SnapshotTimer import SnapshotTimer - import UI.PixmapCache import Preferences import Globals @@ -95,6 +91,7 @@ self.preview.startDrag.connect(self.__dragSnapshot) + from .SnapshotTimer import SnapshotTimer self.__grabTimer = SnapshotTimer() self.__grabTimer.timeout.connect(self.__grabTimerTimeout) self.__updateTimer = QTimer() @@ -323,6 +320,7 @@ """ Private method to grab a rectangular screen region. """ + from .SnapshotRegionGrabber import SnapshotRegionGrabber self.__grabber = SnapshotRegionGrabber(mode=SnapshotRegionGrabber.Rectangle) self.__grabber.grabbed.connect(self.__captured) @@ -330,6 +328,7 @@ """ Private method to grab an elliptical screen region. """ + from .SnapshotRegionGrabber import SnapshotRegionGrabber self.__grabber = SnapshotRegionGrabber(mode=SnapshotRegionGrabber.Ellipse) self.__grabber.grabbed.connect(self.__captured) @@ -337,6 +336,7 @@ """ Private method to grab a non-rectangular screen region. """ + from .SnapshotFreehandGrabber import SnapshotFreehandGrabber self.__grabber = SnapshotFreehandGrabber() self.__grabber.grabbed.connect(self.__captured)
--- a/SqlBrowser/SqlBrowser.py Mon Feb 11 14:08:08 2013 +0100 +++ b/SqlBrowser/SqlBrowser.py Mon Feb 11 18:13:10 2013 +0100 @@ -15,8 +15,6 @@ from E5Gui import E5MessageBox from E5Gui.E5MainWindow import E5MainWindow -from .SqlBrowserWidget import SqlBrowserWidget - import UI.PixmapCache import UI.Config @@ -42,6 +40,7 @@ self.setStyle(Preferences.getUI("Style"), Preferences.getUI("StyleSheet")) + from .SqlBrowserWidget import SqlBrowserWidget self.__browser = SqlBrowserWidget(self) self.setCentralWidget(self.__browser)
--- a/SqlBrowser/SqlBrowserWidget.py Mon Feb 11 14:08:08 2013 +0100 +++ b/SqlBrowser/SqlBrowserWidget.py Mon Feb 11 18:13:10 2013 +0100 @@ -13,7 +13,6 @@ from E5Gui import E5MessageBox -from .SqlConnectionDialog import SqlConnectionDialog from .Ui_SqlBrowserWidget import Ui_SqlBrowserWidget @@ -143,6 +142,7 @@ """ Public slot to add a database connection via an input dialog. """ + from .SqlConnectionDialog import SqlConnectionDialog dlg = SqlConnectionDialog(self) if dlg.exec_() == QDialog.Accepted: driver, dbName, user, password, host, port = dlg.getData()
--- a/Tasks/TaskViewer.py Mon Feb 11 14:08:08 2013 +0100 +++ b/Tasks/TaskViewer.py Mon Feb 11 18:13:10 2013 +0100 @@ -22,9 +22,6 @@ from E5Gui import E5MessageBox from .Task import Task -from .TaskPropertiesDialog import TaskPropertiesDialog -from .TaskFilter import TaskFilter -from .TaskFilterConfigDialog import TaskFilterConfigDialog import UI.PixmapCache @@ -70,6 +67,7 @@ self.project = project self.projectTasksScanFilter = "" + from .TaskFilter import TaskFilter self.taskFilter = TaskFilter() self.taskFilter.setActive(False) @@ -351,6 +349,7 @@ """ Private slot to handle the "Properties" context menu entry """ + from .TaskPropertiesDialog import TaskPropertiesDialog task = self.currentItem() dlg = TaskPropertiesDialog(task, self, self.projectOpen) ro = task.getFilename() != "" @@ -369,6 +368,7 @@ """ Private slot to handle the "New Task" context menu entry. """ + from .TaskPropertiesDialog import TaskPropertiesDialog dlg = TaskPropertiesDialog(None, self, self.projectOpen) if dlg.exec_() == QDialog.Accepted: data = dlg.getData() @@ -478,6 +478,7 @@ """ Private slot to handle the "Configure filter" context menu entry. """ + from .TaskFilterConfigDialog import TaskFilterConfigDialog dlg = TaskFilterConfigDialog(self.taskFilter) if dlg.exec_() == QDialog.Accepted: dlg.configureTaskFilter(self.taskFilter)
--- a/Templates/TemplatePropertiesDialog.py Mon Feb 11 14:08:08 2013 +0100 +++ b/Templates/TemplatePropertiesDialog.py Mon Feb 11 18:13:10 2013 +0100 @@ -10,8 +10,6 @@ from PyQt4.QtCore import QRegExp, Qt, pyqtSlot from PyQt4.QtGui import QDialog, QRegExpValidator -import QScintilla.Lexers - from .Ui_TemplatePropertiesDialog import Ui_TemplatePropertiesDialog from E5Gui import E5MessageBox @@ -45,6 +43,7 @@ self.nameEdit) self.nameEdit.setValidator(self.__nameValidator) + import QScintilla.Lexers self.languages = [("All", self.trUtf8("All"))] supportedLanguages = QScintilla.Lexers.getSupportedLanguages() languages = sorted(supportedLanguages.keys())
--- a/Templates/TemplateViewer.py Mon Feb 11 14:08:08 2013 +0100 +++ b/Templates/TemplateViewer.py Mon Feb 11 18:13:10 2013 +0100 @@ -17,15 +17,8 @@ from E5Gui.E5Application import e5App from E5Gui import E5MessageBox, E5FileDialog -from .TemplatePropertiesDialog import TemplatePropertiesDialog -from .TemplateMultipleVariablesDialog import TemplateMultipleVariablesDialog -from .TemplateSingleVariableDialog import TemplateSingleVariableDialog - import Preferences -from E5XML.TemplatesReader import TemplatesReader -from E5XML.TemplatesWriter import TemplatesWriter - import UI.PixmapCache import Utilities @@ -471,6 +464,7 @@ else: groupName = itm.getGroupName() + from .TemplatePropertiesDialog import TemplatePropertiesDialog dlg = TemplatePropertiesDialog(self) dlg.setSelectedGroup(groupName) if dlg.exec_() == QDialog.Accepted: @@ -482,6 +476,7 @@ """ Private slot to handle the Add Group context menu action. """ + from .TemplatePropertiesDialog import TemplatePropertiesDialog dlg = TemplatePropertiesDialog(self, True) if dlg.exec_() == QDialog.Accepted: name, language = dlg.getData() @@ -497,6 +492,8 @@ editGroup = False else: editGroup = True + + from .TemplatePropertiesDialog import TemplatePropertiesDialog dlg = TemplatePropertiesDialog(self, editGroup, itm) if dlg.exec_() == QDialog.Accepted: if editGroup: @@ -675,11 +672,14 @@ if vars: if Preferences.getTemplates("SingleDialog"): + from .TemplateMultipleVariablesDialog import \ + TemplateMultipleVariablesDialog dlg = TemplateMultipleVariablesDialog(vars, self) if dlg.exec_() == QDialog.Accepted: varValues.update(dlg.getVariables()) ok = True else: + from .TemplateSingleVariableDialog import TemplateSingleVariableDialog for var in vars: dlg = TemplateSingleVariableDialog(var, self) if dlg.exec_() == QDialog.Accepted: @@ -921,6 +921,7 @@ .format(filename)) return False + from E5XML.TemplatesWriter import TemplatesWriter TemplatesWriter(f, self).writeXML() f.close() @@ -939,6 +940,7 @@ f = QFile(filename) if f.open(QIODevice.ReadOnly): + from E5XML.TemplatesReader import TemplatesReader reader = TemplatesReader(f, viewer=self) reader.readXML() f.close()
--- a/Tools/TRPreviewer.py Mon Feb 11 14:08:08 2013 +0100 +++ b/Tools/TRPreviewer.py Mon Feb 11 18:13:10 2013 +0100 @@ -18,8 +18,6 @@ from E5Gui import E5MessageBox, E5FileDialog from E5Gui.E5MainWindow import E5MainWindow -from .TRSingleApplication import TRSingleApplicationServer - import UI.PixmapCache import UI.Config @@ -106,6 +104,7 @@ self.__updateActions() # fire up the single application server + from .TRSingleApplication import TRSingleApplicationServer self.SAServer = TRSingleApplicationServer(self) self.SAServer.loadForm.connect(self.preview.loadWidget) self.SAServer.loadTranslation.connect(self.translations.add)
--- a/UI/BrowserModel.py Mon Feb 11 14:08:08 2013 +0100 +++ b/UI/BrowserModel.py Mon Feb 11 18:13:10 2013 +0100 @@ -14,9 +14,6 @@ from PyQt4.QtCore import QDir, QModelIndex, QAbstractItemModel, QFileSystemWatcher, Qt from PyQt4.QtGui import QImageReader, QApplication, QFont -import Utilities.ClassBrowsers -import Utilities.ClassBrowsers.ClbrBaseClasses - import UI.PixmapCache import Preferences import Utilities @@ -529,6 +526,7 @@ @param parentItem reference to the file item to be populated @param repopulate flag indicating a repopulation (boolean) """ + import Utilities.ClassBrowsers moduleName = parentItem.moduleName() fileName = parentItem.fileName() try: @@ -1227,6 +1225,7 @@ self._classObject = cl self._filename = filename + import Utilities.ClassBrowsers.ClbrBaseClasses self.isfunction = isinstance(self._classObject, Utilities.ClassBrowsers.ClbrBaseClasses.Function) self.ismodule = isinstance(self._classObject, @@ -1328,6 +1327,7 @@ name = fn.name BrowserItem.__init__(self, parent, name) + import Utilities.ClassBrowsers.ClbrBaseClasses self.type_ = BrowserItemMethod self.name = name self._functionObject = fn
--- a/UI/LogView.py Mon Feb 11 14:08:08 2013 +0100 +++ b/UI/LogView.py Mon Feb 11 18:13:10 2013 +0100 @@ -13,8 +13,6 @@ from E5Gui.E5Application import e5App -from .SearchWidget import SearchWidget - import UI.PixmapCache import Preferences @@ -34,6 +32,7 @@ self.setWindowIcon(UI.PixmapCache.getIcon("eric.png")) self.__logViewer = LogViewerEdit(self) + from .SearchWidget import SearchWidget self.__searchWidget = SearchWidget(self.__logViewer, self) self.__searchWidget.hide()
--- a/UI/UserInterface.py Mon Feb 11 14:08:08 2013 +0100 +++ b/UI/UserInterface.py Mon Feb 11 18:13:10 2013 +0100 @@ -20,41 +20,8 @@ from PyQt4.QtNetwork import QNetworkProxyFactory, QNetworkAccessManager, \ QNetworkRequest, QNetworkReply -from Debugger.DebugUI import DebugUI -from Debugger.DebugServer import DebugServer -from Debugger.DebugViewer import DebugViewer -from Debugger.DebugClientCapabilities import HasUnittest - -from QScintilla.Shell import ShellAssembly -from QScintilla.Terminal import TerminalAssembly -from QScintilla.SpellChecker import SpellChecker - -from Helpviewer.HelpWindow import HelpWindow - -from Preferences import Shortcuts - -from PluginManager.PluginManager import PluginManager - -from Project.Project import Project -from Project.ProjectBrowser import ProjectBrowser - -from MultiProject.MultiProject import MultiProject -from MultiProject.MultiProjectBrowser import MultiProjectBrowser - -from Tasks.TaskViewer import TaskViewer - -from Templates.TemplateViewer import TemplateViewer - -from Cooperation.ChatWidget import ChatWidget - -from Network.IRC.IrcWidget import IrcWidget - -from .Browser import Browser from .Info import Version, BugAddress, Program, FeatureAddress from . import Config -from .LogView import LogViewer -from .SymbolsWidget import SymbolsWidget -from .NumbersWidget import NumbersWidget from E5Gui.E5SingleApplication import E5SingleApplicationServer from E5Gui.E5Action import E5Action, createActionGroup @@ -64,10 +31,7 @@ from E5Gui.E5MainWindow import E5MainWindow from E5Gui.E5ZoomWidget import E5ZoomWidget -from VCS.StatusMonitorLed import StatusMonitorLed - import Preferences -import ViewManager import Utilities import UI.PixmapCache @@ -220,15 +184,20 @@ self.profiles = Preferences.getUI("ViewProfiles") # Generate the debug server object + from Debugger.DebugServer import DebugServer debugServer = DebugServer() # Generate an empty project object and multi project object + from Project.Project import Project self.project = Project(self) + + from MultiProject.MultiProject import MultiProject self.multiProject = MultiProject(self.project, self) splash.showMessage(self.trUtf8("Initializing Plugin Manager...")) # Initialize the Plugin Manager (Plugins are initialized later + from PluginManager.PluginManager import PluginManager self.pluginManager = PluginManager(self, develPlugin=plugin) splash.showMessage(self.trUtf8("Generating Main User Interface...")) @@ -241,6 +210,7 @@ # Generate the debugger part of the ui logging.debug("Creating Debugger UI...") + from Debugger.DebugUI import DebugUI self.debuggerUI = DebugUI(self, self.viewmanager, debugServer, self.debugViewer, self.project) self.debugViewer.setDebugger(self.debuggerUI) @@ -445,6 +415,7 @@ self.__initExternalToolsActions() # create a dummy help window for shortcuts handling + from Helpviewer.HelpWindow import HelpWindow self.dummyHelpViewer = HelpWindow(None, '.', None, 'help viewer', True, True) # register all relevant objects @@ -511,6 +482,7 @@ self.pluginManager.activatePlugins() # now read the keyboard shortcuts for all the actions + from Preferences import Shortcuts Shortcuts.readShortcuts() # restore toolbar manager state @@ -551,6 +523,7 @@ self.__versionCheckProgress = None # set spellchecker defaults + from QScintilla.SpellChecker import SpellChecker SpellChecker.setDefaultLanguage( Preferences.getEditor("SpellCheckingDefaultLanguage")) @@ -565,6 +538,7 @@ """ # Create the view manager depending on the configuration setting logging.debug("Creating Viewmanager...") + import ViewManager self.viewmanager = \ ViewManager.factory(self, self, debugServer, self.pluginManager) centralWidget = QWidget() @@ -621,6 +595,7 @@ self.rToolbox, self.trUtf8("Right Toolbox")) # Create the project browser + from Project.ProjectBrowser import ProjectBrowser self.projectBrowser = ProjectBrowser(self.project, None, embeddedBrowser=(self.embeddedFileBrowser == 2)) self.lToolbox.addItem(self.projectBrowser, @@ -628,12 +603,14 @@ self.trUtf8("Project-Viewer")) # Create the multi project browser + from MultiProject.MultiProjectBrowser import MultiProjectBrowser self.multiProjectBrowser = MultiProjectBrowser(self.multiProject) self.lToolbox.addItem(self.multiProjectBrowser, UI.PixmapCache.getIcon("multiProjectViewer.png"), self.trUtf8("Multiproject-Viewer")) # Create the template viewer part of the user interface + from Templates.TemplateViewer import TemplateViewer self.templateViewer = TemplateViewer(None, self.viewmanager) self.lToolbox.addItem(self.templateViewer, @@ -641,6 +618,7 @@ self.trUtf8("Template-Viewer")) # Create the debug viewer maybe without the embedded shell + from Debugger.DebugViewer import DebugViewer self.debugViewer = DebugViewer(debugServer, True, self.viewmanager, None, embeddedShell=self.embeddedShell, @@ -650,18 +628,21 @@ self.trUtf8("Debug-Viewer")) # Create the chat part of the user interface + from Cooperation.ChatWidget import ChatWidget self.cooperation = ChatWidget(self) self.rToolbox.addItem(self.cooperation, UI.PixmapCache.getIcon("cooperation.png"), self.trUtf8("Cooperation")) # Create the IRC part of the user interface + from Network.IRC.IrcWidget import IrcWidget self.irc = IrcWidget(self) self.rToolbox.addItem(self.irc, UI.PixmapCache.getIcon("irc.png"), self.trUtf8("IRC")) # Create the terminal part of the user interface + from QScintilla.Terminal import TerminalAssembly self.terminalAssembly = TerminalAssembly(self.viewmanager) self.terminal = self.terminalAssembly.terminal() self.hToolbox.addItem(self.terminalAssembly, @@ -669,12 +650,14 @@ self.trUtf8("Terminal")) # Create the task viewer part of the user interface + from Tasks.TaskViewer import TaskViewer self.taskViewer = TaskViewer(None, self.project) self.hToolbox.addItem(self.taskViewer, UI.PixmapCache.getIcon("task.png"), self.trUtf8("Task-Viewer")) # Create the log viewer part of the user interface + from .LogView import LogViewer self.logViewer = LogViewer() self.hToolbox.addItem(self.logViewer, UI.PixmapCache.getIcon("logViewer.png"), @@ -684,6 +667,7 @@ self.shell = self.debugViewer.shell else: # Create the shell + from QScintilla.Shell import ShellAssembly self.shellAssembly = ShellAssembly(debugServer, self.viewmanager, True) self.shell = self.shellAssembly.shell() self.hToolbox.insertItem(0, self.shellAssembly, @@ -692,6 +676,7 @@ if self.embeddedFileBrowser == 0: # separate window # Create the file browser + from .Browser import Browser self.browser = Browser() self.lToolbox.addItem(self.browser, UI.PixmapCache.getIcon("browser.png"), @@ -702,12 +687,14 @@ self.browser = self.projectBrowser.fileBrowser # Create the symbols viewer + from .SymbolsWidget import SymbolsWidget self.symbolsViewer = SymbolsWidget() self.lToolbox.addItem(self.symbolsViewer, UI.PixmapCache.getIcon("symbols.png"), self.trUtf8("Symbols")) # Create the numbers viewer + from .NumbersWidget import NumbersWidget self.numbersViewer = NumbersWidget() self.hToolbox.addItem(self.numbersViewer, UI.PixmapCache.getIcon("numbers.png"), @@ -734,6 +721,7 @@ # Create the project browser logging.debug("Creating Project Browser...") + from Project.ProjectBrowser import ProjectBrowser self.projectBrowser = ProjectBrowser(self.project, None, embeddedBrowser=(self.embeddedFileBrowser == 2)) self.leftSidebar.addTab(self.projectBrowser, @@ -742,6 +730,7 @@ # Create the multi project browser logging.debug("Creating Multiproject Browser...") + from MultiProject.MultiProjectBrowser import MultiProjectBrowser self.multiProjectBrowser = MultiProjectBrowser(self.multiProject) self.leftSidebar.addTab(self.multiProjectBrowser, UI.PixmapCache.getIcon("multiProjectViewer.png"), @@ -749,6 +738,7 @@ # Create the template viewer part of the user interface logging.debug("Creating Template Viewer...") + from Templates.TemplateViewer import TemplateViewer self.templateViewer = TemplateViewer(None, self.viewmanager) self.leftSidebar.addTab(self.templateViewer, @@ -757,6 +747,7 @@ # Create the debug viewer maybe without the embedded shell logging.debug("Creating Debug Viewer...") + from Debugger.DebugViewer import DebugViewer self.debugViewer = DebugViewer(debugServer, True, self.viewmanager, None, embeddedShell=self.embeddedShell, @@ -766,18 +757,21 @@ # Create the chat part of the user interface logging.debug("Creating Chat Widget...") + from Cooperation.ChatWidget import ChatWidget self.cooperation = ChatWidget(self) self.rightSidebar.addTab(self.cooperation, UI.PixmapCache.getIcon("cooperation.png"), self.trUtf8("Cooperation")) # Create the IRC part of the user interface logging.debug("Creating IRC Widget...") + from Network.IRC.IrcWidget import IrcWidget self.irc = IrcWidget(self) self.rightSidebar.addTab(self.irc, UI.PixmapCache.getIcon("irc.png"), self.trUtf8("IRC")) # Create the terminal part of the user interface logging.debug("Creating Terminal...") + from QScintilla.Terminal import TerminalAssembly self.terminalAssembly = TerminalAssembly(self.viewmanager) self.terminal = self.terminalAssembly.terminal() self.bottomSidebar.addTab(self.terminalAssembly, @@ -786,6 +780,7 @@ # Create the task viewer part of the user interface logging.debug("Creating Task Viewer...") + from Tasks.TaskViewer import TaskViewer self.taskViewer = TaskViewer(None, self.project) self.bottomSidebar.addTab(self.taskViewer, UI.PixmapCache.getIcon("task.png"), @@ -793,6 +788,7 @@ # Create the log viewer part of the user interface logging.debug("Creating Log Viewer...") + from .LogView import LogViewer self.logViewer = LogViewer() self.bottomSidebar.addTab(self.logViewer, UI.PixmapCache.getIcon("logViewer.png"), @@ -803,6 +799,7 @@ else: # Create the shell logging.debug("Creating Shell...") + from QScintilla.Shell import ShellAssembly self.shellAssembly = ShellAssembly(debugServer, self.viewmanager, True) self.shell = self.shellAssembly.shell() self.bottomSidebar.insertTab(0, self.shellAssembly, @@ -812,6 +809,7 @@ if self.embeddedFileBrowser == 0: # separate window # Create the file browser logging.debug("Creating File Browser...") + from .Browser import Browser self.browser = Browser() self.leftSidebar.addTab(self.browser, UI.PixmapCache.getIcon("browser.png"), @@ -822,12 +820,16 @@ self.browser = self.projectBrowser.fileBrowser # Create the symbols viewer + logging.debug("Creating Symbols Viewer...") + from .SymbolsWidget import SymbolsWidget self.symbolsViewer = SymbolsWidget() self.leftSidebar.addTab(self.symbolsViewer, UI.PixmapCache.getIcon("symbols.png"), self.trUtf8("Symbols")) # Create the numbers viewer + logging.debug("Creating Numbers Viewer...") + from .NumbersWidget import NumbersWidget self.numbersViewer = NumbersWidget() self.bottomSidebar.addTab(self.numbersViewer, UI.PixmapCache.getIcon("numbers.png"), @@ -2506,6 +2508,7 @@ self.sbEncoding, self.sbLanguage, self.sbEol, self.sbZoom) + from VCS.StatusMonitorLed import StatusMonitorLed self.sbVcsMonitorLed = StatusMonitorLed(self.project, self.__statusBar) self.__statusBar.addPermanentWidget(self.sbVcsMonitorLed) @@ -4590,6 +4593,7 @@ home = QUrl.fromLocalFile(home).toString() if not (useSingle or Preferences.getHelp("SingleHelpWindow")) or \ self.helpWindow is None: + from Helpviewer.HelpWindow import HelpWindow help = HelpWindow(home, '.', None, 'help viewer', True, searchWord=searchWord) @@ -4724,6 +4728,7 @@ self.__configureDockareaCornerUsage() + from QScintilla.SpellChecker import SpellChecker SpellChecker.setDefaultLanguage( Preferences.getEditor("SpellCheckingDefaultLanguage")) @@ -4815,6 +4820,7 @@ if ex: fn += ex + from Preferences import Shortcuts Shortcuts.exportShortcuts(fn) def __importShortcuts(self): @@ -4828,6 +4834,7 @@ self.trUtf8("Keyboard shortcut file (*.e4k)")) if fn: + from Preferences import Shortcuts Shortcuts.importShortcuts(fn) def __showCertificatesDialog(self): @@ -4849,6 +4856,7 @@ """ Private slot to handle the projectOpened signal. """ + from Debugger.DebugClientCapabilities import HasUnittest self.__setWindowCaption(project=self.project.name) cap = e5App().getObject("DebugServer")\ .getClientCapabilities(self.project.pdata["PROGLANGUAGE"][0]) @@ -4905,6 +4913,7 @@ for language in dbs.getSupportedLanguages(): exts = dbs.getExtensions(language) if fn.endswith(exts): + from Debugger.DebugClientCapabilities import HasUnittest cap = dbs.getClientCapabilities(language) self.utScriptAct.setEnabled(cap & HasUnittest) self.utEditorOpen = cap & HasUnittest @@ -4931,6 +4940,7 @@ for language in dbs.getSupportedLanguages(): exts = dbs.getExtensions(language) if fn.endswith(exts): + from Debugger.DebugClientCapabilities import HasUnittest cap = dbs.getClientCapabilities(language) self.utScriptAct.setEnabled(cap & HasUnittest) self.utEditorOpen = cap & HasUnittest
--- a/Utilities/crypto/__init__.py Mon Feb 11 14:08:08 2013 +0100 +++ b/Utilities/crypto/__init__.py Mon Feb 11 18:13:10 2013 +0100 @@ -15,9 +15,6 @@ from E5Gui import E5MessageBox -from .py3AES import encryptData, decryptData -from .py3PBKDF2 import verifyPassword, hashPasswordTuple, rehashPassword - import Preferences ################################################################################ @@ -70,6 +67,7 @@ QCoreApplication.translate("Crypto", "Enter the master password:"), QLineEdit.Password) if ok: + from .py3PBKDF2 import verifyPassword masterPassword = Preferences.getUser("MasterPassword") try: if masterPassword: @@ -110,8 +108,10 @@ masterPW = pwDecode(MasterPassword) + from .py3PBKDF2 import hashPasswordTuple digestname, iterations, salt, hash = hashPasswordTuple(masterPW) key = hash[:32] + from .py3AES import encryptData try: cipher = encryptData(key, pw.encode("utf-8")) except ValueError: @@ -144,6 +144,9 @@ masterPW = pwDecode(MasterPassword) + from .py3AES import decryptData + from .py3PBKDF2 import rehashPassword + hashParameters, epw = epw[3:].rsplit(Delimiter, 1) try: # recreate the key used to encrypt @@ -255,6 +258,9 @@ @return encrypted data (bytes) and flag indicating success (boolean) """ + from .py3AES import encryptData + from .py3PBKDF2 import hashPasswordTuple + digestname, iterations, salt, hash = \ hashPasswordTuple(password, iterations=hashIterations) key = hash[:keyLength] @@ -283,6 +289,9 @@ if not edata.startswith(CryptoMarker.encode()): return edata, False # it was not encoded using dataEncrypt + from .py3AES import decryptData + from .py3PBKDF2 import rehashPassword + hashParametersBytes, edata = edata[3:].rsplit(Delimiter.encode(), 1) hashParameters = hashParametersBytes.decode() try:
--- a/UtilitiesPython2/Py2SyntaxChecker.py Mon Feb 11 14:08:08 2013 +0100 +++ b/UtilitiesPython2/Py2SyntaxChecker.py Mon Feb 11 18:13:10 2013 +0100 @@ -14,9 +14,6 @@ from Tools import readEncodedFile, normalizeCode, extractLineFlags -from py2flakes.checker import Checker -from py2flakes.messages import ImportStarUsed - def compile(file, codestring): """ @@ -104,6 +101,9 @@ @return list of strings containing the warnings (marker, file name, line number, message) """ + from py2flakes.checker import Checker + from py2flakes.messages import ImportStarUsed + strings = [] lines = codestring.splitlines() try:
--- a/VCS/ProjectBrowserHelper.py Mon Feb 11 14:08:08 2013 +0100 +++ b/VCS/ProjectBrowserHelper.py Mon Feb 11 18:13:10 2013 +0100 @@ -19,8 +19,6 @@ from Project.ProjectBrowserModel import ProjectBrowserSimpleDirectoryItem, \ ProjectBrowserFileItem, ProjectBrowserDirectoryItem -from .RepositoryInfoDialog import VcsRepositoryInfoDialog - import Preferences @@ -359,6 +357,7 @@ """ Protected slot called to show some vcs information. """ + from .RepositoryInfoDialog import VcsRepositoryInfoDialog info = self.vcs.vcsRepositoryInfos(self.project.ppath) dlg = VcsRepositoryInfoDialog(None, info) dlg.exec_()
--- a/VCS/ProjectHelper.py Mon Feb 11 14:08:08 2013 +0100 +++ b/VCS/ProjectHelper.py Mon Feb 11 18:13:10 2013 +0100 @@ -14,9 +14,6 @@ from PyQt4.QtCore import QDir, QFileInfo, QObject from PyQt4.QtGui import QDialog, QInputDialog -from .CommandOptionsDialog import vcsCommandOptionsDialog -from .RepositoryInfoDialog import VcsRepositoryInfoDialog - from E5Gui.E5Action import E5Action from E5Gui import E5MessageBox from E5Gui.E5Application import e5App @@ -169,6 +166,7 @@ self.trUtf8("New Project"), self.trUtf8("""Would you like to edit the VCS command options?""")) if vcores: + from .CommandOptionsDialog import vcsCommandOptionsDialog codlg = vcsCommandOptionsDialog(self.project.vcs) if codlg.exec_() == QDialog.Accepted: self.project.vcs.vcsSetOptions(codlg.getOptions()) @@ -330,6 +328,7 @@ self.trUtf8("Import Project"), self.trUtf8("""Would you like to edit the VCS command options?""")) if vcores: + from .CommandOptionsDialog import vcsCommandOptionsDialog codlg = vcsCommandOptionsDialog(self.project.vcs) if codlg.exec_() == QDialog.Accepted: self.project.vcs.vcsSetOptions(codlg.getOptions()) @@ -396,6 +395,7 @@ """ Protected slot to edit the VCS command options. """ + from .CommandOptionsDialog import vcsCommandOptionsDialog codlg = vcsCommandOptionsDialog(self.vcs) if codlg.exec_() == QDialog.Accepted: self.vcs.vcsSetOptions(codlg.getOptions()) @@ -466,6 +466,7 @@ """ Protected slot called to show some vcs information. """ + from .RepositoryInfoDialog import VcsRepositoryInfoDialog info = self.vcs.vcsRepositoryInfos(self.project.ppath) dlg = VcsRepositoryInfoDialog(None, info) dlg.exec_()
--- a/ViewManager/ViewManager.py Mon Feb 11 14:08:08 2013 +0100 +++ b/ViewManager/ViewManager.py Mon Feb 11 18:13:10 2013 +0100 @@ -23,13 +23,6 @@ import Preferences from QScintilla.Editor import Editor -from QScintilla.EditorAssembly import EditorAssembly -from QScintilla.APIsManager import APIsManager -from QScintilla.SpellChecker import SpellChecker -import QScintilla.Lexers -import QScintilla.Exporters -from QScintilla.Shell import Shell -from QScintilla.Terminal import Terminal import Utilities @@ -153,6 +146,7 @@ self.autosaveTimer.timeout.connect(self.__autosave) # initialize the APIs manager + from QScintilla.APIsManager import APIsManager self.apisManager = APIsManager(parent=self) self.__cooperationClient = None @@ -716,6 +710,7 @@ """ menu = QMenu(QApplication.translate('ViewManager', "Export as")) + import QScintilla.Exporters supportedExporters = QScintilla.Exporters.getSupportedFormats() exporters = sorted(list(supportedExporters.keys())) for exporter in exporters: @@ -3587,6 +3582,7 @@ """ Private method to set the enabled state of the spelling actions. """ + from QScintilla.SpellChecker import SpellChecker spellingAvailable = SpellChecker.isAvailable() self.spellCheckAct.setEnabled(len(self.editors) != 0 and spellingAvailable) @@ -3654,6 +3650,7 @@ # 1: Directory of currently active editor # 2: Directory of currently active project # 3: CWD + import QScintilla.Lexers filter = self._getOpenFileFilter() progs = E5FileDialog.getOpenFileNamesAndFilter( self.ui, @@ -3898,6 +3895,7 @@ @return reference to the new editor object (Editor.Editor) and the new edito assembly object (EditorAssembly.EditorAssembly) """ + from QScintilla.EditorAssembly import EditorAssembly assembly = EditorAssembly(self.dbs, fn, self, filetype=filetype, editor=caller, tv=e5App().getObject("TaskViewer")) editor = assembly.getEditor() @@ -4001,6 +3999,7 @@ if language is None: language = '' + import QScintilla.Lexers pixmap = QScintilla.Lexers.getLanguageIcon(language, True) self.sbLang.setPixmap(pixmap) if pixmap.isNull(): @@ -4093,6 +4092,7 @@ if Utilities.samepath(fn, editor.getFileName()): break else: + from QScintilla.EditorAssembly import EditorAssembly assembly = EditorAssembly(self.dbs, fn, self, filetype=filetype, tv=e5App().getObject("TaskViewer")) editor = assembly.getEditor() @@ -4268,6 +4268,7 @@ """ Public slot to generate a new empty editor. """ + from QScintilla.EditorAssembly import EditorAssembly assembly = EditorAssembly(self.dbs, None, self, tv=e5App().getObject("TaskViewer")) editor = assembly.getEditor() @@ -4464,6 +4465,9 @@ @param old reference to the widget loosing focus (QWidget) @param now reference to the widget gaining focus (QWidget) """ + from QScintilla.Shell import Shell + from QScintilla.Terminal import Terminal + if not isinstance(now, (Editor, Shell, Terminal)): self.editActGrp.setEnabled(False) self.copyActGrp.setEnabled(False) @@ -5463,6 +5467,7 @@ """ Private slot to edit the user word list. """ + from QScintilla.SpellChecker import SpellChecker pwl = SpellChecker.getUserDictionaryPath() self.__editSpellingDictionary(pwl) @@ -5470,6 +5475,7 @@ """ Private slot to edit the user exception list. """ + from QScintilla.SpellChecker import SpellChecker pel = SpellChecker.getUserDictionaryPath(True) self.__editSpellingDictionary(pel) @@ -5926,6 +5932,7 @@ self.activeWindow().getFileName(): ext = os.path.splitext(self.activeWindow().getFileName())[1] rx = QRegExp(".*\*\.{0}[ )].*".format(ext[1:])) + import QScintilla.Lexers filters = QScintilla.Lexers.getOpenFileFiltersList() index = -1 for i in range(len(filters)):
--- a/eric5.py Mon Feb 11 14:08:08 2013 +0100 +++ b/eric5.py Mon Feb 11 18:13:10 2013 +0100 @@ -245,7 +245,7 @@ # Load translation files and install them loc = Startup.loadTranslators(qt4TransDir, app, ("qscintilla",)) - splash.showMessage(QApplication.translate("eric5", "Importing packages...")) + splash.showMessage(QApplication.translate("eric5", "Starting...")) # We can only import these after creating the E5Application because they # make Qt calls that need the E5Application to exist. from UI.UserInterface import UserInterface