RefactoringRope/Refactoring.py

changeset 46
a726d19facfc
parent 44
8aa985c8dee5
child 48
de33dc93a3ac
--- a/RefactoringRope/Refactoring.py	Sat Feb 09 11:32:10 2013 +0100
+++ b/RefactoringRope/Refactoring.py	Sat Feb 23 15:28:39 2013 +0100
@@ -13,25 +13,8 @@
 sys.path.insert(0, os.path.dirname(__file__))
 import rope
 import rope.base.libutils
-import rope.base.project
 import rope.base.exceptions
 
-import rope.refactor.rename
-import rope.refactor.extract
-import rope.refactor.usefunction
-import rope.refactor.inline
-import rope.refactor.move
-import rope.refactor.change_signature
-import rope.refactor.introduce_factory
-import rope.refactor.introduce_parameter
-import rope.refactor.method_object
-import rope.refactor.encapsulate_field
-import rope.refactor.localtofield
-import rope.refactor.topackage
-from rope.refactor.importutils import ImportOrganizer
-
-import rope.contrib.findit
-
 from PyQt4.QtCore import QObject
 from PyQt4.QtGui import QMenu, QApplication, QMessageBox, QDialog, QAction
 from PyQt4.Qsci import QsciScintilla
@@ -40,30 +23,6 @@
 
 from E5Gui.E5Action import E5Action
 
-from QScintilla.MiniEditor import MiniEditor
-
-from FileSystemCommands import e5FileSystemCommands
-from ProgressHandle import ProgressHandle
-from HelpDialog import HelpDialog
-from MatchesDialog import MatchesDialog
-from RenameDialog import RenameDialog
-from ChangeOccurrencesDialog import ChangeOccurrencesDialog
-from HistoryDialog import HistoryDialog
-from ExtractDialog import ExtractDialog
-from InlineDialog import InlineDialog
-from MoveMethodDialog import MoveMethodDialog
-from MoveGlobalMethodDialog import MoveGlobalMethodDialog
-from MoveModuleDialog import MoveModuleDialog
-from UseFunctionDialog import UseFunctionDialog
-from IntroduceFactoryDialog import IntroduceFactoryDialog
-from IntroduceParameterDialog import IntroduceParameterDialog
-from ConfirmationDialog import ConfirmationDialog
-from RestructureDialog import RestructureDialog
-from ChangeSignatureDialog import ChangeSignatureDialog
-from InlineArgumentDefaultDialog import InlineArgumentDefaultDialog
-from GetterSetterDialog import GetterSetterDialog
-from MethodToMethodObjectDialog import MethodToMethodObjectDialog
-
 import Utilities
 
 
@@ -92,6 +51,8 @@
         
         # Rope objects
         self.__project = None
+        
+        from FileSystemCommands import e5FileSystemCommands
         self.__fsCommands = e5FileSystemCommands(self.__e5project)
     
     def initActions(self):
@@ -1032,6 +993,7 @@
             # keep it inside the object
             offset = self.__getOffset(aw, line, index)
         
+        import rope.refactor.rename
         resource = rope.base.libutils.path_to_resource(
             self.__project, filename)
         try:
@@ -1045,6 +1007,7 @@
             localResource = resource
         else:
             localResource = None
+        from RenameDialog import RenameDialog
         self.dlg = RenameDialog(self, title, renamer, resource=localResource,
                                 parent=self.__ui)
         self.dlg.show()
@@ -1073,6 +1036,7 @@
         line, index, line1, index1 = aw.getSelection()
         offset = self.__getOffset(aw, line, index)
         
+        import rope.refactor.rename
         resource = rope.base.libutils.path_to_resource(
             self.__project, filename)
         try:
@@ -1082,6 +1046,7 @@
             self.handleRopeError(err, title)
             return
         
+        from ChangeOccurrencesDialog import ChangeOccurrencesDialog
         self.dlg = ChangeOccurrencesDialog(self, title, renamer,
                                            parent=self.__ui)
         self.dlg.show()
@@ -1130,6 +1095,7 @@
         startOffset = self.__getOffset(aw, startline, startcolumn)
         endOffset = self.__getOffset(aw, endline, endcolumn)
         
+        import rope.refactor.extract
         resource = rope.base.libutils.path_to_resource(
             self.__project, filename)
         try:
@@ -1145,6 +1111,7 @@
             self.handleRopeError(err, title)
             return
         
+        from ExtractDialog import ExtractDialog
         self.dlg = ExtractDialog(self, title, extractor, parent=self.__ui)
         self.dlg.show()
     
@@ -1176,6 +1143,7 @@
         line, index, line1, index1 = aw.getSelection()
         offset = self.__getOffset(aw, line, index)
         
