Thu, 30 May 2013 18:52:46 +0200
Fixes for TabNanny and some code cleanup. Source doku regenerated.
--- a/APIs/Python3/eric5.api Thu May 30 15:33:23 2013 +0200 +++ b/APIs/Python3/eric5.api Thu May 30 18:52:46 2013 +0200 @@ -3704,7 +3704,6 @@ eric5.Plugins.AboutPlugin.AboutDialog.titleText?7 eric5.Plugins.CheckerPlugins.Pep8.Pep8Checker.Pep8Checker.report_error_args?4(line_number, offset, code, check, *args) eric5.Plugins.CheckerPlugins.Pep8.Pep8Checker.Pep8Checker?1(filename, lines, repeat=False, select="", ignore="") -eric5.Plugins.CheckerPlugins.Pep8.Pep8Checker.Pep8Py2Checker?1(filename, lines, repeat=False, select="", ignore="") eric5.Plugins.CheckerPlugins.Pep8.Pep8CodeSelectionDialog.Pep8CodeSelectionDialog.getSelectedCodes?4() eric5.Plugins.CheckerPlugins.Pep8.Pep8CodeSelectionDialog.Pep8CodeSelectionDialog?1(codes, showFixCodes, parent=None) eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.Pep8Dialog.filenameRole?7 @@ -8283,26 +8282,6 @@ eric5.Utilities.win32_Kill?4(pid) eric5.Utilities.win32_getRealName?4() eric5.Utilities.writeEncodedFile?4(filename, text, orig_coding) -eric5.UtilitiesPython2.Tabnanny.NannyNag.get_line?4() -eric5.UtilitiesPython2.Tabnanny.NannyNag.get_lineno?4() -eric5.UtilitiesPython2.Tabnanny.NannyNag.get_msg?4() -eric5.UtilitiesPython2.Tabnanny.NannyNag?1(lineno, msg, line) -eric5.UtilitiesPython2.Tabnanny.Whitespace.equal?4(other) -eric5.UtilitiesPython2.Tabnanny.Whitespace.indent_level?4(tabsize) -eric5.UtilitiesPython2.Tabnanny.Whitespace.less?4(other) -eric5.UtilitiesPython2.Tabnanny.Whitespace.longest_run_of_spaces?4() -eric5.UtilitiesPython2.Tabnanny.Whitespace.not_equal_witness?4(other) -eric5.UtilitiesPython2.Tabnanny.Whitespace.not_less_witness?4(other) -eric5.UtilitiesPython2.Tabnanny.Whitespace?1(ws) -eric5.UtilitiesPython2.Tabnanny.check?4(filename, codestring) -eric5.UtilitiesPython2.Tabnanny.format_witnesses?4(w) -eric5.UtilitiesPython2.Tabnanny.process_tokens?4(tokens) -eric5.UtilitiesPython2.Tools.coding_regexps?7 -eric5.UtilitiesPython2.Tools.decode?4(text) -eric5.UtilitiesPython2.Tools.extractLineFlags?4(line, startComment=") -eric5.UtilitiesPython2.Tools.get_coding?4(text) -eric5.UtilitiesPython2.Tools.normalizeCode?4(codestring) -eric5.UtilitiesPython2.Tools.readEncodedFile?4(filename) eric5.VCS.CommandOptionsDialog.vcsCommandOptionsDialog.getOptions?4() eric5.VCS.CommandOptionsDialog.vcsCommandOptionsDialog?1(vcs, parent=None) eric5.VCS.ProjectBrowserHelper.VcsProjectBrowserHelper._VCSAdd?5()
--- a/Documentation/Help/source.qhp Thu May 30 15:33:23 2013 +0200 +++ b/Documentation/Help/source.qhp Thu May 30 18:52:46 2013 +0200 @@ -950,18 +950,13 @@ <section title="eric5.Utilities.FtpUtilities" ref="eric5.Utilities.FtpUtilities.html" /> <section title="eric5.Utilities.ModuleParser" ref="eric5.Utilities.ModuleParser.html" /> <section title="eric5.Utilities.PasswordChecker" ref="eric5.Utilities.PasswordChecker.html" /> + <section title="eric5.Utilities.PySideImporter" ref="eric5.Utilities.PySideImporter.html" /> <section title="eric5.Utilities.SyntaxCheck" ref="eric5.Utilities.SyntaxCheck.html" /> <section title="eric5.Utilities.__init__" ref="eric5.Utilities.__init__.html" /> <section title="eric5.Utilities.binplistlib" ref="eric5.Utilities.binplistlib.html" /> <section title="eric5.Utilities.compatibility_fixes" ref="eric5.Utilities.compatibility_fixes.html" /> <section title="eric5.Utilities.uic" ref="eric5.Utilities.uic.html" /> </section> - <section title="eric5.UtilitiesPython2" ref="index-eric5.UtilitiesPython2.html"> - <section title="eric5.UtilitiesPython2.PySideImporter" ref="eric5.UtilitiesPython2.PySideImporter.html" /> - <section title="eric5.UtilitiesPython2.Tabnanny" ref="eric5.UtilitiesPython2.Tabnanny.html" /> - <section title="eric5.UtilitiesPython2.TabnannyChecker" ref="eric5.UtilitiesPython2.TabnannyChecker.html" /> - <section title="eric5.UtilitiesPython2.Tools" ref="eric5.UtilitiesPython2.Tools.html" /> - </section> <section title="eric5.VCS" ref="index-eric5.VCS.html"> <section title="eric5.VCS.CommandOptionsDialog" ref="eric5.VCS.CommandOptionsDialog.html" /> <section title="eric5.VCS.ProjectBrowserHelper" ref="eric5.VCS.ProjectBrowserHelper.html" /> @@ -7471,15 +7466,10 @@ <keyword name="MultiProjectWriter (Module)" id="MultiProjectWriter (Module)" ref="eric5.E5XML.MultiProjectWriter.html" /> <keyword name="MultiProjectWriter.writeXML" id="MultiProjectWriter.writeXML" ref="eric5.E5XML.MultiProjectWriter.html#MultiProjectWriter.writeXML" /> <keyword name="NannyNag" id="NannyNag" ref="eric5.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html#NannyNag" /> - <keyword name="NannyNag" id="NannyNag" ref="eric5.UtilitiesPython2.Tabnanny.html#NannyNag" /> <keyword name="NannyNag (Constructor)" id="NannyNag (Constructor)" ref="eric5.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html#NannyNag.__init__" /> - <keyword name="NannyNag (Constructor)" id="NannyNag (Constructor)" ref="eric5.UtilitiesPython2.Tabnanny.html#NannyNag.__init__" /> <keyword name="NannyNag.get_line" id="NannyNag.get_line" ref="eric5.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html#NannyNag.get_line" /> - <keyword name="NannyNag.get_line" id="NannyNag.get_line" ref="eric5.UtilitiesPython2.Tabnanny.html#NannyNag.get_line" /> <keyword name="NannyNag.get_lineno" id="NannyNag.get_lineno" ref="eric5.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html#NannyNag.get_lineno" /> - <keyword name="NannyNag.get_lineno" id="NannyNag.get_lineno" ref="eric5.UtilitiesPython2.Tabnanny.html#NannyNag.get_lineno" /> <keyword name="NannyNag.get_msg" id="NannyNag.get_msg" ref="eric5.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html#NannyNag.get_msg" /> - <keyword name="NannyNag.get_msg" id="NannyNag.get_msg" ref="eric5.UtilitiesPython2.Tabnanny.html#NannyNag.get_msg" /> <keyword name="Network (Package)" id="Network (Package)" ref="index-eric5.Helpviewer.Network.html" /> <keyword name="Network (Package)" id="Network (Package)" ref="index-eric5.Network.html" /> <keyword name="NetworkAccessManager" id="NetworkAccessManager" ref="eric5.Helpviewer.Network.NetworkAccessManager.html#NetworkAccessManager" /> @@ -7910,8 +7900,6 @@ <keyword name="Pep8Fixer.__getEol" id="Pep8Fixer.__getEol" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8Fixer.html#Pep8Fixer.__getEol" /> <keyword name="Pep8Fixer.fixIssue" id="Pep8Fixer.fixIssue" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8Fixer.html#Pep8Fixer.fixIssue" /> <keyword name="Pep8Fixer.saveFile" id="Pep8Fixer.saveFile" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8Fixer.html#Pep8Fixer.saveFile" /> - <keyword name="Pep8Py2Checker" id="Pep8Py2Checker" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8Checker.html#Pep8Py2Checker" /> - <keyword name="Pep8Py2Checker (Constructor)" id="Pep8Py2Checker (Constructor)" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8Checker.html#Pep8Py2Checker.__init__" /> <keyword name="Pep8StatisticsDialog" id="Pep8StatisticsDialog" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8StatisticsDialog.html#Pep8StatisticsDialog" /> <keyword name="Pep8StatisticsDialog (Constructor)" id="Pep8StatisticsDialog (Constructor)" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8StatisticsDialog.html#Pep8StatisticsDialog.__init__" /> <keyword name="Pep8StatisticsDialog (Module)" id="Pep8StatisticsDialog (Module)" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8StatisticsDialog.html" /> @@ -8855,7 +8843,7 @@ <keyword name="PyRegExpWizardWidget.on_wordboundButton_clicked" id="PyRegExpWizardWidget.on_wordboundButton_clicked" ref="eric5.Plugins.WizardPlugins.PyRegExpWizard.PyRegExpWizardDialog.html#PyRegExpWizardWidget.on_wordboundButton_clicked" /> <keyword name="PyRegExpWizardWindow" id="PyRegExpWizardWindow" ref="eric5.Plugins.WizardPlugins.PyRegExpWizard.PyRegExpWizardDialog.html#PyRegExpWizardWindow" /> <keyword name="PyRegExpWizardWindow (Constructor)" id="PyRegExpWizardWindow (Constructor)" ref="eric5.Plugins.WizardPlugins.PyRegExpWizard.PyRegExpWizardDialog.html#PyRegExpWizardWindow.__init__" /> - <keyword name="PySideImporter (Module)" id="PySideImporter (Module)" ref="eric5.UtilitiesPython2.PySideImporter.html" /> + <keyword name="PySideImporter (Module)" id="PySideImporter (Module)" ref="eric5.Utilities.PySideImporter.html" /> <keyword name="PyUnit (Package)" id="PyUnit (Package)" ref="index-eric5.PyUnit.html" /> <keyword name="Python (Package)" id="Python (Package)" ref="index-eric5.DebugClients.Python.html" /> <keyword name="Python3 (Package)" id="Python3 (Package)" ref="index-eric5.DebugClients.Python3.html" /> @@ -10773,15 +10761,12 @@ <keyword name="TabWidget.setCurrentWidget" id="TabWidget.setCurrentWidget" ref="eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.html#TabWidget.setCurrentWidget" /> <keyword name="TabWidget.showIndicator" id="TabWidget.showIndicator" ref="eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.html#TabWidget.showIndicator" /> <keyword name="Tabnanny (Module)" id="Tabnanny (Module)" ref="eric5.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html" /> - <keyword name="Tabnanny (Module)" id="Tabnanny (Module)" ref="eric5.UtilitiesPython2.Tabnanny.html" /> <keyword name="Tabnanny (Package)" id="Tabnanny (Package)" ref="index-eric5.Plugins.CheckerPlugins.Tabnanny.html" /> - <keyword name="TabnannyChecker (Module)" id="TabnannyChecker (Module)" ref="eric5.UtilitiesPython2.TabnannyChecker.html" /> <keyword name="TabnannyDialog" id="TabnannyDialog" ref="eric5.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.html#TabnannyDialog" /> <keyword name="TabnannyDialog (Constructor)" id="TabnannyDialog (Constructor)" ref="eric5.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.html#TabnannyDialog.__init__" /> <keyword name="TabnannyDialog (Module)" id="TabnannyDialog (Module)" ref="eric5.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.html" /> <keyword name="TabnannyDialog.__createResultItem" id="TabnannyDialog.__createResultItem" ref="eric5.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.html#TabnannyDialog.__createResultItem" /> <keyword name="TabnannyDialog.__finish" id="TabnannyDialog.__finish" ref="eric5.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.html#TabnannyDialog.__finish" /> - <keyword name="TabnannyDialog.__py2check" id="TabnannyDialog.__py2check" ref="eric5.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.html#TabnannyDialog.__py2check" /> <keyword name="TabnannyDialog.__resort" id="TabnannyDialog.__resort" ref="eric5.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.html#TabnannyDialog.__resort" /> <keyword name="TabnannyDialog.on_buttonBox_clicked" id="TabnannyDialog.on_buttonBox_clicked" ref="eric5.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.html#TabnannyDialog.on_buttonBox_clicked" /> <keyword name="TabnannyDialog.on_resultList_itemActivated" id="TabnannyDialog.on_resultList_itemActivated" ref="eric5.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.html#TabnannyDialog.on_resultList_itemActivated" /> @@ -11039,7 +11024,6 @@ <keyword name="ToolGroupConfigurationDialog.on_newButton_clicked" id="ToolGroupConfigurationDialog.on_newButton_clicked" ref="eric5.Preferences.ToolGroupConfigurationDialog.html#ToolGroupConfigurationDialog.on_newButton_clicked" /> <keyword name="ToolGroupConfigurationDialog.on_upButton_clicked" id="ToolGroupConfigurationDialog.on_upButton_clicked" ref="eric5.Preferences.ToolGroupConfigurationDialog.html#ToolGroupConfigurationDialog.on_upButton_clicked" /> <keyword name="Toolbox (Package)" id="Toolbox (Package)" ref="index-eric5.Toolbox.html" /> - <keyword name="Tools (Module)" id="Tools (Module)" ref="eric5.UtilitiesPython2.Tools.html" /> <keyword name="Tools (Package)" id="Tools (Package)" ref="index-eric5.Tools.html" /> <keyword name="Translation" id="Translation" ref="eric5.Tools.TRPreviewer.html#Translation" /> <keyword name="Translation (Constructor)" id="Translation (Constructor)" ref="eric5.Tools.TRPreviewer.html#Translation.__init__" /> @@ -11577,7 +11561,6 @@ <keyword name="UserPropertiesDialog (Module)" id="UserPropertiesDialog (Module)" ref="eric5.Project.UserPropertiesDialog.html" /> <keyword name="UserPropertiesDialog.storeData" id="UserPropertiesDialog.storeData" ref="eric5.Project.UserPropertiesDialog.html#UserPropertiesDialog.storeData" /> <keyword name="Utilities (Package)" id="Utilities (Package)" ref="index-eric5.Utilities.html" /> - <keyword name="UtilitiesPython2 (Package)" id="UtilitiesPython2 (Package)" ref="index-eric5.UtilitiesPython2.html" /> <keyword name="VCS (Package)" id="VCS (Package)" ref="index-eric5.VCS.html" /> <keyword name="VariableDetailDialog" id="VariableDetailDialog" ref="eric5.Debugger.VariableDetailDialog.html#VariableDetailDialog" /> <keyword name="VariableDetailDialog (Constructor)" id="VariableDetailDialog (Constructor)" ref="eric5.Debugger.VariableDetailDialog.html#VariableDetailDialog.__init__" /> @@ -12133,21 +12116,13 @@ <keyword name="WebPluginInterface.metaPlugin" id="WebPluginInterface.metaPlugin" ref="eric5.Helpviewer.WebPlugins.WebPluginInterface.html#WebPluginInterface.metaPlugin" /> <keyword name="WebPlugins (Package)" id="WebPlugins (Package)" ref="index-eric5.Helpviewer.WebPlugins.html" /> <keyword name="Whitespace" id="Whitespace" ref="eric5.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html#Whitespace" /> - <keyword name="Whitespace" id="Whitespace" ref="eric5.UtilitiesPython2.Tabnanny.html#Whitespace" /> <keyword name="Whitespace (Constructor)" id="Whitespace (Constructor)" ref="eric5.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html#Whitespace.__init__" /> - <keyword name="Whitespace (Constructor)" id="Whitespace (Constructor)" ref="eric5.UtilitiesPython2.Tabnanny.html#Whitespace.__init__" /> <keyword name="Whitespace.equal" id="Whitespace.equal" ref="eric5.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html#Whitespace.equal" /> - <keyword name="Whitespace.equal" id="Whitespace.equal" ref="eric5.UtilitiesPython2.Tabnanny.html#Whitespace.equal" /> <keyword name="Whitespace.indent_level" id="Whitespace.indent_level" ref="eric5.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html#Whitespace.indent_level" /> - <keyword name="Whitespace.indent_level" id="Whitespace.indent_level" ref="eric5.UtilitiesPython2.Tabnanny.html#Whitespace.indent_level" /> <keyword name="Whitespace.less" id="Whitespace.less" ref="eric5.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html#Whitespace.less" /> - <keyword name="Whitespace.less" id="Whitespace.less" ref="eric5.UtilitiesPython2.Tabnanny.html#Whitespace.less" /> <keyword name="Whitespace.longest_run_of_spaces" id="Whitespace.longest_run_of_spaces" ref="eric5.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html#Whitespace.longest_run_of_spaces" /> - <keyword name="Whitespace.longest_run_of_spaces" id="Whitespace.longest_run_of_spaces" ref="eric5.UtilitiesPython2.Tabnanny.html#Whitespace.longest_run_of_spaces" /> <keyword name="Whitespace.not_equal_witness" id="Whitespace.not_equal_witness" ref="eric5.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html#Whitespace.not_equal_witness" /> - <keyword name="Whitespace.not_equal_witness" id="Whitespace.not_equal_witness" ref="eric5.UtilitiesPython2.Tabnanny.html#Whitespace.not_equal_witness" /> <keyword name="Whitespace.not_less_witness" id="Whitespace.not_less_witness" ref="eric5.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html#Whitespace.not_less_witness" /> - <keyword name="Whitespace.not_less_witness" id="Whitespace.not_less_witness" ref="eric5.UtilitiesPython2.Tabnanny.html#Whitespace.not_less_witness" /> <keyword name="WidgetArea" id="WidgetArea" ref="eric5.Tools.TRPreviewer.html#WidgetArea" /> <keyword name="WidgetArea (Constructor)" id="WidgetArea (Constructor)" ref="eric5.Tools.TRPreviewer.html#WidgetArea.__init__" /> <keyword name="WidgetArea.__findWidget" id="WidgetArea.__findWidget" ref="eric5.Tools.TRPreviewer.html#WidgetArea.__findWidget" /> @@ -12266,7 +12241,6 @@ <keyword name="bookmarks (Module)" id="bookmarks (Module)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.BookmarksExtension.bookmarks.html" /> <keyword name="changeRememberedMaster" id="changeRememberedMaster" ref="eric5.Utilities.crypto.__init__.html#changeRememberedMaster" /> <keyword name="check" id="check" ref="eric5.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html#check" /> - <keyword name="check" id="check" ref="eric5.UtilitiesPython2.Tabnanny.html#check" /> <keyword name="checkBlacklistedVersions" id="checkBlacklistedVersions" ref="eric5.Globals.__init__.html#checkBlacklistedVersions" /> <keyword name="checkPyside" id="checkPyside" ref="eric5.Utilities.__init__.html#checkPyside" /> <keyword name="checker (Module)" id="checker (Module)" ref="eric5.Utilities.py2flakes.checker.html" /> @@ -12386,7 +12360,6 @@ <keyword name="dateFromTime_t" id="dateFromTime_t" ref="eric5.Plugins.VcsPlugins.vcsPySvn.SvnUtilities.html#dateFromTime_t" /> <keyword name="debug_thread_info" id="debug_thread_info" ref="eric5.DebugClients.Ruby.Debuggee.html#debug_thread_info" /> <keyword name="decode" id="decode" ref="eric5.Utilities.SyntaxCheck.html#decode" /> - <keyword name="decode" id="decode" ref="eric5.UtilitiesPython2.Tools.html#decode" /> <keyword name="decodeBytes" id="decodeBytes" ref="eric5.Utilities.__init__.html#decodeBytes" /> <keyword name="decodeString" id="decodeString" ref="eric5.Utilities.__init__.html#decodeString" /> <keyword name="decryptData" id="decryptData" ref="eric5.Utilities.crypto.py3AES.html#decryptData" /> @@ -12443,7 +12416,6 @@ <keyword name="extractFlags" id="extractFlags" ref="eric5.Utilities.__init__.html#extractFlags" /> <keyword name="extractFlagsFromFile" id="extractFlagsFromFile" ref="eric5.Utilities.__init__.html#extractFlagsFromFile" /> <keyword name="extractLineFlags" id="extractLineFlags" ref="eric5.Utilities.SyntaxCheck.html#extractLineFlags" /> - <keyword name="extractLineFlags" id="extractLineFlags" ref="eric5.UtilitiesPython2.Tools.html#extractLineFlags" /> <keyword name="extraneous_whitespace" id="extraneous_whitespace" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#extraneous_whitespace" /> <keyword name="factory" id="factory" ref="eric5.VCS.__init__.html#factory" /> <keyword name="factory" id="factory" ref="eric5.ViewManager.__init__.html#factory" /> @@ -12458,7 +12430,6 @@ <keyword name="flush" id="flush" ref="eric5.DebugClients.Ruby.AsyncFile.html#flush" /> <keyword name="formatTime" id="formatTime" ref="eric5.Plugins.VcsPlugins.vcsPySvn.SvnUtilities.html#formatTime" /> <keyword name="format_witnesses" id="format_witnesses" ref="eric5.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html#format_witnesses" /> - <keyword name="format_witnesses" id="format_witnesses" ref="eric5.UtilitiesPython2.Tabnanny.html#format_witnesses" /> <keyword name="fromNativeSeparators" id="fromNativeSeparators" ref="eric5.Utilities.__init__.html#fromNativeSeparators" /> <keyword name="generateDistroInfo" id="generateDistroInfo" ref="eric5.Utilities.__init__.html#generateDistroInfo" /> <keyword name="generatePluginsVersionInfo" id="generatePluginsVersionInfo" ref="eric5.Utilities.__init__.html#generatePluginsVersionInfo" /> @@ -12579,7 +12550,6 @@ <keyword name="get_class_members" id="get_class_members" ref="eric5.DebugClients.Python.FlexCompleter.html#get_class_members" /> <keyword name="get_class_members" id="get_class_members" ref="eric5.DebugClients.Python3.FlexCompleter.html#get_class_members" /> <keyword name="get_coding" id="get_coding" ref="eric5.Utilities.__init__.html#get_coding" /> - <keyword name="get_coding" id="get_coding" ref="eric5.UtilitiesPython2.Tools.html#get_coding" /> <keyword name="get_codingBytes" id="get_codingBytes" ref="eric5.Utilities.SyntaxCheck.html#get_codingBytes" /> <keyword name="get_count" id="get_count" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#get_count" /> <keyword name="get_error_statistics" id="get_error_statistics" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#get_error_statistics" /> @@ -12679,7 +12649,6 @@ <keyword name="normabsjoinpath" id="normabsjoinpath" ref="eric5.Utilities.__init__.html#normabsjoinpath" /> <keyword name="normabspath" id="normabspath" ref="eric5.Utilities.__init__.html#normabspath" /> <keyword name="normalizeCode" id="normalizeCode" ref="eric5.Utilities.SyntaxCheck.html#normalizeCode" /> - <keyword name="normalizeCode" id="normalizeCode" ref="eric5.UtilitiesPython2.Tools.html#normalizeCode" /> <keyword name="normcaseabspath" id="normcaseabspath" ref="eric5.Utilities.__init__.html#normcaseabspath" /> <keyword name="normcasepath" id="normcasepath" ref="eric5.Utilities.__init__.html#normcasepath" /> <keyword name="normjoinpath" id="normjoinpath" ref="eric5.Utilities.__init__.html#normjoinpath" /> @@ -12704,7 +12673,6 @@ <keyword name="printerr" id="printerr" ref="eric5.DebugClients.Python3.DebugBase.html#printerr" /> <keyword name="process_options" id="process_options" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#process_options" /> <keyword name="process_tokens" id="process_tokens" ref="eric5.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html#process_tokens" /> - <keyword name="process_tokens" id="process_tokens" ref="eric5.UtilitiesPython2.Tabnanny.html#process_tokens" /> <keyword name="proxyAuthenticationRequired" id="proxyAuthenticationRequired" ref="eric5.E5Network.E5NetworkProxyFactory.html#proxyAuthenticationRequired" /> <keyword name="purge (Module)" id="purge (Module)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.PurgeExtension.purge.html" /> <keyword name="pwConvert" id="pwConvert" ref="eric5.Utilities.crypto.__init__.html#pwConvert" /> @@ -12731,7 +12699,6 @@ <keyword name="rbclbr (Module)" id="rbclbr (Module)" ref="eric5.Utilities.ClassBrowsers.rbclbr.html" /> <keyword name="read" id="read" ref="eric5.DebugClients.Ruby.AsyncFile.html#read" /> <keyword name="readEncodedFile" id="readEncodedFile" ref="eric5.Utilities.SyntaxCheck.html#readEncodedFile" /> - <keyword name="readEncodedFile" id="readEncodedFile" ref="eric5.UtilitiesPython2.Tools.html#readEncodedFile" /> <keyword name="readEncodedFileWithHash" id="readEncodedFileWithHash" ref="eric5.Utilities.__init__.html#readEncodedFileWithHash" /> <keyword name="readModule" id="readModule" ref="eric5.Utilities.ModuleParser.html#readModule" /> <keyword name="readPlist" id="readPlist" ref="eric5.Utilities.binplistlib.html#readPlist" /> @@ -13625,6 +13592,7 @@ <file>eric5.Utilities.FtpUtilities.html</file> <file>eric5.Utilities.ModuleParser.html</file> <file>eric5.Utilities.PasswordChecker.html</file> + <file>eric5.Utilities.PySideImporter.html</file> <file>eric5.Utilities.SyntaxCheck.html</file> <file>eric5.Utilities.__init__.html</file> <file>eric5.Utilities.binplistlib.html</file> @@ -13637,10 +13605,6 @@ <file>eric5.Utilities.py3flakes.checker.html</file> <file>eric5.Utilities.py3flakes.messages.html</file> <file>eric5.Utilities.uic.html</file> - <file>eric5.UtilitiesPython2.PySideImporter.html</file> - <file>eric5.UtilitiesPython2.Tabnanny.html</file> - <file>eric5.UtilitiesPython2.TabnannyChecker.html</file> - <file>eric5.UtilitiesPython2.Tools.html</file> <file>eric5.VCS.CommandOptionsDialog.html</file> <file>eric5.VCS.ProjectBrowserHelper.html</file> <file>eric5.VCS.ProjectHelper.html</file> @@ -13776,7 +13740,6 @@ <file>index-eric5.Utilities.html</file> <file>index-eric5.Utilities.py2flakes.html</file> <file>index-eric5.Utilities.py3flakes.html</file> - <file>index-eric5.UtilitiesPython2.html</file> <file>index-eric5.VCS.html</file> <file>index-eric5.ViewManager.html</file> <file>index-eric5.html</file>
--- a/Documentation/Source/eric5.IconEditor.cursors.cursors_rc.html Thu May 30 15:33:23 2013 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' -'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> -<html><head> -<title>eric5.IconEditor.cursors.cursors_rc</title> -<style> -body { - background: #EDECE6; - margin: 0em 1em 10em 1em; - color: black; -} - -h1 { color: white; background: #85774A; } -h2 { color: white; background: #85774A; } -h3 { color: white; background: #9D936E; } -h4 { color: white; background: #9D936E; } - -a { color: #BA6D36; } - -</style> -</head> -<body><a NAME="top" ID="top"></a> -<h1>eric5.IconEditor.cursors.cursors_rc</h1> - -<h3>Global Attributes</h3> -<table> -<tr><td>qt_resource_data</td></tr><tr><td>qt_resource_name</td></tr><tr><td>qt_resource_struct</td></tr> -</table> -<h3>Classes</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Functions</h3> -<table> -<tr> -<td><a href="#qCleanupResources">qCleanupResources</a></td> -<td></td> -</tr><tr> -<td><a href="#qInitResources">qInitResources</a></td> -<td></td> -</tr> -</table> -<hr /><hr /> -<a NAME="qCleanupResources" ID="qCleanupResources"></a> -<h2>qCleanupResources</h2> -<b>qCleanupResources</b>(<i></i>) - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="qInitResources" ID="qInitResources"></a> -<h2>qInitResources</h2> -<b>qInitResources</b>(<i></i>) - -<div align="right"><a href="#top">Up</a></div> -<hr /> -</body></html> \ No newline at end of file
--- a/Documentation/Source/eric5.Plugins.CheckerPlugins.Pep8.Pep8Checker.html Thu May 30 15:33:23 2013 +0200 +++ b/Documentation/Source/eric5.Plugins.CheckerPlugins.Pep8.Pep8Checker.html Thu May 30 18:52:46 2013 +0200 @@ -32,9 +32,6 @@ <tr> <td><a href="#Pep8Checker">Pep8Checker</a></td> <td>Class implementing the PEP 8 checker.</td> -</tr><tr> -<td><a href="#Pep8Py2Checker">Pep8Py2Checker</a></td> -<td>Class implementing the PEP 8 checker interface for Python 2.</td> </tr> </table> <h3>Functions</h3> @@ -144,58 +141,5 @@ </dd> </dl> <div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="Pep8Py2Checker" ID="Pep8Py2Checker"></a> -<h2>Pep8Py2Checker</h2> -<p> - Class implementing the PEP 8 checker interface for Python 2. -</p> -<h3>Derived from</h3> -object -<h3>Class Attributes</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#Pep8Py2Checker.__init__">Pep8Py2Checker</a></td> -<td>Constructor</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="Pep8Py2Checker.__init__" ID="Pep8Py2Checker.__init__"></a> -<h4>Pep8Py2Checker (Constructor)</h4> -<b>Pep8Py2Checker</b>(<i>filename, lines, repeat=False, select="", ignore=""</i>) -<p> - Constructor -</p><dl> -<dt><i>filename</i></dt> -<dd> -name of the file to check (string) -</dd><dt><i>lines</i></dt> -<dd> -source of the file (list of strings) (ignored) -</dd><dt><i>repeat=</i></dt> -<dd> -flag indicating to repeat message categories (boolean) -</dd><dt><i>select=</i></dt> -<dd> -list of message IDs to check for - (comma separated string) -</dd><dt><i>ignore=</i></dt> -<dd> -list of message IDs to ignore - (comma separated string) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> <hr /> </body></html> \ No newline at end of file
--- a/Documentation/Source/eric5.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.html Thu May 30 15:33:23 2013 +0200 +++ b/Documentation/Source/eric5.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.html Thu May 30 18:52:46 2013 +0200 @@ -66,9 +66,6 @@ <td><a href="#TabnannyDialog.__finish">__finish</a></td> <td>Private slot called when the action or the user pressed the button.</td> </tr><tr> -<td><a href="#TabnannyDialog.__py2check">__py2check</a></td> -<td>Private method to perform the indentation check for Python 2 files.</td> -</tr><tr> <td><a href="#TabnannyDialog.__resort">__resort</a></td> <td>Private method to resort the tree.</td> </tr><tr> @@ -123,25 +120,7 @@ <b>__finish</b>(<i></i>) <p> Private slot called when the action or the user pressed the button. -</p><a NAME="TabnannyDialog.__py2check" ID="TabnannyDialog.__py2check"></a> -<h4>TabnannyDialog.__py2check</h4> -<b>__py2check</b>(<i>filename</i>) -<p> - Private method to perform the indentation check for Python 2 files. -</p><dl> -<dt><i>filename</i></dt> -<dd> -name of the file to be checked (string) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -A tuple indicating status (True = an error was found), the - filename, the linenumber and the error message - (boolean, string, string, string). The values are only - valid, if the status is True. -</dd> -</dl><a NAME="TabnannyDialog.__resort" ID="TabnannyDialog.__resort"></a> +</p><a NAME="TabnannyDialog.__resort" ID="TabnannyDialog.__resort"></a> <h4>TabnannyDialog.__resort</h4> <b>__resort</b>(<i></i>) <p>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Utilities.PySideImporter.html Thu May 30 18:52:46 2013 +0200 @@ -0,0 +1,39 @@ +<!DOCTYPE html> +<html><head> +<title>eric5.Utilities.PySideImporter</title> +<meta charset="UTF-8"> +<style> +body { + background: #EDECE6; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #85774A; } +h2 { color: white; background: #85774A; } +h3 { color: white; background: #9D936E; } +h4 { color: white; background: #9D936E; } + +a { color: #BA6D36; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric5.Utilities.PySideImporter</h1> +<p> +Module to check for the presence of PySide by importing it. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /> +</body></html> \ No newline at end of file
--- a/Documentation/Source/eric5.UtilitiesPython2.PySideImporter.html Thu May 30 15:33:23 2013 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -<!DOCTYPE html> -<html><head> -<title>eric5.UtilitiesPython2.PySideImporter</title> -<meta charset="UTF-8"> -<style> -body { - background: #EDECE6; - margin: 0em 1em 10em 1em; - color: black; -} - -h1 { color: white; background: #85774A; } -h2 { color: white; background: #85774A; } -h3 { color: white; background: #9D936E; } -h4 { color: white; background: #9D936E; } - -a { color: #BA6D36; } - -</style> -</head> -<body><a NAME="top" ID="top"></a> -<h1>eric5.UtilitiesPython2.PySideImporter</h1> -<p> -Module to check for the presence of PySide by importing it. -</p> -<h3>Global Attributes</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Classes</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Functions</h3> -<table> -<tr><td>None</td></tr> -</table> -<hr /> -</body></html> \ No newline at end of file
--- a/Documentation/Source/eric5.UtilitiesPython2.Tabnanny.html Thu May 30 15:33:23 2013 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,363 +0,0 @@ -<!DOCTYPE html> -<html><head> -<title>eric5.UtilitiesPython2.Tabnanny</title> -<meta charset="UTF-8"> -<style> -body { - background: #EDECE6; - margin: 0em 1em 10em 1em; - color: black; -} - -h1 { color: white; background: #85774A; } -h2 { color: white; background: #85774A; } -h3 { color: white; background: #9D936E; } -h4 { color: white; background: #9D936E; } - -a { color: #BA6D36; } - -</style> -</head> -<body><a NAME="top" ID="top"></a> -<h1>eric5.UtilitiesPython2.Tabnanny</h1> -<p> -The Tab Nanny despises ambiguous indentation. She knows no mercy. -</p><p> -tabnanny -- Detection of ambiguous indentation -</p><p> -For the time being this module is intended to be called as a script. -However it is possible to import it into an IDE and use the function -check() described below. -</p><p> -Warning: The API provided by this module is likely to change in future -releases; such changes may not be backward compatible. -</p><p> -This is a modified version to make the original tabnanny better suitable -for being called from within the eric5 IDE. -</p><dl> -<dt>Raises <b>ValueError</b>:</dt> -<dd> -The tokenize module is too old. -</dd> -</dl> -<h3>Global Attributes</h3> -<table> -<tr><td>__all__</td></tr><tr><td>__version__</td></tr> -</table> -<h3>Classes</h3> -<table> -<tr> -<td><a href="#NannyNag">NannyNag</a></td> -<td>Raised by tokeneater() if detecting an ambiguous indent.</td> -</tr><tr> -<td><a href="#Whitespace">Whitespace</a></td> -<td>Class implementing the whitespace checker.</td> -</tr> -</table> -<h3>Functions</h3> -<table> -<tr> -<td><a href="#check">check</a></td> -<td>Private function to check one Python source file for whitespace related problems.</td> -</tr><tr> -<td><a href="#format_witnesses">format_witnesses</a></td> -<td>Function to format the witnesses as a readable string.</td> -</tr><tr> -<td><a href="#process_tokens">process_tokens</a></td> -<td>Function processing all tokens generated by a tokenizer run.</td> -</tr> -</table> -<hr /><hr /> -<a NAME="NannyNag" ID="NannyNag"></a> -<h2>NannyNag</h2> -<p> - Raised by tokeneater() if detecting an ambiguous indent. - Captured and handled in check(). -</p> -<h3>Derived from</h3> -Exception -<h3>Class Attributes</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#NannyNag.__init__">NannyNag</a></td> -<td>Constructor</td> -</tr><tr> -<td><a href="#NannyNag.get_line">get_line</a></td> -<td>Method to retrieve the offending line.</td> -</tr><tr> -<td><a href="#NannyNag.get_lineno">get_lineno</a></td> -<td>Method to retrieve the line number.</td> -</tr><tr> -<td><a href="#NannyNag.get_msg">get_msg</a></td> -<td>Method to retrieve the message.</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="NannyNag.__init__" ID="NannyNag.__init__"></a> -<h4>NannyNag (Constructor)</h4> -<b>NannyNag</b>(<i>lineno, msg, line</i>) -<p> - Constructor -</p><dl> -<dt><i>lineno</i></dt> -<dd> -Line number of the ambiguous indent. -</dd><dt><i>msg</i></dt> -<dd> -Descriptive message assigned to this problem. -</dd><dt><i>line</i></dt> -<dd> -The offending source line. -</dd> -</dl><a NAME="NannyNag.get_line" ID="NannyNag.get_line"></a> -<h4>NannyNag.get_line</h4> -<b>get_line</b>(<i></i>) -<p> - Method to retrieve the offending line. -</p><dl> -<dt>Returns:</dt> -<dd> -The line of code (string) -</dd> -</dl><a NAME="NannyNag.get_lineno" ID="NannyNag.get_lineno"></a> -<h4>NannyNag.get_lineno</h4> -<b>get_lineno</b>(<i></i>) -<p> - Method to retrieve the line number. -</p><dl> -<dt>Returns:</dt> -<dd> -The line number (integer) -</dd> -</dl><a NAME="NannyNag.get_msg" ID="NannyNag.get_msg"></a> -<h4>NannyNag.get_msg</h4> -<b>get_msg</b>(<i></i>) -<p> - Method to retrieve the message. -</p><dl> -<dt>Returns:</dt> -<dd> -The error message (string) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="Whitespace" ID="Whitespace"></a> -<h2>Whitespace</h2> -<p> - Class implementing the whitespace checker. -</p> -<h3>Derived from</h3> -object -<h3>Class Attributes</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#Whitespace.__init__">Whitespace</a></td> -<td>Constructor</td> -</tr><tr> -<td><a href="#Whitespace.equal">equal</a></td> -<td>Method to compare the indentation levels of two Whitespace objects for equality.</td> -</tr><tr> -<td><a href="#Whitespace.indent_level">indent_level</a></td> -<td>Method to determine the indentation level.</td> -</tr><tr> -<td><a href="#Whitespace.less">less</a></td> -<td>Method to compare the indentation level against another Whitespace objects to be smaller.</td> -</tr><tr> -<td><a href="#Whitespace.longest_run_of_spaces">longest_run_of_spaces</a></td> -<td>Method to calculate the length of longest contiguous run of spaces.</td> -</tr><tr> -<td><a href="#Whitespace.not_equal_witness">not_equal_witness</a></td> -<td>Method to calculate a tuple of witnessing tab size.</td> -</tr><tr> -<td><a href="#Whitespace.not_less_witness">not_less_witness</a></td> -<td>Method to calculate a tuple of witnessing tab size.</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="Whitespace.__init__" ID="Whitespace.__init__"></a> -<h4>Whitespace (Constructor)</h4> -<b>Whitespace</b>(<i>ws</i>) -<p> - Constructor -</p><dl> -<dt><i>ws</i></dt> -<dd> -The string to be checked. -</dd> -</dl><a NAME="Whitespace.equal" ID="Whitespace.equal"></a> -<h4>Whitespace.equal</h4> -<b>equal</b>(<i>other</i>) -<p> - Method to compare the indentation levels of two Whitespace objects for equality. -</p><dl> -<dt><i>other</i></dt> -<dd> -Whitespace object to compare against. -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -True, if we compare equal against the other Whitespace object. -</dd> -</dl><a NAME="Whitespace.indent_level" ID="Whitespace.indent_level"></a> -<h4>Whitespace.indent_level</h4> -<b>indent_level</b>(<i>tabsize</i>) -<p> - Method to determine the indentation level. -</p><dl> -<dt><i>tabsize</i></dt> -<dd> -The length of a tab stop. (integer) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -indentation level (integer) -</dd> -</dl><a NAME="Whitespace.less" ID="Whitespace.less"></a> -<h4>Whitespace.less</h4> -<b>less</b>(<i>other</i>) -<p> - Method to compare the indentation level against another Whitespace objects to - be smaller. -</p><dl> -<dt><i>other</i></dt> -<dd> -Whitespace object to compare against. -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -True, if we compare less against the other Whitespace object. -</dd> -</dl><a NAME="Whitespace.longest_run_of_spaces" ID="Whitespace.longest_run_of_spaces"></a> -<h4>Whitespace.longest_run_of_spaces</h4> -<b>longest_run_of_spaces</b>(<i></i>) -<p> - Method to calculate the length of longest contiguous run of spaces. -</p><dl> -<dt>Returns:</dt> -<dd> -The length of longest contiguous run of spaces (whether or not - preceding a tab) -</dd> -</dl><a NAME="Whitespace.not_equal_witness" ID="Whitespace.not_equal_witness"></a> -<h4>Whitespace.not_equal_witness</h4> -<b>not_equal_witness</b>(<i>other</i>) -<p> - Method to calculate a tuple of witnessing tab size. -</p><p> - Intended to be used after not self.equal(other) is known, in which - case it will return at least one witnessing tab size. -</p><dl> -<dt><i>other</i></dt> -<dd> -Whitespace object to calculate against. -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -A list of tuples (ts, i1, i2) such that - i1 == self.indent_level(ts) != other.indent_level(ts) == i2. -</dd> -</dl><a NAME="Whitespace.not_less_witness" ID="Whitespace.not_less_witness"></a> -<h4>Whitespace.not_less_witness</h4> -<b>not_less_witness</b>(<i>other</i>) -<p> - Method to calculate a tuple of witnessing tab size. -</p><p> - Intended to be used after not self.less(other is known, in which - case it will return at least one witnessing tab size. -</p><dl> -<dt><i>other</i></dt> -<dd> -Whitespace object to calculate against. -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -A list of tuples (ts, i1, i2) such that - i1 == self.indent_level(ts) >= other.indent_level(ts) == i2. -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="check" ID="check"></a> -<h2>check</h2> -<b>check</b>(<i>filename, codestring</i>) -<p> - Private function to check one Python source file for whitespace related problems. -</p><dl> -<dt><i>filename</i></dt> -<dd> -source filename (string) -</dd><dt><i>codestring</i></dt> -<dd> -source code (string) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -A tuple indicating status (True = an error was found), the - filename, the linenumber and the error message - (boolean, string, string, string). The values are only - valid, if the status is True. -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="format_witnesses" ID="format_witnesses"></a> -<h2>format_witnesses</h2> -<b>format_witnesses</b>(<i>w</i>) -<p> - Function to format the witnesses as a readable string. -</p><dl> -<dt><i>w</i></dt> -<dd> -A list of witnesses -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -A formated string of the witnesses. -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="process_tokens" ID="process_tokens"></a> -<h2>process_tokens</h2> -<b>process_tokens</b>(<i>tokens</i>) -<p> - Function processing all tokens generated by a tokenizer run. -</p><dl> -<dt><i>tokens</i></dt> -<dd> -list of tokens -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /> -</body></html> \ No newline at end of file
--- a/Documentation/Source/eric5.UtilitiesPython2.TabnannyChecker.html Thu May 30 15:33:23 2013 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -<!DOCTYPE html> -<html><head> -<title>eric5.UtilitiesPython2.TabnannyChecker</title> -<meta charset="UTF-8"> -<style> -body { - background: #EDECE6; - margin: 0em 1em 10em 1em; - color: black; -} - -h1 { color: white; background: #85774A; } -h2 { color: white; background: #85774A; } -h3 { color: white; background: #9D936E; } -h4 { color: white; background: #9D936E; } - -a { color: #BA6D36; } - -</style> -</head> -<body><a NAME="top" ID="top"></a> -<h1>eric5.UtilitiesPython2.TabnannyChecker</h1> -<p> -Module implementing the indentation check for Python 2. -</p> -<h3>Global Attributes</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Classes</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Functions</h3> -<table> -<tr><td>None</td></tr> -</table> -<hr /> -</body></html> \ No newline at end of file
--- a/Documentation/Source/eric5.UtilitiesPython2.Tools.html Thu May 30 15:33:23 2013 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,150 +0,0 @@ -<!DOCTYPE html> -<html><head> -<title>eric5.UtilitiesPython2.Tools</title> -<meta charset="UTF-8"> -<style> -body { - background: #EDECE6; - margin: 0em 1em 10em 1em; - color: black; -} - -h1 { color: white; background: #85774A; } -h2 { color: white; background: #85774A; } -h3 { color: white; background: #9D936E; } -h4 { color: white; background: #9D936E; } - -a { color: #BA6D36; } - -</style> -</head> -<body><a NAME="top" ID="top"></a> -<h1>eric5.UtilitiesPython2.Tools</h1> -<p> -Module implementing tool functions. -</p> -<h3>Global Attributes</h3> -<table> -<tr><td>coding_regexps</td></tr> -</table> -<h3>Classes</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Functions</h3> -<table> -<tr> -<td><a href="#decode">decode</a></td> -<td>Function to decode a text.</td> -</tr><tr> -<td><a href="#extractLineFlags">extractLineFlags</a></td> -<td>Function to extract flags starting and ending with '__' from a line comment.</td> -</tr><tr> -<td><a href="#get_coding">get_coding</a></td> -<td>Function to get the coding of a text.</td> -</tr><tr> -<td><a href="#normalizeCode">normalizeCode</a></td> -<td>Function to normalize the given code.</td> -</tr><tr> -<td><a href="#readEncodedFile">readEncodedFile</a></td> -<td>Function to read a file and decode it's contents into proper text.</td> -</tr> -</table> -<hr /><hr /> -<a NAME="decode" ID="decode"></a> -<h2>decode</h2> -<b>decode</b>(<i>text</i>) -<p> - Function to decode a text. -</p><dl> -<dt><i>text</i></dt> -<dd> -text to decode (string) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -decoded text and encoding -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="extractLineFlags" ID="extractLineFlags"></a> -<h2>extractLineFlags</h2> -<b>extractLineFlags</b>(<i>line, startComment="</i>) -<p> - Function to extract flags starting and ending with '__' from a line comment. -</p><dl> -<dt><i>line</i></dt> -<dd> -line to extract flags from (string) -</dd><dt><i>startComment=</i></dt> -<dd> -string identifying the start of the comment (string) -</dd><dt><i>endComment=</i></dt> -<dd> -string identifying the end of a comment (string) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -list containing the extracted flags (list of strings) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="get_coding" ID="get_coding"></a> -<h2>get_coding</h2> -<b>get_coding</b>(<i>text</i>) -<p> - Function to get the coding of a text. -</p><dl> -<dt><i>text</i></dt> -<dd> -text to inspect (string) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -coding string -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="normalizeCode" ID="normalizeCode"></a> -<h2>normalizeCode</h2> -<b>normalizeCode</b>(<i>codestring</i>) -<p> - Function to normalize the given code. -</p><dl> -<dt><i>codestring</i></dt> -<dd> -code to be normalized (string) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -normalized code (string) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="readEncodedFile" ID="readEncodedFile"></a> -<h2>readEncodedFile</h2> -<b>readEncodedFile</b>(<i>filename</i>) -<p> - Function to read a file and decode it's contents into proper text. -</p><dl> -<dt><i>filename</i></dt> -<dd> -name of the file to read (string) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -tuple of decoded text and encoding (string, string) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /> -</body></html> \ No newline at end of file
--- a/Documentation/Source/index-eric5.Utilities.html Thu May 30 15:33:23 2013 +0200 +++ b/Documentation/Source/index-eric5.Utilities.html Thu May 30 18:52:46 2013 +0200 @@ -56,6 +56,9 @@ <td><a href="eric5.Utilities.PasswordChecker.html">PasswordChecker</a></td> <td>Module implementing a checker for password strength</td> </tr><tr> +<td><a href="eric5.Utilities.PySideImporter.html">PySideImporter</a></td> +<td>Module to check for the presence of PySide by importing it.</td> +</tr><tr> <td><a href="eric5.Utilities.SyntaxCheck.html">SyntaxCheck</a></td> <td>Module implementing the syntax check for Python 2/3.</td> </tr><tr>
--- a/Documentation/Source/index-eric5.UtilitiesPython2.html Thu May 30 15:33:23 2013 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,44 +0,0 @@ -<!DOCTYPE html> -<html><head> -<title>eric5.UtilitiesPython2</title> -<meta charset="UTF-8"> -<style> -body { - background: #EDECE6; - margin: 0em 1em 10em 1em; - color: black; -} - -h1 { color: white; background: #85774A; } -h2 { color: white; background: #85774A; } -h3 { color: white; background: #9D936E; } -h4 { color: white; background: #9D936E; } - -a { color: #BA6D36; } - -</style> -</head> -<body> -<h1>eric5.UtilitiesPython2</h1> -<p> -This package implements some utilities and tools for Python2 -</p> - - -<h3>Modules</h3> -<table> -<tr> -<td><a href="eric5.UtilitiesPython2.PySideImporter.html">PySideImporter</a></td> -<td>Module to check for the presence of PySide by importing it.</td> -</tr><tr> -<td><a href="eric5.UtilitiesPython2.Tabnanny.html">Tabnanny</a></td> -<td>The Tab Nanny despises ambiguous indentation.</td> -</tr><tr> -<td><a href="eric5.UtilitiesPython2.TabnannyChecker.html">TabnannyChecker</a></td> -<td>Module implementing the indentation check for Python 2.</td> -</tr><tr> -<td><a href="eric5.UtilitiesPython2.Tools.html">Tools</a></td> -<td>Module implementing tool functions.</td> -</tr> -</table> -</body></html> \ No newline at end of file
--- a/Documentation/Source/index-eric5.html Thu May 30 15:33:23 2013 +0200 +++ b/Documentation/Source/index-eric5.html Thu May 30 18:52:46 2013 +0200 @@ -117,9 +117,6 @@ <td><a href="index-eric5.Utilities.html">Utilities</a></td> <td>Package implementing various functions/classes needed everywhere within eric5.</td> </tr><tr> -<td><a href="index-eric5.UtilitiesPython2.html">UtilitiesPython2</a></td> -<td>This package implements some utilities and tools for Python2</td> -</tr><tr> <td><a href="index-eric5.VCS.html">VCS</a></td> <td>Module implementing the general part of the interface to version control systems.</td> </tr><tr>
--- a/Plugins/CheckerPlugins/Pep8/Pep8Checker.py Thu May 30 15:33:23 2013 +0200 +++ b/Plugins/CheckerPlugins/Pep8/Pep8Checker.py Thu May 30 18:52:46 2013 +0200 @@ -12,18 +12,10 @@ except (NameError): pass -import os import optparse -from PyQt4.QtCore import QProcess, QCoreApplication - from . import pep8 -import Preferences -import Utilities - -from eric5config import getConfig - class Pep8Checker(pep8.Checker): """ @@ -119,91 +111,3 @@ (self.filename, self.line_offset + line_number, offset + 1, text) ) - - -class Pep8Py2Checker(object): - """ - Class implementing the PEP 8 checker interface for Python 2. - """ - def __init__(self, filename, lines, repeat=False, - select="", ignore=""): - """ - Constructor - - @param filename name of the file to check (string) - @param lines source of the file (list of strings) (ignored) - @keyparam repeat flag indicating to repeat message categories (boolean) - @keyparam select list of message IDs to check for - (comma separated string) - @keyparam ignore list of message IDs to ignore - (comma separated string) - """ - self.messages = [] - self.statistics = {} - - interpreter = Preferences.getDebugger("PythonInterpreter") - if interpreter == "" or not Utilities.isExecutable(interpreter): - self.messages.append((filename, 1, 1, - QCoreApplication.translate("Pep8Py2Checker", - "Python2 interpreter not configured."))) - return - - checker = os.path.join(getConfig('ericDir'), - "UtilitiesPython2", "Pep8Checker.py") - - args = [checker] - if repeat: - args.append("-r") - if select: - args.append("-s") - args.append(select) - if ignore: - args.append("-i") - args.append(ignore) - args.append("-f") - args.append(filename) - - proc = QProcess() - proc.setProcessChannelMode(QProcess.MergedChannels) - proc.start(interpreter, args) - finished = proc.waitForFinished(15000) - if finished: - output = \ - str(proc.readAllStandardOutput(), - Preferences.getSystem("IOEncoding"), - 'replace').splitlines() - if output[0] == "ERROR": - self.messages.append((filename, 1, 1, output[2])) - return - - if output[0] == "NO_PEP8": - return - - index = 0 - while index < len(output): - if output[index] == "PEP8_STATISTICS": - index += 1 - break - - fname = output[index + 1] - lineno = int(output[index + 2]) - position = int(output[index + 3]) - code = output[index + 4] - arglen = int(output[index + 5]) - args = [] - argindex = 0 - while argindex < arglen: - args.append(output[index + 6 + argindex]) - argindex += 1 - index += 6 + arglen - - text = pep8.getMessage(code, *args) - self.messages.append((fname, lineno, position, text)) - while index < len(output): - code, countStr = output[index].split(None, 1) - self.statistics[code] = int(countStr) - index += 1 - else: - self.messages.append((filename, 1, 1, - QCoreApplication.translate("Pep8Py2Checker", - "Python2 interpreter did not finish within 15s.")))
--- a/Plugins/CheckerPlugins/Tabnanny/Tabnanny.py Thu May 30 15:33:23 2013 +0200 +++ b/Plugins/CheckerPlugins/Tabnanny/Tabnanny.py Thu May 30 18:52:46 2013 +0200 @@ -43,7 +43,10 @@ __version__ = "6_eric" import tokenize -import io +try: + import StringIO as io +except (ImportError): + import io # __IGNORE_WARNING__ import Utilities @@ -111,11 +114,9 @@ if not text: try: text = Utilities.readEncodedFile(file)[0] + text = Utilities.normalizeCode(text) except (UnicodeError, IOError) as msg: return (True, file, "1", "Error: {0}".format(str(msg))) - - # convert eols - text = Utilities.convertLineEnds(text, "\n") source = io.StringIO(text) try:
--- a/Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py Thu May 30 15:33:23 2013 +0200 +++ b/Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py Thu May 30 18:52:46 2013 +0200 @@ -9,14 +9,14 @@ from __future__ import unicode_literals # __IGNORE_WARNING__ try: - str = unicode + str = unicode # __IGNORE_WARNING__ except (NameError): pass import os import fnmatch -from PyQt4.QtCore import pyqtSlot, Qt, QProcess +from PyQt4.QtCore import pyqtSlot, Qt from PyQt4.QtGui import QDialog, QDialogButtonBox, QTreeWidgetItem, QApplication, \ QHeaderView @@ -27,8 +27,6 @@ import Utilities import Preferences -from eric5config import getConfig - class TabnannyDialog(QDialog, Ui_TabnannyDialog): """ @@ -118,24 +116,20 @@ files = fn elif os.path.isdir(fn): files = [] - for ext in Preferences.getPython("Python3Extensions"): - files.extend(Utilities.direntries(fn, 1, '*{0}'.format(ext), 0)) - for ext in Preferences.getPython("PythonExtensions"): - files.extend(Utilities.direntries(fn, 1, '*{0}'.format(ext), 0)) + extensions = set(Preferences.getPython("PythonExtensions") + + Preferences.getPython("Python3Extensions")) + for ext in extensions: + files.extend(Utilities.direntries(fn, True, '*{0}'.format(ext), 0)) else: files = [fn] - py3files = [f for f in files \ - if f.endswith(tuple(Preferences.getPython("Python3Extensions")))] - py2files = [f for f in files \ - if f.endswith(tuple(Preferences.getPython("PythonExtensions")))] - if len(py3files) + len(py2files) > 0: - self.checkProgress.setMaximum(len(py3files) + len(py2files)) + if len(files) > 0: + self.checkProgress.setMaximum(len(files)) QApplication.processEvents() # now go through all the files progress = 0 - for file in py3files + py2files: + for file in files: self.checkProgress.setValue(progress) QApplication.processEvents() self.__resort() @@ -145,29 +139,16 @@ try: source = Utilities.readEncodedFile(file)[0] - # convert eols - source = Utilities.convertLineEnds(source, "\n") + source = Utilities.normalizeCode(source) except (UnicodeError, IOError) as msg: self.noResults = False - self.__createResultItem(file, "1", + self.__createResultItem(file, 1, "Error: {0}".format(str(msg)).rstrip()[1:-1]) progress += 1 continue - - flags = Utilities.extractFlags(source) - ext = os.path.splitext(file)[1] - if ("FileType" in flags and - flags["FileType"] in ["Python", "Python2"]) or \ - file in py2files or \ - (ext in [".py", ".pyw"] and \ - Preferences.getProject("DeterminePyFromProject") and \ - self.__project.isOpen() and \ - self.__project.isProjectFile(file) and \ - self.__project.getProjectLanguage() in ["Python", "Python2"]): - nok, fname, line, error = self.__py2check(file) - else: - from . import Tabnanny - nok, fname, line, error = Tabnanny.check(file, source) + + from . import Tabnanny + nok, fname, line, error = Tabnanny.check(file, source) if nok: self.noResults = False self.__createResultItem(fname, line, error.rstrip()) @@ -245,47 +226,3 @@ lineno = int(itm.text(1)) e5App().getObject("ViewManager").openSourceFile(fn, lineno) - - ############################################################################ - ## Python 2 interface below - ############################################################################ - - def __py2check(self, filename): - """ - Private method to perform the indentation check for Python 2 files. - - @param filename name of the file to be checked (string) - @return A tuple indicating status (True = an error was found), the - filename, the linenumber and the error message - (boolean, string, string, string). The values are only - valid, if the status is True. - """ - interpreter = Preferences.getDebugger("PythonInterpreter") - if interpreter == "" or not Utilities.isExecutable(interpreter): - return (True, filename, "1", - self.trUtf8("Python2 interpreter not configured.")) - - checker = os.path.join(getConfig('ericDir'), - "UtilitiesPython2", "TabnannyChecker.py") - - proc = QProcess() - proc.setProcessChannelMode(QProcess.MergedChannels) - proc.start(interpreter, [checker, filename]) - finished = proc.waitForFinished(15000) - if finished: - output = \ - str(proc.readAllStandardOutput(), - Preferences.getSystem("IOEncoding"), - 'replace').splitlines() - - nok = output[0] == "ERROR" - if nok: - fn = output[1] - line = output[2] - error = output[3] - return (True, fn, line, error) - else: - return (False, None, None, None) - - return (True, filename, "1", - self.trUtf8("Python2 interpreter did not finish within 15s."))
--- a/UtilitiesPython2/Tabnanny.py Thu May 30 15:33:23 2013 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,390 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -The Tab Nanny despises ambiguous indentation. She knows no mercy. - -tabnanny -- Detection of ambiguous indentation - -For the time being this module is intended to be called as a script. -However it is possible to import it into an IDE and use the function -check() described below. - -Warning: The API provided by this module is likely to change in future -releases; such changes may not be backward compatible. - -This is a modified version to make the original tabnanny better suitable -for being called from within the eric5 IDE. - -@exception ValueError The tokenize module is too old. -""" - -# Released to the public domain, by Tim Peters, 15 April 1998. - -# XXX Note: this is now a standard library module. -# XXX The API needs to undergo changes however; the current code is too -# XXX script-like. This will be addressed later. - -# -# This is a modified version to make the original tabnanny better suitable -# for being called from within the eric4 IDE. The modifications are as -# follows: -# -# - there is no main function anymore -# - check function has been modified to only accept a filename and return -# a tuple indicating status (1 = an error was found), the filename, the -# linenumber and the error message (boolean, string, string, string). The -# values are only valid, if the status equals 1. -# -# Modifications copyright (c) 2003 Detlev Offenbach <detlev@die-offenbachs.de> -# - -__version__ = "6_eric5" - -import tokenize -import cStringIO - -if not hasattr(tokenize, 'NL'): - raise ValueError("tokenize.NL doesn't exist -- tokenize module too old") - -__all__ = ["check", "NannyNag", "process_tokens"] - - -class NannyNag(Exception): - """ - Raised by tokeneater() if detecting an ambiguous indent. - Captured and handled in check(). - """ - def __init__(self, lineno, msg, line): - """ - Constructor - - @param lineno Line number of the ambiguous indent. - @param msg Descriptive message assigned to this problem. - @param line The offending source line. - """ - self.lineno, self.msg, self.line = lineno, msg, line - - def get_lineno(self): - """ - Method to retrieve the line number. - - @return The line number (integer) - """ - return self.lineno - - def get_msg(self): - """ - Method to retrieve the message. - - @return The error message (string) - """ - return self.msg - - def get_line(self): - """ - Method to retrieve the offending line. - - @return The line of code (string) - """ - return self.line - - -def check(filename, codestring): - """ - Private function to check one Python source file for whitespace related problems. - - @param filename source filename (string) - @param codestring source code (string) - @return A tuple indicating status (True = an error was found), the - filename, the linenumber and the error message - (boolean, string, string, string). The values are only - valid, if the status is True. - """ - global indents, check_equal - indents = [Whitespace("")] - check_equal = 0 - - source = cStringIO.StringIO(codestring) - try: - process_tokens(tokenize.generate_tokens(source.readline)) - - except tokenize.TokenError, msg: - return (True, filename, "1", "Token Error: %s" % unicode(msg)) - - except IndentationError, err: - return (True, filename, err.lineno, "Indentation Error: %s" % unicode(err.msg)) - - except NannyNag, nag: - badline = nag.get_lineno() - line = nag.get_line() - return (True, filename, str(badline), line) - - except Exception, err: - return (True, filename, "1", "Unspecific Error: %s" % unicode(err)) - - return (False, None, None, None) - - -class Whitespace(object): - """ - Class implementing the whitespace checker. - """ - # the characters used for space and tab - S, T = ' \t' - - # members: - # raw - # the original string - # n - # the number of leading whitespace characters in raw - # nt - # the number of tabs in raw[:n] - # norm - # the normal form as a pair (count, trailing), where: - # count - # a tuple such that raw[:n] contains count[i] - # instances of S * i + T - # trailing - # the number of trailing spaces in raw[:n] - # It's A Theorem that m.indent_level(t) == - # n.indent_level(t) for all t >= 1 iff m.norm == n.norm. - # is_simple - # true iff raw[:n] is of the form (T*)(S*) - - def __init__(self, ws): - """ - Constructor - - @param ws The string to be checked. - """ - self.raw = ws - S, T = Whitespace.S, Whitespace.T - count = [] - b = n = nt = 0 - for ch in self.raw: - if ch == S: - n = n + 1 - b = b + 1 - elif ch == T: - n = n + 1 - nt = nt + 1 - if b >= len(count): - count = count + [0] * (b - len(count) + 1) - count[b] = count[b] + 1 - b = 0 - else: - break - self.n = n - self.nt = nt - self.norm = tuple(count), b - self.is_simple = len(count) <= 1 - - # return length of longest contiguous run of spaces (whether or not - # preceding a tab) - def longest_run_of_spaces(self): - """ - Method to calculate the length of longest contiguous run of spaces. - - @return The length of longest contiguous run of spaces (whether or not - preceding a tab) - """ - count, trailing = self.norm - return max(len(count) - 1, trailing) - - def indent_level(self, tabsize): - """ - Method to determine the indentation level. - - @param tabsize The length of a tab stop. (integer) - @return indentation level (integer) - """ - # count, il = self.norm - # for i in range(len(count)): - # if count[i]: - # il = il + (i/tabsize + 1)*tabsize * count[i] - # return il - - # quicker: - # il = trailing + sum (i/ts + 1)*ts*count[i] = - # trailing + ts * sum (i/ts + 1)*count[i] = - # trailing + ts * sum i/ts*count[i] + count[i] = - # trailing + ts * [(sum i/ts*count[i]) + (sum count[i])] = - # trailing + ts * [(sum i/ts*count[i]) + num_tabs] - # and note that i/ts*count[i] is 0 when i < ts - - count, trailing = self.norm - il = 0 - for i in range(tabsize, len(count)): - il = il + i / tabsize * count[i] - return trailing + tabsize * (il + self.nt) - - # return true iff self.indent_level(t) == other.indent_level(t) - # for all t >= 1 - def equal(self, other): - """ - Method to compare the indentation levels of two Whitespace objects for equality. - - @param other Whitespace object to compare against. - @return True, if we compare equal against the other Whitespace object. - """ - return self.norm == other.norm - - # return a list of tuples (ts, i1, i2) such that - # i1 == self.indent_level(ts) != other.indent_level(ts) == i2. - # Intended to be used after not self.equal(other) is known, in which - # case it will return at least one witnessing tab size. - def not_equal_witness(self, other): - """ - Method to calculate a tuple of witnessing tab size. - - Intended to be used after not self.equal(other) is known, in which - case it will return at least one witnessing tab size. - - @param other Whitespace object to calculate against. - @return A list of tuples (ts, i1, i2) such that - i1 == self.indent_level(ts) != other.indent_level(ts) == i2. - """ - n = max(self.longest_run_of_spaces(), - other.longest_run_of_spaces()) + 1 - a = [] - for ts in range(1, n + 1): - if self.indent_level(ts) != other.indent_level(ts): - a.append((ts, - self.indent_level(ts), - other.indent_level(ts))) - return a - - # Return True iff self.indent_level(t) < other.indent_level(t) - # for all t >= 1. - # The algorithm is due to Vincent Broman. - # Easy to prove it's correct. - # XXXpost that. - # Trivial to prove n is sharp (consider T vs ST). - # Unknown whether there's a faster general way. I suspected so at - # first, but no longer. - # For the special (but common!) case where M and N are both of the - # form (T*)(S*), M.less(N) iff M.len() < N.len() and - # M.num_tabs() <= N.num_tabs(). Proof is easy but kinda long-winded. - # XXXwrite that up. - # Note that M is of the form (T*)(S*) iff len(M.norm[0]) <= 1. - def less(self, other): - """ - Method to compare the indentation level against another Whitespace objects to - be smaller. - - @param other Whitespace object to compare against. - @return True, if we compare less against the other Whitespace object. - """ - if self.n >= other.n: - return False - if self.is_simple and other.is_simple: - return self.nt <= other.nt - n = max(self.longest_run_of_spaces(), - other.longest_run_of_spaces()) + 1 - # the self.n >= other.n test already did it for ts=1 - for ts in range(2, n + 1): - if self.indent_level(ts) >= other.indent_level(ts): - return False - return True - - # return a list of tuples (ts, i1, i2) such that - # i1 == self.indent_level(ts) >= other.indent_level(ts) == i2. - # Intended to be used after not self.less(other) is known, in which - # case it will return at least one witnessing tab size. - def not_less_witness(self, other): - """ - Method to calculate a tuple of witnessing tab size. - - Intended to be used after not self.less(other is known, in which - case it will return at least one witnessing tab size. - - @param other Whitespace object to calculate against. - @return A list of tuples (ts, i1, i2) such that - i1 == self.indent_level(ts) >= other.indent_level(ts) == i2. - """ - n = max(self.longest_run_of_spaces(), - other.longest_run_of_spaces()) + 1 - a = [] - for ts in range(1, n + 1): - if self.indent_level(ts) >= other.indent_level(ts): - a.append((ts, - self.indent_level(ts), - other.indent_level(ts))) - return a - - -def format_witnesses(w): - """ - Function to format the witnesses as a readable string. - - @param w A list of witnesses - @return A formated string of the witnesses. - """ - firsts = map(lambda tup: str(tup[0]), w) - prefix = "at tab size" - if len(w) > 1: - prefix = prefix + "s" - return prefix + " " + ', '.join(firsts) - - -def process_tokens(tokens): - """ - Function processing all tokens generated by a tokenizer run. - - @param tokens list of tokens - """ - INDENT = tokenize.INDENT - DEDENT = tokenize.DEDENT - NEWLINE = tokenize.NEWLINE - JUNK = tokenize.COMMENT, tokenize.NL - indents = [Whitespace("")] - check_equal = 0 - - for (type, token, start, end, line) in tokens: - if type == NEWLINE: - # a program statement, or ENDMARKER, will eventually follow, - # after some (possibly empty) run of tokens of the form - # (NL | COMMENT)* (INDENT | DEDENT+)? - # If an INDENT appears, setting check_equal is wrong, and will - # be undone when we see the INDENT. - check_equal = 1 - - elif type == INDENT: - check_equal = 0 - thisguy = Whitespace(token) - if not indents[-1].less(thisguy): - witness = indents[-1].not_less_witness(thisguy) - msg = "indent not greater e.g. " + format_witnesses(witness) - raise NannyNag(start[0], msg, line) - indents.append(thisguy) - - elif type == DEDENT: - # there's nothing we need to check here! what's important is - # that when the run of DEDENTs ends, the indentation of the - # program statement (or ENDMARKER) that triggered the run is - # equal to what's left at the top of the indents stack - - # Ouch! This assert triggers if the last line of the source - # is indented *and* lacks a newline -- then DEDENTs pop out - # of thin air. - # assert check_equal # else no earlier NEWLINE, or an earlier INDENT - check_equal = 1 - - del indents[-1] - - elif check_equal and type not in JUNK: - # this is the first "real token" following a NEWLINE, so it - # must be the first token of the next program statement, or an - # ENDMARKER; the "line" argument exposes the leading whitespace - # for this statement; in the case of ENDMARKER, line is an empty - # string, so will properly match the empty string with which the - # "indents" stack was seeded - check_equal = 0 - thisguy = Whitespace(line) - if not indents[-1].equal(thisguy): - witness = indents[-1].not_equal_witness(thisguy) - msg = "indent not equal e.g. " + format_witnesses(witness) - raise NannyNag(start[0], msg, line) - -# -# eflag: FileType = Python2
--- a/UtilitiesPython2/TabnannyChecker.py Thu May 30 15:33:23 2013 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,46 +0,0 @@ -#!/usr/bin/env python2 -# -*- coding: utf-8 -*- - -# Copyright (c) 2011 - 2013 Detlev Offenbach <detlev@die-offenbachs.de> -# - -""" -Module implementing the indentation check for Python 2. -""" - -import sys - -import Tabnanny - -from Tools import readEncodedFile, normalizeCode - -if __name__ == "__main__": - if len(sys.argv) < 2: - print "ERROR" - print "" - print "" - print "No file name given." - else: - filename = sys.argv[-1] - try: - codestring = readEncodedFile(filename)[0] - codestring = normalizeCode(codestring) - - nok, fname, line, error = Tabnanny.check(filename, codestring) - except IOError, msg: - # fake an indentation error - nok, fname, line, error = \ - True, filename, "1", "I/O Error: %s" % unicode(msg) - - if nok: - print "ERROR" - else: - print "NO_ERROR" - print fname - print line - print error - - sys.exit(0) - -# -# eflag: FileType = Python2
--- a/UtilitiesPython2/Tools.py Thu May 30 15:33:23 2013 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,121 +0,0 @@ -# -*- coding: utf-8 -*- - -# Copyright (c) 2011 - 2013 Detlev Offenbach <detlev@die-offenbachs.de> -# - -""" -Module implementing tool functions. -""" - -import re -from codecs import BOM_UTF8, BOM_UTF16, BOM_UTF32 - -coding_regexps = [ - (2, re.compile(r'''coding[:=]\s*([-\w_.]+)''')), - (1, re.compile(r'''<\?xml.*\bencoding\s*=\s*['"]([-\w_.]+)['"]\?>''')), -] - - -def get_coding(text): - """ - Function to get the coding of a text. - - @param text text to inspect (string) - @return coding string - """ - lines = text.splitlines() - for coding in coding_regexps: - coding_re = coding[1] - head = lines[:coding[0]] - for l in head: - m = coding_re.search(l) - if m: - return m.group(1).lower() - return None - - -def decode(text): - """ - Function to decode a text. - - @param text text to decode (string) - @return decoded text and encoding - """ - try: - if text.startswith(BOM_UTF8): - # UTF-8 with BOM - return unicode(text[len(BOM_UTF8):], 'utf-8'), 'utf-8-bom' - elif text.startswith(BOM_UTF16): - # UTF-16 with BOM - return unicode(text[len(BOM_UTF16):], 'utf-16'), 'utf-16' - elif text.startswith(BOM_UTF32): - # UTF-32 with BOM - return unicode(text[len(BOM_UTF32):], 'utf-32'), 'utf-32' - coding = get_coding(text) - if coding: - return unicode(text, coding), coding - except (UnicodeError, LookupError): - pass - - # Assume UTF-8 - try: - return unicode(text, 'utf-8'), 'utf-8-guessed' - except (UnicodeError, LookupError): - pass - - # Assume Latin-1 (behaviour before 3.7.1) - return unicode(text, "latin-1"), 'latin-1-guessed' - - -def readEncodedFile(filename): - """ - Function to read a file and decode it's contents into proper text. - - @param filename name of the file to read (string) - @return tuple of decoded text and encoding (string, string) - """ - f = open(filename) - text = f.read() - f.close() - return decode(text) - - -def normalizeCode(codestring): - """ - Function to normalize the given code. - - @param codestring code to be normalized (string) - @return normalized code (string) - """ - if type(codestring) == type(u""): - codestring = codestring.encode('utf-8') - codestring = codestring.replace("\r\n", "\n").replace("\r", "\n") - - if codestring and codestring[-1] != '\n': - codestring = codestring + '\n' - - return codestring - - -def extractLineFlags(line, startComment="#", endComment=""): - """ - Function to extract flags starting and ending with '__' from a line comment. - - @param line line to extract flags from (string) - @keyparam startComment string identifying the start of the comment (string) - @keyparam endComment string identifying the end of a comment (string) - @return list containing the extracted flags (list of strings) - """ - flags = [] - - pos = line.rfind(startComment) - if pos >= 0: - comment = line[pos + len(startComment):].strip() - if endComment: - comment = comment.replace("endComment", "") - flags = [f.strip() for f in comment.split() - if (f.startswith("__") and f.endswith("__"))] - return flags - -# -# eflag: FileType = Python2
--- a/UtilitiesPython2/__init__.py Thu May 30 15:33:23 2013 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -# -*- coding: utf-8 -*- - -# Copyright (c) 2011 - 2013 Detlev Offenbach <detlev@die-offenbachs.de> -# - -""" -This package implements some utilities and tools for Python2 -"""
--- a/eric5.e4p Thu May 30 15:33:23 2013 +0200 +++ b/eric5.e4p Thu May 30 18:52:46 2013 +0200 @@ -798,10 +798,6 @@ <Source>ThirdParty/Pygments/pygments/lexers/_asybuiltins.py</Source> <Source>ThirdParty/Pygments/pygments/styles/monokai.py</Source> <Source>Preferences/ConfigurationPages/TrayStarterPage.py</Source> - <Source>UtilitiesPython2/__init__.py</Source> - <Source>UtilitiesPython2/Tools.py</Source> - <Source>UtilitiesPython2/Tabnanny.py</Source> - <Source>UtilitiesPython2/TabnannyChecker.py</Source> <Source>ThirdParty/Pygments/pygments/lexers/hdl.py</Source> <Source>Plugins/CheckerPlugins/Pep8/__init__.py</Source> <Source>Plugins/CheckerPlugins/Pep8/pep8.py</Source>
--- a/install.py Thu May 30 15:33:23 2013 +0200 +++ b/install.py Thu May 30 18:52:46 2013 +0200 @@ -10,6 +10,11 @@ """ from __future__ import unicode_literals # __IGNORE_WARNING__ +from __future__ import print_function # __IGNORE_WARNING__ +try: + import io +except (ImportError): + import StringIO as io import sys import os @@ -20,6 +25,7 @@ import shutil import fnmatch import distutils.sysconfig +import codecs # Define the globals. progName = None @@ -73,9 +79,10 @@ global currDir if sys.platform.startswith("win"): + # different meaning of input between Py2 and Py3 try: input("Press enter to continue...") - except EOFError: + except (EOFError, SyntaxError): pass os.chdir(currDir) @@ -177,8 +184,8 @@ @param name the name of the file. @param text the contents to copy to the file. """ - f = open(name, "w", encoding="utf-8") - f.write(text) + f = open(name, "w") + f.write(codecs.encode(text, "utf-8")) f.close() @@ -299,7 +306,7 @@ if not os.path.exists(fname): if not os.path.exists(pdir): os.mkdir(pdir, 0o755) - f = open(fname, "w", encoding="utf-8") + f = open(fname, "w") f.write( '''# -*- coding: utf-8 -*- @@ -783,7 +790,10 @@ print('Checking dependencies') # perform dependency checks - if sys.version_info < (3, 1, 0): + if sys.version_info < (2, 6, 0): + print('Sorry, you must have Python 2.6.0 or higher or Python 3.1.0 or higher.') + exit(5) + elif sys.version_info < (3, 1, 0): print('Sorry, you must have Python 3.1.0 or higher.') exit(5) if sys.version_info > (3, 9, 9): @@ -794,7 +804,7 @@ try: import xml.etree # __IGNORE_WARNING__ except ImportError as msg: - print('Your Python3 installation is missing the XML module.') + print('Your Python installation is missing the XML module.') print('Please install it and try again.') exit(5) @@ -1114,20 +1124,23 @@ if doCompile: print("\nCompiling source files ...") + # Hide compile errors (mainly because of Py2/Py3 differences) + sys.stdout = io.StringIO() if distDir: compileall.compile_dir(sourceDir, ddir=os.path.join(distDir, modDir, cfg['ericDir']), - rx=re.compile(r"DebugClients[\\/]Python[\\/]|UtilitiesPython2[\\/]"), + rx=re.compile(r"DebugClients[\\/]Python[\\/]"), quiet=True) py_compile.compile(configName, dfile=os.path.join(distDir, modDir, "eric5config.py")) else: compileall.compile_dir(sourceDir, ddir=os.path.join(modDir, cfg['ericDir']), - rx=re.compile(r"DebugClients[\\/]Python[\\/]|UtilitiesPython2[\\/]"), + rx=re.compile(r"DebugClients[\\/]Python[\\/]"), quiet=True) py_compile.compile(configName, dfile=os.path.join(modDir, "eric5config.py")) + sys.stdout = sys.__stdout__ print("\nInstalling eric5 ...") res = installEric()