+        import rope.refactor.inline
         resource = rope.base.libutils.path_to_resource(
             self.__project, filename)
         try:
@@ -1185,6 +1153,7 @@
             self.handleRopeError(err, title)
             return
         
+        from InlineDialog import InlineDialog
         self.dlg = InlineDialog(self, title, inliner, parent=self.__ui)
         self.dlg.show()
     
@@ -1216,6 +1185,7 @@
         line, index, line1, index1 = aw.getSelection()
         offset = self.__getOffset(aw, line, index)
         
+        import rope.refactor.move
         resource = rope.base.libutils.path_to_resource(
             self.__project, filename)
         try:
@@ -1226,9 +1196,11 @@
             return
         
         if isinstance(mover, rope.refactor.move.MoveGlobal):
+            from MoveGlobalMethodDialog import MoveGlobalMethodDialog
             self.dlg = MoveGlobalMethodDialog(self, title, mover,
                 self.__project, parent=self.__ui)
         else:
+            from MoveMethodDialog import MoveMethodDialog
             self.dlg = MoveMethodDialog(self, title, mover, parent=self.__ui)
         self.dlg.show()
     
@@ -1249,6 +1221,7 @@
         filename = aw.getFileName()
         offset = None
         
+        import rope.refactor.move
         resource = rope.base.libutils.path_to_resource(
             self.__project, filename)
         try:
@@ -1258,6 +1231,7 @@
             self.handleRopeError(err, title)
             return
         
+        from MoveModuleDialog import MoveModuleDialog
         self.dlg = MoveModuleDialog(self, title, mover, parent=self.__ui)
         self.dlg.show()
     
@@ -1288,6 +1262,7 @@
         line, index, line1, index1 = aw.getSelection()
         offset = self.__getOffset(aw, line, index)
         
+        import rope.refactor.usefunction
         resource = rope.base.libutils.path_to_resource(
             self.__project, filename)
         try:
@@ -1297,6 +1272,7 @@
             self.handleRopeError(err, title)
             return
         
+        from UseFunctionDialog import UseFunctionDialog
         self.dlg = UseFunctionDialog(self, title, user, parent=self.__ui)
         self.dlg.show()
     
@@ -1328,6 +1304,7 @@
         line, index, line1, index1 = aw.getSelection()
         offset = self.__getOffset(aw, line, index)
         
+        import rope.refactor.introduce_factory
         resource = rope.base.libutils.path_to_resource(
             self.__project, filename)
         try:
@@ -1338,6 +1315,7 @@
             self.handleRopeError(err, title)
             return
         
+        from IntroduceFactoryDialog import IntroduceFactoryDialog
         self.dlg = IntroduceFactoryDialog(self, title, introducer,
                                           parent=self.__ui)
         self.dlg.show()
@@ -1366,6 +1344,7 @@
         line, index, line1, index1 = aw.getSelection()
         offset = self.__getOffset(aw, line, index)
         
+        import rope.refactor.introduce_parameter
         resource = rope.base.libutils.path_to_resource(
             self.__project, filename)
         try:
@@ -1375,6 +1354,7 @@
             self.handleRopeError(err, title)
             return
         
+        from IntroduceParameterDialog import IntroduceParameterDialog
         self.dlg = IntroduceParameterDialog(self, title, introducer,
                                             parent=self.__ui)
         self.dlg.show()
@@ -1387,6 +1367,7 @@
         """
         Private slot to organize imports.
         """
+        from rope.refactor.importutils import ImportOrganizer
         self.__doImports(self.trUtf8("Organize Imports"),
             ImportOrganizer.organize_imports)
     
@@ -1394,6 +1375,7 @@
         """
         Private slot to expand star imports.
         """
+        from rope.refactor.importutils import ImportOrganizer
         self.__doImports(self.trUtf8("Expand Star Imports"),
             ImportOrganizer.expand_star_imports)
     
@@ -1401,6 +1383,7 @@
         """
         Private slot to transform relative to absolute imports.
         """
+        from rope.refactor.importutils import ImportOrganizer
         self.__doImports(self.trUtf8("Relative to Absolute"),
             ImportOrganizer.relatives_to_absolutes)
     
@@ -1408,6 +1391,7 @@
         """
         Private slot to transform from imports to plain imports.
         """
+        from rope.refactor.importutils import ImportOrganizer
         self.__doImports(self.trUtf8("Froms to Imports"),
             ImportOrganizer.froms_to_imports)
     
@@ -1415,6 +1399,7 @@
         """
         Private slot to handle long imports.
         """
+        from rope.refactor.importutils import ImportOrganizer
         self.__doImports(self.trUtf8("Handle Long Imports"),
             ImportOrganizer.handle_long_imports)
     
@@ -1437,12 +1422,14 @@
         else:
             offset = None
         
+        from rope.refactor.importutils import ImportOrganizer
         importOrganizer = ImportOrganizer(self.__project)
         resource = rope.base.libutils.path_to_resource(
             self.__project, filename)
         try:
             changes = method(importOrganizer, resource, offset=offset)
             if changes is not None:
+                from ConfirmationDialog import ConfirmationDialog
                 dlg = ConfirmationDialog(changes, self.__ui)
                 if dlg.exec_() == QDialog.Accepted:
                     self.__project.do(changes)
@@ -1464,6 +1451,7 @@
         """
         Private slot to restructure code.
         """
+        from RestructureDialog import RestructureDialog
         title = self.trUtf8("Restructure")
         self.dlg = RestructureDialog(self, title, parent=self.__ui)
         self.dlg.show()
@@ -1492,6 +1480,7 @@
         line, index, line1, index1 = aw.getSelection()
         offset = self.__getOffset(aw, line, index)
         
+        import rope.refactor.change_signature
         resource = rope.base.libutils.path_to_resource(
             self.__project, filename)
         try:
@@ -1501,6 +1490,7 @@
             self.handleRopeError(err, title)
             return
         
+        from ChangeSignatureDialog import ChangeSignatureDialog
         self.dlg = ChangeSignatureDialog(self, title, changer,
                                          parent=self.__ui)
         self.dlg.show()
@@ -1530,6 +1520,7 @@
         line, index, line1, index1 = aw.getSelection()
         offset = self.__getOffset(aw, line, index)
         
+        import rope.refactor.change_signature
         resource = rope.base.libutils.path_to_resource(
             self.__project, filename)
         try:
@@ -1539,6 +1530,7 @@
             self.handleRopeError(err, title)
             return
         
+        from InlineArgumentDefaultDialog import InlineArgumentDefaultDialog
         self.dlg = InlineArgumentDefaultDialog(self, title, changer,
                                                parent=self.__ui)
         self.dlg.show()
@@ -1559,6 +1551,7 @@
         
         filename = aw.getFileName()
         
+        import rope.refactor.topackage
         resource = rope.base.libutils.path_to_resource(
             self.__project, filename)
         try:
@@ -1595,9 +1588,9 @@
         line, index, line1, index1 = aw.getSelection()
         offset = self.__getOffset(aw, line, index)
         
+        import rope.refactor.encapsulate_field
         resource = rope.base.libutils.path_to_resource(
             self.__project, filename)
-        
         try:
             encapsulateField = \
                 rope.refactor.encapsulate_field.EncapsulateField(
@@ -1606,8 +1599,11 @@
             self.handleRopeError(err, title)
             return
         
+        from GetterSetterDialog import GetterSetterDialog
         dlg = GetterSetterDialog(encapsulateField.get_field_name())
         if dlg.exec_() == QDialog.Accepted:
+            from ProgressHandle import ProgressHandle
+            from ConfirmationDialog import ConfirmationDialog
             getter, setter = dlg.getData()
             handle = ProgressHandle(title, False, self.__ui)
             handle.show()
@@ -1649,6 +1645,8 @@
         line, index, line1, index1 = aw.getSelection()
         offset = self.__getOffset(aw, line, index)
         
+        import rope.refactor.localtofield
+        from ConfirmationDialog import ConfirmationDialog
         resource = rope.base.libutils.path_to_resource(
             self.__project, filename)
         try:
@@ -1687,6 +1685,7 @@
         line, index, line1, index1 = aw.getSelection()
         offset = self.__getOffset(aw, line, index)
         
+        import rope.refactor.method_object
         resource = rope.base.libutils.path_to_resource(
             self.__project, filename)
         try:
@@ -1696,6 +1695,7 @@
             self.handleRopeError(err, title)
             return
         
+        from MethodToMethodObjectDialog import MethodToMethodObjectDialog
         self.dlg = MethodToMethodObjectDialog(self, title, converter,
                                               parent=self.__ui)
         self.dlg.show()
@@ -1723,6 +1723,7 @@
             if not self.confirmAllBuffersSaved():
                 return
             
+            from ProgressHandle import ProgressHandle
             changes = history.undo_list[-1]
             handle = ProgressHandle(self.trUtf8("Undo"), False, self.__ui)
             handle.show()
@@ -1755,6 +1756,7 @@
             if not self.confirmAllBuffersSaved():
                 return
             
+            from ProgressHandle import ProgressHandle
             changes = history.redo_list[-1]
             handle = ProgressHandle(self.trUtf8("Redo"), False, self.__ui)
             handle.show()
@@ -1772,6 +1774,7 @@
         """
         Private method to show list of changes available for an undo operation.
         """
+        from HistoryDialog import HistoryDialog
         undoList = list(reversed(self.__project.history.undo_list))
         self.dlg = HistoryDialog(self, undoList, True, self.__ui)
         self.dlg.show()
@@ -1780,6 +1783,7 @@
         """
         Private method to show list of changes available for a redo operation.
         """
+        from HistoryDialog import HistoryDialog
         redoList = self.__project.history.redo_list
         self.dlg = HistoryDialog(self, redoList, False, self.__ui)
         self.dlg.show()
@@ -1794,6 +1798,7 @@
         if aw is None:
             return
         
+        from HistoryDialog import HistoryDialog
         filename = aw.getFileName()
         resource = rope.base.libutils.path_to_resource(
             self.__project, filename)
@@ -1811,6 +1816,7 @@
         if aw is None:
             return
         
+        from HistoryDialog import HistoryDialog
         filename = aw.getFileName()
         resource = rope.base.libutils.path_to_resource(
             self.__project, filename)
@@ -1861,6 +1867,8 @@
         line, index, line1, index1 = aw.getSelection()
         offset = self.__getOffset(aw, line, index)
         
+        import rope.contrib.findit
+        from ProgressHandle import ProgressHandle
         resource = rope.base.libutils.path_to_resource(
             self.__project, filename)
         handle = ProgressHandle(title, True, self.__ui)
@@ -1876,6 +1884,7 @@
         handle.reset()
         
         if occurrences:
+            from MatchesDialog import MatchesDialog
             self.dlg = MatchesDialog(self.__ui, True)
             self.dlg.show()
             for occurrence in occurrences:
@@ -1910,6 +1919,7 @@
         line, index, line1, index1 = aw.getSelection()
         offset = self.__getOffset(aw, line, index)
         
+        import rope.contrib.findit
         resource = rope.base.libutils.path_to_resource(
             self.__project, filename)
         try:
@@ -1920,6 +1930,7 @@
             return
         
         if location is not None:
+            from MatchesDialog import MatchesDialog
             self.dlg = MatchesDialog(self.__ui, False)
             self.dlg.show()
             self.dlg.addEntry(location.resource, location.lineno)
@@ -1951,6 +1962,8 @@
         line, index, line1, index1 = aw.getSelection()
         offset = self.__getOffset(aw, line, index)
         
+        import rope.contrib.findit
+        from ProgressHandle import ProgressHandle
         resource = rope.base.libutils.path_to_resource(self.__project,
             filename)
         handle = ProgressHandle(title, True, self.__ui)
@@ -1965,6 +1978,7 @@
         handle.reset()
         
         if occurrences:
+            from MatchesDialog import MatchesDialog
             self.dlg = MatchesDialog(self.__ui, True)
             self.dlg.show()
             for occurrence in occurrences:
@@ -1987,6 +2001,7 @@
         if ropedir is not None:
             configfile = os.path.join(ropedir.real_path, "config.py")
             if os.path.exists(configfile):
+                from QScintilla.MiniEditor import MiniEditor
                 self.__editor = MiniEditor(configfile)
                 self.__editor.show()
                 self.__editor.editorSaved.connect(self.__configChanged)
@@ -2034,6 +2049,7 @@
         Private slot to show help about the refactorings offered by Rope.
         """
         if self.__helpDialog is None:
+            from HelpDialog import HelpDialog
             helpfile = os.path.join(os.path.dirname(__file__),
                                     "rope", "docs", "overview.txt")
             self.__helpDialog = \
@@ -2055,6 +2071,7 @@
                 QMessageBox.Yes),
             QMessageBox.No)
         if res == QMessageBox.Yes:
+            from ProgressHandle import ProgressHandle
             handle = ProgressHandle(title, True, self.__ui)
             handle.show()
             QApplication.processEvents()
@@ -2092,6 +2109,7 @@
         """
         Private slot called, when the rope config file has changed.
         """
+        import rope.base.project
         self.__project.close()
         self.__project = rope.base.project.Project(self.__projectpath,
             fscommands=self.__fsCommands)
@@ -2132,6 +2150,7 @@
         self.__projectLanguage = self.__e5project.getProjectLanguage()
         
         if self.__projectLanguage in ["Python3"]:
+            import rope.base.project
             self.__project = rope.base.project.Project(self.__projectpath,
                 fscommands=self.__fsCommands)
             for act in self.actions:

eric ide

mercurial