Wed, 15 Jan 2014 22:55:52 +0100
CodeStyleChecker moved to background service and done a little cleanup.
--- a/APIs/Python3/eric5.api Sun Jan 05 22:45:29 2014 +0100 +++ b/APIs/Python3/eric5.api Wed Jan 15 22:55:52 2014 +0100 @@ -3734,7 +3734,12 @@ eric5.Plugins.AboutPlugin.AboutDialog.licenseText?7 eric5.Plugins.AboutPlugin.AboutDialog.thanksText?7 eric5.Plugins.AboutPlugin.AboutDialog.titleText?7 -eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleChecker.CodeStyleCheckerPy2?1(filename, lines, repeat=False, select="", ignore="", max_line_length=79, hang_closing=False, docType="pep257") +eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleChecker.CodeStyleCheckerReport.error_args?4(line_number, offset, code, check, *args) +eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleChecker.CodeStyleCheckerReport?1(options) +eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleChecker.codeStyleCheck?4(filename, source, args) +eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleChecker.extractLineFlags?4(line, startComment=") +eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleChecker.initService?4() +eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.CodeStyleCheckerDialog.check?4(codestring='', onlyFixes={}) eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.CodeStyleCheckerDialog.codeRole?7 eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.CodeStyleCheckerDialog.filenameRole?7 eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.CodeStyleCheckerDialog.fixableRole?7 @@ -3758,21 +3763,20 @@ eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.CodeStyleCheckerDialog.prepare?4(fileList, project) eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.CodeStyleCheckerDialog.start?4(fn, save=False, repeat=None) eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.CodeStyleCheckerDialog?1(parent=None) -eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.CodeStyleCheckerReport.error_args?4(line_number, offset, code, check, *args) -eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.CodeStyleCheckerReport?1(options) eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCodeSelectionDialog.CodeStyleCodeSelectionDialog.getSelectedCodes?4() eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCodeSelectionDialog.CodeStyleCodeSelectionDialog?1(codes, showFixCodes, parent=None) eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.CodeStyleFixer.finalize?4() eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.CodeStyleFixer.fixIssue?4(line, pos, message) eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.CodeStyleFixer.mutualStartswith?4(b) eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.CodeStyleFixer.saveFile?4(encoding) -eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.CodeStyleFixer?1(project, filename, sourceLines, fixCodes, noFixCodes, maxLineLength, inPlace) +eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.CodeStyleFixer?1(filename, sourceLines, fixCodes, noFixCodes, maxLineLength, inPlace, eol) eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.FixableCodeStyleIssues?7 eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.IndentationWrapper.SKIP_TOKENS?7 eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.IndentationWrapper.pep8Expected?4() eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.IndentationWrapper?1(physical_lines) eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.LineShortener.shorten?4() eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.LineShortener?1(curLine, prevLine, nextLine, maxLength=79, eol="\n", indentWord=" ", isDocString=False) +eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.QT_TRANSLATE_NOOP?7 eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.Reindenter.fixedLine?4(line) eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.Reindenter.getline?4() eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.Reindenter.run?4() @@ -3792,7 +3796,7 @@ eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.DocStyleContext.ssource?4() eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.DocStyleContext.start?4() eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.DocStyleContext?1(source, startLine, contextType) -eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.PyCF_ONLY_AST?7 +eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.QT_TRANSLATE_NOOP?7 eric5.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.NamingStyleChecker.CamelcaseRegexp?7 eric5.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.NamingStyleChecker.Codes?7 eric5.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.NamingStyleChecker.LowercaseRegex?7 @@ -3801,7 +3805,9 @@ eric5.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.NamingStyleChecker.UppercaseRegexp?7 eric5.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.NamingStyleChecker.getMessage?4(code, *args) eric5.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.NamingStyleChecker.run?4() +eric5.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.NamingStyleChecker.unpackArgs?4() eric5.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.NamingStyleChecker?1(tree, filename, options) +eric5.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.QT_TRANSLATE_NOOP?7 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.ARITHMETIC_OP?7 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.BENCHMARK_KEYS?7 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.BaseReport.error?4(line_number, offset, text, check) @@ -3848,6 +3854,7 @@ eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.OPERATOR_REGEX?7 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.PROJECT_CONFIG?7 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.PyCF_ONLY_AST?7 +eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.QT_TRANSLATE_NOOP?7 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.RAISE_COMMA_REGEX?7 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.REPORT_FORMAT?7 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.RERAISE_COMMA_REGEX?7 @@ -3917,6 +3924,11 @@ eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.whitespace_around_operator?4(logical_line) eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.whitespace_before_inline_comment?4(logical_line, tokens) eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.whitespace_before_parameters?4(logical_line, tokens) +eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck.extractLineFlags?4(line, startComment=") +eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck.initService?4() +eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck.normalizeCode?4(codestring) +eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck.syntaxAndPyflakesCheck?4(filename, codestring="", checkFlakes=True, ignoreStarImportWarnings=False) +eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.SyntaxCheckerDialog.check?4(codestring='') eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.SyntaxCheckerDialog.errorRole?7 eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.SyntaxCheckerDialog.filenameRole?7 eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.SyntaxCheckerDialog.indexRole?7 @@ -3929,6 +3941,110 @@ eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.SyntaxCheckerDialog.start?4(fn, codestring="") eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.SyntaxCheckerDialog.warningRole?7 eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.SyntaxCheckerDialog?1(parent=None) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.AND?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.ASSIGN?4(node) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.AUGASSIGN?4(node) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.BOOLOP?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.CLASSDEF?4(node) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.COMPREHENSION?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.CONTINUE?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.DICTCOMP?4(node) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.EXCEPTHANDLER?4(node) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.FOR?4(node) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.FUNCTIONDEF?4(node) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.GENERATOREXP?4(node) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.GLOBAL?4(node) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.IMPORT?4(node) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.IMPORTFROM?4(node) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.LAMBDA?4(node) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.LISTCOMP?4(node) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.LOAD?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.NAME?4(node) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.NONLOCAL?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.NUM?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.RETURN?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.SETCOMP?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.SLICE?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.TRY?4(node) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.TRYEXCEPT?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker._customBuiltIns?8 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker._getDoctestExamples?8 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.addArgs?4() +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.addBinding?4(node, value, reportRedef=True) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.builtIns?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.checkDeadScopes?4() +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.checkUnusedAssignments?4() +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.collectLoopVars?4() +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.deferAssignment?4(callable) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.deferFunction?4(callable) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.descendantOf?4(node, ancestors, stop=None) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.differentForks?4(lnode, rnode) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.getCommonAncestor?4(lnode, rnode, stop=None) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.getDocstring?4(node) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.getNodeHandler?4(node_class) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.handleChildren?4(tree) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.handleDoctests?4(node) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.handleNode?4(node, parent) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.handleNodeDelete?4(node) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.handleNodeLoad?4(node) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.handleNodeStore?4(node) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.hasParent?4(node, kind) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.ignore?4(node) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.isDocstring?4(node) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.nodeDepth?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.offset?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.onFork?4(parent, lnode, rnode, items) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.popScope?4() +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.pushClassScope?4() +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.pushFunctionScope?4() +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.pushScope?4(scopeClass=FunctionScope) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.report?4(messageClass, *args, **kwargs) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.runDeferred?4(deferred) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.runFunction?4() +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.scope?4() +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.traceTree?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.withDoctest?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker?1(tree, filename='(none)', builtins=None) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.FunctionScope.alwaysUsed?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.FunctionScope.usesLocals?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Scope.importStarred?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker._MAGIC_GLOBALS?8 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.getNodeName?4(node) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.getNodeType?4(node_class) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.iter_child_nodes?4(node) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.names?4(self) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.unusedAssignments?4(self) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.DoctestSyntaxError.message?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.DoctestSyntaxError?1(filename, loc, position=None) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.DuplicateArgument.message?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.DuplicateArgument?1(filename, loc, name) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.ImportShadowedByLoopVar.message?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.ImportShadowedByLoopVar?1(filename, loc, name, orig_loc) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.ImportStarUsed.message?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.ImportStarUsed?1(filename, loc, modname) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.LateFutureImport.message?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.LateFutureImport?1(filename, loc, names) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.Message.getMessageData?4() +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.Message.message?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.Message.message_args?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.Message?1(filename, loc) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.QT_TRANSLATE_NOOP?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.Redefined.message?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.Redefined?1(filename, loc, name, orig_loc) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.RedefinedInListComp.message?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.RedefinedInListComp?1(filename, loc, name, orig_loc) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.RedefinedWhileUnused.message?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.RedefinedWhileUnused?1(filename, loc, name, orig_loc) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.UndefinedExport.message?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.UndefinedExport?1(filename, loc, name) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.UndefinedLocal.message?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.UndefinedLocal?1(filename, loc, name, orig_loc) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.UndefinedName.message?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.UndefinedName?1(filename, loc, name) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.UnusedImport.message?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.UnusedImport?1(filename, loc, name) +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.UnusedVariable.message?7 +eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.UnusedVariable?1(filename, loc, names) eric5.Plugins.CheckerPlugins.Tabnanny.Tabnanny.NannyNag.get_line?4() eric5.Plugins.CheckerPlugins.Tabnanny.Tabnanny.NannyNag.get_lineno?4() eric5.Plugins.CheckerPlugins.Tabnanny.Tabnanny.NannyNag.get_msg?4() @@ -8062,6 +8178,16 @@ eric5.Utilities.AutoSaver.AutoSaver.saveIfNeccessary?4() eric5.Utilities.AutoSaver.AutoSaver.timerEvent?4(evt) eric5.Utilities.AutoSaver.AutoSaver?1(parent, save) +eric5.Utilities.BackgroundClient.BackgroundClient.backgroundClient?7 +eric5.Utilities.BackgroundClient.BackgroundClient.run?4() +eric5.Utilities.BackgroundClient.BackgroundClient?1(host, port) +eric5.Utilities.BackgroundService.BackgroundService.enqueueRequest?4(fx, fn, pyVer, data) +eric5.Utilities.BackgroundService.BackgroundService.on_newConnection?4() +eric5.Utilities.BackgroundService.BackgroundService.serviceConnect?4(fx, modulepath, module, callback, onErrorCallback=None) +eric5.Utilities.BackgroundService.BackgroundService.serviceDisconnect?4(fx) +eric5.Utilities.BackgroundService.BackgroundService.serviceNotAvailable?7 +eric5.Utilities.BackgroundService.BackgroundService.shutdown?4() +eric5.Utilities.BackgroundService.BackgroundService?1() eric5.Utilities.ClassBrowsers.ClbrBaseClasses.Attribute.addAssignment?4(lineno) eric5.Utilities.ClassBrowsers.ClbrBaseClasses.Attribute?1(module, name, file, lineno) eric5.Utilities.ClassBrowsers.ClbrBaseClasses.Class?1(module, name, super, file, lineno) @@ -8148,6 +8274,11 @@ eric5.Utilities.FtpUtilities.FtpDirLineParser.WindowsMode?7 eric5.Utilities.FtpUtilities.FtpDirLineParser.parseLine?4(line) eric5.Utilities.FtpUtilities.FtpDirLineParser?1(parent=None) +eric5.Utilities.InternalServices.InternalServices.styleCheck?4(filename, source, args, pyVer=None, editor=None) +eric5.Utilities.InternalServices.InternalServices.styleChecked?7 +eric5.Utilities.InternalServices.InternalServices.syntaxCheck?4(filename, source="", checkFlakes=True, ignoreStarImportWarnings=False, pyVer=None, editor=None) +eric5.Utilities.InternalServices.InternalServices.syntaxChecked?7 +eric5.Utilities.InternalServices.InternalServices?1(backgroundService) eric5.Utilities.ModuleParser.Attribute.addAssignment?4(lineno) eric5.Utilities.ModuleParser.Attribute?1(module, name, file, lineno, isSignal=False) eric5.Utilities.ModuleParser.Class.addAttribute?4(name, attr) @@ -8212,13 +8343,6 @@ eric5.Utilities.PasswordChecker.PasswordChecker.Status_Passed?7 eric5.Utilities.PasswordChecker.PasswordChecker.checkPassword?4(password) eric5.Utilities.PasswordChecker.PasswordChecker?1() -eric5.Utilities.SyntaxCheck.codingBytes_regexps?7 -eric5.Utilities.SyntaxCheck.compile_and_check?4(file_, codestring="", checkFlakes=True, ignoreStarImportWarnings=False) -eric5.Utilities.SyntaxCheck.decode?4(text) -eric5.Utilities.SyntaxCheck.extractLineFlags?4(line, startComment=") -eric5.Utilities.SyntaxCheck.get_codingBytes?4(text) -eric5.Utilities.SyntaxCheck.normalizeCode?4(codestring) -eric5.Utilities.SyntaxCheck.readEncodedFile?4(filename) eric5.Utilities._escape?8 eric5.Utilities._escape_map?8 eric5.Utilities._percentReplacementFunc?5(matchobj) @@ -8284,6 +8408,7 @@ eric5.Utilities.binplistlib.writePlist?4(rootObject, pathOrFile, binary=True) eric5.Utilities.binplistlib.writePlistToBytes?4(rootObject, binary=True) eric5.Utilities.checkPyside?4() +eric5.Utilities.codingBytes_regexps?7 eric5.Utilities.coding_regexps?7 eric5.Utilities.compactPath?4(path, width, measure=len) eric5.Utilities.compatibility_fixes.File.fp?7 @@ -8294,8 +8419,6 @@ eric5.Utilities.compatibility_fixes.File.write?4(txt) eric5.Utilities.compatibility_fixes.File?1(filein, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True) eric5.Utilities.compatibility_fixes.open?4(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True) -eric5.Utilities.compile?4(file, codestring="", isPy2=False) -eric5.Utilities.compile_extern?4(file, isPy2, checkFlakes=True, ignoreStarImportWarnings=False) eric5.Utilities.configDir?7 eric5.Utilities.convertLineEnds?4(text, eol) eric5.Utilities.crypto.CryptoMarker?7 @@ -8333,14 +8456,17 @@ eric5.Utilities.crypto.py3PBKDF2.pbkdf2?4(password, salt, iterations, digestMod) eric5.Utilities.crypto.py3PBKDF2.rehashPassword?4(password, hashParameters) eric5.Utilities.crypto.py3PBKDF2.verifyPassword?4(password, hash) +eric5.Utilities.decode?4(text) eric5.Utilities.decodeBytes?4(buffer) eric5.Utilities.decodeString?4(text) +eric5.Utilities.determinePythonVersion?4(filename, source, editor=None) eric5.Utilities.direntries?4(path, filesonly=False, pattern=None, followsymlinks=True, checkStop=None) eric5.Utilities.encode?4(text, orig_coding) eric5.Utilities.escape_entities?4(m, map=_escape_map) eric5.Utilities.escape_uentities?4(m) eric5.Utilities.extractFlags?4(text) eric5.Utilities.extractFlagsFromFile?4(filename) +eric5.Utilities.extractLineFlags?4(line, startComment=") eric5.Utilities.fromNativeSeparators?4(path) eric5.Utilities.generateDistroInfo?4(linesep='\n') eric5.Utilities.generatePluginsVersionInfo?4(linesep='\n') @@ -8361,6 +8487,7 @@ eric5.Utilities.getTestFileName?4(fn) eric5.Utilities.getUserName?4() eric5.Utilities.get_coding?4(text) +eric5.Utilities.get_codingBytes?4(text) eric5.Utilities.hasEnvironmentEntry?4(key) eric5.Utilities.html_encode?4(text, pattern=_escape) eric5.Utilities.html_udecode?4(text, pattern=_uunescape) @@ -8378,185 +8505,8 @@ eric5.Utilities.parseOptionString?4(s) eric5.Utilities.parseString?4(s, rx) eric5.Utilities.prepareQtMacBundle?4(toolname, version, args) -eric5.Utilities.py2flakes.checker.Binding?1(name, source) -eric5.Utilities.py2flakes.checker.Checker.AND?7 -eric5.Utilities.py2flakes.checker.Checker.ASSIGN?4(node) -eric5.Utilities.py2flakes.checker.Checker.AUGASSIGN?4(node) -eric5.Utilities.py2flakes.checker.Checker.BOOLOP?7 -eric5.Utilities.py2flakes.checker.Checker.CLASSDEF?4(node) -eric5.Utilities.py2flakes.checker.Checker.COMPREHENSION?7 -eric5.Utilities.py2flakes.checker.Checker.CONTINUE?7 -eric5.Utilities.py2flakes.checker.Checker.DICTCOMP?4(node) -eric5.Utilities.py2flakes.checker.Checker.EXCEPTHANDLER?4(node) -eric5.Utilities.py2flakes.checker.Checker.FOR?4(node) -eric5.Utilities.py2flakes.checker.Checker.FUNCTIONDEF?4(node) -eric5.Utilities.py2flakes.checker.Checker.GENERATOREXP?7 -eric5.Utilities.py2flakes.checker.Checker.GLOBAL?4(node) -eric5.Utilities.py2flakes.checker.Checker.IMPORT?4(node) -eric5.Utilities.py2flakes.checker.Checker.IMPORTFROM?4(node) -eric5.Utilities.py2flakes.checker.Checker.LAMBDA?4(node) -eric5.Utilities.py2flakes.checker.Checker.LISTCOMP?4(node) -eric5.Utilities.py2flakes.checker.Checker.LOAD?7 -eric5.Utilities.py2flakes.checker.Checker.NAME?4(node) -eric5.Utilities.py2flakes.checker.Checker.NONLOCAL?7 -eric5.Utilities.py2flakes.checker.Checker.NUM?7 -eric5.Utilities.py2flakes.checker.Checker.RETURN?7 -eric5.Utilities.py2flakes.checker.Checker.SLICE?7 -eric5.Utilities.py2flakes.checker.Checker.addArgs?4() -eric5.Utilities.py2flakes.checker.Checker.addBinding?4(node, value, reportRedef=True) -eric5.Utilities.py2flakes.checker.Checker.builtIns?7 -eric5.Utilities.py2flakes.checker.Checker.checkDeadScopes?4() -eric5.Utilities.py2flakes.checker.Checker.checkUnusedAssignments?4() -eric5.Utilities.py2flakes.checker.Checker.collectLoopVars?4() -eric5.Utilities.py2flakes.checker.Checker.deferAssignment?4(callable) -eric5.Utilities.py2flakes.checker.Checker.deferFunction?4(callable) -eric5.Utilities.py2flakes.checker.Checker.descendantOf?4(node, ancestors, stop=None) -eric5.Utilities.py2flakes.checker.Checker.differentForks?4(lnode, rnode) -eric5.Utilities.py2flakes.checker.Checker.getCommonAncestor?4(lnode, rnode, stop=None) -eric5.Utilities.py2flakes.checker.Checker.handleChildren?4(tree) -eric5.Utilities.py2flakes.checker.Checker.handleNode?4(node, parent) -eric5.Utilities.py2flakes.checker.Checker.handleNodeDelete?4(node) -eric5.Utilities.py2flakes.checker.Checker.handleNodeLoad?4(node) -eric5.Utilities.py2flakes.checker.Checker.handleNodeStore?4(node) -eric5.Utilities.py2flakes.checker.Checker.hasParent?4(node, kind) -eric5.Utilities.py2flakes.checker.Checker.ignore?4(node) -eric5.Utilities.py2flakes.checker.Checker.isDocstring?4(node) -eric5.Utilities.py2flakes.checker.Checker.nodeDepth?7 -eric5.Utilities.py2flakes.checker.Checker.onFork?4(parent, lnode, rnode, items) -eric5.Utilities.py2flakes.checker.Checker.popScope?4() -eric5.Utilities.py2flakes.checker.Checker.pushClassScope?4() -eric5.Utilities.py2flakes.checker.Checker.pushFunctionScope?4() -eric5.Utilities.py2flakes.checker.Checker.report?4(messageClass, *args, **kwargs) -eric5.Utilities.py2flakes.checker.Checker.runDeferred?4(deferred) -eric5.Utilities.py2flakes.checker.Checker.runFunction?4() -eric5.Utilities.py2flakes.checker.Checker.scope?4() -eric5.Utilities.py2flakes.checker.Checker.traceTree?7 -eric5.Utilities.py2flakes.checker.Checker?1(tree, filename='(none)', builtins=None) -eric5.Utilities.py2flakes.checker.ExportBinding.names?4() -eric5.Utilities.py2flakes.checker.FunctionScope?1() -eric5.Utilities.py2flakes.checker.Importation?1(name, source) -eric5.Utilities.py2flakes.checker.Scope.importStarred?7 -eric5.Utilities.py2flakes.checker.Scope.usesLocals?7 -eric5.Utilities.py2flakes.checker._MAGIC_GLOBALS?8 -eric5.Utilities.py2flakes.checker.getNodeName?4(node) -eric5.Utilities.py2flakes.checker.iter_child_nodes?4(node, astcls=ast.AST) -eric5.Utilities.py2flakes.messages.DuplicateArgument.message?7 -eric5.Utilities.py2flakes.messages.DuplicateArgument?1(filename, lineno, name) -eric5.Utilities.py2flakes.messages.ImportShadowedByLoopVar.message?7 -eric5.Utilities.py2flakes.messages.ImportShadowedByLoopVar?1(filename, lineno, name, orig_lineno) -eric5.Utilities.py2flakes.messages.ImportStarUsed.message?7 -eric5.Utilities.py2flakes.messages.ImportStarUsed?1(filename, lineno, modname) -eric5.Utilities.py2flakes.messages.LateFutureImport.message?7 -eric5.Utilities.py2flakes.messages.LateFutureImport?1(filename, lineno, names) -eric5.Utilities.py2flakes.messages.Message.getMessageData?4() -eric5.Utilities.py2flakes.messages.Message.message?7 -eric5.Utilities.py2flakes.messages.Message.message_args?7 -eric5.Utilities.py2flakes.messages.Message?1(filename, lineno) -eric5.Utilities.py2flakes.messages.QT_TRANSLATE_NOOP?4(mod, txt) -eric5.Utilities.py2flakes.messages.Redefined.message?7 -eric5.Utilities.py2flakes.messages.Redefined?1(filename, lineno, name, orig_lineno) -eric5.Utilities.py2flakes.messages.RedefinedInListComp.message?7 -eric5.Utilities.py2flakes.messages.RedefinedInListComp?1(filename, lineno, name, orig_lineno) -eric5.Utilities.py2flakes.messages.RedefinedWhileUnused.message?7 -eric5.Utilities.py2flakes.messages.RedefinedWhileUnused?1(filename, lineno, name, orig_lineno) -eric5.Utilities.py2flakes.messages.UndefinedExport.message?7 -eric5.Utilities.py2flakes.messages.UndefinedExport?1(filename, lineno, name) -eric5.Utilities.py2flakes.messages.UndefinedLocal.message?7 -eric5.Utilities.py2flakes.messages.UndefinedLocal?1(filename, lineno, name, orig_lineno) -eric5.Utilities.py2flakes.messages.UndefinedName.message?7 -eric5.Utilities.py2flakes.messages.UndefinedName?1(filename, lineno, name) -eric5.Utilities.py2flakes.messages.UnusedImport.message?7 -eric5.Utilities.py2flakes.messages.UnusedImport?1(filename, lineno, name) -eric5.Utilities.py2flakes.messages.UnusedVariable.message?7 -eric5.Utilities.py2flakes.messages.UnusedVariable?1(filename, lineno, names) -eric5.Utilities.py3flakes.checker.Binding?1(name, source) -eric5.Utilities.py3flakes.checker.Checker.ASSIGN?4(node) -eric5.Utilities.py3flakes.checker.Checker.ATTRIBUTES?7 -eric5.Utilities.py3flakes.checker.Checker.AUGASSIGN?4(node) -eric5.Utilities.py3flakes.checker.Checker.BOOLOP?7 -eric5.Utilities.py3flakes.checker.Checker.CALL?7 -eric5.Utilities.py3flakes.checker.Checker.CLASSDEF?4(node) -eric5.Utilities.py3flakes.checker.Checker.COMPREHENSION?7 -eric5.Utilities.py3flakes.checker.Checker.DICTCOMP?4(node) -eric5.Utilities.py3flakes.checker.Checker.EXCEPTHANDLER?4(node) -eric5.Utilities.py3flakes.checker.Checker.FOR?4(node) -eric5.Utilities.py3flakes.checker.Checker.FUNCTIONDEF?4(node) -eric5.Utilities.py3flakes.checker.Checker.GLOBAL?4(node) -eric5.Utilities.py3flakes.checker.Checker.IMPORT?4(node) -eric5.Utilities.py3flakes.checker.Checker.IMPORTFROM?4(node) -eric5.Utilities.py3flakes.checker.Checker.INVERT?7 -eric5.Utilities.py3flakes.checker.Checker.ISNOT?7 -eric5.Utilities.py3flakes.checker.Checker.LAMBDA?4(node) -eric5.Utilities.py3flakes.checker.Checker.LISTCOMP?4(node) -eric5.Utilities.py3flakes.checker.Checker.LOAD?7 -eric5.Utilities.py3flakes.checker.Checker.MOD?7 -eric5.Utilities.py3flakes.checker.Checker.NAME?4(node) -eric5.Utilities.py3flakes.checker.Checker.NONLOCAL?7 -eric5.Utilities.py3flakes.checker.Checker.PASS?7 -eric5.Utilities.py3flakes.checker.Checker.RETURN?7 -eric5.Utilities.py3flakes.checker.Checker.SETCOMP?7 -eric5.Utilities.py3flakes.checker.Checker.SLICE?7 -eric5.Utilities.py3flakes.checker.Checker.STARRED?4(node) -eric5.Utilities.py3flakes.checker.Checker.TRY?7 -eric5.Utilities.py3flakes.checker.Checker._runDeferred?5(deferred) -eric5.Utilities.py3flakes.checker.Checker.addArgs?4() -eric5.Utilities.py3flakes.checker.Checker.addBinding?4(lineno, value, reportRedef=True) -eric5.Utilities.py3flakes.checker.Checker.checkUnusedAssignments?4() -eric5.Utilities.py3flakes.checker.Checker.check_dead_scopes?4() -eric5.Utilities.py3flakes.checker.Checker.collectLoopVars?4() -eric5.Utilities.py3flakes.checker.Checker.deferAssignment?4(callable) -eric5.Utilities.py3flakes.checker.Checker.deferFunction?4(callable) -eric5.Utilities.py3flakes.checker.Checker.handleAssignName?4(node) -eric5.Utilities.py3flakes.checker.Checker.handleBody?4(tree) -eric5.Utilities.py3flakes.checker.Checker.handleChildren?4(tree) -eric5.Utilities.py3flakes.checker.Checker.handleNode?4(node, parent) -eric5.Utilities.py3flakes.checker.Checker.ignore?4(node) -eric5.Utilities.py3flakes.checker.Checker.isDocstring?4(node) -eric5.Utilities.py3flakes.checker.Checker.nodeDepth?7 -eric5.Utilities.py3flakes.checker.Checker.popScope?4() -eric5.Utilities.py3flakes.checker.Checker.pushClassScope?4() -eric5.Utilities.py3flakes.checker.Checker.pushFunctionScope?4() -eric5.Utilities.py3flakes.checker.Checker.report?4(messageClass, *args, **kwargs) -eric5.Utilities.py3flakes.checker.Checker.runFunction?4() -eric5.Utilities.py3flakes.checker.Checker.scope?4() -eric5.Utilities.py3flakes.checker.Checker.scope?7 -eric5.Utilities.py3flakes.checker.Checker.traceTree?7 -eric5.Utilities.py3flakes.checker.Checker?1(module, filename='(none)') -eric5.Utilities.py3flakes.checker.ExportBinding.names?4() -eric5.Utilities.py3flakes.checker.FunctionDefinition.is_property?7 -eric5.Utilities.py3flakes.checker.FunctionScope?1() -eric5.Utilities.py3flakes.checker.Importation?1(name, source) -eric5.Utilities.py3flakes.checker.Scope.importStarred?7 -eric5.Utilities.py3flakes.checker.Scope?1() -eric5.Utilities.py3flakes.checker._MAGIC_GLOBALS?8 -eric5.Utilities.py3flakes.messages.DuplicateArgument.message?7 -eric5.Utilities.py3flakes.messages.DuplicateArgument?1(filename, lineno, name) -eric5.Utilities.py3flakes.messages.ImportShadowedByLoopVar.message?7 -eric5.Utilities.py3flakes.messages.ImportShadowedByLoopVar?1(filename, lineno, name, orig_lineno) -eric5.Utilities.py3flakes.messages.ImportStarUsed.message?7 -eric5.Utilities.py3flakes.messages.ImportStarUsed?1(filename, lineno, modname) -eric5.Utilities.py3flakes.messages.LateFutureImport.message?7 -eric5.Utilities.py3flakes.messages.LateFutureImport?1(filename, lineno, names) -eric5.Utilities.py3flakes.messages.Message.getMessageData?4() -eric5.Utilities.py3flakes.messages.Message.message?7 -eric5.Utilities.py3flakes.messages.Message.message_args?7 -eric5.Utilities.py3flakes.messages.Message?1(filename, lineno) -eric5.Utilities.py3flakes.messages.QT_TRANSLATE_NOOP?4(mod, txt) -eric5.Utilities.py3flakes.messages.RedefinedFunction.message?7 -eric5.Utilities.py3flakes.messages.RedefinedFunction?1(filename, lineno, name, orig_lineno) -eric5.Utilities.py3flakes.messages.RedefinedWhileUnused.message?7 -eric5.Utilities.py3flakes.messages.RedefinedWhileUnused?1(filename, lineno, name, orig_lineno) -eric5.Utilities.py3flakes.messages.UndefinedExport.message?7 -eric5.Utilities.py3flakes.messages.UndefinedExport?1(filename, lineno, name) -eric5.Utilities.py3flakes.messages.UndefinedLocal.message?7 -eric5.Utilities.py3flakes.messages.UndefinedLocal?1(filename, lineno, name, orig_lineno) -eric5.Utilities.py3flakes.messages.UndefinedName.message?7 -eric5.Utilities.py3flakes.messages.UndefinedName?1(filename, lineno, name) -eric5.Utilities.py3flakes.messages.UnusedImport.message?7 -eric5.Utilities.py3flakes.messages.UnusedImport?1(filename, lineno, name) -eric5.Utilities.py3flakes.messages.UnusedVariable.message?7 -eric5.Utilities.py3flakes.messages.UnusedVariable?1(filename, lineno, name) eric5.Utilities.quote?4(url) +eric5.Utilities.readEncodedFile?4(filename) eric5.Utilities.readEncodedFileWithHash?4(filename) eric5.Utilities.readStringFromStream?4(stream) eric5.Utilities.relpath?4(path, start=os.path.curdir) @@ -8575,152 +8525,6 @@ eric5.Utilities.win32_Kill?4(pid) eric5.Utilities.win32_getRealName?4() eric5.Utilities.writeEncodedFile?4(filename, text, orig_coding) -eric5.UtilitiesPython2.CodeStyleChecker.CodeStyleReport.docType?7 -eric5.UtilitiesPython2.CodeStyleChecker.CodeStyleReport.error_args?4(line_number, offset, code, check, *args) -eric5.UtilitiesPython2.CodeStyleChecker.CodeStyleReport.filename?7 -eric5.UtilitiesPython2.CodeStyleChecker.CodeStyleReport.hang_closing?7 -eric5.UtilitiesPython2.CodeStyleChecker.CodeStyleReport.ignore?7 -eric5.UtilitiesPython2.CodeStyleChecker.CodeStyleReport.max_line_length?7 -eric5.UtilitiesPython2.CodeStyleChecker.CodeStyleReport.repeat?7 -eric5.UtilitiesPython2.CodeStyleChecker.CodeStyleReport.select?7 -eric5.UtilitiesPython2.CodeStyleChecker.CodeStyleReport?1(options) -eric5.UtilitiesPython2.DocStyleCheckerPy2.DocStyleChecker.Codes?7 -eric5.UtilitiesPython2.DocStyleCheckerPy2.DocStyleChecker.run?4() -eric5.UtilitiesPython2.DocStyleCheckerPy2.DocStyleChecker.unpackArgs?4() -eric5.UtilitiesPython2.DocStyleCheckerPy2.DocStyleChecker?1(source, filename, select, ignore, expected, repeat, maxLineLength=79, docType="pep257") -eric5.UtilitiesPython2.DocStyleCheckerPy2.DocStyleContext.contextType?4() -eric5.UtilitiesPython2.DocStyleCheckerPy2.DocStyleContext.end?4() -eric5.UtilitiesPython2.DocStyleCheckerPy2.DocStyleContext.indent?4() -eric5.UtilitiesPython2.DocStyleCheckerPy2.DocStyleContext.source?4() -eric5.UtilitiesPython2.DocStyleCheckerPy2.DocStyleContext.ssource?4() -eric5.UtilitiesPython2.DocStyleCheckerPy2.DocStyleContext.start?4() -eric5.UtilitiesPython2.DocStyleCheckerPy2.DocStyleContext?1(source, startLine, contextType) -eric5.UtilitiesPython2.NamingStyleCheckerPy2.NamingStyleChecker.CamelcaseRegexp?7 -eric5.UtilitiesPython2.NamingStyleCheckerPy2.NamingStyleChecker.Codes?7 -eric5.UtilitiesPython2.NamingStyleCheckerPy2.NamingStyleChecker.LowercaseRegex?7 -eric5.UtilitiesPython2.NamingStyleCheckerPy2.NamingStyleChecker.MixedcaseRegexp?7 -eric5.UtilitiesPython2.NamingStyleCheckerPy2.NamingStyleChecker.UppercaseRegexp?7 -eric5.UtilitiesPython2.NamingStyleCheckerPy2.NamingStyleChecker.run?4() -eric5.UtilitiesPython2.NamingStyleCheckerPy2.NamingStyleChecker.unpackArgs?4() -eric5.UtilitiesPython2.NamingStyleCheckerPy2.NamingStyleChecker?1(tree, filename, options) -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.UtilitiesPython2.pep8.ARITHMETIC_OP?7 -eric5.UtilitiesPython2.pep8.BENCHMARK_KEYS?7 -eric5.UtilitiesPython2.pep8.BaseReport.error?4(line_number, offset, text, check) -eric5.UtilitiesPython2.pep8.BaseReport.error_args?4(line_number, offset, code, check, *args) -eric5.UtilitiesPython2.pep8.BaseReport.get_count?4(prefix='') -eric5.UtilitiesPython2.pep8.BaseReport.get_file_results?4() -eric5.UtilitiesPython2.pep8.BaseReport.get_statistics?4(prefix='') -eric5.UtilitiesPython2.pep8.BaseReport.increment_logical_line?4() -eric5.UtilitiesPython2.pep8.BaseReport.init_file?4(filename, lines, expected, line_offset) -eric5.UtilitiesPython2.pep8.BaseReport.print_benchmark?4() -eric5.UtilitiesPython2.pep8.BaseReport.print_filename?7 -eric5.UtilitiesPython2.pep8.BaseReport.print_statistics?4(prefix='') -eric5.UtilitiesPython2.pep8.BaseReport.start?4() -eric5.UtilitiesPython2.pep8.BaseReport.stop?4() -eric5.UtilitiesPython2.pep8.BaseReport?1(options) -eric5.UtilitiesPython2.pep8.COMMENT_WITH_NL?7 -eric5.UtilitiesPython2.pep8.COMPARE_SINGLETON_REGEX?7 -eric5.UtilitiesPython2.pep8.COMPARE_TYPE_REGEX?7 -eric5.UtilitiesPython2.pep8.Checker.build_tokens_line?4() -eric5.UtilitiesPython2.pep8.Checker.check_all?4(expected=None, line_offset=0) -eric5.UtilitiesPython2.pep8.Checker.check_ast?4() -eric5.UtilitiesPython2.pep8.Checker.check_logical?4() -eric5.UtilitiesPython2.pep8.Checker.check_physical?4(line) -eric5.UtilitiesPython2.pep8.Checker.generate_tokens?4() -eric5.UtilitiesPython2.pep8.Checker.readline?4() -eric5.UtilitiesPython2.pep8.Checker.readline_check_physical?4() -eric5.UtilitiesPython2.pep8.Checker.report_invalid_syntax?4() -eric5.UtilitiesPython2.pep8.Checker.run_check?4(check, argument_names) -eric5.UtilitiesPython2.pep8.Checker?1(filename=None, lines=None, options=None, report=None, **kwargs) -eric5.UtilitiesPython2.pep8.DEFAULT_EXCLUDE?7 -eric5.UtilitiesPython2.pep8.DEFAULT_IGNORE?7 -eric5.UtilitiesPython2.pep8.DOCSTRING_REGEX?7 -eric5.UtilitiesPython2.pep8.DiffReport.error?4(line_number, offset, text, check) -eric5.UtilitiesPython2.pep8.DiffReport?1(options) -eric5.UtilitiesPython2.pep8.ERRORCODE_REGEX?7 -eric5.UtilitiesPython2.pep8.EXTRANEOUS_WHITESPACE_REGEX?7 -eric5.UtilitiesPython2.pep8.FileReport.print_filename?7 -eric5.UtilitiesPython2.pep8.HUNK_REGEX?7 -eric5.UtilitiesPython2.pep8.INDENT_REGEX?7 -eric5.UtilitiesPython2.pep8.KEYWORDS?7 -eric5.UtilitiesPython2.pep8.KEYWORD_REGEX?7 -eric5.UtilitiesPython2.pep8.LAMBDA_REGEX?7 -eric5.UtilitiesPython2.pep8.MAX_LINE_LENGTH?7 -eric5.UtilitiesPython2.pep8.OPERATOR_REGEX?7 -eric5.UtilitiesPython2.pep8.PROJECT_CONFIG?7 -eric5.UtilitiesPython2.pep8.PyCF_ONLY_AST?7 -eric5.UtilitiesPython2.pep8.RAISE_COMMA_REGEX?7 -eric5.UtilitiesPython2.pep8.REPORT_FORMAT?7 -eric5.UtilitiesPython2.pep8.RERAISE_COMMA_REGEX?7 -eric5.UtilitiesPython2.pep8.SINGLETONS?7 -eric5.UtilitiesPython2.pep8.SKIP_TOKENS?7 -eric5.UtilitiesPython2.pep8.StandardReport.error?4(line_number, offset, text, check) -eric5.UtilitiesPython2.pep8.StandardReport.error_args?4(line_number, offset, code, check, *args) -eric5.UtilitiesPython2.pep8.StandardReport.get_file_results?4() -eric5.UtilitiesPython2.pep8.StandardReport.init_file?4(filename, lines, expected, line_offset) -eric5.UtilitiesPython2.pep8.StandardReport?1(options) -eric5.UtilitiesPython2.pep8.StyleGuide.check_files?4(paths=None) -eric5.UtilitiesPython2.pep8.StyleGuide.excluded?4(filename, parent=None) -eric5.UtilitiesPython2.pep8.StyleGuide.get_checks?4(argument_name) -eric5.UtilitiesPython2.pep8.StyleGuide.ignore_code?4(code) -eric5.UtilitiesPython2.pep8.StyleGuide.init_report?4(reporter=None) -eric5.UtilitiesPython2.pep8.StyleGuide.input_dir?4(dirname) -eric5.UtilitiesPython2.pep8.StyleGuide.input_file?4(filename, lines=None, expected=None, line_offset=0) -eric5.UtilitiesPython2.pep8.StyleGuide?1(*args, **kwargs) -eric5.UtilitiesPython2.pep8.TESTSUITE_PATH?7 -eric5.UtilitiesPython2.pep8.UNARY_OPERATORS?7 -eric5.UtilitiesPython2.pep8.WHITESPACE?7 -eric5.UtilitiesPython2.pep8.WHITESPACE_AFTER_COMMA_REGEX?7 -eric5.UtilitiesPython2.pep8.WS_NEEDED_OPERATORS?7 -eric5.UtilitiesPython2.pep8.WS_OPTIONAL_OPERATORS?7 -eric5.UtilitiesPython2.pep8._add_check?5(check, kind, codes, args) -eric5.UtilitiesPython2.pep8._checks?8 -eric5.UtilitiesPython2.pep8._main?5() -eric5.UtilitiesPython2.pep8.blank_lines?4(logical_line, blank_lines, indent_level, line_number, previous_logical, previous_indent_level) -eric5.UtilitiesPython2.pep8.comparison_to_singleton?4(logical_line, noqa) -eric5.UtilitiesPython2.pep8.comparison_type?4(logical_line) -eric5.UtilitiesPython2.pep8.compound_statements?4(logical_line) -eric5.UtilitiesPython2.pep8.continued_indentation?4(logical_line, tokens, indent_level, hang_closing, noqa, verbose) -eric5.UtilitiesPython2.pep8.expand_indent?4(line) -eric5.UtilitiesPython2.pep8.explicit_line_join?4(logical_line, tokens) -eric5.UtilitiesPython2.pep8.extraneous_whitespace?4(logical_line) -eric5.UtilitiesPython2.pep8.filename_match?4(filename, patterns, default=True) -eric5.UtilitiesPython2.pep8.get_parser?4(prog='pep8', version=__version__) -eric5.UtilitiesPython2.pep8.imports_on_separate_lines?4(logical_line) -eric5.UtilitiesPython2.pep8.indentation?4(logical_line, previous_logical, indent_char, indent_level, previous_indent_level) -eric5.UtilitiesPython2.pep8.init_checks_registry?4() -eric5.UtilitiesPython2.pep8.maximum_line_length?4(physical_line, max_line_length) -eric5.UtilitiesPython2.pep8.missing_newline?4(physical_line) -eric5.UtilitiesPython2.pep8.missing_whitespace?4(logical_line) -eric5.UtilitiesPython2.pep8.missing_whitespace_around_operator?4(logical_line, tokens) -eric5.UtilitiesPython2.pep8.mute_string?4(text) -eric5.UtilitiesPython2.pep8.noqa?7 -eric5.UtilitiesPython2.pep8.parse_udiff?4(diff, patterns=None, parent='.') -eric5.UtilitiesPython2.pep8.process_options?4(arglist=None, parse_argv=False, config_file=None, parser=None) -eric5.UtilitiesPython2.pep8.python_3000_backticks?4(logical_line) -eric5.UtilitiesPython2.pep8.python_3000_has_key?4(logical_line) -eric5.UtilitiesPython2.pep8.python_3000_not_equal?4(logical_line) -eric5.UtilitiesPython2.pep8.python_3000_raise_comma?4(logical_line) -eric5.UtilitiesPython2.pep8.read_config?4(options, args, arglist, parser) -eric5.UtilitiesPython2.pep8.readlines?4(filename) -eric5.UtilitiesPython2.pep8.register_check?4(check, codes=None) -eric5.UtilitiesPython2.pep8.stdin_get_value?4() -eric5.UtilitiesPython2.pep8.tabs_obsolete?4(physical_line) -eric5.UtilitiesPython2.pep8.tabs_or_spaces?4(physical_line, indent_char) -eric5.UtilitiesPython2.pep8.trailing_blank_lines?4(physical_line, lines, line_number) -eric5.UtilitiesPython2.pep8.trailing_whitespace?4(physical_line) -eric5.UtilitiesPython2.pep8.whitespace_around_comma?4(logical_line) -eric5.UtilitiesPython2.pep8.whitespace_around_keywords?4(logical_line) -eric5.UtilitiesPython2.pep8.whitespace_around_named_parameter_equals?4(logical_line, tokens) -eric5.UtilitiesPython2.pep8.whitespace_around_operator?4(logical_line) -eric5.UtilitiesPython2.pep8.whitespace_before_inline_comment?4(logical_line, tokens) -eric5.UtilitiesPython2.pep8.whitespace_before_parameters?4(logical_line, tokens) eric5.VCS.CommandOptionsDialog.VcsCommandOptionsDialog.getOptions?4() eric5.VCS.CommandOptionsDialog.VcsCommandOptionsDialog?1(vcs, parent=None) eric5.VCS.ProjectBrowserHelper.VcsProjectBrowserHelper._VCSAdd?5()
--- a/APIs/Python3/eric5.bas Sun Jan 05 22:45:29 2014 +0100 +++ b/APIs/Python3/eric5.bas Wed Jan 15 22:55:52 2014 +0100 @@ -30,6 +30,7 @@ Attribute ClbrBaseClasses.Attribute VisibilityMixin AuthenticationDialog QDialog Ui_AuthenticationDialog AutoSaver QObject +BackgroundService QTcpServer BinaryModel QAbstractTableModel BookmarkActionSelectionDialog QDialog Ui_BookmarkActionSelectionDialog BookmarkInfoDialog QDialog Ui_BookmarkInfoDialog @@ -78,8 +79,6 @@ CodeStyleCheckerPlugin QObject CodeStyleCheckerReport pep8.BaseReport CodeStyleCodeSelectionDialog QDialog Ui_CodeStyleCodeSelectionDialog -CodeStyleFixer QObject -CodeStyleReport pep8.BaseReport CodeStyleStatisticsDialog QDialog Ui_CodeStyleStatisticsDialog Coding ClbrBase CodingError Exception @@ -134,6 +133,7 @@ DiffReport StandardReport DiffWindow E5MainWindow DirectorySyncHandler SyncHandler +DoctestSyntaxError Message DownloadAskActionDialog QDialog Ui_DownloadAskActionDialog DownloadItem QWidget Ui_DownloadItem DownloadManager QDialog Ui_DownloadManager @@ -261,8 +261,9 @@ FtpReply QNetworkReply FtpSyncHandler SyncHandler Function ClbrBaseClasses.Function VisibilityMixin -FunctionDefinition Binding +FunctionDefinition Definition FunctionScope Scope +GeneratorScope Scope GotoDialog QDialog Ui_GotoDialog Gpg HgExtension GpgProjectHelper HgExtensionProjectHelper @@ -380,6 +381,7 @@ InsertBookmarksCommand RemoveBookmarksCommand Interface ClbrBaseClasses.Class VisibilityMixin InterfacePage ConfigurationPageBase Ui_InterfacePage +InternalServices QObject InvalidPlistException Exception IrcChannelEditDialog QDialog Ui_IrcChannelEditDialog IrcChannelWidget QWidget Ui_IrcChannelWidget @@ -575,7 +577,6 @@ RebaseProjectHelper HgExtensionProjectHelper RecursionError OverflowError ValueError Redefined Message -RedefinedFunction Message RedefinedInListComp Message RedefinedWhileUnused Message Redirector QObject @@ -713,7 +714,6 @@ UMLItem QGraphicsRectItem UMLSceneSizeDialog QDialog Ui_UMLSceneSizeDialog Uid int -UnBinding Binding UndefinedExport Message UndefinedLocal Message UndefinedName Message
--- a/Documentation/Help/source.qhp Sun Jan 05 22:45:29 2014 +0100 +++ b/Documentation/Help/source.qhp Wed Jan 15 22:55:52 2014 +0100 @@ -464,6 +464,11 @@ <section title="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html" /> </section> <section title="eric5.Plugins.CheckerPlugins.SyntaxChecker" ref="index-eric5.Plugins.CheckerPlugins.SyntaxChecker.html"> + <section title="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes" ref="index-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.html"> + <section title="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html" /> + <section title="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html" /> + </section> + <section title="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck.html" /> <section title="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.html" /> </section> <section title="eric5.Plugins.CheckerPlugins.Tabnanny" ref="index-eric5.Plugins.CheckerPlugins.Tabnanny.html"> @@ -953,32 +958,19 @@ <section title="eric5.Utilities.crypto.py3AES" ref="eric5.Utilities.crypto.py3AES.html" /> <section title="eric5.Utilities.crypto.py3PBKDF2" ref="eric5.Utilities.crypto.py3PBKDF2.html" /> </section> - <section title="eric5.Utilities.py2flakes" ref="index-eric5.Utilities.py2flakes.html"> - <section title="eric5.Utilities.py2flakes.checker" ref="eric5.Utilities.py2flakes.checker.html" /> - <section title="eric5.Utilities.py2flakes.messages" ref="eric5.Utilities.py2flakes.messages.html" /> - </section> - <section title="eric5.Utilities.py3flakes" ref="index-eric5.Utilities.py3flakes.html"> - <section title="eric5.Utilities.py3flakes.checker" ref="eric5.Utilities.py3flakes.checker.html" /> - <section title="eric5.Utilities.py3flakes.messages" ref="eric5.Utilities.py3flakes.messages.html" /> - </section> <section title="eric5.Utilities.AutoSaver" ref="eric5.Utilities.AutoSaver.html" /> + <section title="eric5.Utilities.BackgroundClient" ref="eric5.Utilities.BackgroundClient.html" /> + <section title="eric5.Utilities.BackgroundService" ref="eric5.Utilities.BackgroundService.html" /> <section title="eric5.Utilities.FtpUtilities" ref="eric5.Utilities.FtpUtilities.html" /> + <section title="eric5.Utilities.InternalServices" ref="eric5.Utilities.InternalServices.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.CodeStyleChecker" ref="eric5.UtilitiesPython2.CodeStyleChecker.html" /> - <section title="eric5.UtilitiesPython2.DocStyleCheckerPy2" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html" /> - <section title="eric5.UtilitiesPython2.NamingStyleCheckerPy2" ref="eric5.UtilitiesPython2.NamingStyleCheckerPy2.html" /> - <section title="eric5.UtilitiesPython2.Tools" ref="eric5.UtilitiesPython2.Tools.html" /> - <section title="eric5.UtilitiesPython2.pep8" ref="eric5.UtilitiesPython2.pep8.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" /> @@ -1337,8 +1329,7 @@ <keyword name="ApplicationPage (Constructor)" id="ApplicationPage (Constructor)" ref="eric5.Preferences.ConfigurationPages.ApplicationPage.html#ApplicationPage.__init__" /> <keyword name="ApplicationPage (Module)" id="ApplicationPage (Module)" ref="eric5.Preferences.ConfigurationPages.ApplicationPage.html" /> <keyword name="ApplicationPage.save" id="ApplicationPage.save" ref="eric5.Preferences.ConfigurationPages.ApplicationPage.html#ApplicationPage.save" /> - <keyword name="Argument" id="Argument" ref="eric5.Utilities.py2flakes.checker.html#Argument" /> - <keyword name="Argument" id="Argument" ref="eric5.Utilities.py3flakes.checker.html#Argument" /> + <keyword name="Argument" id="Argument" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Argument" /> <keyword name="ArgumentsError" id="ArgumentsError" ref="eric5.E5Gui.E5Action.html#ArgumentsError" /> <keyword name="ArgumentsError (Constructor)" id="ArgumentsError (Constructor)" ref="eric5.E5Gui.E5Action.html#ArgumentsError.__init__" /> <keyword name="ArgumentsError.__repr__" id="ArgumentsError.__repr__" ref="eric5.E5Gui.E5Action.html#ArgumentsError.__repr__" /> @@ -1346,8 +1337,7 @@ <keyword name="ArrayElementVarItem" id="ArrayElementVarItem" ref="eric5.Debugger.VariablesViewer.html#ArrayElementVarItem" /> <keyword name="ArrayElementVarItem (Constructor)" id="ArrayElementVarItem (Constructor)" ref="eric5.Debugger.VariablesViewer.html#ArrayElementVarItem.__init__" /> <keyword name="ArrayElementVarItem.key" id="ArrayElementVarItem.key" ref="eric5.Debugger.VariablesViewer.html#ArrayElementVarItem.key" /> - <keyword name="Assignment" id="Assignment" ref="eric5.Utilities.py2flakes.checker.html#Assignment" /> - <keyword name="Assignment" id="Assignment" ref="eric5.Utilities.py3flakes.checker.html#Assignment" /> + <keyword name="Assignment" id="Assignment" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Assignment" /> <keyword name="AssociationItem" id="AssociationItem" ref="eric5.Graphics.AssociationItem.html#AssociationItem" /> <keyword name="AssociationItem (Constructor)" id="AssociationItem (Constructor)" ref="eric5.Graphics.AssociationItem.html#AssociationItem.__init__" /> <keyword name="AssociationItem (Module)" id="AssociationItem (Module)" ref="eric5.Graphics.AssociationItem.html" /> @@ -1464,32 +1454,40 @@ <keyword name="AutoSaver.changeOccurred" id="AutoSaver.changeOccurred" ref="eric5.Utilities.AutoSaver.html#AutoSaver.changeOccurred" /> <keyword name="AutoSaver.saveIfNeccessary" id="AutoSaver.saveIfNeccessary" ref="eric5.Utilities.AutoSaver.html#AutoSaver.saveIfNeccessary" /> <keyword name="AutoSaver.timerEvent" id="AutoSaver.timerEvent" ref="eric5.Utilities.AutoSaver.html#AutoSaver.timerEvent" /> + <keyword name="BackgroundClient" id="BackgroundClient" ref="eric5.Utilities.BackgroundClient.html#BackgroundClient" /> + <keyword name="BackgroundClient (Constructor)" id="BackgroundClient (Constructor)" ref="eric5.Utilities.BackgroundClient.html#BackgroundClient.__init__" /> + <keyword name="BackgroundClient (Module)" id="BackgroundClient (Module)" ref="eric5.Utilities.BackgroundClient.html" /> + <keyword name="BackgroundClient.__initClientService" id="BackgroundClient.__initClientService" ref="eric5.Utilities.BackgroundClient.html#BackgroundClient.__initClientService" /> + <keyword name="BackgroundClient.__send" id="BackgroundClient.__send" ref="eric5.Utilities.BackgroundClient.html#BackgroundClient.__send" /> + <keyword name="BackgroundClient.__unhandled_exception" id="BackgroundClient.__unhandled_exception" ref="eric5.Utilities.BackgroundClient.html#BackgroundClient.__unhandled_exception" /> + <keyword name="BackgroundClient.run" id="BackgroundClient.run" ref="eric5.Utilities.BackgroundClient.html#BackgroundClient.run" /> + <keyword name="BackgroundService" id="BackgroundService" ref="eric5.Utilities.BackgroundService.html#BackgroundService" /> + <keyword name="BackgroundService (Constructor)" id="BackgroundService (Constructor)" ref="eric5.Utilities.BackgroundService.html#BackgroundService.__init__" /> + <keyword name="BackgroundService (Module)" id="BackgroundService (Module)" ref="eric5.Utilities.BackgroundService.html" /> + <keyword name="BackgroundService.__postResult" id="BackgroundService.__postResult" ref="eric5.Utilities.BackgroundService.html#BackgroundService.__postResult" /> + <keyword name="BackgroundService.__processQueue" id="BackgroundService.__processQueue" ref="eric5.Utilities.BackgroundService.html#BackgroundService.__processQueue" /> + <keyword name="BackgroundService.__receive" id="BackgroundService.__receive" ref="eric5.Utilities.BackgroundService.html#BackgroundService.__receive" /> + <keyword name="BackgroundService.__send" id="BackgroundService.__send" ref="eric5.Utilities.BackgroundService.html#BackgroundService.__send" /> + <keyword name="BackgroundService.__startExternalClient" id="BackgroundService.__startExternalClient" ref="eric5.Utilities.BackgroundService.html#BackgroundService.__startExternalClient" /> + <keyword name="BackgroundService.__startInternalClient" id="BackgroundService.__startInternalClient" ref="eric5.Utilities.BackgroundService.html#BackgroundService.__startInternalClient" /> + <keyword name="BackgroundService.enqueueRequest" id="BackgroundService.enqueueRequest" ref="eric5.Utilities.BackgroundService.html#BackgroundService.enqueueRequest" /> + <keyword name="BackgroundService.on_newConnection" id="BackgroundService.on_newConnection" ref="eric5.Utilities.BackgroundService.html#BackgroundService.on_newConnection" /> + <keyword name="BackgroundService.serviceConnect" id="BackgroundService.serviceConnect" ref="eric5.Utilities.BackgroundService.html#BackgroundService.serviceConnect" /> + <keyword name="BackgroundService.serviceDisconnect" id="BackgroundService.serviceDisconnect" ref="eric5.Utilities.BackgroundService.html#BackgroundService.serviceDisconnect" /> + <keyword name="BackgroundService.shutdown" id="BackgroundService.shutdown" ref="eric5.Utilities.BackgroundService.html#BackgroundService.shutdown" /> <keyword name="BaseReport" id="BaseReport" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#BaseReport" /> - <keyword name="BaseReport" id="BaseReport" ref="eric5.UtilitiesPython2.pep8.html#BaseReport" /> <keyword name="BaseReport (Constructor)" id="BaseReport (Constructor)" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#BaseReport.__init__" /> - <keyword name="BaseReport (Constructor)" id="BaseReport (Constructor)" ref="eric5.UtilitiesPython2.pep8.html#BaseReport.__init__" /> <keyword name="BaseReport.error" id="BaseReport.error" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#BaseReport.error" /> - <keyword name="BaseReport.error" id="BaseReport.error" ref="eric5.UtilitiesPython2.pep8.html#BaseReport.error" /> <keyword name="BaseReport.error_args" id="BaseReport.error_args" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#BaseReport.error_args" /> - <keyword name="BaseReport.error_args" id="BaseReport.error_args" ref="eric5.UtilitiesPython2.pep8.html#BaseReport.error_args" /> <keyword name="BaseReport.get_count" id="BaseReport.get_count" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#BaseReport.get_count" /> - <keyword name="BaseReport.get_count" id="BaseReport.get_count" ref="eric5.UtilitiesPython2.pep8.html#BaseReport.get_count" /> <keyword name="BaseReport.get_file_results" id="BaseReport.get_file_results" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#BaseReport.get_file_results" /> - <keyword name="BaseReport.get_file_results" id="BaseReport.get_file_results" ref="eric5.UtilitiesPython2.pep8.html#BaseReport.get_file_results" /> <keyword name="BaseReport.get_statistics" id="BaseReport.get_statistics" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#BaseReport.get_statistics" /> - <keyword name="BaseReport.get_statistics" id="BaseReport.get_statistics" ref="eric5.UtilitiesPython2.pep8.html#BaseReport.get_statistics" /> <keyword name="BaseReport.increment_logical_line" id="BaseReport.increment_logical_line" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#BaseReport.increment_logical_line" /> - <keyword name="BaseReport.increment_logical_line" id="BaseReport.increment_logical_line" ref="eric5.UtilitiesPython2.pep8.html#BaseReport.increment_logical_line" /> <keyword name="BaseReport.init_file" id="BaseReport.init_file" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#BaseReport.init_file" /> - <keyword name="BaseReport.init_file" id="BaseReport.init_file" ref="eric5.UtilitiesPython2.pep8.html#BaseReport.init_file" /> <keyword name="BaseReport.print_benchmark" id="BaseReport.print_benchmark" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#BaseReport.print_benchmark" /> - <keyword name="BaseReport.print_benchmark" id="BaseReport.print_benchmark" ref="eric5.UtilitiesPython2.pep8.html#BaseReport.print_benchmark" /> <keyword name="BaseReport.print_statistics" id="BaseReport.print_statistics" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#BaseReport.print_statistics" /> - <keyword name="BaseReport.print_statistics" id="BaseReport.print_statistics" ref="eric5.UtilitiesPython2.pep8.html#BaseReport.print_statistics" /> <keyword name="BaseReport.start" id="BaseReport.start" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#BaseReport.start" /> - <keyword name="BaseReport.start" id="BaseReport.start" ref="eric5.UtilitiesPython2.pep8.html#BaseReport.start" /> <keyword name="BaseReport.stop" id="BaseReport.stop" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#BaseReport.stop" /> - <keyword name="BaseReport.stop" id="BaseReport.stop" ref="eric5.UtilitiesPython2.pep8.html#BaseReport.stop" /> <keyword name="BinaryModel" id="BinaryModel" ref="eric5.UI.NumbersWidget.html#BinaryModel" /> <keyword name="BinaryModel (Constructor)" id="BinaryModel (Constructor)" ref="eric5.UI.NumbersWidget.html#BinaryModel.__init__" /> <keyword name="BinaryModel.columnCount" id="BinaryModel.columnCount" ref="eric5.UI.NumbersWidget.html#BinaryModel.columnCount" /> @@ -1502,14 +1500,7 @@ <keyword name="BinaryModel.setBitsAndValue" id="BinaryModel.setBitsAndValue" ref="eric5.UI.NumbersWidget.html#BinaryModel.setBitsAndValue" /> <keyword name="BinaryModel.setData" id="BinaryModel.setData" ref="eric5.UI.NumbersWidget.html#BinaryModel.setData" /> <keyword name="BinaryModel.setValue" id="BinaryModel.setValue" ref="eric5.UI.NumbersWidget.html#BinaryModel.setValue" /> - <keyword name="Binding" id="Binding" ref="eric5.Utilities.py2flakes.checker.html#Binding" /> - <keyword name="Binding" id="Binding" ref="eric5.Utilities.py3flakes.checker.html#Binding" /> - <keyword name="Binding (Constructor)" id="Binding (Constructor)" ref="eric5.Utilities.py2flakes.checker.html#Binding.__init__" /> - <keyword name="Binding (Constructor)" id="Binding (Constructor)" ref="eric5.Utilities.py3flakes.checker.html#Binding.__init__" /> - <keyword name="Binding.__repr__" id="Binding.__repr__" ref="eric5.Utilities.py2flakes.checker.html#Binding.__repr__" /> - <keyword name="Binding.__repr__" id="Binding.__repr__" ref="eric5.Utilities.py3flakes.checker.html#Binding.__repr__" /> - <keyword name="Binding.__str__" id="Binding.__str__" ref="eric5.Utilities.py2flakes.checker.html#Binding.__str__" /> - <keyword name="Binding.__str__" id="Binding.__str__" ref="eric5.Utilities.py3flakes.checker.html#Binding.__str__" /> + <keyword name="Binding" id="Binding" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Binding" /> <keyword name="BookmarkActionSelectionDialog" id="BookmarkActionSelectionDialog" ref="eric5.Helpviewer.UrlBar.BookmarkActionSelectionDialog.html#BookmarkActionSelectionDialog" /> <keyword name="BookmarkActionSelectionDialog (Constructor)" id="BookmarkActionSelectionDialog (Constructor)" ref="eric5.Helpviewer.UrlBar.BookmarkActionSelectionDialog.html#BookmarkActionSelectionDialog.__init__" /> <keyword name="BookmarkActionSelectionDialog (Module)" id="BookmarkActionSelectionDialog (Module)" ref="eric5.Helpviewer.UrlBar.BookmarkActionSelectionDialog.html" /> @@ -1974,106 +1965,64 @@ <keyword name="ChatWidget.preferencesChanged" id="ChatWidget.preferencesChanged" ref="eric5.Cooperation.ChatWidget.html#ChatWidget.preferencesChanged" /> <keyword name="ChatWidget.shutdown" id="ChatWidget.shutdown" ref="eric5.Cooperation.ChatWidget.html#ChatWidget.shutdown" /> <keyword name="Checker" id="Checker" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#Checker" /> - <keyword name="Checker" id="Checker" ref="eric5.Utilities.py2flakes.checker.html#Checker" /> - <keyword name="Checker" id="Checker" ref="eric5.Utilities.py3flakes.checker.html#Checker" /> - <keyword name="Checker" id="Checker" ref="eric5.UtilitiesPython2.pep8.html#Checker" /> + <keyword name="Checker" id="Checker" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker" /> <keyword name="Checker (Constructor)" id="Checker (Constructor)" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#Checker.__init__" /> - <keyword name="Checker (Constructor)" id="Checker (Constructor)" ref="eric5.Utilities.py2flakes.checker.html#Checker.__init__" /> - <keyword name="Checker (Constructor)" id="Checker (Constructor)" ref="eric5.Utilities.py3flakes.checker.html#Checker.__init__" /> - <keyword name="Checker (Constructor)" id="Checker (Constructor)" ref="eric5.UtilitiesPython2.pep8.html#Checker.__init__" /> - <keyword name="Checker.ASSIGN" id="Checker.ASSIGN" ref="eric5.Utilities.py2flakes.checker.html#Checker.ASSIGN" /> - <keyword name="Checker.ASSIGN" id="Checker.ASSIGN" ref="eric5.Utilities.py3flakes.checker.html#Checker.ASSIGN" /> - <keyword name="Checker.AUGASSIGN" id="Checker.AUGASSIGN" ref="eric5.Utilities.py2flakes.checker.html#Checker.AUGASSIGN" /> - <keyword name="Checker.AUGASSIGN" id="Checker.AUGASSIGN" ref="eric5.Utilities.py3flakes.checker.html#Checker.AUGASSIGN" /> - <keyword name="Checker.CLASSDEF" id="Checker.CLASSDEF" ref="eric5.Utilities.py2flakes.checker.html#Checker.CLASSDEF" /> - <keyword name="Checker.CLASSDEF" id="Checker.CLASSDEF" ref="eric5.Utilities.py3flakes.checker.html#Checker.CLASSDEF" /> - <keyword name="Checker.DICTCOMP" id="Checker.DICTCOMP" ref="eric5.Utilities.py2flakes.checker.html#Checker.DICTCOMP" /> - <keyword name="Checker.DICTCOMP" id="Checker.DICTCOMP" ref="eric5.Utilities.py3flakes.checker.html#Checker.DICTCOMP" /> - <keyword name="Checker.EXCEPTHANDLER" id="Checker.EXCEPTHANDLER" ref="eric5.Utilities.py2flakes.checker.html#Checker.EXCEPTHANDLER" /> - <keyword name="Checker.EXCEPTHANDLER" id="Checker.EXCEPTHANDLER" ref="eric5.Utilities.py3flakes.checker.html#Checker.EXCEPTHANDLER" /> - <keyword name="Checker.FOR" id="Checker.FOR" ref="eric5.Utilities.py2flakes.checker.html#Checker.FOR" /> - <keyword name="Checker.FOR" id="Checker.FOR" ref="eric5.Utilities.py3flakes.checker.html#Checker.FOR" /> - <keyword name="Checker.FUNCTIONDEF" id="Checker.FUNCTIONDEF" ref="eric5.Utilities.py2flakes.checker.html#Checker.FUNCTIONDEF" /> - <keyword name="Checker.FUNCTIONDEF" id="Checker.FUNCTIONDEF" ref="eric5.Utilities.py3flakes.checker.html#Checker.FUNCTIONDEF" /> - <keyword name="Checker.GLOBAL" id="Checker.GLOBAL" ref="eric5.Utilities.py2flakes.checker.html#Checker.GLOBAL" /> - <keyword name="Checker.GLOBAL" id="Checker.GLOBAL" ref="eric5.Utilities.py3flakes.checker.html#Checker.GLOBAL" /> - <keyword name="Checker.IMPORT" id="Checker.IMPORT" ref="eric5.Utilities.py2flakes.checker.html#Checker.IMPORT" /> - <keyword name="Checker.IMPORT" id="Checker.IMPORT" ref="eric5.Utilities.py3flakes.checker.html#Checker.IMPORT" /> - <keyword name="Checker.IMPORTFROM" id="Checker.IMPORTFROM" ref="eric5.Utilities.py2flakes.checker.html#Checker.IMPORTFROM" /> - <keyword name="Checker.IMPORTFROM" id="Checker.IMPORTFROM" ref="eric5.Utilities.py3flakes.checker.html#Checker.IMPORTFROM" /> - <keyword name="Checker.LAMBDA" id="Checker.LAMBDA" ref="eric5.Utilities.py2flakes.checker.html#Checker.LAMBDA" /> - <keyword name="Checker.LAMBDA" id="Checker.LAMBDA" ref="eric5.Utilities.py3flakes.checker.html#Checker.LAMBDA" /> - <keyword name="Checker.LISTCOMP" id="Checker.LISTCOMP" ref="eric5.Utilities.py2flakes.checker.html#Checker.LISTCOMP" /> - <keyword name="Checker.LISTCOMP" id="Checker.LISTCOMP" ref="eric5.Utilities.py3flakes.checker.html#Checker.LISTCOMP" /> - <keyword name="Checker.NAME" id="Checker.NAME" ref="eric5.Utilities.py2flakes.checker.html#Checker.NAME" /> - <keyword name="Checker.NAME" id="Checker.NAME" ref="eric5.Utilities.py3flakes.checker.html#Checker.NAME" /> - <keyword name="Checker.STARRED" id="Checker.STARRED" ref="eric5.Utilities.py3flakes.checker.html#Checker.STARRED" /> - <keyword name="Checker._runDeferred" id="Checker._runDeferred" ref="eric5.Utilities.py3flakes.checker.html#Checker._runDeferred" /> - <keyword name="Checker.addArgs" id="Checker.addArgs" ref="eric5.Utilities.py2flakes.checker.html#Checker.addArgs" /> - <keyword name="Checker.addArgs" id="Checker.addArgs" ref="eric5.Utilities.py3flakes.checker.html#Checker.addArgs" /> - <keyword name="Checker.addBinding" id="Checker.addBinding" ref="eric5.Utilities.py2flakes.checker.html#Checker.addBinding" /> - <keyword name="Checker.addBinding" id="Checker.addBinding" ref="eric5.Utilities.py3flakes.checker.html#Checker.addBinding" /> + <keyword name="Checker (Constructor)" id="Checker (Constructor)" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.__init__" /> + <keyword name="Checker.ASSIGN" id="Checker.ASSIGN" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.ASSIGN" /> + <keyword name="Checker.AUGASSIGN" id="Checker.AUGASSIGN" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.AUGASSIGN" /> + <keyword name="Checker.CLASSDEF" id="Checker.CLASSDEF" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.CLASSDEF" /> + <keyword name="Checker.DICTCOMP" id="Checker.DICTCOMP" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.DICTCOMP" /> + <keyword name="Checker.EXCEPTHANDLER" id="Checker.EXCEPTHANDLER" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.EXCEPTHANDLER" /> + <keyword name="Checker.FOR" id="Checker.FOR" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.FOR" /> + <keyword name="Checker.FUNCTIONDEF" id="Checker.FUNCTIONDEF" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.FUNCTIONDEF" /> + <keyword name="Checker.GENERATOREXP" id="Checker.GENERATOREXP" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.GENERATOREXP" /> + <keyword name="Checker.GLOBAL" id="Checker.GLOBAL" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.GLOBAL" /> + <keyword name="Checker.IMPORT" id="Checker.IMPORT" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.IMPORT" /> + <keyword name="Checker.IMPORTFROM" id="Checker.IMPORTFROM" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.IMPORTFROM" /> + <keyword name="Checker.LAMBDA" id="Checker.LAMBDA" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.LAMBDA" /> + <keyword name="Checker.LISTCOMP" id="Checker.LISTCOMP" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.LISTCOMP" /> + <keyword name="Checker.NAME" id="Checker.NAME" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.NAME" /> + <keyword name="Checker.TRY" id="Checker.TRY" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.TRY" /> + <keyword name="Checker.addArgs" id="Checker.addArgs" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.addArgs" /> + <keyword name="Checker.addBinding" id="Checker.addBinding" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.addBinding" /> <keyword name="Checker.build_tokens_line" id="Checker.build_tokens_line" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#Checker.build_tokens_line" /> - <keyword name="Checker.build_tokens_line" id="Checker.build_tokens_line" ref="eric5.UtilitiesPython2.pep8.html#Checker.build_tokens_line" /> - <keyword name="Checker.checkDeadScopes" id="Checker.checkDeadScopes" ref="eric5.Utilities.py2flakes.checker.html#Checker.checkDeadScopes" /> - <keyword name="Checker.checkUnusedAssignments" id="Checker.checkUnusedAssignments" ref="eric5.Utilities.py2flakes.checker.html#Checker.checkUnusedAssignments" /> - <keyword name="Checker.checkUnusedAssignments" id="Checker.checkUnusedAssignments" ref="eric5.Utilities.py3flakes.checker.html#Checker.checkUnusedAssignments" /> + <keyword name="Checker.checkDeadScopes" id="Checker.checkDeadScopes" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.checkDeadScopes" /> + <keyword name="Checker.checkUnusedAssignments" id="Checker.checkUnusedAssignments" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.checkUnusedAssignments" /> <keyword name="Checker.check_all" id="Checker.check_all" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#Checker.check_all" /> - <keyword name="Checker.check_all" id="Checker.check_all" ref="eric5.UtilitiesPython2.pep8.html#Checker.check_all" /> <keyword name="Checker.check_ast" id="Checker.check_ast" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#Checker.check_ast" /> - <keyword name="Checker.check_ast" id="Checker.check_ast" ref="eric5.UtilitiesPython2.pep8.html#Checker.check_ast" /> - <keyword name="Checker.check_dead_scopes" id="Checker.check_dead_scopes" ref="eric5.Utilities.py3flakes.checker.html#Checker.check_dead_scopes" /> <keyword name="Checker.check_logical" id="Checker.check_logical" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#Checker.check_logical" /> - <keyword name="Checker.check_logical" id="Checker.check_logical" ref="eric5.UtilitiesPython2.pep8.html#Checker.check_logical" /> <keyword name="Checker.check_physical" id="Checker.check_physical" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#Checker.check_physical" /> - <keyword name="Checker.check_physical" id="Checker.check_physical" ref="eric5.UtilitiesPython2.pep8.html#Checker.check_physical" /> - <keyword name="Checker.collectLoopVars" id="Checker.collectLoopVars" ref="eric5.Utilities.py2flakes.checker.html#Checker.collectLoopVars" /> - <keyword name="Checker.collectLoopVars" id="Checker.collectLoopVars" ref="eric5.Utilities.py3flakes.checker.html#Checker.collectLoopVars" /> - <keyword name="Checker.deferAssignment" id="Checker.deferAssignment" ref="eric5.Utilities.py2flakes.checker.html#Checker.deferAssignment" /> - <keyword name="Checker.deferAssignment" id="Checker.deferAssignment" ref="eric5.Utilities.py3flakes.checker.html#Checker.deferAssignment" /> - <keyword name="Checker.deferFunction" id="Checker.deferFunction" ref="eric5.Utilities.py2flakes.checker.html#Checker.deferFunction" /> - <keyword name="Checker.deferFunction" id="Checker.deferFunction" ref="eric5.Utilities.py3flakes.checker.html#Checker.deferFunction" /> - <keyword name="Checker.descendantOf" id="Checker.descendantOf" ref="eric5.Utilities.py2flakes.checker.html#Checker.descendantOf" /> - <keyword name="Checker.differentForks" id="Checker.differentForks" ref="eric5.Utilities.py2flakes.checker.html#Checker.differentForks" /> + <keyword name="Checker.collectLoopVars" id="Checker.collectLoopVars" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.collectLoopVars" /> + <keyword name="Checker.deferAssignment" id="Checker.deferAssignment" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.deferAssignment" /> + <keyword name="Checker.deferFunction" id="Checker.deferFunction" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.deferFunction" /> + <keyword name="Checker.descendantOf" id="Checker.descendantOf" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.descendantOf" /> + <keyword name="Checker.differentForks" id="Checker.differentForks" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.differentForks" /> <keyword name="Checker.generate_tokens" id="Checker.generate_tokens" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#Checker.generate_tokens" /> - <keyword name="Checker.generate_tokens" id="Checker.generate_tokens" ref="eric5.UtilitiesPython2.pep8.html#Checker.generate_tokens" /> - <keyword name="Checker.getCommonAncestor" id="Checker.getCommonAncestor" ref="eric5.Utilities.py2flakes.checker.html#Checker.getCommonAncestor" /> - <keyword name="Checker.handleAssignName" id="Checker.handleAssignName" ref="eric5.Utilities.py3flakes.checker.html#Checker.handleAssignName" /> - <keyword name="Checker.handleBody" id="Checker.handleBody" ref="eric5.Utilities.py3flakes.checker.html#Checker.handleBody" /> - <keyword name="Checker.handleChildren" id="Checker.handleChildren" ref="eric5.Utilities.py2flakes.checker.html#Checker.handleChildren" /> - <keyword name="Checker.handleChildren" id="Checker.handleChildren" ref="eric5.Utilities.py3flakes.checker.html#Checker.handleChildren" /> - <keyword name="Checker.handleNode" id="Checker.handleNode" ref="eric5.Utilities.py2flakes.checker.html#Checker.handleNode" /> - <keyword name="Checker.handleNode" id="Checker.handleNode" ref="eric5.Utilities.py3flakes.checker.html#Checker.handleNode" /> - <keyword name="Checker.handleNodeDelete" id="Checker.handleNodeDelete" ref="eric5.Utilities.py2flakes.checker.html#Checker.handleNodeDelete" /> - <keyword name="Checker.handleNodeLoad" id="Checker.handleNodeLoad" ref="eric5.Utilities.py2flakes.checker.html#Checker.handleNodeLoad" /> - <keyword name="Checker.handleNodeStore" id="Checker.handleNodeStore" ref="eric5.Utilities.py2flakes.checker.html#Checker.handleNodeStore" /> - <keyword name="Checker.hasParent" id="Checker.hasParent" ref="eric5.Utilities.py2flakes.checker.html#Checker.hasParent" /> - <keyword name="Checker.ignore" id="Checker.ignore" ref="eric5.Utilities.py2flakes.checker.html#Checker.ignore" /> - <keyword name="Checker.ignore" id="Checker.ignore" ref="eric5.Utilities.py3flakes.checker.html#Checker.ignore" /> - <keyword name="Checker.isDocstring" id="Checker.isDocstring" ref="eric5.Utilities.py2flakes.checker.html#Checker.isDocstring" /> - <keyword name="Checker.isDocstring" id="Checker.isDocstring" ref="eric5.Utilities.py3flakes.checker.html#Checker.isDocstring" /> - <keyword name="Checker.onFork" id="Checker.onFork" ref="eric5.Utilities.py2flakes.checker.html#Checker.onFork" /> - <keyword name="Checker.popScope" id="Checker.popScope" ref="eric5.Utilities.py2flakes.checker.html#Checker.popScope" /> - <keyword name="Checker.popScope" id="Checker.popScope" ref="eric5.Utilities.py3flakes.checker.html#Checker.popScope" /> - <keyword name="Checker.pushClassScope" id="Checker.pushClassScope" ref="eric5.Utilities.py2flakes.checker.html#Checker.pushClassScope" /> - <keyword name="Checker.pushClassScope" id="Checker.pushClassScope" ref="eric5.Utilities.py3flakes.checker.html#Checker.pushClassScope" /> - <keyword name="Checker.pushFunctionScope" id="Checker.pushFunctionScope" ref="eric5.Utilities.py2flakes.checker.html#Checker.pushFunctionScope" /> - <keyword name="Checker.pushFunctionScope" id="Checker.pushFunctionScope" ref="eric5.Utilities.py3flakes.checker.html#Checker.pushFunctionScope" /> + <keyword name="Checker.getCommonAncestor" id="Checker.getCommonAncestor" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.getCommonAncestor" /> + <keyword name="Checker.getDocstring" id="Checker.getDocstring" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.getDocstring" /> + <keyword name="Checker.getNodeHandler" id="Checker.getNodeHandler" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.getNodeHandler" /> + <keyword name="Checker.handleChildren" id="Checker.handleChildren" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.handleChildren" /> + <keyword name="Checker.handleDoctests" id="Checker.handleDoctests" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.handleDoctests" /> + <keyword name="Checker.handleNode" id="Checker.handleNode" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.handleNode" /> + <keyword name="Checker.handleNodeDelete" id="Checker.handleNodeDelete" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.handleNodeDelete" /> + <keyword name="Checker.handleNodeLoad" id="Checker.handleNodeLoad" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.handleNodeLoad" /> + <keyword name="Checker.handleNodeStore" id="Checker.handleNodeStore" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.handleNodeStore" /> + <keyword name="Checker.hasParent" id="Checker.hasParent" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.hasParent" /> + <keyword name="Checker.ignore" id="Checker.ignore" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.ignore" /> + <keyword name="Checker.isDocstring" id="Checker.isDocstring" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.isDocstring" /> + <keyword name="Checker.onFork" id="Checker.onFork" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.onFork" /> + <keyword name="Checker.popScope" id="Checker.popScope" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.popScope" /> + <keyword name="Checker.pushClassScope" id="Checker.pushClassScope" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.pushClassScope" /> + <keyword name="Checker.pushFunctionScope" id="Checker.pushFunctionScope" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.pushFunctionScope" /> + <keyword name="Checker.pushScope" id="Checker.pushScope" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.pushScope" /> <keyword name="Checker.readline" id="Checker.readline" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#Checker.readline" /> - <keyword name="Checker.readline" id="Checker.readline" ref="eric5.UtilitiesPython2.pep8.html#Checker.readline" /> <keyword name="Checker.readline_check_physical" id="Checker.readline_check_physical" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#Checker.readline_check_physical" /> - <keyword name="Checker.readline_check_physical" id="Checker.readline_check_physical" ref="eric5.UtilitiesPython2.pep8.html#Checker.readline_check_physical" /> - <keyword name="Checker.report" id="Checker.report" ref="eric5.Utilities.py2flakes.checker.html#Checker.report" /> - <keyword name="Checker.report" id="Checker.report" ref="eric5.Utilities.py3flakes.checker.html#Checker.report" /> + <keyword name="Checker.report" id="Checker.report" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.report" /> <keyword name="Checker.report_invalid_syntax" id="Checker.report_invalid_syntax" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#Checker.report_invalid_syntax" /> - <keyword name="Checker.report_invalid_syntax" id="Checker.report_invalid_syntax" ref="eric5.UtilitiesPython2.pep8.html#Checker.report_invalid_syntax" /> - <keyword name="Checker.runDeferred" id="Checker.runDeferred" ref="eric5.Utilities.py2flakes.checker.html#Checker.runDeferred" /> - <keyword name="Checker.runFunction" id="Checker.runFunction" ref="eric5.Utilities.py2flakes.checker.html#Checker.runFunction" /> - <keyword name="Checker.runFunction" id="Checker.runFunction" ref="eric5.Utilities.py3flakes.checker.html#Checker.runFunction" /> + <keyword name="Checker.runDeferred" id="Checker.runDeferred" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.runDeferred" /> + <keyword name="Checker.runFunction" id="Checker.runFunction" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.runFunction" /> <keyword name="Checker.run_check" id="Checker.run_check" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#Checker.run_check" /> - <keyword name="Checker.run_check" id="Checker.run_check" ref="eric5.UtilitiesPython2.pep8.html#Checker.run_check" /> - <keyword name="Checker.scope" id="Checker.scope" ref="eric5.Utilities.py2flakes.checker.html#Checker.scope" /> - <keyword name="Checker.scope" id="Checker.scope" ref="eric5.Utilities.py3flakes.checker.html#Checker.scope" /> + <keyword name="Checker.scope" id="Checker.scope" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Checker.scope" /> <keyword name="CheckerPlugins (Package)" id="CheckerPlugins (Package)" ref="index-eric5.Plugins.CheckerPlugins.html" /> <keyword name="ChromeImporter" id="ChromeImporter" ref="eric5.Helpviewer.Bookmarks.BookmarksImporters.ChromeImporter.html#ChromeImporter" /> <keyword name="ChromeImporter (Constructor)" id="ChromeImporter (Constructor)" ref="eric5.Helpviewer.Bookmarks.BookmarksImporters.ChromeImporter.html#ChromeImporter.__init__" /> @@ -2100,7 +2049,7 @@ <keyword name="Class.getMethod" id="Class.getMethod" ref="eric5.Utilities.ModuleParser.html#Class.getMethod" /> <keyword name="Class.setEndLine" id="Class.setEndLine" ref="eric5.Utilities.ModuleParser.html#Class.setEndLine" /> <keyword name="ClassBrowsers (Package)" id="ClassBrowsers (Package)" ref="index-eric5.Utilities.ClassBrowsers.html" /> - <keyword name="ClassDefinition" id="ClassDefinition" ref="eric5.Utilities.py2flakes.checker.html#ClassDefinition" /> + <keyword name="ClassDefinition" id="ClassDefinition" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#ClassDefinition" /> <keyword name="ClassItem" id="ClassItem" ref="eric5.Graphics.ClassItem.html#ClassItem" /> <keyword name="ClassItem (Constructor)" id="ClassItem (Constructor)" ref="eric5.Graphics.ClassItem.html#ClassItem.__init__" /> <keyword name="ClassItem (Module)" id="ClassItem (Module)" ref="eric5.Graphics.ClassItem.html" /> @@ -2117,8 +2066,7 @@ <keyword name="ClassModel.addMethod" id="ClassModel.addMethod" ref="eric5.Graphics.ClassItem.html#ClassModel.addMethod" /> <keyword name="ClassModel.getAttributes" id="ClassModel.getAttributes" ref="eric5.Graphics.ClassItem.html#ClassModel.getAttributes" /> <keyword name="ClassModel.getMethods" id="ClassModel.getMethods" ref="eric5.Graphics.ClassItem.html#ClassModel.getMethods" /> - <keyword name="ClassScope" id="ClassScope" ref="eric5.Utilities.py2flakes.checker.html#ClassScope" /> - <keyword name="ClassScope" id="ClassScope" ref="eric5.Utilities.py3flakes.checker.html#ClassScope" /> + <keyword name="ClassScope" id="ClassScope" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#ClassScope" /> <keyword name="ClbrBase" id="ClbrBase" ref="eric5.Utilities.ClassBrowsers.ClbrBaseClasses.html#ClbrBase" /> <keyword name="ClbrBase (Constructor)" id="ClbrBase (Constructor)" ref="eric5.Utilities.ClassBrowsers.ClbrBaseClasses.html#ClbrBase.__init__" /> <keyword name="ClbrBase._addattribute" id="ClbrBase._addattribute" ref="eric5.Utilities.ClassBrowsers.ClbrBaseClasses.html#ClbrBase._addattribute" /> @@ -2214,7 +2162,6 @@ <keyword name="CodeMetricsDialog.prepare" id="CodeMetricsDialog.prepare" ref="eric5.DataViews.CodeMetricsDialog.html#CodeMetricsDialog.prepare" /> <keyword name="CodeMetricsDialog.start" id="CodeMetricsDialog.start" ref="eric5.DataViews.CodeMetricsDialog.html#CodeMetricsDialog.start" /> <keyword name="CodeStyleChecker (Module)" id="CodeStyleChecker (Module)" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleChecker.html" /> - <keyword name="CodeStyleChecker (Module)" id="CodeStyleChecker (Module)" ref="eric5.UtilitiesPython2.CodeStyleChecker.html" /> <keyword name="CodeStyleChecker (Package)" id="CodeStyleChecker (Package)" ref="index-eric5.Plugins.CheckerPlugins.CodeStyleChecker.html" /> <keyword name="CodeStyleCheckerDialog" id="CodeStyleCheckerDialog" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.html#CodeStyleCheckerDialog" /> <keyword name="CodeStyleCheckerDialog (Constructor)" id="CodeStyleCheckerDialog (Constructor)" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.html#CodeStyleCheckerDialog.__init__" /> @@ -2222,14 +2169,17 @@ <keyword name="CodeStyleCheckerDialog.__clearErrors" id="CodeStyleCheckerDialog.__clearErrors" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.html#CodeStyleCheckerDialog.__clearErrors" /> <keyword name="CodeStyleCheckerDialog.__createResultItem" id="CodeStyleCheckerDialog.__createResultItem" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.html#CodeStyleCheckerDialog.__createResultItem" /> <keyword name="CodeStyleCheckerDialog.__finish" id="CodeStyleCheckerDialog.__finish" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.html#CodeStyleCheckerDialog.__finish" /> + <keyword name="CodeStyleCheckerDialog.__getEol" id="CodeStyleCheckerDialog.__getEol" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.html#CodeStyleCheckerDialog.__getEol" /> <keyword name="CodeStyleCheckerDialog.__getSelectedFixableItems" id="CodeStyleCheckerDialog.__getSelectedFixableItems" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.html#CodeStyleCheckerDialog.__getSelectedFixableItems" /> <keyword name="CodeStyleCheckerDialog.__itemFixable" id="CodeStyleCheckerDialog.__itemFixable" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.html#CodeStyleCheckerDialog.__itemFixable" /> <keyword name="CodeStyleCheckerDialog.__modifyFixedResultItem" id="CodeStyleCheckerDialog.__modifyFixedResultItem" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.html#CodeStyleCheckerDialog.__modifyFixedResultItem" /> + <keyword name="CodeStyleCheckerDialog.__processResult" id="CodeStyleCheckerDialog.__processResult" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.html#CodeStyleCheckerDialog.__processResult" /> <keyword name="CodeStyleCheckerDialog.__resetStatistics" id="CodeStyleCheckerDialog.__resetStatistics" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.html#CodeStyleCheckerDialog.__resetStatistics" /> <keyword name="CodeStyleCheckerDialog.__resort" id="CodeStyleCheckerDialog.__resort" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.html#CodeStyleCheckerDialog.__resort" /> <keyword name="CodeStyleCheckerDialog.__selectCodes" id="CodeStyleCheckerDialog.__selectCodes" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.html#CodeStyleCheckerDialog.__selectCodes" /> <keyword name="CodeStyleCheckerDialog.__updateFixerStatistics" id="CodeStyleCheckerDialog.__updateFixerStatistics" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.html#CodeStyleCheckerDialog.__updateFixerStatistics" /> <keyword name="CodeStyleCheckerDialog.__updateStatistics" id="CodeStyleCheckerDialog.__updateStatistics" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.html#CodeStyleCheckerDialog.__updateStatistics" /> + <keyword name="CodeStyleCheckerDialog.check" id="CodeStyleCheckerDialog.check" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.html#CodeStyleCheckerDialog.check" /> <keyword name="CodeStyleCheckerDialog.on_buttonBox_clicked" id="CodeStyleCheckerDialog.on_buttonBox_clicked" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.html#CodeStyleCheckerDialog.on_buttonBox_clicked" /> <keyword name="CodeStyleCheckerDialog.on_excludeMessagesSelectButton_clicked" id="CodeStyleCheckerDialog.on_excludeMessagesSelectButton_clicked" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.html#CodeStyleCheckerDialog.on_excludeMessagesSelectButton_clicked" /> <keyword name="CodeStyleCheckerDialog.on_fixButton_clicked" id="CodeStyleCheckerDialog.on_fixButton_clicked" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.html#CodeStyleCheckerDialog.on_fixButton_clicked" /> @@ -2259,11 +2209,9 @@ <keyword name="CodeStyleCheckerPlugin.__projectShowMenu" id="CodeStyleCheckerPlugin.__projectShowMenu" ref="eric5.Plugins.PluginCodeStyleChecker.html#CodeStyleCheckerPlugin.__projectShowMenu" /> <keyword name="CodeStyleCheckerPlugin.activate" id="CodeStyleCheckerPlugin.activate" ref="eric5.Plugins.PluginCodeStyleChecker.html#CodeStyleCheckerPlugin.activate" /> <keyword name="CodeStyleCheckerPlugin.deactivate" id="CodeStyleCheckerPlugin.deactivate" ref="eric5.Plugins.PluginCodeStyleChecker.html#CodeStyleCheckerPlugin.deactivate" /> - <keyword name="CodeStyleCheckerPy2" id="CodeStyleCheckerPy2" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleChecker.html#CodeStyleCheckerPy2" /> - <keyword name="CodeStyleCheckerPy2 (Constructor)" id="CodeStyleCheckerPy2 (Constructor)" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleChecker.html#CodeStyleCheckerPy2.__init__" /> - <keyword name="CodeStyleCheckerReport" id="CodeStyleCheckerReport" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.html#CodeStyleCheckerReport" /> - <keyword name="CodeStyleCheckerReport (Constructor)" id="CodeStyleCheckerReport (Constructor)" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.html#CodeStyleCheckerReport.__init__" /> - <keyword name="CodeStyleCheckerReport.error_args" id="CodeStyleCheckerReport.error_args" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.html#CodeStyleCheckerReport.error_args" /> + <keyword name="CodeStyleCheckerReport" id="CodeStyleCheckerReport" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleChecker.html#CodeStyleCheckerReport" /> + <keyword name="CodeStyleCheckerReport (Constructor)" id="CodeStyleCheckerReport (Constructor)" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleChecker.html#CodeStyleCheckerReport.__init__" /> + <keyword name="CodeStyleCheckerReport.error_args" id="CodeStyleCheckerReport.error_args" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleChecker.html#CodeStyleCheckerReport.error_args" /> <keyword name="CodeStyleCodeSelectionDialog" id="CodeStyleCodeSelectionDialog" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCodeSelectionDialog.html#CodeStyleCodeSelectionDialog" /> <keyword name="CodeStyleCodeSelectionDialog (Constructor)" id="CodeStyleCodeSelectionDialog (Constructor)" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCodeSelectionDialog.html#CodeStyleCodeSelectionDialog.__init__" /> <keyword name="CodeStyleCodeSelectionDialog (Module)" id="CodeStyleCodeSelectionDialog (Module)" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCodeSelectionDialog.html" /> @@ -2316,7 +2264,6 @@ <keyword name="CodeStyleFixer.__fixW391" id="CodeStyleFixer.__fixW391" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.html#CodeStyleFixer.__fixW391" /> <keyword name="CodeStyleFixer.__fixW603" id="CodeStyleFixer.__fixW603" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.html#CodeStyleFixer.__fixW603" /> <keyword name="CodeStyleFixer.__fixWhitespace" id="CodeStyleFixer.__fixWhitespace" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.html#CodeStyleFixer.__fixWhitespace" /> - <keyword name="CodeStyleFixer.__getEol" id="CodeStyleFixer.__getEol" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.html#CodeStyleFixer.__getEol" /> <keyword name="CodeStyleFixer.__getID" id="CodeStyleFixer.__getID" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.html#CodeStyleFixer.__getID" /> <keyword name="CodeStyleFixer.__getIndent" id="CodeStyleFixer.__getIndent" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.html#CodeStyleFixer.__getIndent" /> <keyword name="CodeStyleFixer.__getIndentWord" id="CodeStyleFixer.__getIndentWord" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.html#CodeStyleFixer.__getIndentWord" /> @@ -2326,9 +2273,6 @@ <keyword name="CodeStyleFixer.fixIssue" id="CodeStyleFixer.fixIssue" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.html#CodeStyleFixer.fixIssue" /> <keyword name="CodeStyleFixer.mutualStartswith" id="CodeStyleFixer.mutualStartswith" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.html#CodeStyleFixer.mutualStartswith" /> <keyword name="CodeStyleFixer.saveFile" id="CodeStyleFixer.saveFile" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.html#CodeStyleFixer.saveFile" /> - <keyword name="CodeStyleReport" id="CodeStyleReport" ref="eric5.UtilitiesPython2.CodeStyleChecker.html#CodeStyleReport" /> - <keyword name="CodeStyleReport (Constructor)" id="CodeStyleReport (Constructor)" ref="eric5.UtilitiesPython2.CodeStyleChecker.html#CodeStyleReport.__init__" /> - <keyword name="CodeStyleReport.error_args" id="CodeStyleReport.error_args" ref="eric5.UtilitiesPython2.CodeStyleChecker.html#CodeStyleReport.error_args" /> <keyword name="CodeStyleStatisticsDialog" id="CodeStyleStatisticsDialog" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleStatisticsDialog.html#CodeStyleStatisticsDialog" /> <keyword name="CodeStyleStatisticsDialog (Constructor)" id="CodeStyleStatisticsDialog (Constructor)" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleStatisticsDialog.html#CodeStyleStatisticsDialog.__init__" /> <keyword name="CodeStyleStatisticsDialog (Module)" id="CodeStyleStatisticsDialog (Module)" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleStatisticsDialog.html" /> @@ -3389,7 +3333,7 @@ <keyword name="DebuggerRubyPage.on_rubyInterpreterButton_clicked" id="DebuggerRubyPage.on_rubyInterpreterButton_clicked" ref="eric5.Preferences.ConfigurationPages.DebuggerRubyPage.html#DebuggerRubyPage.on_rubyInterpreterButton_clicked" /> <keyword name="DebuggerRubyPage.save" id="DebuggerRubyPage.save" ref="eric5.Preferences.ConfigurationPages.DebuggerRubyPage.html#DebuggerRubyPage.save" /> <keyword name="DefaultSearchEngines (Package)" id="DefaultSearchEngines (Package)" ref="index-eric5.Helpviewer.OpenSearch.DefaultSearchEngines.html" /> - <keyword name="Definition" id="Definition" ref="eric5.Utilities.py2flakes.checker.html#Definition" /> + <keyword name="Definition" id="Definition" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Definition" /> <keyword name="DeleteFilesConfirmationDialog" id="DeleteFilesConfirmationDialog" ref="eric5.UI.DeleteFilesConfirmationDialog.html#DeleteFilesConfirmationDialog" /> <keyword name="DeleteFilesConfirmationDialog (Constructor)" id="DeleteFilesConfirmationDialog (Constructor)" ref="eric5.UI.DeleteFilesConfirmationDialog.html#DeleteFilesConfirmationDialog.__init__" /> <keyword name="DeleteFilesConfirmationDialog (Module)" id="DeleteFilesConfirmationDialog (Module)" ref="eric5.UI.DeleteFilesConfirmationDialog.html" /> @@ -3409,11 +3353,8 @@ <keyword name="DiffDialog.on_saveButton_clicked" id="DiffDialog.on_saveButton_clicked" ref="eric5.UI.DiffDialog.html#DiffDialog.on_saveButton_clicked" /> <keyword name="DiffDialog.show" id="DiffDialog.show" ref="eric5.UI.DiffDialog.html#DiffDialog.show" /> <keyword name="DiffReport" id="DiffReport" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#DiffReport" /> - <keyword name="DiffReport" id="DiffReport" ref="eric5.UtilitiesPython2.pep8.html#DiffReport" /> <keyword name="DiffReport (Constructor)" id="DiffReport (Constructor)" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#DiffReport.__init__" /> - <keyword name="DiffReport (Constructor)" id="DiffReport (Constructor)" ref="eric5.UtilitiesPython2.pep8.html#DiffReport.__init__" /> <keyword name="DiffReport.error" id="DiffReport.error" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#DiffReport.error" /> - <keyword name="DiffReport.error" id="DiffReport.error" ref="eric5.UtilitiesPython2.pep8.html#DiffReport.error" /> <keyword name="DiffWindow" id="DiffWindow" ref="eric5.UI.DiffDialog.html#DiffWindow" /> <keyword name="DiffWindow (Constructor)" id="DiffWindow (Constructor)" ref="eric5.UI.DiffDialog.html#DiffWindow.__init__" /> <keyword name="DiffWindow.eventFilter" id="DiffWindow.eventFilter" ref="eric5.UI.DiffDialog.html#DiffWindow.eventFilter" /> @@ -3433,111 +3374,61 @@ <keyword name="DirectorySyncHandler.syncSpeedDial" id="DirectorySyncHandler.syncSpeedDial" ref="eric5.Helpviewer.Sync.DirectorySyncHandler.html#DirectorySyncHandler.syncSpeedDial" /> <keyword name="DirectorySyncHandler.syncUserAgents" id="DirectorySyncHandler.syncUserAgents" ref="eric5.Helpviewer.Sync.DirectorySyncHandler.html#DirectorySyncHandler.syncUserAgents" /> <keyword name="DocStyleChecker" id="DocStyleChecker" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker" /> - <keyword name="DocStyleChecker" id="DocStyleChecker" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker" /> <keyword name="DocStyleChecker (Constructor)" id="DocStyleChecker (Constructor)" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__init__" /> - <keyword name="DocStyleChecker (Constructor)" id="DocStyleChecker (Constructor)" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__init__" /> <keyword name="DocStyleChecker (Module)" id="DocStyleChecker (Module)" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html" /> <keyword name="DocStyleChecker.__checkBackslashes" id="DocStyleChecker.__checkBackslashes" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__checkBackslashes" /> - <keyword name="DocStyleChecker.__checkBackslashes" id="DocStyleChecker.__checkBackslashes" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__checkBackslashes" /> <keyword name="DocStyleChecker.__checkBlankAfterLastParagraph" id="DocStyleChecker.__checkBlankAfterLastParagraph" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__checkBlankAfterLastParagraph" /> - <keyword name="DocStyleChecker.__checkBlankAfterLastParagraph" id="DocStyleChecker.__checkBlankAfterLastParagraph" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__checkBlankAfterLastParagraph" /> <keyword name="DocStyleChecker.__checkBlankAfterSummary" id="DocStyleChecker.__checkBlankAfterSummary" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__checkBlankAfterSummary" /> - <keyword name="DocStyleChecker.__checkBlankAfterSummary" id="DocStyleChecker.__checkBlankAfterSummary" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__checkBlankAfterSummary" /> <keyword name="DocStyleChecker.__checkBlankBeforeAndAfterClass" id="DocStyleChecker.__checkBlankBeforeAndAfterClass" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__checkBlankBeforeAndAfterClass" /> - <keyword name="DocStyleChecker.__checkBlankBeforeAndAfterClass" id="DocStyleChecker.__checkBlankBeforeAndAfterClass" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__checkBlankBeforeAndAfterClass" /> <keyword name="DocStyleChecker.__checkClassDocstring" id="DocStyleChecker.__checkClassDocstring" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__checkClassDocstring" /> - <keyword name="DocStyleChecker.__checkClassDocstring" id="DocStyleChecker.__checkClassDocstring" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__checkClassDocstring" /> <keyword name="DocStyleChecker.__checkEndsWithPeriod" id="DocStyleChecker.__checkEndsWithPeriod" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__checkEndsWithPeriod" /> - <keyword name="DocStyleChecker.__checkEndsWithPeriod" id="DocStyleChecker.__checkEndsWithPeriod" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__checkEndsWithPeriod" /> <keyword name="DocStyleChecker.__checkEricBlankAfterSummary" id="DocStyleChecker.__checkEricBlankAfterSummary" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__checkEricBlankAfterSummary" /> - <keyword name="DocStyleChecker.__checkEricBlankAfterSummary" id="DocStyleChecker.__checkEricBlankAfterSummary" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__checkEricBlankAfterSummary" /> <keyword name="DocStyleChecker.__checkEricEndsWithPeriod" id="DocStyleChecker.__checkEricEndsWithPeriod" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__checkEricEndsWithPeriod" /> - <keyword name="DocStyleChecker.__checkEricEndsWithPeriod" id="DocStyleChecker.__checkEricEndsWithPeriod" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__checkEricEndsWithPeriod" /> <keyword name="DocStyleChecker.__checkEricException" id="DocStyleChecker.__checkEricException" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__checkEricException" /> - <keyword name="DocStyleChecker.__checkEricException" id="DocStyleChecker.__checkEricException" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__checkEricException" /> <keyword name="DocStyleChecker.__checkEricFunctionArguments" id="DocStyleChecker.__checkEricFunctionArguments" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__checkEricFunctionArguments" /> - <keyword name="DocStyleChecker.__checkEricFunctionArguments" id="DocStyleChecker.__checkEricFunctionArguments" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__checkEricFunctionArguments" /> <keyword name="DocStyleChecker.__checkEricNBlankAfterLastParagraph" id="DocStyleChecker.__checkEricNBlankAfterLastParagraph" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__checkEricNBlankAfterLastParagraph" /> - <keyword name="DocStyleChecker.__checkEricNBlankAfterLastParagraph" id="DocStyleChecker.__checkEricNBlankAfterLastParagraph" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__checkEricNBlankAfterLastParagraph" /> <keyword name="DocStyleChecker.__checkEricNoBlankBeforeAndAfterClassOrFunction" id="DocStyleChecker.__checkEricNoBlankBeforeAndAfterClassOrFunction" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__checkEricNoBlankBeforeAndAfterClassOrFunction" /> - <keyword name="DocStyleChecker.__checkEricNoBlankBeforeAndAfterClassOrFunction" id="DocStyleChecker.__checkEricNoBlankBeforeAndAfterClassOrFunction" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__checkEricNoBlankBeforeAndAfterClassOrFunction" /> <keyword name="DocStyleChecker.__checkEricQuotesOnSeparateLines" id="DocStyleChecker.__checkEricQuotesOnSeparateLines" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__checkEricQuotesOnSeparateLines" /> - <keyword name="DocStyleChecker.__checkEricQuotesOnSeparateLines" id="DocStyleChecker.__checkEricQuotesOnSeparateLines" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__checkEricQuotesOnSeparateLines" /> <keyword name="DocStyleChecker.__checkEricReturn" id="DocStyleChecker.__checkEricReturn" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__checkEricReturn" /> - <keyword name="DocStyleChecker.__checkEricReturn" id="DocStyleChecker.__checkEricReturn" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__checkEricReturn" /> <keyword name="DocStyleChecker.__checkFunctionDocstring" id="DocStyleChecker.__checkFunctionDocstring" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__checkFunctionDocstring" /> - <keyword name="DocStyleChecker.__checkFunctionDocstring" id="DocStyleChecker.__checkFunctionDocstring" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__checkFunctionDocstring" /> <keyword name="DocStyleChecker.__checkImperativeMood" id="DocStyleChecker.__checkImperativeMood" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__checkImperativeMood" /> - <keyword name="DocStyleChecker.__checkImperativeMood" id="DocStyleChecker.__checkImperativeMood" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__checkImperativeMood" /> <keyword name="DocStyleChecker.__checkIndent" id="DocStyleChecker.__checkIndent" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__checkIndent" /> - <keyword name="DocStyleChecker.__checkIndent" id="DocStyleChecker.__checkIndent" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__checkIndent" /> <keyword name="DocStyleChecker.__checkModulesDocstrings" id="DocStyleChecker.__checkModulesDocstrings" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__checkModulesDocstrings" /> - <keyword name="DocStyleChecker.__checkModulesDocstrings" id="DocStyleChecker.__checkModulesDocstrings" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__checkModulesDocstrings" /> <keyword name="DocStyleChecker.__checkNoBlankLineBefore" id="DocStyleChecker.__checkNoBlankLineBefore" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__checkNoBlankLineBefore" /> - <keyword name="DocStyleChecker.__checkNoBlankLineBefore" id="DocStyleChecker.__checkNoBlankLineBefore" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__checkNoBlankLineBefore" /> <keyword name="DocStyleChecker.__checkNoSignature" id="DocStyleChecker.__checkNoSignature" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__checkNoSignature" /> - <keyword name="DocStyleChecker.__checkNoSignature" id="DocStyleChecker.__checkNoSignature" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__checkNoSignature" /> <keyword name="DocStyleChecker.__checkOneLiner" id="DocStyleChecker.__checkOneLiner" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__checkOneLiner" /> - <keyword name="DocStyleChecker.__checkOneLiner" id="DocStyleChecker.__checkOneLiner" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__checkOneLiner" /> <keyword name="DocStyleChecker.__checkReturnType" id="DocStyleChecker.__checkReturnType" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__checkReturnType" /> - <keyword name="DocStyleChecker.__checkReturnType" id="DocStyleChecker.__checkReturnType" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__checkReturnType" /> <keyword name="DocStyleChecker.__checkTripleDoubleQuotes" id="DocStyleChecker.__checkTripleDoubleQuotes" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__checkTripleDoubleQuotes" /> - <keyword name="DocStyleChecker.__checkTripleDoubleQuotes" id="DocStyleChecker.__checkTripleDoubleQuotes" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__checkTripleDoubleQuotes" /> <keyword name="DocStyleChecker.__checkUnicode" id="DocStyleChecker.__checkUnicode" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__checkUnicode" /> - <keyword name="DocStyleChecker.__checkUnicode" id="DocStyleChecker.__checkUnicode" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__checkUnicode" /> <keyword name="DocStyleChecker.__error" id="DocStyleChecker.__error" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__error" /> - <keyword name="DocStyleChecker.__error" id="DocStyleChecker.__error" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__error" /> <keyword name="DocStyleChecker.__getArgNames" id="DocStyleChecker.__getArgNames" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__getArgNames" /> - <keyword name="DocStyleChecker.__getArgNames" id="DocStyleChecker.__getArgNames" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__getArgNames" /> <keyword name="DocStyleChecker.__getSummaryLine" id="DocStyleChecker.__getSummaryLine" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__getSummaryLine" /> - <keyword name="DocStyleChecker.__getSummaryLine" id="DocStyleChecker.__getSummaryLine" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__getSummaryLine" /> <keyword name="DocStyleChecker.__getSummaryLines" id="DocStyleChecker.__getSummaryLines" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__getSummaryLines" /> - <keyword name="DocStyleChecker.__getSummaryLines" id="DocStyleChecker.__getSummaryLines" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__getSummaryLines" /> <keyword name="DocStyleChecker.__ignoreCode" id="DocStyleChecker.__ignoreCode" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__ignoreCode" /> - <keyword name="DocStyleChecker.__ignoreCode" id="DocStyleChecker.__ignoreCode" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__ignoreCode" /> <keyword name="DocStyleChecker.__parseClasses" id="DocStyleChecker.__parseClasses" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__parseClasses" /> - <keyword name="DocStyleChecker.__parseClasses" id="DocStyleChecker.__parseClasses" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__parseClasses" /> <keyword name="DocStyleChecker.__parseContexts" id="DocStyleChecker.__parseContexts" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__parseContexts" /> - <keyword name="DocStyleChecker.__parseContexts" id="DocStyleChecker.__parseContexts" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__parseContexts" /> <keyword name="DocStyleChecker.__parseDocstring" id="DocStyleChecker.__parseDocstring" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__parseDocstring" /> - <keyword name="DocStyleChecker.__parseDocstring" id="DocStyleChecker.__parseDocstring" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__parseDocstring" /> <keyword name="DocStyleChecker.__parseFunctions" id="DocStyleChecker.__parseFunctions" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__parseFunctions" /> - <keyword name="DocStyleChecker.__parseFunctions" id="DocStyleChecker.__parseFunctions" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__parseFunctions" /> <keyword name="DocStyleChecker.__parseMethods" id="DocStyleChecker.__parseMethods" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__parseMethods" /> - <keyword name="DocStyleChecker.__parseMethods" id="DocStyleChecker.__parseMethods" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__parseMethods" /> <keyword name="DocStyleChecker.__parseModuleDocstring" id="DocStyleChecker.__parseModuleDocstring" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__parseModuleDocstring" /> - <keyword name="DocStyleChecker.__parseModuleDocstring" id="DocStyleChecker.__parseModuleDocstring" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__parseModuleDocstring" /> <keyword name="DocStyleChecker.__parseTopLevel" id="DocStyleChecker.__parseTopLevel" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__parseTopLevel" /> - <keyword name="DocStyleChecker.__parseTopLevel" id="DocStyleChecker.__parseTopLevel" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__parseTopLevel" /> <keyword name="DocStyleChecker.__readline" id="DocStyleChecker.__readline" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__readline" /> - <keyword name="DocStyleChecker.__readline" id="DocStyleChecker.__readline" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__readline" /> <keyword name="DocStyleChecker.__reportInvalidSyntax" id="DocStyleChecker.__reportInvalidSyntax" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__reportInvalidSyntax" /> <keyword name="DocStyleChecker.__resetReadline" id="DocStyleChecker.__resetReadline" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__resetReadline" /> - <keyword name="DocStyleChecker.__resetReadline" id="DocStyleChecker.__resetReadline" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__resetReadline" /> <keyword name="DocStyleChecker.__skipIndentedBlock" id="DocStyleChecker.__skipIndentedBlock" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.__skipIndentedBlock" /> - <keyword name="DocStyleChecker.__skipIndentedBlock" id="DocStyleChecker.__skipIndentedBlock" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.__skipIndentedBlock" /> <keyword name="DocStyleChecker.getMessage" id="DocStyleChecker.getMessage" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.getMessage" /> <keyword name="DocStyleChecker.run" id="DocStyleChecker.run" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.run" /> - <keyword name="DocStyleChecker.run" id="DocStyleChecker.run" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.run" /> <keyword name="DocStyleChecker.unpackArgs" id="DocStyleChecker.unpackArgs" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleChecker.unpackArgs" /> - <keyword name="DocStyleChecker.unpackArgs" id="DocStyleChecker.unpackArgs" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleChecker.unpackArgs" /> - <keyword name="DocStyleCheckerPy2 (Module)" id="DocStyleCheckerPy2 (Module)" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html" /> <keyword name="DocStyleContext" id="DocStyleContext" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleContext" /> - <keyword name="DocStyleContext" id="DocStyleContext" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleContext" /> <keyword name="DocStyleContext (Constructor)" id="DocStyleContext (Constructor)" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleContext.__init__" /> - <keyword name="DocStyleContext (Constructor)" id="DocStyleContext (Constructor)" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleContext.__init__" /> <keyword name="DocStyleContext.contextType" id="DocStyleContext.contextType" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleContext.contextType" /> - <keyword name="DocStyleContext.contextType" id="DocStyleContext.contextType" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleContext.contextType" /> <keyword name="DocStyleContext.end" id="DocStyleContext.end" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleContext.end" /> - <keyword name="DocStyleContext.end" id="DocStyleContext.end" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleContext.end" /> <keyword name="DocStyleContext.indent" id="DocStyleContext.indent" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleContext.indent" /> - <keyword name="DocStyleContext.indent" id="DocStyleContext.indent" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleContext.indent" /> <keyword name="DocStyleContext.source" id="DocStyleContext.source" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleContext.source" /> - <keyword name="DocStyleContext.source" id="DocStyleContext.source" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleContext.source" /> <keyword name="DocStyleContext.ssource" id="DocStyleContext.ssource" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleContext.ssource" /> - <keyword name="DocStyleContext.ssource" id="DocStyleContext.ssource" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleContext.ssource" /> <keyword name="DocStyleContext.start" id="DocStyleContext.start" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html#DocStyleContext.start" /> - <keyword name="DocStyleContext.start" id="DocStyleContext.start" ref="eric5.UtilitiesPython2.DocStyleCheckerPy2.html#DocStyleContext.start" /> + <keyword name="DoctestSyntaxError" id="DoctestSyntaxError" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html#DoctestSyntaxError" /> + <keyword name="DoctestSyntaxError (Constructor)" id="DoctestSyntaxError (Constructor)" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html#DoctestSyntaxError.__init__" /> <keyword name="DocumentationPlugins (Package)" id="DocumentationPlugins (Package)" ref="index-eric5.Plugins.DocumentationPlugins.html" /> <keyword name="DocumentationTools (Package)" id="DocumentationTools (Package)" ref="index-eric5.DocumentationTools.html" /> <keyword name="Download (Package)" id="Download (Package)" ref="index-eric5.Helpviewer.Download.html" /> @@ -3624,10 +3515,8 @@ <keyword name="DownloadModel.removeRows" id="DownloadModel.removeRows" ref="eric5.Helpviewer.Download.DownloadModel.html#DownloadModel.removeRows" /> <keyword name="DownloadModel.rowCount" id="DownloadModel.rowCount" ref="eric5.Helpviewer.Download.DownloadModel.html#DownloadModel.rowCount" /> <keyword name="DownloadUtilities (Module)" id="DownloadUtilities (Module)" ref="eric5.Helpviewer.Download.DownloadUtilities.html" /> - <keyword name="DuplicateArgument" id="DuplicateArgument" ref="eric5.Utilities.py2flakes.messages.html#DuplicateArgument" /> - <keyword name="DuplicateArgument" id="DuplicateArgument" ref="eric5.Utilities.py3flakes.messages.html#DuplicateArgument" /> - <keyword name="DuplicateArgument (Constructor)" id="DuplicateArgument (Constructor)" ref="eric5.Utilities.py2flakes.messages.html#DuplicateArgument.__init__" /> - <keyword name="DuplicateArgument (Constructor)" id="DuplicateArgument (Constructor)" ref="eric5.Utilities.py3flakes.messages.html#DuplicateArgument.__init__" /> + <keyword name="DuplicateArgument" id="DuplicateArgument" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html#DuplicateArgument" /> + <keyword name="DuplicateArgument (Constructor)" id="DuplicateArgument (Constructor)" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html#DuplicateArgument.__init__" /> <keyword name="E5Action" id="E5Action" ref="eric5.E5Gui.E5Action.html#E5Action" /> <keyword name="E5Action (Constructor)" id="E5Action (Constructor)" ref="eric5.E5Gui.E5Action.html#E5Action.__init__" /> <keyword name="E5Action (Module)" id="E5Action (Module)" ref="eric5.E5Gui.E5Action.html" /> @@ -4326,6 +4215,7 @@ <keyword name="Editor.__processEndEditCommand" id="Editor.__processEndEditCommand" ref="eric5.QScintilla.Editor.html#Editor.__processEndEditCommand" /> <keyword name="Editor.__processFlags" id="Editor.__processFlags" ref="eric5.QScintilla.Editor.html#Editor.__processFlags" /> <keyword name="Editor.__processRequestSyncCommand" id="Editor.__processRequestSyncCommand" ref="eric5.QScintilla.Editor.html#Editor.__processRequestSyncCommand" /> + <keyword name="Editor.__processResult" id="Editor.__processResult" ref="eric5.QScintilla.Editor.html#Editor.__processResult" /> <keyword name="Editor.__processStartEditCommand" id="Editor.__processStartEditCommand" ref="eric5.QScintilla.Editor.html#Editor.__processStartEditCommand" /> <keyword name="Editor.__processSyncCommand" id="Editor.__processSyncCommand" ref="eric5.QScintilla.Editor.html#Editor.__processSyncCommand" /> <keyword name="Editor.__projectPropertiesChanged" id="Editor.__projectPropertiesChanged" ref="eric5.QScintilla.Editor.html#Editor.__projectPropertiesChanged" /> @@ -4827,10 +4717,7 @@ <keyword name="ExceptionsFilterDialog.on_deleteButton_clicked" id="ExceptionsFilterDialog.on_deleteButton_clicked" ref="eric5.Debugger.ExceptionsFilterDialog.html#ExceptionsFilterDialog.on_deleteButton_clicked" /> <keyword name="ExceptionsFilterDialog.on_exceptionEdit_textChanged" id="ExceptionsFilterDialog.on_exceptionEdit_textChanged" ref="eric5.Debugger.ExceptionsFilterDialog.html#ExceptionsFilterDialog.on_exceptionEdit_textChanged" /> <keyword name="ExceptionsFilterDialog.on_exceptionList_itemSelectionChanged" id="ExceptionsFilterDialog.on_exceptionList_itemSelectionChanged" ref="eric5.Debugger.ExceptionsFilterDialog.html#ExceptionsFilterDialog.on_exceptionList_itemSelectionChanged" /> - <keyword name="ExportBinding" id="ExportBinding" ref="eric5.Utilities.py2flakes.checker.html#ExportBinding" /> - <keyword name="ExportBinding" id="ExportBinding" ref="eric5.Utilities.py3flakes.checker.html#ExportBinding" /> - <keyword name="ExportBinding.names" id="ExportBinding.names" ref="eric5.Utilities.py2flakes.checker.html#ExportBinding.names" /> - <keyword name="ExportBinding.names" id="ExportBinding.names" ref="eric5.Utilities.py3flakes.checker.html#ExportBinding.names" /> + <keyword name="ExportBinding" id="ExportBinding" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#ExportBinding" /> <keyword name="ExporterBase" id="ExporterBase" ref="eric5.QScintilla.Exporters.ExporterBase.html#ExporterBase" /> <keyword name="ExporterBase (Constructor)" id="ExporterBase (Constructor)" ref="eric5.QScintilla.Exporters.ExporterBase.html#ExporterBase.__init__" /> <keyword name="ExporterBase (Module)" id="ExporterBase (Module)" ref="eric5.QScintilla.Exporters.ExporterBase.html" /> @@ -4957,7 +4844,6 @@ <keyword name="FileReply.isSequential" id="FileReply.isSequential" ref="eric5.Helpviewer.Network.FileReply.html#FileReply.isSequential" /> <keyword name="FileReply.readData" id="FileReply.readData" ref="eric5.Helpviewer.Network.FileReply.html#FileReply.readData" /> <keyword name="FileReport" id="FileReport" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#FileReport" /> - <keyword name="FileReport" id="FileReport" ref="eric5.UtilitiesPython2.pep8.html#FileReport" /> <keyword name="FiletypeAssociationDialog" id="FiletypeAssociationDialog" ref="eric5.Project.FiletypeAssociationDialog.html#FiletypeAssociationDialog" /> <keyword name="FiletypeAssociationDialog (Constructor)" id="FiletypeAssociationDialog (Constructor)" ref="eric5.Project.FiletypeAssociationDialog.html#FiletypeAssociationDialog.__init__" /> <keyword name="FiletypeAssociationDialog (Module)" id="FiletypeAssociationDialog (Module)" ref="eric5.Project.FiletypeAssociationDialog.html" /> @@ -5117,12 +5003,9 @@ <keyword name="Function (Constructor)" id="Function (Constructor)" ref="eric5.Utilities.ModuleParser.html#Function.__init__" /> <keyword name="Function.addDescription" id="Function.addDescription" ref="eric5.Utilities.ModuleParser.html#Function.addDescription" /> <keyword name="Function.setEndLine" id="Function.setEndLine" ref="eric5.Utilities.ModuleParser.html#Function.setEndLine" /> - <keyword name="FunctionDefinition" id="FunctionDefinition" ref="eric5.Utilities.py2flakes.checker.html#FunctionDefinition" /> - <keyword name="FunctionDefinition" id="FunctionDefinition" ref="eric5.Utilities.py3flakes.checker.html#FunctionDefinition" /> - <keyword name="FunctionScope" id="FunctionScope" ref="eric5.Utilities.py2flakes.checker.html#FunctionScope" /> - <keyword name="FunctionScope" id="FunctionScope" ref="eric5.Utilities.py3flakes.checker.html#FunctionScope" /> - <keyword name="FunctionScope (Constructor)" id="FunctionScope (Constructor)" ref="eric5.Utilities.py2flakes.checker.html#FunctionScope.__init__" /> - <keyword name="FunctionScope (Constructor)" id="FunctionScope (Constructor)" ref="eric5.Utilities.py3flakes.checker.html#FunctionScope.__init__" /> + <keyword name="FunctionDefinition" id="FunctionDefinition" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#FunctionDefinition" /> + <keyword name="FunctionScope" id="FunctionScope" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#FunctionScope" /> + <keyword name="GeneratorScope" id="GeneratorScope" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#GeneratorScope" /> <keyword name="Globals (Package)" id="Globals (Package)" ref="index-eric5.Globals.html" /> <keyword name="GotoDialog" id="GotoDialog" ref="eric5.QScintilla.GotoDialog.html#GotoDialog" /> <keyword name="GotoDialog (Constructor)" id="GotoDialog (Constructor)" ref="eric5.QScintilla.GotoDialog.html#GotoDialog.__init__" /> @@ -6835,18 +6718,11 @@ <keyword name="IconsPreviewDialog" id="IconsPreviewDialog" ref="eric5.Preferences.ConfigurationPages.IconsPreviewDialog.html#IconsPreviewDialog" /> <keyword name="IconsPreviewDialog (Constructor)" id="IconsPreviewDialog (Constructor)" ref="eric5.Preferences.ConfigurationPages.IconsPreviewDialog.html#IconsPreviewDialog.__init__" /> <keyword name="IconsPreviewDialog (Module)" id="IconsPreviewDialog (Module)" ref="eric5.Preferences.ConfigurationPages.IconsPreviewDialog.html" /> - <keyword name="ImportShadowedByLoopVar" id="ImportShadowedByLoopVar" ref="eric5.Utilities.py2flakes.messages.html#ImportShadowedByLoopVar" /> - <keyword name="ImportShadowedByLoopVar" id="ImportShadowedByLoopVar" ref="eric5.Utilities.py3flakes.messages.html#ImportShadowedByLoopVar" /> - <keyword name="ImportShadowedByLoopVar (Constructor)" id="ImportShadowedByLoopVar (Constructor)" ref="eric5.Utilities.py2flakes.messages.html#ImportShadowedByLoopVar.__init__" /> - <keyword name="ImportShadowedByLoopVar (Constructor)" id="ImportShadowedByLoopVar (Constructor)" ref="eric5.Utilities.py3flakes.messages.html#ImportShadowedByLoopVar.__init__" /> - <keyword name="ImportStarUsed" id="ImportStarUsed" ref="eric5.Utilities.py2flakes.messages.html#ImportStarUsed" /> - <keyword name="ImportStarUsed" id="ImportStarUsed" ref="eric5.Utilities.py3flakes.messages.html#ImportStarUsed" /> - <keyword name="ImportStarUsed (Constructor)" id="ImportStarUsed (Constructor)" ref="eric5.Utilities.py2flakes.messages.html#ImportStarUsed.__init__" /> - <keyword name="ImportStarUsed (Constructor)" id="ImportStarUsed (Constructor)" ref="eric5.Utilities.py3flakes.messages.html#ImportStarUsed.__init__" /> - <keyword name="Importation" id="Importation" ref="eric5.Utilities.py2flakes.checker.html#Importation" /> - <keyword name="Importation" id="Importation" ref="eric5.Utilities.py3flakes.checker.html#Importation" /> - <keyword name="Importation (Constructor)" id="Importation (Constructor)" ref="eric5.Utilities.py2flakes.checker.html#Importation.__init__" /> - <keyword name="Importation (Constructor)" id="Importation (Constructor)" ref="eric5.Utilities.py3flakes.checker.html#Importation.__init__" /> + <keyword name="ImportShadowedByLoopVar" id="ImportShadowedByLoopVar" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html#ImportShadowedByLoopVar" /> + <keyword name="ImportShadowedByLoopVar (Constructor)" id="ImportShadowedByLoopVar (Constructor)" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html#ImportShadowedByLoopVar.__init__" /> + <keyword name="ImportStarUsed" id="ImportStarUsed" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html#ImportStarUsed" /> + <keyword name="ImportStarUsed (Constructor)" id="ImportStarUsed (Constructor)" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html#ImportStarUsed.__init__" /> + <keyword name="Importation" id="Importation" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Importation" /> <keyword name="ImportsDiagramBuilder" id="ImportsDiagramBuilder" ref="eric5.Graphics.ImportsDiagramBuilder.html#ImportsDiagramBuilder" /> <keyword name="ImportsDiagramBuilder (Constructor)" id="ImportsDiagramBuilder (Constructor)" ref="eric5.Graphics.ImportsDiagramBuilder.html#ImportsDiagramBuilder.__init__" /> <keyword name="ImportsDiagramBuilder (Module)" id="ImportsDiagramBuilder (Module)" ref="eric5.Graphics.ImportsDiagramBuilder.html" /> @@ -6898,6 +6774,13 @@ <keyword name="InterfacePage.on_resetLayoutButton_clicked" id="InterfacePage.on_resetLayoutButton_clicked" ref="eric5.Preferences.ConfigurationPages.InterfacePage.html#InterfacePage.on_resetLayoutButton_clicked" /> <keyword name="InterfacePage.on_styleSheetButton_clicked" id="InterfacePage.on_styleSheetButton_clicked" ref="eric5.Preferences.ConfigurationPages.InterfacePage.html#InterfacePage.on_styleSheetButton_clicked" /> <keyword name="InterfacePage.save" id="InterfacePage.save" ref="eric5.Preferences.ConfigurationPages.InterfacePage.html#InterfacePage.save" /> + <keyword name="InternalServices" id="InternalServices" ref="eric5.Utilities.InternalServices.html#InternalServices" /> + <keyword name="InternalServices (Constructor)" id="InternalServices (Constructor)" ref="eric5.Utilities.InternalServices.html#InternalServices.__init__" /> + <keyword name="InternalServices (Module)" id="InternalServices (Module)" ref="eric5.Utilities.InternalServices.html" /> + <keyword name="InternalServices.__translateStyleCheck" id="InternalServices.__translateStyleCheck" ref="eric5.Utilities.InternalServices.html#InternalServices.__translateStyleCheck" /> + <keyword name="InternalServices.__translateSyntaxCheck" id="InternalServices.__translateSyntaxCheck" ref="eric5.Utilities.InternalServices.html#InternalServices.__translateSyntaxCheck" /> + <keyword name="InternalServices.styleCheck" id="InternalServices.styleCheck" ref="eric5.Utilities.InternalServices.html#InternalServices.styleCheck" /> + <keyword name="InternalServices.syntaxCheck" id="InternalServices.syntaxCheck" ref="eric5.Utilities.InternalServices.html#InternalServices.syntaxCheck" /> <keyword name="InvalidPlistException" id="InvalidPlistException" ref="eric5.Utilities.binplistlib.html#InvalidPlistException" /> <keyword name="IrcChannel" id="IrcChannel" ref="eric5.Network.IRC.IrcNetworkManager.html#IrcChannel" /> <keyword name="IrcChannel (Constructor)" id="IrcChannel (Constructor)" ref="eric5.Network.IRC.IrcNetworkManager.html#IrcChannel.__init__" /> @@ -7229,10 +7112,8 @@ <keyword name="JavaScriptExternalObject (Constructor)" id="JavaScriptExternalObject (Constructor)" ref="eric5.Helpviewer.HelpBrowserWV.html#JavaScriptExternalObject.__init__" /> <keyword name="JavaScriptExternalObject.AddSearchProvider" id="JavaScriptExternalObject.AddSearchProvider" ref="eric5.Helpviewer.HelpBrowserWV.html#JavaScriptExternalObject.AddSearchProvider" /> <keyword name="JavaScriptResources (Module)" id="JavaScriptResources (Module)" ref="eric5.Helpviewer.JavaScriptResources.html" /> - <keyword name="LateFutureImport" id="LateFutureImport" ref="eric5.Utilities.py2flakes.messages.html#LateFutureImport" /> - <keyword name="LateFutureImport" id="LateFutureImport" ref="eric5.Utilities.py3flakes.messages.html#LateFutureImport" /> - <keyword name="LateFutureImport (Constructor)" id="LateFutureImport (Constructor)" ref="eric5.Utilities.py2flakes.messages.html#LateFutureImport.__init__" /> - <keyword name="LateFutureImport (Constructor)" id="LateFutureImport (Constructor)" ref="eric5.Utilities.py3flakes.messages.html#LateFutureImport.__init__" /> + <keyword name="LateFutureImport" id="LateFutureImport" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html#LateFutureImport" /> + <keyword name="LateFutureImport (Constructor)" id="LateFutureImport (Constructor)" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html#LateFutureImport.__init__" /> <keyword name="Lexer" id="Lexer" ref="eric5.QScintilla.Lexers.Lexer.html#Lexer" /> <keyword name="Lexer (Constructor)" id="Lexer (Constructor)" ref="eric5.QScintilla.Lexers.Lexer.html#Lexer.__init__" /> <keyword name="Lexer (Module)" id="Lexer (Module)" ref="eric5.QScintilla.Lexers.Lexer.html" /> @@ -7606,14 +7487,10 @@ <keyword name="MercurialUserDataDialog (Constructor)" id="MercurialUserDataDialog (Constructor)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialUserDataDialog.html#MercurialUserDataDialog.__init__" /> <keyword name="MercurialUserDataDialog (Module)" id="MercurialUserDataDialog (Module)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialUserDataDialog.html" /> <keyword name="MercurialUserDataDialog.getData" id="MercurialUserDataDialog.getData" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialUserDataDialog.html#MercurialUserDataDialog.getData" /> - <keyword name="Message" id="Message" ref="eric5.Utilities.py2flakes.messages.html#Message" /> - <keyword name="Message" id="Message" ref="eric5.Utilities.py3flakes.messages.html#Message" /> - <keyword name="Message (Constructor)" id="Message (Constructor)" ref="eric5.Utilities.py2flakes.messages.html#Message.__init__" /> - <keyword name="Message (Constructor)" id="Message (Constructor)" ref="eric5.Utilities.py3flakes.messages.html#Message.__init__" /> - <keyword name="Message.__str__" id="Message.__str__" ref="eric5.Utilities.py2flakes.messages.html#Message.__str__" /> - <keyword name="Message.__str__" id="Message.__str__" ref="eric5.Utilities.py3flakes.messages.html#Message.__str__" /> - <keyword name="Message.getMessageData" id="Message.getMessageData" ref="eric5.Utilities.py2flakes.messages.html#Message.getMessageData" /> - <keyword name="Message.getMessageData" id="Message.getMessageData" ref="eric5.Utilities.py3flakes.messages.html#Message.getMessageData" /> + <keyword name="Message" id="Message" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html#Message" /> + <keyword name="Message (Constructor)" id="Message (Constructor)" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html#Message.__init__" /> + <keyword name="Message.__str__" id="Message.__str__" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html#Message.__str__" /> + <keyword name="Message.getMessageData" id="Message.getMessageData" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html#Message.getMessageData" /> <keyword name="MessageBoxWizard" id="MessageBoxWizard" ref="eric5.Plugins.PluginWizardQMessageBox.html#MessageBoxWizard" /> <keyword name="MessageBoxWizard (Constructor)" id="MessageBoxWizard (Constructor)" ref="eric5.Plugins.PluginWizardQMessageBox.html#MessageBoxWizard.__init__" /> <keyword name="MessageBoxWizard (Package)" id="MessageBoxWizard (Package)" ref="index-eric5.Plugins.WizardPlugins.MessageBoxWizard.html" /> @@ -7778,8 +7655,7 @@ <keyword name="ModuleModel.addClass" id="ModuleModel.addClass" ref="eric5.Graphics.ModuleItem.html#ModuleModel.addClass" /> <keyword name="ModuleModel.getClasses" id="ModuleModel.getClasses" ref="eric5.Graphics.ModuleItem.html#ModuleModel.getClasses" /> <keyword name="ModuleParser (Module)" id="ModuleParser (Module)" ref="eric5.Utilities.ModuleParser.html" /> - <keyword name="ModuleScope" id="ModuleScope" ref="eric5.Utilities.py2flakes.checker.html#ModuleScope" /> - <keyword name="ModuleScope" id="ModuleScope" ref="eric5.Utilities.py3flakes.checker.html#ModuleScope" /> + <keyword name="ModuleScope" id="ModuleScope" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#ModuleScope" /> <keyword name="MultiProject" id="MultiProject" ref="eric5.MultiProject.MultiProject.html#MultiProject" /> <keyword name="MultiProject (Constructor)" id="MultiProject (Constructor)" ref="eric5.MultiProject.MultiProject.html#MultiProject.__init__" /> <keyword name="MultiProject (Module)" id="MultiProject (Module)" ref="eric5.MultiProject.MultiProject.html" /> @@ -7860,43 +7736,25 @@ <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="NamingStyleChecker" id="NamingStyleChecker" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.html#NamingStyleChecker" /> - <keyword name="NamingStyleChecker" id="NamingStyleChecker" ref="eric5.UtilitiesPython2.NamingStyleCheckerPy2.html#NamingStyleChecker" /> <keyword name="NamingStyleChecker (Constructor)" id="NamingStyleChecker (Constructor)" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.html#NamingStyleChecker.__init__" /> - <keyword name="NamingStyleChecker (Constructor)" id="NamingStyleChecker (Constructor)" ref="eric5.UtilitiesPython2.NamingStyleCheckerPy2.html#NamingStyleChecker.__init__" /> <keyword name="NamingStyleChecker (Module)" id="NamingStyleChecker (Module)" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.html" /> <keyword name="NamingStyleChecker.__checkClassName" id="NamingStyleChecker.__checkClassName" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.html#NamingStyleChecker.__checkClassName" /> - <keyword name="NamingStyleChecker.__checkClassName" id="NamingStyleChecker.__checkClassName" ref="eric5.UtilitiesPython2.NamingStyleCheckerPy2.html#NamingStyleChecker.__checkClassName" /> <keyword name="NamingStyleChecker.__checkFunctionArgumentNames" id="NamingStyleChecker.__checkFunctionArgumentNames" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.html#NamingStyleChecker.__checkFunctionArgumentNames" /> - <keyword name="NamingStyleChecker.__checkFunctionArgumentNames" id="NamingStyleChecker.__checkFunctionArgumentNames" ref="eric5.UtilitiesPython2.NamingStyleCheckerPy2.html#NamingStyleChecker.__checkFunctionArgumentNames" /> <keyword name="NamingStyleChecker.__checkFuntionName" id="NamingStyleChecker.__checkFuntionName" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.html#NamingStyleChecker.__checkFuntionName" /> - <keyword name="NamingStyleChecker.__checkFuntionName" id="NamingStyleChecker.__checkFuntionName" ref="eric5.UtilitiesPython2.NamingStyleCheckerPy2.html#NamingStyleChecker.__checkFuntionName" /> <keyword name="NamingStyleChecker.__checkImportAs" id="NamingStyleChecker.__checkImportAs" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.html#NamingStyleChecker.__checkImportAs" /> - <keyword name="NamingStyleChecker.__checkImportAs" id="NamingStyleChecker.__checkImportAs" ref="eric5.UtilitiesPython2.NamingStyleCheckerPy2.html#NamingStyleChecker.__checkImportAs" /> <keyword name="NamingStyleChecker.__checkModule" id="NamingStyleChecker.__checkModule" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.html#NamingStyleChecker.__checkModule" /> - <keyword name="NamingStyleChecker.__checkModule" id="NamingStyleChecker.__checkModule" ref="eric5.UtilitiesPython2.NamingStyleCheckerPy2.html#NamingStyleChecker.__checkModule" /> <keyword name="NamingStyleChecker.__checkNameToBeAvoided" id="NamingStyleChecker.__checkNameToBeAvoided" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.html#NamingStyleChecker.__checkNameToBeAvoided" /> - <keyword name="NamingStyleChecker.__checkNameToBeAvoided" id="NamingStyleChecker.__checkNameToBeAvoided" ref="eric5.UtilitiesPython2.NamingStyleCheckerPy2.html#NamingStyleChecker.__checkNameToBeAvoided" /> <keyword name="NamingStyleChecker.__checkVariablesInFunction" id="NamingStyleChecker.__checkVariablesInFunction" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.html#NamingStyleChecker.__checkVariablesInFunction" /> - <keyword name="NamingStyleChecker.__checkVariablesInFunction" id="NamingStyleChecker.__checkVariablesInFunction" ref="eric5.UtilitiesPython2.NamingStyleCheckerPy2.html#NamingStyleChecker.__checkVariablesInFunction" /> <keyword name="NamingStyleChecker.__error" id="NamingStyleChecker.__error" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.html#NamingStyleChecker.__error" /> - <keyword name="NamingStyleChecker.__error" id="NamingStyleChecker.__error" ref="eric5.UtilitiesPython2.NamingStyleCheckerPy2.html#NamingStyleChecker.__error" /> <keyword name="NamingStyleChecker.__findGlobalDefs" id="NamingStyleChecker.__findGlobalDefs" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.html#NamingStyleChecker.__findGlobalDefs" /> - <keyword name="NamingStyleChecker.__findGlobalDefs" id="NamingStyleChecker.__findGlobalDefs" ref="eric5.UtilitiesPython2.NamingStyleCheckerPy2.html#NamingStyleChecker.__findGlobalDefs" /> <keyword name="NamingStyleChecker.__getArgNames" id="NamingStyleChecker.__getArgNames" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.html#NamingStyleChecker.__getArgNames" /> - <keyword name="NamingStyleChecker.__getArgNames" id="NamingStyleChecker.__getArgNames" ref="eric5.UtilitiesPython2.NamingStyleCheckerPy2.html#NamingStyleChecker.__getArgNames" /> <keyword name="NamingStyleChecker.__isNameToBeAvoided" id="NamingStyleChecker.__isNameToBeAvoided" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.html#NamingStyleChecker.__isNameToBeAvoided" /> - <keyword name="NamingStyleChecker.__isNameToBeAvoided" id="NamingStyleChecker.__isNameToBeAvoided" ref="eric5.UtilitiesPython2.NamingStyleCheckerPy2.html#NamingStyleChecker.__isNameToBeAvoided" /> <keyword name="NamingStyleChecker.__tagClassFunctions" id="NamingStyleChecker.__tagClassFunctions" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.html#NamingStyleChecker.__tagClassFunctions" /> - <keyword name="NamingStyleChecker.__tagClassFunctions" id="NamingStyleChecker.__tagClassFunctions" ref="eric5.UtilitiesPython2.NamingStyleCheckerPy2.html#NamingStyleChecker.__tagClassFunctions" /> <keyword name="NamingStyleChecker.__visitNode" id="NamingStyleChecker.__visitNode" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.html#NamingStyleChecker.__visitNode" /> - <keyword name="NamingStyleChecker.__visitNode" id="NamingStyleChecker.__visitNode" ref="eric5.UtilitiesPython2.NamingStyleCheckerPy2.html#NamingStyleChecker.__visitNode" /> <keyword name="NamingStyleChecker.__visitTree" id="NamingStyleChecker.__visitTree" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.html#NamingStyleChecker.__visitTree" /> - <keyword name="NamingStyleChecker.__visitTree" id="NamingStyleChecker.__visitTree" ref="eric5.UtilitiesPython2.NamingStyleCheckerPy2.html#NamingStyleChecker.__visitTree" /> <keyword name="NamingStyleChecker.getMessage" id="NamingStyleChecker.getMessage" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.html#NamingStyleChecker.getMessage" /> <keyword name="NamingStyleChecker.run" id="NamingStyleChecker.run" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.html#NamingStyleChecker.run" /> - <keyword name="NamingStyleChecker.run" id="NamingStyleChecker.run" ref="eric5.UtilitiesPython2.NamingStyleCheckerPy2.html#NamingStyleChecker.run" /> - <keyword name="NamingStyleChecker.unpackArgs" id="NamingStyleChecker.unpackArgs" ref="eric5.UtilitiesPython2.NamingStyleCheckerPy2.html#NamingStyleChecker.unpackArgs" /> - <keyword name="NamingStyleCheckerPy2 (Module)" id="NamingStyleCheckerPy2 (Module)" ref="eric5.UtilitiesPython2.NamingStyleCheckerPy2.html" /> + <keyword name="NamingStyleChecker.unpackArgs" id="NamingStyleChecker.unpackArgs" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.html#NamingStyleChecker.unpackArgs" /> <keyword name="NannyNag" id="NannyNag" ref="eric5.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html#NannyNag" /> <keyword name="NannyNag (Constructor)" id="NannyNag (Constructor)" ref="eric5.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html#NannyNag.__init__" /> <keyword name="NannyNag.get_line" id="NannyNag.get_line" ref="eric5.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html#NannyNag.get_line" /> @@ -9365,8 +9223,6 @@ <keyword name="QRegularExpressionWizardWindow.closeEvent" id="QRegularExpressionWizardWindow.closeEvent" ref="eric5.Plugins.WizardPlugins.QRegularExpressionWizard.QRegularExpressionWizardDialog.html#QRegularExpressionWizardWindow.closeEvent" /> <keyword name="QSCINTILLA_VERSION" id="QSCINTILLA_VERSION" ref="eric5.QScintilla.QsciScintillaCompat.html#QSCINTILLA_VERSION" /> <keyword name="QScintilla (Package)" id="QScintilla (Package)" ref="index-eric5.QScintilla.html" /> - <keyword name="QT_TRANSLATE_NOOP" id="QT_TRANSLATE_NOOP" ref="eric5.Utilities.py2flakes.messages.html#QT_TRANSLATE_NOOP" /> - <keyword name="QT_TRANSLATE_NOOP" id="QT_TRANSLATE_NOOP" ref="eric5.Utilities.py3flakes.messages.html#QT_TRANSLATE_NOOP" /> <keyword name="QsciScintillaCompat" id="QsciScintillaCompat" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat" /> <keyword name="QsciScintillaCompat (Constructor)" id="QsciScintillaCompat (Constructor)" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.__init__" /> <keyword name="QsciScintillaCompat (Module)" id="QsciScintillaCompat (Module)" ref="eric5.QScintilla.QsciScintillaCompat.html" /> @@ -9613,16 +9469,12 @@ <keyword name="RebaseProjectHelper.initMenu" id="RebaseProjectHelper.initMenu" ref="eric5.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.ProjectHelper.html#RebaseProjectHelper.initMenu" /> <keyword name="RebaseProjectHelper.menuTitle" id="RebaseProjectHelper.menuTitle" ref="eric5.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.ProjectHelper.html#RebaseProjectHelper.menuTitle" /> <keyword name="RecursionError" id="RecursionError" ref="eric5.Graphics.GraphicsUtilities.html#RecursionError" /> - <keyword name="Redefined" id="Redefined" ref="eric5.Utilities.py2flakes.messages.html#Redefined" /> - <keyword name="Redefined (Constructor)" id="Redefined (Constructor)" ref="eric5.Utilities.py2flakes.messages.html#Redefined.__init__" /> - <keyword name="RedefinedFunction" id="RedefinedFunction" ref="eric5.Utilities.py3flakes.messages.html#RedefinedFunction" /> - <keyword name="RedefinedFunction (Constructor)" id="RedefinedFunction (Constructor)" ref="eric5.Utilities.py3flakes.messages.html#RedefinedFunction.__init__" /> - <keyword name="RedefinedInListComp" id="RedefinedInListComp" ref="eric5.Utilities.py2flakes.messages.html#RedefinedInListComp" /> - <keyword name="RedefinedInListComp (Constructor)" id="RedefinedInListComp (Constructor)" ref="eric5.Utilities.py2flakes.messages.html#RedefinedInListComp.__init__" /> - <keyword name="RedefinedWhileUnused" id="RedefinedWhileUnused" ref="eric5.Utilities.py2flakes.messages.html#RedefinedWhileUnused" /> - <keyword name="RedefinedWhileUnused" id="RedefinedWhileUnused" ref="eric5.Utilities.py3flakes.messages.html#RedefinedWhileUnused" /> - <keyword name="RedefinedWhileUnused (Constructor)" id="RedefinedWhileUnused (Constructor)" ref="eric5.Utilities.py2flakes.messages.html#RedefinedWhileUnused.__init__" /> - <keyword name="RedefinedWhileUnused (Constructor)" id="RedefinedWhileUnused (Constructor)" ref="eric5.Utilities.py3flakes.messages.html#RedefinedWhileUnused.__init__" /> + <keyword name="Redefined" id="Redefined" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html#Redefined" /> + <keyword name="Redefined (Constructor)" id="Redefined (Constructor)" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html#Redefined.__init__" /> + <keyword name="RedefinedInListComp" id="RedefinedInListComp" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html#RedefinedInListComp" /> + <keyword name="RedefinedInListComp (Constructor)" id="RedefinedInListComp (Constructor)" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html#RedefinedInListComp.__init__" /> + <keyword name="RedefinedWhileUnused" id="RedefinedWhileUnused" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html#RedefinedWhileUnused" /> + <keyword name="RedefinedWhileUnused (Constructor)" id="RedefinedWhileUnused (Constructor)" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html#RedefinedWhileUnused.__init__" /> <keyword name="Redirector" id="Redirector" ref="eric5.UI.UserInterface.html#Redirector" /> <keyword name="Redirector (Constructor)" id="Redirector (Constructor)" ref="eric5.UI.UserInterface.html#Redirector.__init__" /> <keyword name="Redirector.__bufferedWrite" id="Redirector.__bufferedWrite" ref="eric5.UI.UserInterface.html#Redirector.__bufferedWrite" /> @@ -9656,11 +9508,7 @@ <keyword name="SchemeAccessHandler (Constructor)" id="SchemeAccessHandler (Constructor)" ref="eric5.Helpviewer.Network.SchemeAccessHandler.html#SchemeAccessHandler.__init__" /> <keyword name="SchemeAccessHandler (Module)" id="SchemeAccessHandler (Module)" ref="eric5.Helpviewer.Network.SchemeAccessHandler.html" /> <keyword name="SchemeAccessHandler.createRequest" id="SchemeAccessHandler.createRequest" ref="eric5.Helpviewer.Network.SchemeAccessHandler.html#SchemeAccessHandler.createRequest" /> - <keyword name="Scope" id="Scope" ref="eric5.Utilities.py2flakes.checker.html#Scope" /> - <keyword name="Scope" id="Scope" ref="eric5.Utilities.py3flakes.checker.html#Scope" /> - <keyword name="Scope (Constructor)" id="Scope (Constructor)" ref="eric5.Utilities.py3flakes.checker.html#Scope.__init__" /> - <keyword name="Scope.__repr__" id="Scope.__repr__" ref="eric5.Utilities.py2flakes.checker.html#Scope.__repr__" /> - <keyword name="Scope.__repr__" id="Scope.__repr__" ref="eric5.Utilities.py3flakes.checker.html#Scope.__repr__" /> + <keyword name="Scope" id="Scope" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#Scope" /> <keyword name="SearchReplaceSlidingWidget" id="SearchReplaceSlidingWidget" ref="eric5.QScintilla.SearchReplaceWidget.html#SearchReplaceSlidingWidget" /> <keyword name="SearchReplaceSlidingWidget (Constructor)" id="SearchReplaceSlidingWidget (Constructor)" ref="eric5.QScintilla.SearchReplaceWidget.html#SearchReplaceSlidingWidget.__init__" /> <keyword name="SearchReplaceSlidingWidget.__enableScrollerButtons" id="SearchReplaceSlidingWidget.__enableScrollerButtons" ref="eric5.QScintilla.SearchReplaceWidget.html#SearchReplaceSlidingWidget.__enableScrollerButtons" /> @@ -10196,17 +10044,11 @@ <keyword name="StackedWidget.setCurrentIndex" id="StackedWidget.setCurrentIndex" ref="eric5.Plugins.ViewManagerPlugins.Listspace.Listspace.html#StackedWidget.setCurrentIndex" /> <keyword name="StackedWidget.setCurrentWidget" id="StackedWidget.setCurrentWidget" ref="eric5.Plugins.ViewManagerPlugins.Listspace.Listspace.html#StackedWidget.setCurrentWidget" /> <keyword name="StandardReport" id="StandardReport" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#StandardReport" /> - <keyword name="StandardReport" id="StandardReport" ref="eric5.UtilitiesPython2.pep8.html#StandardReport" /> <keyword name="StandardReport (Constructor)" id="StandardReport (Constructor)" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#StandardReport.__init__" /> - <keyword name="StandardReport (Constructor)" id="StandardReport (Constructor)" ref="eric5.UtilitiesPython2.pep8.html#StandardReport.__init__" /> <keyword name="StandardReport.error" id="StandardReport.error" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#StandardReport.error" /> - <keyword name="StandardReport.error" id="StandardReport.error" ref="eric5.UtilitiesPython2.pep8.html#StandardReport.error" /> <keyword name="StandardReport.error_args" id="StandardReport.error_args" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#StandardReport.error_args" /> - <keyword name="StandardReport.error_args" id="StandardReport.error_args" ref="eric5.UtilitiesPython2.pep8.html#StandardReport.error_args" /> <keyword name="StandardReport.get_file_results" id="StandardReport.get_file_results" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#StandardReport.get_file_results" /> - <keyword name="StandardReport.get_file_results" id="StandardReport.get_file_results" ref="eric5.UtilitiesPython2.pep8.html#StandardReport.get_file_results" /> <keyword name="StandardReport.init_file" id="StandardReport.init_file" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#StandardReport.init_file" /> - <keyword name="StandardReport.init_file" id="StandardReport.init_file" ref="eric5.UtilitiesPython2.pep8.html#StandardReport.init_file" /> <keyword name="StartDialog" id="StartDialog" ref="eric5.Debugger.StartDialog.html#StartDialog" /> <keyword name="StartDialog (Constructor)" id="StartDialog (Constructor)" ref="eric5.Debugger.StartDialog.html#StartDialog.__init__" /> <keyword name="StartDialog (Module)" id="StartDialog (Module)" ref="eric5.Debugger.StartDialog.html" /> @@ -10232,23 +10074,14 @@ <keyword name="StatusMonitorLed._showContextMenu" id="StatusMonitorLed._showContextMenu" ref="eric5.VCS.StatusMonitorLed.html#StatusMonitorLed._showContextMenu" /> <keyword name="StatusMonitorThread (Module)" id="StatusMonitorThread (Module)" ref="eric5.VCS.StatusMonitorThread.html" /> <keyword name="StyleGuide" id="StyleGuide" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#StyleGuide" /> - <keyword name="StyleGuide" id="StyleGuide" ref="eric5.UtilitiesPython2.pep8.html#StyleGuide" /> <keyword name="StyleGuide (Constructor)" id="StyleGuide (Constructor)" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#StyleGuide.__init__" /> - <keyword name="StyleGuide (Constructor)" id="StyleGuide (Constructor)" ref="eric5.UtilitiesPython2.pep8.html#StyleGuide.__init__" /> <keyword name="StyleGuide.check_files" id="StyleGuide.check_files" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#StyleGuide.check_files" /> - <keyword name="StyleGuide.check_files" id="StyleGuide.check_files" ref="eric5.UtilitiesPython2.pep8.html#StyleGuide.check_files" /> <keyword name="StyleGuide.excluded" id="StyleGuide.excluded" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#StyleGuide.excluded" /> - <keyword name="StyleGuide.excluded" id="StyleGuide.excluded" ref="eric5.UtilitiesPython2.pep8.html#StyleGuide.excluded" /> <keyword name="StyleGuide.get_checks" id="StyleGuide.get_checks" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#StyleGuide.get_checks" /> - <keyword name="StyleGuide.get_checks" id="StyleGuide.get_checks" ref="eric5.UtilitiesPython2.pep8.html#StyleGuide.get_checks" /> <keyword name="StyleGuide.ignore_code" id="StyleGuide.ignore_code" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#StyleGuide.ignore_code" /> - <keyword name="StyleGuide.ignore_code" id="StyleGuide.ignore_code" ref="eric5.UtilitiesPython2.pep8.html#StyleGuide.ignore_code" /> <keyword name="StyleGuide.init_report" id="StyleGuide.init_report" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#StyleGuide.init_report" /> - <keyword name="StyleGuide.init_report" id="StyleGuide.init_report" ref="eric5.UtilitiesPython2.pep8.html#StyleGuide.init_report" /> <keyword name="StyleGuide.input_dir" id="StyleGuide.input_dir" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#StyleGuide.input_dir" /> - <keyword name="StyleGuide.input_dir" id="StyleGuide.input_dir" ref="eric5.UtilitiesPython2.pep8.html#StyleGuide.input_dir" /> <keyword name="StyleGuide.input_file" id="StyleGuide.input_file" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#StyleGuide.input_file" /> - <keyword name="StyleGuide.input_file" id="StyleGuide.input_file" ref="eric5.UtilitiesPython2.pep8.html#StyleGuide.input_file" /> <keyword name="Subversion" id="Subversion" ref="eric5.Plugins.VcsPlugins.vcsPySvn.subversion.html#Subversion" /> <keyword name="Subversion" id="Subversion" ref="eric5.Plugins.VcsPlugins.vcsSubversion.subversion.html#Subversion" /> <keyword name="Subversion (Constructor)" id="Subversion (Constructor)" ref="eric5.Plugins.VcsPlugins.vcsPySvn.subversion.html#Subversion.__init__" /> @@ -11174,7 +11007,7 @@ <keyword name="SyncManager.loadSettings" id="SyncManager.loadSettings" ref="eric5.Helpviewer.Sync.SyncManager.html#SyncManager.loadSettings" /> <keyword name="SyncManager.showSyncDialog" id="SyncManager.showSyncDialog" ref="eric5.Helpviewer.Sync.SyncManager.html#SyncManager.showSyncDialog" /> <keyword name="SyncManager.syncEnabled" id="SyncManager.syncEnabled" ref="eric5.Helpviewer.Sync.SyncManager.html#SyncManager.syncEnabled" /> - <keyword name="SyntaxCheck (Module)" id="SyntaxCheck (Module)" ref="eric5.Utilities.SyntaxCheck.html" /> + <keyword name="SyntaxCheck (Module)" id="SyntaxCheck (Module)" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck.html" /> <keyword name="SyntaxChecker (Package)" id="SyntaxChecker (Package)" ref="index-eric5.Plugins.CheckerPlugins.SyntaxChecker.html" /> <keyword name="SyntaxCheckerDialog" id="SyntaxCheckerDialog" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.html#SyntaxCheckerDialog" /> <keyword name="SyntaxCheckerDialog (Constructor)" id="SyntaxCheckerDialog (Constructor)" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.html#SyntaxCheckerDialog.__init__" /> @@ -11182,7 +11015,9 @@ <keyword name="SyntaxCheckerDialog.__clearErrors" id="SyntaxCheckerDialog.__clearErrors" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.html#SyntaxCheckerDialog.__clearErrors" /> <keyword name="SyntaxCheckerDialog.__createResultItem" id="SyntaxCheckerDialog.__createResultItem" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.html#SyntaxCheckerDialog.__createResultItem" /> <keyword name="SyntaxCheckerDialog.__finish" id="SyntaxCheckerDialog.__finish" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.html#SyntaxCheckerDialog.__finish" /> + <keyword name="SyntaxCheckerDialog.__processResult" id="SyntaxCheckerDialog.__processResult" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.html#SyntaxCheckerDialog.__processResult" /> <keyword name="SyntaxCheckerDialog.__resort" id="SyntaxCheckerDialog.__resort" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.html#SyntaxCheckerDialog.__resort" /> + <keyword name="SyntaxCheckerDialog.check" id="SyntaxCheckerDialog.check" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.html#SyntaxCheckerDialog.check" /> <keyword name="SyntaxCheckerDialog.on_buttonBox_clicked" id="SyntaxCheckerDialog.on_buttonBox_clicked" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.html#SyntaxCheckerDialog.on_buttonBox_clicked" /> <keyword name="SyntaxCheckerDialog.on_resultList_itemActivated" id="SyntaxCheckerDialog.on_resultList_itemActivated" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.html#SyntaxCheckerDialog.on_resultList_itemActivated" /> <keyword name="SyntaxCheckerDialog.on_showButton_clicked" id="SyntaxCheckerDialog.on_showButton_clicked" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.html#SyntaxCheckerDialog.on_showButton_clicked" /> @@ -11535,7 +11370,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__" /> @@ -11743,20 +11577,12 @@ <keyword name="UMLSceneSizeDialog.getData" id="UMLSceneSizeDialog.getData" ref="eric5.Graphics.UMLSceneSizeDialog.html#UMLSceneSizeDialog.getData" /> <keyword name="Uid" id="Uid" ref="eric5.Utilities.binplistlib.html#Uid" /> <keyword name="Uid.__repr__" id="Uid.__repr__" ref="eric5.Utilities.binplistlib.html#Uid.__repr__" /> - <keyword name="UnBinding" id="UnBinding" ref="eric5.Utilities.py2flakes.checker.html#UnBinding" /> - <keyword name="UnBinding" id="UnBinding" ref="eric5.Utilities.py3flakes.checker.html#UnBinding" /> - <keyword name="UndefinedExport" id="UndefinedExport" ref="eric5.Utilities.py2flakes.messages.html#UndefinedExport" /> - <keyword name="UndefinedExport" id="UndefinedExport" ref="eric5.Utilities.py3flakes.messages.html#UndefinedExport" /> - <keyword name="UndefinedExport (Constructor)" id="UndefinedExport (Constructor)" ref="eric5.Utilities.py2flakes.messages.html#UndefinedExport.__init__" /> - <keyword name="UndefinedExport (Constructor)" id="UndefinedExport (Constructor)" ref="eric5.Utilities.py3flakes.messages.html#UndefinedExport.__init__" /> - <keyword name="UndefinedLocal" id="UndefinedLocal" ref="eric5.Utilities.py2flakes.messages.html#UndefinedLocal" /> - <keyword name="UndefinedLocal" id="UndefinedLocal" ref="eric5.Utilities.py3flakes.messages.html#UndefinedLocal" /> - <keyword name="UndefinedLocal (Constructor)" id="UndefinedLocal (Constructor)" ref="eric5.Utilities.py2flakes.messages.html#UndefinedLocal.__init__" /> - <keyword name="UndefinedLocal (Constructor)" id="UndefinedLocal (Constructor)" ref="eric5.Utilities.py3flakes.messages.html#UndefinedLocal.__init__" /> - <keyword name="UndefinedName" id="UndefinedName" ref="eric5.Utilities.py2flakes.messages.html#UndefinedName" /> - <keyword name="UndefinedName" id="UndefinedName" ref="eric5.Utilities.py3flakes.messages.html#UndefinedName" /> - <keyword name="UndefinedName (Constructor)" id="UndefinedName (Constructor)" ref="eric5.Utilities.py2flakes.messages.html#UndefinedName.__init__" /> - <keyword name="UndefinedName (Constructor)" id="UndefinedName (Constructor)" ref="eric5.Utilities.py3flakes.messages.html#UndefinedName.__init__" /> + <keyword name="UndefinedExport" id="UndefinedExport" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html#UndefinedExport" /> + <keyword name="UndefinedExport (Constructor)" id="UndefinedExport (Constructor)" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html#UndefinedExport.__init__" /> + <keyword name="UndefinedLocal" id="UndefinedLocal" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html#UndefinedLocal" /> + <keyword name="UndefinedLocal (Constructor)" id="UndefinedLocal (Constructor)" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html#UndefinedLocal.__init__" /> + <keyword name="UndefinedName" id="UndefinedName" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html#UndefinedName" /> + <keyword name="UndefinedName (Constructor)" id="UndefinedName (Constructor)" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html#UndefinedName.__init__" /> <keyword name="UnittestDialog" id="UnittestDialog" ref="eric5.PyUnit.UnittestDialog.html#UnittestDialog" /> <keyword name="UnittestDialog (Constructor)" id="UnittestDialog (Constructor)" ref="eric5.PyUnit.UnittestDialog.html#UnittestDialog.__init__" /> <keyword name="UnittestDialog (Module)" id="UnittestDialog (Module)" ref="eric5.PyUnit.UnittestDialog.html" /> @@ -11786,14 +11612,10 @@ <keyword name="UnittestWindow" id="UnittestWindow" ref="eric5.PyUnit.UnittestDialog.html#UnittestWindow" /> <keyword name="UnittestWindow (Constructor)" id="UnittestWindow (Constructor)" ref="eric5.PyUnit.UnittestDialog.html#UnittestWindow.__init__" /> <keyword name="UnittestWindow.eventFilter" id="UnittestWindow.eventFilter" ref="eric5.PyUnit.UnittestDialog.html#UnittestWindow.eventFilter" /> - <keyword name="UnusedImport" id="UnusedImport" ref="eric5.Utilities.py2flakes.messages.html#UnusedImport" /> - <keyword name="UnusedImport" id="UnusedImport" ref="eric5.Utilities.py3flakes.messages.html#UnusedImport" /> - <keyword name="UnusedImport (Constructor)" id="UnusedImport (Constructor)" ref="eric5.Utilities.py2flakes.messages.html#UnusedImport.__init__" /> - <keyword name="UnusedImport (Constructor)" id="UnusedImport (Constructor)" ref="eric5.Utilities.py3flakes.messages.html#UnusedImport.__init__" /> - <keyword name="UnusedVariable" id="UnusedVariable" ref="eric5.Utilities.py2flakes.messages.html#UnusedVariable" /> - <keyword name="UnusedVariable" id="UnusedVariable" ref="eric5.Utilities.py3flakes.messages.html#UnusedVariable" /> - <keyword name="UnusedVariable (Constructor)" id="UnusedVariable (Constructor)" ref="eric5.Utilities.py2flakes.messages.html#UnusedVariable.__init__" /> - <keyword name="UnusedVariable (Constructor)" id="UnusedVariable (Constructor)" ref="eric5.Utilities.py3flakes.messages.html#UnusedVariable.__init__" /> + <keyword name="UnusedImport" id="UnusedImport" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html#UnusedImport" /> + <keyword name="UnusedImport (Constructor)" id="UnusedImport (Constructor)" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html#UnusedImport.__init__" /> + <keyword name="UnusedVariable" id="UnusedVariable" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html#UnusedVariable" /> + <keyword name="UnusedVariable (Constructor)" id="UnusedVariable (Constructor)" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html#UnusedVariable.__init__" /> <keyword name="UrlBar" id="UrlBar" ref="eric5.Helpviewer.UrlBar.UrlBar.html#UrlBar" /> <keyword name="UrlBar (Constructor)" id="UrlBar (Constructor)" ref="eric5.Helpviewer.UrlBar.UrlBar.html#UrlBar.__init__" /> <keyword name="UrlBar (Module)" id="UrlBar (Module)" ref="eric5.Helpviewer.UrlBar.UrlBar.html" /> @@ -12077,7 +11899,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__" /> @@ -12750,15 +12571,20 @@ <keyword name="__getMasterPassword" id="__getMasterPassword" ref="eric5.Utilities.crypto.__init__.html#__getMasterPassword" /> <keyword name="__getPygmentsLexer" id="__getPygmentsLexer" ref="eric5.QScintilla.Lexers.__init__.html#__getPygmentsLexer" /> <keyword name="__initChannelModesDict" id="__initChannelModesDict" ref="eric5.Network.IRC.IrcUtilities.html#__initChannelModesDict" /> + <keyword name="__init__" id="__init__" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#__init__" /> + <keyword name="__init___1" id="__init___1" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#__init___1" /> + <keyword name="__init___2" id="__init___2" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#__init___2" /> <keyword name="__messageBox" id="__messageBox" ref="eric5.E5Gui.E5MessageBox.html#__messageBox" /> <keyword name="__readShortcut" id="__readShortcut" ref="eric5.Preferences.Shortcuts.html#__readShortcut" /> <keyword name="__render" id="__render" ref="eric5.Helpviewer.HelpSnap.html#__render" /> <keyword name="__reorderFilter" id="__reorderFilter" ref="eric5.E5Gui.E5FileDialog.html#__reorderFilter" /> + <keyword name="__repr__" id="__repr__" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#__repr__" /> + <keyword name="__repr___1" id="__repr___1" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#__repr___1" /> <keyword name="__saveShortcut" id="__saveShortcut" ref="eric5.Preferences.Shortcuts.html#__saveShortcut" /> <keyword name="__setAction" id="__setAction" ref="eric5.Preferences.Shortcuts.html#__setAction" /> <keyword name="__showwarning" id="__showwarning" ref="eric5.Utilities.__init__.html#__showwarning" /> + <keyword name="__str__" id="__str__" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#__str__" /> <keyword name="_add_check" id="_add_check" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#_add_check" /> - <keyword name="_add_check" id="_add_check" ref="eric5.UtilitiesPython2.pep8.html#_add_check" /> <keyword name="_buildChildrenLists" id="_buildChildrenLists" ref="eric5.Graphics.GraphicsUtilities.html#_buildChildrenLists" /> <keyword name="_debugclient_start_new_thread" id="_debugclient_start_new_thread" ref="eric5.DebugClients.Python.DebugClientThreads.html#_debugclient_start_new_thread" /> <keyword name="_debugclient_start_new_thread" id="_debugclient_start_new_thread" ref="eric5.DebugClients.Python3.DebugClientThreads.html#_debugclient_start_new_thread" /> @@ -12766,7 +12592,6 @@ <keyword name="_indent" id="_indent" ref="eric5.Utilities.ClassBrowsers.pyclbr.html#_indent" /> <keyword name="_indent" id="_indent" ref="eric5.Utilities.ModuleParser.html#_indent" /> <keyword name="_main" id="_main" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#_main" /> - <keyword name="_main" id="_main" ref="eric5.UtilitiesPython2.pep8.html#_main" /> <keyword name="_percentReplacementFunc" id="_percentReplacementFunc" ref="eric5.Utilities.__init__.html#_percentReplacementFunc" /> <keyword name="addActions" id="addActions" ref="eric5.E5Gui.E5Action.html#addActions" /> <keyword name="addSearchPath" id="addSearchPath" ref="eric5.UI.PixmapCache.html#addSearchPath" /> @@ -12776,23 +12601,19 @@ <keyword name="append_PKCS7_padding" id="append_PKCS7_padding" ref="eric5.Utilities.crypto.py3AES.html#append_PKCS7_padding" /> <keyword name="binplistlib (Module)" id="binplistlib (Module)" ref="eric5.Utilities.binplistlib.html" /> <keyword name="blank_lines" id="blank_lines" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#blank_lines" /> - <keyword name="blank_lines" id="blank_lines" ref="eric5.UtilitiesPython2.pep8.html#blank_lines" /> <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="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" /> - <keyword name="checker (Module)" id="checker (Module)" ref="eric5.Utilities.py3flakes.checker.html" /> + <keyword name="checker (Module)" id="checker (Module)" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html" /> <keyword name="cleanUp" id="cleanUp" ref="eric5.install.html#cleanUp" /> <keyword name="close" id="close" ref="eric5.DebugClients.Ruby.AsyncFile.html#close" /> + <keyword name="codeStyleCheck" id="codeStyleCheck" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleChecker.html#codeStyleCheck" /> <keyword name="compactPath" id="compactPath" ref="eric5.Utilities.__init__.html#compactPath" /> <keyword name="comparison_to_singleton" id="comparison_to_singleton" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#comparison_to_singleton" /> - <keyword name="comparison_to_singleton" id="comparison_to_singleton" ref="eric5.UtilitiesPython2.pep8.html#comparison_to_singleton" /> <keyword name="comparison_type" id="comparison_type" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#comparison_type" /> - <keyword name="comparison_type" id="comparison_type" ref="eric5.UtilitiesPython2.pep8.html#comparison_type" /> <keyword name="compatibility_fixes (Module)" id="compatibility_fixes (Module)" ref="eric5.Utilities.compatibility_fixes.html" /> - <keyword name="compile" id="compile" ref="eric5.Utilities.__init__.html#compile" /> <keyword name="compileUiDir" id="compileUiDir" ref="eric5.Utilities.uic.html#compileUiDir" /> <keyword name="compileUiDir" id="compileUiDir" ref="eric5.compileUiFiles.html#compileUiDir" /> <keyword name="compileUiDir" id="compileUiDir" ref="eric5.install.html#compileUiDir" /> @@ -12800,18 +12621,14 @@ <keyword name="compileUiFiles" id="compileUiFiles" ref="eric5.compileUiFiles.html#compileUiFiles" /> <keyword name="compileUiFiles" id="compileUiFiles" ref="eric5.install.html#compileUiFiles" /> <keyword name="compileUiFiles (Module)" id="compileUiFiles (Module)" ref="eric5.compileUiFiles.html" /> - <keyword name="compile_and_check" id="compile_and_check" ref="eric5.Utilities.SyntaxCheck.html#compile_and_check" /> - <keyword name="compile_extern" id="compile_extern" ref="eric5.Utilities.__init__.html#compile_extern" /> <keyword name="compile_ui" id="compile_ui" ref="eric5.Utilities.uic.html#compile_ui" /> <keyword name="compile_ui" id="compile_ui" ref="eric5.compileUiFiles.html#compile_ui" /> <keyword name="compile_ui" id="compile_ui" ref="eric5.install.html#compile_ui" /> <keyword name="compound_statements" id="compound_statements" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#compound_statements" /> - <keyword name="compound_statements" id="compound_statements" ref="eric5.UtilitiesPython2.pep8.html#compound_statements" /> <keyword name="contentSniff" id="contentSniff" ref="eric5.Helpviewer.HelpBrowserWV.html#contentSniff" /> <keyword name="context" id="context" ref="eric5.DebugClients.Ruby.Debuggee.html#context" /> <keyword name="context_diff" id="context_diff" ref="eric5.UI.DiffDialog.html#context_diff" /> <keyword name="continued_indentation" id="continued_indentation" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#continued_indentation" /> - <keyword name="continued_indentation" id="continued_indentation" ref="eric5.UtilitiesPython2.pep8.html#continued_indentation" /> <keyword name="convertLineEnds" id="convertLineEnds" ref="eric5.Utilities.__init__.html#convertLineEnds" /> <keyword name="convertPasswords" id="convertPasswords" ref="eric5.Preferences.__init__.html#convertPasswords" /> <keyword name="copyToFile" id="copyToFile" ref="eric5.install.html#copyToFile" /> @@ -12905,11 +12722,11 @@ <keyword name="dataString" id="dataString" ref="eric5.Helpviewer.Download.DownloadUtilities.html#dataString" /> <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="decode" id="decode" ref="eric5.Utilities.__init__.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" /> + <keyword name="determinePythonVersion" id="determinePythonVersion" ref="eric5.Utilities.__init__.html#determinePythonVersion" /> <keyword name="direntries" id="direntries" ref="eric5.Utilities.__init__.html#direntries" /> <keyword name="displayString" id="displayString" ref="eric5.Plugins.PluginVcsMercurial.html#displayString" /> <keyword name="displayString" id="displayString" ref="eric5.Plugins.PluginVcsPySvn.html#displayString" /> @@ -12959,22 +12776,19 @@ <keyword name="exit" id="exit" ref="eric5.install.html#exit" /> <keyword name="exit" id="exit" ref="eric5.uninstall.html#exit" /> <keyword name="expand_indent" id="expand_indent" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#expand_indent" /> - <keyword name="expand_indent" id="expand_indent" ref="eric5.UtilitiesPython2.pep8.html#expand_indent" /> <keyword name="explicit_line_join" id="explicit_line_join" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#explicit_line_join" /> - <keyword name="explicit_line_join" id="explicit_line_join" ref="eric5.UtilitiesPython2.pep8.html#explicit_line_join" /> <keyword name="exportPreferences" id="exportPreferences" ref="eric5.Preferences.__init__.html#exportPreferences" /> <keyword name="exportShortcuts" id="exportShortcuts" ref="eric5.Preferences.Shortcuts.html#exportShortcuts" /> <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="extractLineFlags" id="extractLineFlags" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleChecker.html#extractLineFlags" /> + <keyword name="extractLineFlags" id="extractLineFlags" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck.html#extractLineFlags" /> + <keyword name="extractLineFlags" id="extractLineFlags" ref="eric5.Utilities.__init__.html#extractLineFlags" /> <keyword name="extraneous_whitespace" id="extraneous_whitespace" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#extraneous_whitespace" /> - <keyword name="extraneous_whitespace" id="extraneous_whitespace" ref="eric5.UtilitiesPython2.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" /> <keyword name="fetch (Module)" id="fetch (Module)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.FetchExtension.fetch.html" /> <keyword name="filename_match" id="filename_match" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#filename_match" /> - <keyword name="filename_match" id="filename_match" ref="eric5.UtilitiesPython2.pep8.html#filename_match" /> <keyword name="fileno" id="fileno" ref="eric5.DebugClients.Ruby.AsyncFile.html#fileno" /> <keyword name="filterCharsFromFilename" id="filterCharsFromFilename" ref="eric5.Helpviewer.HelpUtilities.html#filterCharsFromFilename" /> <keyword name="findPythonInterpreters" id="findPythonInterpreters" ref="eric5.Globals.__init__.html#findPythonInterpreters" /> @@ -13043,7 +12857,9 @@ <keyword name="getLexer" id="getLexer" ref="eric5.QScintilla.Lexers.__init__.html#getLexer" /> <keyword name="getMessage" id="getMessage" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#getMessage" /> <keyword name="getMultiProject" id="getMultiProject" ref="eric5.Preferences.__init__.html#getMultiProject" /> - <keyword name="getNodeName" id="getNodeName" ref="eric5.Utilities.py2flakes.checker.html#getNodeName" /> + <keyword name="getNodeName" id="getNodeName" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#getNodeName" /> + <keyword name="getNodeType" id="getNodeType" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#getNodeType" /> + <keyword name="getNodeType_1" id="getNodeType_1" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#getNodeType_1" /> <keyword name="getOpenFileFiltersList" id="getOpenFileFiltersList" ref="eric5.QScintilla.Lexers.__init__.html#getOpenFileFiltersList" /> <keyword name="getOpenFileName" id="getOpenFileName" ref="eric5.E5Gui.E5FileDialog.html#getOpenFileName" /> <keyword name="getOpenFileNameAndFilter" id="getOpenFileNameAndFilter" ref="eric5.E5Gui.E5FileDialog.html#getOpenFileNameAndFilter" /> @@ -13103,10 +12919,8 @@ <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_codingBytes" id="get_codingBytes" ref="eric5.Utilities.__init__.html#get_codingBytes" /> <keyword name="get_parser" id="get_parser" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#get_parser" /> - <keyword name="get_parser" id="get_parser" ref="eric5.UtilitiesPython2.pep8.html#get_parser" /> <keyword name="get_thread" id="get_thread" ref="eric5.DebugClients.Ruby.Debuggee.html#get_thread" /> <keyword name="getpass" id="getpass" ref="eric5.DebugClients.Python.getpass.html#getpass" /> <keyword name="getpass" id="getpass" ref="eric5.DebugClients.Python3.getpass.html#getpass" /> @@ -13129,9 +12943,7 @@ <keyword name="importPreferences" id="importPreferences" ref="eric5.Preferences.__init__.html#importPreferences" /> <keyword name="importShortcuts" id="importShortcuts" ref="eric5.Preferences.Shortcuts.html#importShortcuts" /> <keyword name="imports_on_separate_lines" id="imports_on_separate_lines" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#imports_on_separate_lines" /> - <keyword name="imports_on_separate_lines" id="imports_on_separate_lines" ref="eric5.UtilitiesPython2.pep8.html#imports_on_separate_lines" /> <keyword name="indentation" id="indentation" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#indentation" /> - <keyword name="indentation" id="indentation" ref="eric5.UtilitiesPython2.pep8.html#indentation" /> <keyword name="information" id="information" ref="eric5.E5Gui.E5MessageBox.html#information" /> <keyword name="initDebugger" id="initDebugger" ref="eric5.DebugClients.Python.eric5dbgstub.html#initDebugger" /> <keyword name="initDebugger" id="initDebugger" ref="eric5.DebugClients.Python3.eric5dbgstub.html#initDebugger" /> @@ -13140,8 +12952,9 @@ <keyword name="initGlobals" id="initGlobals" ref="eric5.uninstall.html#initGlobals" /> <keyword name="initPreferences" id="initPreferences" ref="eric5.Preferences.__init__.html#initPreferences" /> <keyword name="initRecentSettings" id="initRecentSettings" ref="eric5.Preferences.__init__.html#initRecentSettings" /> + <keyword name="initService" id="initService" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleChecker.html#initService" /> + <keyword name="initService" id="initService" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck.html#initService" /> <keyword name="init_checks_registry" id="init_checks_registry" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#init_checks_registry" /> - <keyword name="init_checks_registry" id="init_checks_registry" ref="eric5.UtilitiesPython2.pep8.html#init_checks_registry" /> <keyword name="initializeResourceSearchPath" id="initializeResourceSearchPath" ref="eric5.Toolbox.Startup.html#initializeResourceSearchPath" /> <keyword name="install (Module)" id="install (Module)" ref="eric5.install.html" /> <keyword name="install-i18n (Module)" id="install-i18n (Module)" ref="eric5.install-i18n.html" /> @@ -13158,7 +12971,7 @@ <keyword name="is_stream_binary_plist" id="is_stream_binary_plist" ref="eric5.Utilities.binplistlib.html#is_stream_binary_plist" /> <keyword name="isatty" id="isatty" ref="eric5.DebugClients.Ruby.AsyncFile.html#isatty" /> <keyword name="isinpath" id="isinpath" ref="eric5.Utilities.__init__.html#isinpath" /> - <keyword name="iter_child_nodes" id="iter_child_nodes" ref="eric5.Utilities.py2flakes.checker.html#iter_child_nodes" /> + <keyword name="iter_child_nodes" id="iter_child_nodes" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#iter_child_nodes" /> <keyword name="joinext" id="joinext" ref="eric5.Utilities.__init__.html#joinext" /> <keyword name="jsclbr (Module)" id="jsclbr (Module)" ref="eric5.Utilities.ClassBrowsers.jsclbr.html" /> <keyword name="linesep" id="linesep" ref="eric5.Utilities.__init__.html#linesep" /> @@ -13195,23 +13008,17 @@ <keyword name="makeAppInfo" id="makeAppInfo" ref="eric5.Globals.AppInfo.html#makeAppInfo" /> <keyword name="make_thread_list" id="make_thread_list" ref="eric5.DebugClients.Ruby.Debuggee.html#make_thread_list" /> <keyword name="maximum_line_length" id="maximum_line_length" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#maximum_line_length" /> - <keyword name="maximum_line_length" id="maximum_line_length" ref="eric5.UtilitiesPython2.pep8.html#maximum_line_length" /> <keyword name="messageHandler" id="messageHandler" ref="eric5.E5Gui.E5ErrorMessage.html#messageHandler" /> <keyword name="messageHandlerInstalled" id="messageHandlerInstalled" ref="eric5.E5Gui.E5ErrorMessage.html#messageHandlerInstalled" /> - <keyword name="messages (Module)" id="messages (Module)" ref="eric5.Utilities.py2flakes.messages.html" /> - <keyword name="messages (Module)" id="messages (Module)" ref="eric5.Utilities.py3flakes.messages.html" /> + <keyword name="messages (Module)" id="messages (Module)" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html" /> <keyword name="missing_newline" id="missing_newline" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#missing_newline" /> - <keyword name="missing_newline" id="missing_newline" ref="eric5.UtilitiesPython2.pep8.html#missing_newline" /> <keyword name="missing_whitespace" id="missing_whitespace" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#missing_whitespace" /> - <keyword name="missing_whitespace" id="missing_whitespace" ref="eric5.UtilitiesPython2.pep8.html#missing_whitespace" /> <keyword name="missing_whitespace_around_operator" id="missing_whitespace_around_operator" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#missing_whitespace_around_operator" /> - <keyword name="missing_whitespace_around_operator" id="missing_whitespace_around_operator" ref="eric5.UtilitiesPython2.pep8.html#missing_whitespace_around_operator" /> <keyword name="mute_string" id="mute_string" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#mute_string" /> - <keyword name="mute_string" id="mute_string" ref="eric5.UtilitiesPython2.pep8.html#mute_string" /> + <keyword name="names" id="names" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#names" /> <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="normalizeCode" id="normalizeCode" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck.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" /> @@ -13221,12 +13028,10 @@ <keyword name="parseOptionString" id="parseOptionString" ref="eric5.Utilities.__init__.html#parseOptionString" /> <keyword name="parseString" id="parseString" ref="eric5.Utilities.__init__.html#parseString" /> <keyword name="parse_udiff" id="parse_udiff" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#parse_udiff" /> - <keyword name="parse_udiff" id="parse_udiff" ref="eric5.UtilitiesPython2.pep8.html#parse_udiff" /> <keyword name="patch_modpython (Module)" id="patch_modpython (Module)" ref="eric5.patch_modpython.html" /> <keyword name="pbkdf2" id="pbkdf2" ref="eric5.Utilities.crypto.py3PBKDF2.html#pbkdf2" /> <keyword name="pendingWrite" id="pendingWrite" ref="eric5.DebugClients.Ruby.AsyncFile.html#pendingWrite" /> <keyword name="pep8 (Module)" id="pep8 (Module)" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html" /> - <keyword name="pep8 (Module)" id="pep8 (Module)" ref="eric5.UtilitiesPython2.pep8.html" /> <keyword name="prepareProcess" id="prepareProcess" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgUtilities.html#prepareProcess" /> <keyword name="prepareQtMacBundle" id="prepareQtMacBundle" ref="eric5.Utilities.__init__.html#prepareQtMacBundle" /> <keyword name="prepareUninstall" id="prepareUninstall" ref="eric5.Plugins.PluginVcsMercurial.html#prepareUninstall" /> @@ -13237,7 +13042,6 @@ <keyword name="printerr" id="printerr" ref="eric5.DebugClients.Python.DebugBase.html#printerr" /> <keyword name="printerr" id="printerr" ref="eric5.DebugClients.Python3.DebugBase.html#printerr" /> <keyword name="process_options" id="process_options" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#process_options" /> - <keyword name="process_options" id="process_options" ref="eric5.UtilitiesPython2.pep8.html#process_options" /> <keyword name="process_tokens" id="process_tokens" ref="eric5.Plugins.CheckerPlugins.Tabnanny.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" /> @@ -13248,30 +13052,24 @@ <keyword name="pwEncrypt" id="pwEncrypt" ref="eric5.Utilities.crypto.__init__.html#pwEncrypt" /> <keyword name="pwRecode" id="pwRecode" ref="eric5.Utilities.crypto.__init__.html#pwRecode" /> <keyword name="pwReencrypt" id="pwReencrypt" ref="eric5.Utilities.crypto.__init__.html#pwReencrypt" /> - <keyword name="py2flakes (Package)" id="py2flakes (Package)" ref="index-eric5.Utilities.py2flakes.html" /> <keyword name="py3AES (Module)" id="py3AES (Module)" ref="eric5.Utilities.crypto.py3AES.html" /> <keyword name="py3PBKDF2 (Module)" id="py3PBKDF2 (Module)" ref="eric5.Utilities.crypto.py3PBKDF2.html" /> - <keyword name="py3flakes (Package)" id="py3flakes (Package)" ref="index-eric5.Utilities.py3flakes.html" /> <keyword name="pyName" id="pyName" ref="eric5.Utilities.uic.html#pyName" /> <keyword name="pyName" id="pyName" ref="eric5.compileUiFiles.html#pyName" /> <keyword name="pyName" id="pyName" ref="eric5.install.html#pyName" /> <keyword name="pyclbr (Module)" id="pyclbr (Module)" ref="eric5.Utilities.ClassBrowsers.pyclbr.html" /> + <keyword name="pyflakes (Package)" id="pyflakes (Package)" ref="index-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.html" /> <keyword name="python_3000_backticks" id="python_3000_backticks" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#python_3000_backticks" /> - <keyword name="python_3000_backticks" id="python_3000_backticks" ref="eric5.UtilitiesPython2.pep8.html#python_3000_backticks" /> <keyword name="python_3000_has_key" id="python_3000_has_key" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#python_3000_has_key" /> - <keyword name="python_3000_has_key" id="python_3000_has_key" ref="eric5.UtilitiesPython2.pep8.html#python_3000_has_key" /> <keyword name="python_3000_not_equal" id="python_3000_not_equal" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#python_3000_not_equal" /> - <keyword name="python_3000_not_equal" id="python_3000_not_equal" ref="eric5.UtilitiesPython2.pep8.html#python_3000_not_equal" /> <keyword name="python_3000_raise_comma" id="python_3000_raise_comma" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#python_3000_raise_comma" /> - <keyword name="python_3000_raise_comma" id="python_3000_raise_comma" ref="eric5.UtilitiesPython2.pep8.html#python_3000_raise_comma" /> <keyword name="qtHandler" id="qtHandler" ref="eric5.E5Gui.E5ErrorMessage.html#qtHandler" /> <keyword name="question" id="question" ref="eric5.E5Gui.E5MessageBox.html#question" /> <keyword name="queues (Module)" id="queues (Module)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.QueuesExtension.queues.html" /> <keyword name="quote" id="quote" ref="eric5.Utilities.__init__.html#quote" /> <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="readEncodedFile" id="readEncodedFile" ref="eric5.Utilities.__init__.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" /> @@ -13280,13 +13078,10 @@ <keyword name="readStringFromStream" id="readStringFromStream" ref="eric5.Utilities.__init__.html#readStringFromStream" /> <keyword name="readToolGroups" id="readToolGroups" ref="eric5.Preferences.__init__.html#readToolGroups" /> <keyword name="read_config" id="read_config" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#read_config" /> - <keyword name="read_config" id="read_config" ref="eric5.UtilitiesPython2.pep8.html#read_config" /> <keyword name="readline" id="readline" ref="eric5.DebugClients.Ruby.AsyncFile.html#readline" /> <keyword name="readlines" id="readlines" ref="eric5.DebugClients.Ruby.AsyncFile.html#readlines" /> <keyword name="readlines" id="readlines" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#readlines" /> - <keyword name="readlines" id="readlines" ref="eric5.UtilitiesPython2.pep8.html#readlines" /> <keyword name="readlines_1" id="readlines_1" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#readlines_1" /> - <keyword name="readlines_1" id="readlines_1" ref="eric5.UtilitiesPython2.pep8.html#readlines_1" /> <keyword name="readmodule" id="readmodule" ref="eric5.Utilities.ClassBrowsers.__init__.html#readmodule" /> <keyword name="readmodule_ex" id="readmodule_ex" ref="eric5.Utilities.ClassBrowsers.idlclbr.html#readmodule_ex" /> <keyword name="readmodule_ex" id="readmodule_ex" ref="eric5.Utilities.ClassBrowsers.jsclbr.html#readmodule_ex" /> @@ -13295,7 +13090,6 @@ <keyword name="rebase (Module)" id="rebase (Module)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.rebase.html" /> <keyword name="registerLexer" id="registerLexer" ref="eric5.QScintilla.Lexers.__init__.html#registerLexer" /> <keyword name="register_check" id="register_check" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#register_check" /> - <keyword name="register_check" id="register_check" ref="eric5.UtilitiesPython2.pep8.html#register_check" /> <keyword name="rehashPassword" id="rehashPassword" ref="eric5.Utilities.crypto.py3PBKDF2.html#rehashPassword" /> <keyword name="relpath" id="relpath" ref="eric5.Utilities.__init__.html#relpath" /> <keyword name="removeMarkers" id="removeMarkers" ref="eric5.UI.CompareDialog.html#removeMarkers" /> @@ -13371,16 +13165,14 @@ <keyword name="startDebugger" id="startDebugger" ref="eric5.DebugClients.Python.eric5dbgstub.html#startDebugger" /> <keyword name="startDebugger" id="startDebugger" ref="eric5.DebugClients.Python3.eric5dbgstub.html#startDebugger" /> <keyword name="stdin_get_value" id="stdin_get_value" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#stdin_get_value" /> - <keyword name="stdin_get_value" id="stdin_get_value" ref="eric5.UtilitiesPython2.pep8.html#stdin_get_value" /> <keyword name="strip_PKCS7_padding" id="strip_PKCS7_padding" ref="eric5.Utilities.crypto.py3AES.html#strip_PKCS7_padding" /> <keyword name="subversion (Module)" id="subversion (Module)" ref="eric5.Plugins.VcsPlugins.vcsPySvn.subversion.html" /> <keyword name="subversion (Module)" id="subversion (Module)" ref="eric5.Plugins.VcsPlugins.vcsSubversion.subversion.html" /> <keyword name="summarize" id="summarize" ref="eric5.DataViews.CodeMetrics.html#summarize" /> <keyword name="syncPreferences" id="syncPreferences" ref="eric5.Preferences.__init__.html#syncPreferences" /> + <keyword name="syntaxAndPyflakesCheck" id="syntaxAndPyflakesCheck" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck.html#syntaxAndPyflakesCheck" /> <keyword name="tabs_obsolete" id="tabs_obsolete" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#tabs_obsolete" /> - <keyword name="tabs_obsolete" id="tabs_obsolete" ref="eric5.UtilitiesPython2.pep8.html#tabs_obsolete" /> <keyword name="tabs_or_spaces" id="tabs_or_spaces" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#tabs_or_spaces" /> - <keyword name="tabs_or_spaces" id="tabs_or_spaces" ref="eric5.UtilitiesPython2.pep8.html#tabs_or_spaces" /> <keyword name="tell" id="tell" ref="eric5.DebugClients.Ruby.AsyncFile.html#tell" /> <keyword name="thread_list" id="thread_list" ref="eric5.DebugClients.Ruby.Debuggee.html#thread_list" /> <keyword name="thread_list_all" id="thread_list_all" ref="eric5.DebugClients.Ruby.Debuggee.html#thread_list_all" /> @@ -13394,9 +13186,7 @@ <keyword name="toSecondLevelDomain" id="toSecondLevelDomain" ref="eric5.Helpviewer.AdBlock.AdBlockRule.html#toSecondLevelDomain" /> <keyword name="traceRuby?" id="traceRuby?" ref="eric5.DebugClients.Ruby.Debuggee.html#traceRuby?" /> <keyword name="trailing_blank_lines" id="trailing_blank_lines" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#trailing_blank_lines" /> - <keyword name="trailing_blank_lines" id="trailing_blank_lines" ref="eric5.UtilitiesPython2.pep8.html#trailing_blank_lines" /> <keyword name="trailing_whitespace" id="trailing_whitespace" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#trailing_whitespace" /> - <keyword name="trailing_whitespace" id="trailing_whitespace" ref="eric5.UtilitiesPython2.pep8.html#trailing_whitespace" /> <keyword name="transplant (Module)" id="transplant (Module)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.TransplantExtension.transplant.html" /> <keyword name="uiStartUp" id="uiStartUp" ref="eric5.eric5.html#uiStartUp" /> <keyword name="uic (Module)" id="uic (Module)" ref="eric5.Utilities.uic.html" /> @@ -13405,6 +13195,7 @@ <keyword name="uninstall (Module)" id="uninstall (Module)" ref="eric5.uninstall.html" /> <keyword name="uninstallEric" id="uninstallEric" ref="eric5.uninstall.html#uninstallEric" /> <keyword name="unregisterLexer" id="unregisterLexer" ref="eric5.QScintilla.Lexers.__init__.html#unregisterLexer" /> + <keyword name="unusedAssignments" id="unusedAssignments" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html#unusedAssignments" /> <keyword name="usage" id="usage" ref="eric5.Toolbox.Startup.html#usage" /> <keyword name="usage" id="usage" ref="eric5.eric5_api.html#usage" /> <keyword name="usage" id="usage" ref="eric5.eric5_doc.html#usage" /> @@ -13421,17 +13212,11 @@ <keyword name="version" id="version" ref="eric5.eric5_doc.html#version" /> <keyword name="warning" id="warning" ref="eric5.E5Gui.E5MessageBox.html#warning" /> <keyword name="whitespace_around_comma" id="whitespace_around_comma" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#whitespace_around_comma" /> - <keyword name="whitespace_around_comma" id="whitespace_around_comma" ref="eric5.UtilitiesPython2.pep8.html#whitespace_around_comma" /> <keyword name="whitespace_around_keywords" id="whitespace_around_keywords" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#whitespace_around_keywords" /> - <keyword name="whitespace_around_keywords" id="whitespace_around_keywords" ref="eric5.UtilitiesPython2.pep8.html#whitespace_around_keywords" /> <keyword name="whitespace_around_named_parameter_equals" id="whitespace_around_named_parameter_equals" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#whitespace_around_named_parameter_equals" /> - <keyword name="whitespace_around_named_parameter_equals" id="whitespace_around_named_parameter_equals" ref="eric5.UtilitiesPython2.pep8.html#whitespace_around_named_parameter_equals" /> <keyword name="whitespace_around_operator" id="whitespace_around_operator" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#whitespace_around_operator" /> - <keyword name="whitespace_around_operator" id="whitespace_around_operator" ref="eric5.UtilitiesPython2.pep8.html#whitespace_around_operator" /> <keyword name="whitespace_before_inline_comment" id="whitespace_before_inline_comment" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#whitespace_before_inline_comment" /> - <keyword name="whitespace_before_inline_comment" id="whitespace_before_inline_comment" ref="eric5.UtilitiesPython2.pep8.html#whitespace_before_inline_comment" /> <keyword name="whitespace_before_parameters" id="whitespace_before_parameters" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#whitespace_before_parameters" /> - <keyword name="whitespace_before_parameters" id="whitespace_before_parameters" ref="eric5.UtilitiesPython2.pep8.html#whitespace_before_parameters" /> <keyword name="wildcardMatch" id="wildcardMatch" ref="eric5.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher.html#wildcardMatch" /> <keyword name="win32_GetUserName" id="win32_GetUserName" ref="eric5.Utilities.__init__.html#win32_GetUserName" /> <keyword name="win32_Kill" id="win32_Kill" ref="eric5.Utilities.__init__.html#win32_Kill" /> @@ -13446,10 +13231,6 @@ <keyword name="yesNo" id="yesNo" ref="eric5.E5Gui.E5MessageBox.html#yesNo" /> </keywords> <files> - <file>Pep257CheckerPy2.html</file> - <file>Pep8Checker.html</file> - <file>Pep8NamingCheckerPy2.html</file> - <file>Tools.html</file> <file>eric5.Cooperation.ChatWidget.html</file> <file>eric5.Cooperation.Connection.html</file> <file>eric5.Cooperation.CooperationClient.html</file> @@ -13806,8 +13587,10 @@ <file>eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html</file> <file>eric5.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.html</file> <file>eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html</file> - <file>eric5.Plugins.CheckerPlugins.Pep8.pep8.html</file> + <file>eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck.html</file> <file>eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.html</file> + <file>eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html</file> + <file>eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html</file> <file>eric5.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html</file> <file>eric5.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.html</file> <file>eric5.Plugins.DocumentationPlugins.Ericapi.EricapiConfigDialog.html</file> @@ -14188,6 +13971,8 @@ <file>eric5.UI.SymbolsWidget.html</file> <file>eric5.UI.UserInterface.html</file> <file>eric5.Utilities.AutoSaver.html</file> + <file>eric5.Utilities.BackgroundClient.html</file> + <file>eric5.Utilities.BackgroundService.html</file> <file>eric5.Utilities.ClassBrowsers.ClbrBaseClasses.html</file> <file>eric5.Utilities.ClassBrowsers.__init__.html</file> <file>eric5.Utilities.ClassBrowsers.idlclbr.html</file> @@ -14195,26 +13980,17 @@ <file>eric5.Utilities.ClassBrowsers.pyclbr.html</file> <file>eric5.Utilities.ClassBrowsers.rbclbr.html</file> <file>eric5.Utilities.FtpUtilities.html</file> + <file>eric5.Utilities.InternalServices.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> <file>eric5.Utilities.compatibility_fixes.html</file> <file>eric5.Utilities.crypto.__init__.html</file> <file>eric5.Utilities.crypto.py3AES.html</file> <file>eric5.Utilities.crypto.py3PBKDF2.html</file> - <file>eric5.Utilities.py2flakes.checker.html</file> - <file>eric5.Utilities.py2flakes.messages.html</file> - <file>eric5.Utilities.py3flakes.checker.html</file> - <file>eric5.Utilities.py3flakes.messages.html</file> <file>eric5.Utilities.uic.html</file> - <file>eric5.UtilitiesPython2.CodeStyleChecker.html</file> - <file>eric5.UtilitiesPython2.DocStyleCheckerPy2.html</file> - <file>eric5.UtilitiesPython2.NamingStyleCheckerPy2.html</file> - <file>eric5.UtilitiesPython2.Tools.html</file> - <file>eric5.UtilitiesPython2.pep8.html</file> <file>eric5.VCS.CommandOptionsDialog.html</file> <file>eric5.VCS.ProjectBrowserHelper.html</file> <file>eric5.VCS.ProjectHelper.html</file> @@ -14300,6 +14076,7 @@ <file>index-eric5.Plugins.AboutPlugin.html</file> <file>index-eric5.Plugins.CheckerPlugins.CodeStyleChecker.html</file> <file>index-eric5.Plugins.CheckerPlugins.SyntaxChecker.html</file> + <file>index-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.html</file> <file>index-eric5.Plugins.CheckerPlugins.Tabnanny.html</file> <file>index-eric5.Plugins.CheckerPlugins.html</file> <file>index-eric5.Plugins.DocumentationPlugins.Ericapi.html</file> @@ -14351,14 +14128,10 @@ <file>index-eric5.Utilities.ClassBrowsers.html</file> <file>index-eric5.Utilities.crypto.html</file> <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> <file>index.html</file> - <file>pep8.html</file> </files> </filterSection> </QtHelpProject>
--- a/Documentation/Source/Pep257CheckerPy2.html Sun Jan 05 22:45:29 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,896 +0,0 @@ -<!DOCTYPE html> -<html><head> -<title>Pep257CheckerPy2</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>Pep257CheckerPy2</h1> -<p> -Module implementing a checker for PEP-257 documentation string conventions. -</p> -<h3>Global Attributes</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Classes</h3> -<table> -<tr> -<td><a href="#Pep257Checker">Pep257Checker</a></td> -<td>Class implementing a checker for PEP-257 documentation string conventions.</td> -</tr><tr> -<td><a href="#Pep257Context">Pep257Context</a></td> -<td>Class implementing the source context.</td> -</tr> -</table> -<h3>Functions</h3> -<table> -<tr><td>None</td></tr> -</table> -<hr /><hr /> -<a NAME="Pep257Checker" ID="Pep257Checker"></a> -<h2>Pep257Checker</h2> -<p> - Class implementing a checker for PEP-257 documentation string conventions. -</p> -<h3>Derived from</h3> -object -<h3>Class Attributes</h3> -<table> -<tr><td>Codes</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#Pep257Checker.__init__">Pep257Checker</a></td> -<td>Constructor</td> -</tr><tr> -<td><a href="#Pep257Checker.__checkBackslashes">__checkBackslashes</a></td> -<td>Private method to check, that all docstrings containing backslashes are surrounded by raw triple double quotes.</td> -</tr><tr> -<td><a href="#Pep257Checker.__checkBlankAfterLastParagraph">__checkBlankAfterLastParagraph</a></td> -<td>Private method to check, that the last paragraph of docstrings is followed by a blank line.</td> -</tr><tr> -<td><a href="#Pep257Checker.__checkBlankAfterSummary">__checkBlankAfterSummary</a></td> -<td>Private method to check, that docstring summaries are followed by a blank line.</td> -</tr><tr> -<td><a href="#Pep257Checker.__checkBlankBeforeAndAfterClass">__checkBlankBeforeAndAfterClass</a></td> -<td>Private method to check, that class docstrings have one blank line around them.</td> -</tr><tr> -<td><a href="#Pep257Checker.__checkClassDocstring">__checkClassDocstring</a></td> -<td>Private method to check, that all public functions and methods have a docstring.</td> -</tr><tr> -<td><a href="#Pep257Checker.__checkEndsWithPeriod">__checkEndsWithPeriod</a></td> -<td>Private method to check, that docstring summaries end with a period.</td> -</tr><tr> -<td><a href="#Pep257Checker.__checkEricBlankAfterSummary">__checkEricBlankAfterSummary</a></td> -<td>Private method to check, that docstring summaries are followed by a blank line.</td> -</tr><tr> -<td><a href="#Pep257Checker.__checkEricEndsWithPeriod">__checkEricEndsWithPeriod</a></td> -<td>Private method to check, that docstring summaries end with a period.</td> -</tr><tr> -<td><a href="#Pep257Checker.__checkEricException">__checkEricException</a></td> -<td>Private method to check, that docstrings contain an @exception line if they raise an exception and don't otherwise.</td> -</tr><tr> -<td><a href="#Pep257Checker.__checkEricFunctionArguments">__checkEricFunctionArguments</a></td> -<td>Private method to check, that docstrings contain an @param and/or @keyparam line for each argument.</td> -</tr><tr> -<td><a href="#Pep257Checker.__checkEricNBlankAfterLastParagraph">__checkEricNBlankAfterLastParagraph</a></td> -<td>Private method to check, that the last paragraph of docstrings is not followed by a blank line.</td> -</tr><tr> -<td><a href="#Pep257Checker.__checkEricNoBlankBeforeAndAfterClassOrFunction">__checkEricNoBlankBeforeAndAfterClassOrFunction</a></td> -<td>Private method to check, that class and function/method docstrings have no blank line around them.</td> -</tr><tr> -<td><a href="#Pep257Checker.__checkEricQuotesOnSeparateLines">__checkEricQuotesOnSeparateLines</a></td> -<td>Private method to check, that leading and trailing quotes are on a line by themselves.</td> -</tr><tr> -<td><a href="#Pep257Checker.__checkEricReturn">__checkEricReturn</a></td> -<td>Private method to check, that docstrings contain an @return line if they return anything and don't otherwise.</td> -</tr><tr> -<td><a href="#Pep257Checker.__checkFunctionDocstring">__checkFunctionDocstring</a></td> -<td>Private method to check, that all public functions and methods have a docstring.</td> -</tr><tr> -<td><a href="#Pep257Checker.__checkImperativeMood">__checkImperativeMood</a></td> -<td>Private method to check, that docstring summaries are in imperative mood.</td> -</tr><tr> -<td><a href="#Pep257Checker.__checkIndent">__checkIndent</a></td> -<td>Private method to check, that docstrings are properly indented.</td> -</tr><tr> -<td><a href="#Pep257Checker.__checkModulesDocstrings">__checkModulesDocstrings</a></td> -<td>Private method to check, if the module has a docstring.</td> -</tr><tr> -<td><a href="#Pep257Checker.__checkNoBlankLineBefore">__checkNoBlankLineBefore</a></td> -<td>Private method to check, that function/method docstrings are not preceded by a blank line.</td> -</tr><tr> -<td><a href="#Pep257Checker.__checkNoSignature">__checkNoSignature</a></td> -<td>Private method to check, that docstring summaries don't repeat the function's signature.</td> -</tr><tr> -<td><a href="#Pep257Checker.__checkOneLiner">__checkOneLiner</a></td> -<td>Private method to check, that one-liner docstrings fit on one line with quotes.</td> -</tr><tr> -<td><a href="#Pep257Checker.__checkReturnType">__checkReturnType</a></td> -<td>Private method to check, that docstrings mention the return value type.</td> -</tr><tr> -<td><a href="#Pep257Checker.__checkTripleDoubleQuotes">__checkTripleDoubleQuotes</a></td> -<td>Private method to check, that all docstrings are surrounded by triple double quotes.</td> -</tr><tr> -<td><a href="#Pep257Checker.__checkUnicode">__checkUnicode</a></td> -<td>Private method to check, that all docstrings containing unicode characters are surrounded by unicode triple double quotes.</td> -</tr><tr> -<td><a href="#Pep257Checker.__error">__error</a></td> -<td>Private method to record an issue.</td> -</tr><tr> -<td><a href="#Pep257Checker.__getArgNames">__getArgNames</a></td> -<td></td> -</tr><tr> -<td><a href="#Pep257Checker.__getSummaryLine">__getSummaryLine</a></td> -<td>Private method to extract the summary line.</td> -</tr><tr> -<td><a href="#Pep257Checker.__getSummaryLines">__getSummaryLines</a></td> -<td>Private method to extract the summary lines.</td> -</tr><tr> -<td><a href="#Pep257Checker.__ignoreCode">__ignoreCode</a></td> -<td>Private method to check if the error code should be ignored.</td> -</tr><tr> -<td><a href="#Pep257Checker.__parseClasses">__parseClasses</a></td> -<td>Private method to extract top-level classes.</td> -</tr><tr> -<td><a href="#Pep257Checker.__parseContexts">__parseContexts</a></td> -<td>Private method to extract a context from the source.</td> -</tr><tr> -<td><a href="#Pep257Checker.__parseDocstring">__parseDocstring</a></td> -<td>Private method to extract a docstring given `def` or `class` source.</td> -</tr><tr> -<td><a href="#Pep257Checker.__parseFunctions">__parseFunctions</a></td> -<td>Private method to extract top-level functions.</td> -</tr><tr> -<td><a href="#Pep257Checker.__parseMethods">__parseMethods</a></td> -<td>Private method to extract methods of all classes.</td> -</tr><tr> -<td><a href="#Pep257Checker.__parseModuleDocstring">__parseModuleDocstring</a></td> -<td>Private method to extract a docstring given a module source.</td> -</tr><tr> -<td><a href="#Pep257Checker.__parseTopLevel">__parseTopLevel</a></td> -<td>Private method to extract top-level functions or classes.</td> -</tr><tr> -<td><a href="#Pep257Checker.__readline">__readline</a></td> -<td>Private method to get the next line from the source.</td> -</tr><tr> -<td><a href="#Pep257Checker.__resetReadline">__resetReadline</a></td> -<td>Private method to reset the internal readline function.</td> -</tr><tr> -<td><a href="#Pep257Checker.__skipIndentedBlock">__skipIndentedBlock</a></td> -<td>Private method to skip over an indented block of source code.</td> -</tr><tr> -<td><a href="#Pep257Checker.run">run</a></td> -<td>Public method to check the given source for violations of doc string conventions according to PEP-257.</td> -</tr><tr> -<td><a href="#Pep257Checker.unpackArgs">unpackArgs</a></td> -<td>Local helper function to unpack function argument names.</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="Pep257Checker.__init__" ID="Pep257Checker.__init__"></a> -<h4>Pep257Checker (Constructor)</h4> -<b>Pep257Checker</b>(<i>source, filename, select, ignore, expected, repeat, maxLineLength=79, docType="pep257"</i>) -<p> - Constructor -</p><dl> -<dt><i>source</i></dt> -<dd> -source code to be checked (list of string) -</dd><dt><i>filename</i></dt> -<dd> -name of the source file (string) -</dd><dt><i>select</i></dt> -<dd> -list of selected codes (list of string) -</dd><dt><i>ignore</i></dt> -<dd> -list of codes to be ignored (list of string) -</dd><dt><i>expected</i></dt> -<dd> -list of expected codes (list of string) -</dd><dt><i>repeat</i></dt> -<dd> -flag indicating to report each occurrence of a code - (boolean) -</dd><dt><i>maxLineLength=</i></dt> -<dd> -allowed line length (integer) -</dd><dt><i>docType=</i></dt> -<dd> -type of the documentation strings - (string, one of 'eric' or 'pep257') -</dd> -</dl><a NAME="Pep257Checker.__checkBackslashes" ID="Pep257Checker.__checkBackslashes"></a> -<h4>Pep257Checker.__checkBackslashes</h4> -<b>__checkBackslashes</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that all docstrings containing - backslashes are surrounded by raw triple double quotes. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (Pep257Context) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (Pep257Context) -</dd> -</dl><a NAME="Pep257Checker.__checkBlankAfterLastParagraph" ID="Pep257Checker.__checkBlankAfterLastParagraph"></a> -<h4>Pep257Checker.__checkBlankAfterLastParagraph</h4> -<b>__checkBlankAfterLastParagraph</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that the last paragraph of docstrings is - followed by a blank line. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (Pep257Context) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (Pep257Context) -</dd> -</dl><a NAME="Pep257Checker.__checkBlankAfterSummary" ID="Pep257Checker.__checkBlankAfterSummary"></a> -<h4>Pep257Checker.__checkBlankAfterSummary</h4> -<b>__checkBlankAfterSummary</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that docstring summaries are followed - by a blank line. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (Pep257Context) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (Pep257Context) -</dd> -</dl><a NAME="Pep257Checker.__checkBlankBeforeAndAfterClass" ID="Pep257Checker.__checkBlankBeforeAndAfterClass"></a> -<h4>Pep257Checker.__checkBlankBeforeAndAfterClass</h4> -<b>__checkBlankBeforeAndAfterClass</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that class docstrings have one - blank line around them. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (Pep257Context) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (Pep257Context) -</dd> -</dl><a NAME="Pep257Checker.__checkClassDocstring" ID="Pep257Checker.__checkClassDocstring"></a> -<h4>Pep257Checker.__checkClassDocstring</h4> -<b>__checkClassDocstring</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that all public functions and methods - have a docstring. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (Pep257Context) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (Pep257Context) -</dd> -</dl><a NAME="Pep257Checker.__checkEndsWithPeriod" ID="Pep257Checker.__checkEndsWithPeriod"></a> -<h4>Pep257Checker.__checkEndsWithPeriod</h4> -<b>__checkEndsWithPeriod</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that docstring summaries end with a period. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (Pep257Context) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (Pep257Context) -</dd> -</dl><a NAME="Pep257Checker.__checkEricBlankAfterSummary" ID="Pep257Checker.__checkEricBlankAfterSummary"></a> -<h4>Pep257Checker.__checkEricBlankAfterSummary</h4> -<b>__checkEricBlankAfterSummary</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that docstring summaries are followed - by a blank line. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (Pep257Context) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (Pep257Context) -</dd> -</dl><a NAME="Pep257Checker.__checkEricEndsWithPeriod" ID="Pep257Checker.__checkEricEndsWithPeriod"></a> -<h4>Pep257Checker.__checkEricEndsWithPeriod</h4> -<b>__checkEricEndsWithPeriod</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that docstring summaries end with a period. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (Pep257Context) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (Pep257Context) -</dd> -</dl><a NAME="Pep257Checker.__checkEricException" ID="Pep257Checker.__checkEricException"></a> -<h4>Pep257Checker.__checkEricException</h4> -<b>__checkEricException</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that docstrings contain an @exception line - if they raise an exception and don't otherwise. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (Pep257Context) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (Pep257Context) -</dd> -</dl><a NAME="Pep257Checker.__checkEricFunctionArguments" ID="Pep257Checker.__checkEricFunctionArguments"></a> -<h4>Pep257Checker.__checkEricFunctionArguments</h4> -<b>__checkEricFunctionArguments</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that docstrings contain an @param and/or - @keyparam line for each argument. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (Pep257Context) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (Pep257Context) -</dd> -</dl><a NAME="Pep257Checker.__checkEricNBlankAfterLastParagraph" ID="Pep257Checker.__checkEricNBlankAfterLastParagraph"></a> -<h4>Pep257Checker.__checkEricNBlankAfterLastParagraph</h4> -<b>__checkEricNBlankAfterLastParagraph</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that the last paragraph of docstrings is - not followed by a blank line. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (Pep257Context) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (Pep257Context) -</dd> -</dl><a NAME="Pep257Checker.__checkEricNoBlankBeforeAndAfterClassOrFunction" ID="Pep257Checker.__checkEricNoBlankBeforeAndAfterClassOrFunction"></a> -<h4>Pep257Checker.__checkEricNoBlankBeforeAndAfterClassOrFunction</h4> -<b>__checkEricNoBlankBeforeAndAfterClassOrFunction</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that class and function/method docstrings - have no blank line around them. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (Pep257Context) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (Pep257Context) -</dd> -</dl><a NAME="Pep257Checker.__checkEricQuotesOnSeparateLines" ID="Pep257Checker.__checkEricQuotesOnSeparateLines"></a> -<h4>Pep257Checker.__checkEricQuotesOnSeparateLines</h4> -<b>__checkEricQuotesOnSeparateLines</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that leading and trailing quotes are on - a line by themselves. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (Pep257Context) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (Pep257Context) -</dd> -</dl><a NAME="Pep257Checker.__checkEricReturn" ID="Pep257Checker.__checkEricReturn"></a> -<h4>Pep257Checker.__checkEricReturn</h4> -<b>__checkEricReturn</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that docstrings contain an @return line - if they return anything and don't otherwise. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (Pep257Context) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (Pep257Context) -</dd> -</dl><a NAME="Pep257Checker.__checkFunctionDocstring" ID="Pep257Checker.__checkFunctionDocstring"></a> -<h4>Pep257Checker.__checkFunctionDocstring</h4> -<b>__checkFunctionDocstring</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that all public functions and methods - have a docstring. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (Pep257Context) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (Pep257Context) -</dd> -</dl><a NAME="Pep257Checker.__checkImperativeMood" ID="Pep257Checker.__checkImperativeMood"></a> -<h4>Pep257Checker.__checkImperativeMood</h4> -<b>__checkImperativeMood</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that docstring summaries are in - imperative mood. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (Pep257Context) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (Pep257Context) -</dd> -</dl><a NAME="Pep257Checker.__checkIndent" ID="Pep257Checker.__checkIndent"></a> -<h4>Pep257Checker.__checkIndent</h4> -<b>__checkIndent</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that docstrings are properly indented. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (Pep257Context) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (Pep257Context) -</dd> -</dl><a NAME="Pep257Checker.__checkModulesDocstrings" ID="Pep257Checker.__checkModulesDocstrings"></a> -<h4>Pep257Checker.__checkModulesDocstrings</h4> -<b>__checkModulesDocstrings</b>(<i>docstringContext, context</i>) -<p> - Private method to check, if the module has a docstring. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (Pep257Context) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (Pep257Context) -</dd> -</dl><a NAME="Pep257Checker.__checkNoBlankLineBefore" ID="Pep257Checker.__checkNoBlankLineBefore"></a> -<h4>Pep257Checker.__checkNoBlankLineBefore</h4> -<b>__checkNoBlankLineBefore</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that function/method docstrings are not - preceded by a blank line. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (Pep257Context) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (Pep257Context) -</dd> -</dl><a NAME="Pep257Checker.__checkNoSignature" ID="Pep257Checker.__checkNoSignature"></a> -<h4>Pep257Checker.__checkNoSignature</h4> -<b>__checkNoSignature</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that docstring summaries don't repeat - the function's signature. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (Pep257Context) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (Pep257Context) -</dd> -</dl><a NAME="Pep257Checker.__checkOneLiner" ID="Pep257Checker.__checkOneLiner"></a> -<h4>Pep257Checker.__checkOneLiner</h4> -<b>__checkOneLiner</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that one-liner docstrings fit on - one line with quotes. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (Pep257Context) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (Pep257Context) -</dd> -</dl><a NAME="Pep257Checker.__checkReturnType" ID="Pep257Checker.__checkReturnType"></a> -<h4>Pep257Checker.__checkReturnType</h4> -<b>__checkReturnType</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that docstrings mention the return value type. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (Pep257Context) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (Pep257Context) -</dd> -</dl><a NAME="Pep257Checker.__checkTripleDoubleQuotes" ID="Pep257Checker.__checkTripleDoubleQuotes"></a> -<h4>Pep257Checker.__checkTripleDoubleQuotes</h4> -<b>__checkTripleDoubleQuotes</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that all docstrings are surrounded - by triple double quotes. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (Pep257Context) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (Pep257Context) -</dd> -</dl><a NAME="Pep257Checker.__checkUnicode" ID="Pep257Checker.__checkUnicode"></a> -<h4>Pep257Checker.__checkUnicode</h4> -<b>__checkUnicode</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that all docstrings containing unicode - characters are surrounded by unicode triple double quotes. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (Pep257Context) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (Pep257Context) -</dd> -</dl><a NAME="Pep257Checker.__error" ID="Pep257Checker.__error"></a> -<h4>Pep257Checker.__error</h4> -<b>__error</b>(<i>lineNumber, offset, code, *args</i>) -<p> - Private method to record an issue. -</p><dl> -<dt><i>lineNumber</i></dt> -<dd> -line number of the issue (integer) -</dd><dt><i>offset</i></dt> -<dd> -position within line of the issue (integer) -</dd><dt><i>code</i></dt> -<dd> -message code (string) -</dd><dt><i>args</i></dt> -<dd> -arguments for the message (list) -</dd> -</dl><a NAME="Pep257Checker.__getArgNames" ID="Pep257Checker.__getArgNames"></a> -<h4>Pep257Checker.__getArgNames</h4> -<b>__getArgNames</b>(<i>node</i>) -<a NAME="Pep257Checker.__getSummaryLine" ID="Pep257Checker.__getSummaryLine"></a> -<h4>Pep257Checker.__getSummaryLine</h4> -<b>__getSummaryLine</b>(<i>docstringContext</i>) -<p> - Private method to extract the summary line. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (Pep257Context) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -summary line (string) and the line it was found on (integer) -</dd> -</dl><a NAME="Pep257Checker.__getSummaryLines" ID="Pep257Checker.__getSummaryLines"></a> -<h4>Pep257Checker.__getSummaryLines</h4> -<b>__getSummaryLines</b>(<i>docstringContext</i>) -<p> - Private method to extract the summary lines. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (Pep257Context) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -summary lines (list of string) and the line it was found on - (integer) -</dd> -</dl><a NAME="Pep257Checker.__ignoreCode" ID="Pep257Checker.__ignoreCode"></a> -<h4>Pep257Checker.__ignoreCode</h4> -<b>__ignoreCode</b>(<i>code</i>) -<p> - Private method to check if the error code should be ignored. -</p><dl> -<dt><i>code</i></dt> -<dd> -message code to check for (string) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -flag indicating to ignore the given code (boolean) -</dd> -</dl><a NAME="Pep257Checker.__parseClasses" ID="Pep257Checker.__parseClasses"></a> -<h4>Pep257Checker.__parseClasses</h4> -<b>__parseClasses</b>(<i></i>) -<p> - Private method to extract top-level classes. -</p><dl> -<dt>Returns:</dt> -<dd> -extracted class contexts (list of Pep257Context) -</dd> -</dl><a NAME="Pep257Checker.__parseContexts" ID="Pep257Checker.__parseContexts"></a> -<h4>Pep257Checker.__parseContexts</h4> -<b>__parseContexts</b>(<i>kind</i>) -<p> - Private method to extract a context from the source. -</p><dl> -<dt><i>kind</i></dt> -<dd> -kind of context to extract (string) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -requested contexts (list of Pep257Context) -</dd> -</dl><a NAME="Pep257Checker.__parseDocstring" ID="Pep257Checker.__parseDocstring"></a> -<h4>Pep257Checker.__parseDocstring</h4> -<b>__parseDocstring</b>(<i>context, what=''</i>) -<p> - Private method to extract a docstring given `def` or `class` source. -</p><dl> -<dt><i>context</i></dt> -<dd> -context data to get the docstring from (Pep257Context) -</dd><dt><i>what</i></dt> -<dd> -string denoting what is being parsed (string) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -context of extracted docstring (Pep257Context) -</dd> -</dl><a NAME="Pep257Checker.__parseFunctions" ID="Pep257Checker.__parseFunctions"></a> -<h4>Pep257Checker.__parseFunctions</h4> -<b>__parseFunctions</b>(<i></i>) -<p> - Private method to extract top-level functions. -</p><dl> -<dt>Returns:</dt> -<dd> -extracted function contexts (list of Pep257Context) -</dd> -</dl><a NAME="Pep257Checker.__parseMethods" ID="Pep257Checker.__parseMethods"></a> -<h4>Pep257Checker.__parseMethods</h4> -<b>__parseMethods</b>(<i></i>) -<p> - Private method to extract methods of all classes. -</p><dl> -<dt>Returns:</dt> -<dd> -extracted method contexts (list of Pep257Context) -</dd> -</dl><a NAME="Pep257Checker.__parseModuleDocstring" ID="Pep257Checker.__parseModuleDocstring"></a> -<h4>Pep257Checker.__parseModuleDocstring</h4> -<b>__parseModuleDocstring</b>(<i>source</i>) -<p> - Private method to extract a docstring given a module source. -</p><dl> -<dt><i>source</i></dt> -<dd> -source to parse (list of string) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -context of extracted docstring (Pep257Context) -</dd> -</dl><a NAME="Pep257Checker.__parseTopLevel" ID="Pep257Checker.__parseTopLevel"></a> -<h4>Pep257Checker.__parseTopLevel</h4> -<b>__parseTopLevel</b>(<i>keyword</i>) -<p> - Private method to extract top-level functions or classes. -</p><dl> -<dt><i>keyword</i></dt> -<dd> -keyword signaling what to extract (string) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -extracted function or class contexts (list of Pep257Context) -</dd> -</dl><a NAME="Pep257Checker.__readline" ID="Pep257Checker.__readline"></a> -<h4>Pep257Checker.__readline</h4> -<b>__readline</b>(<i></i>) -<p> - Private method to get the next line from the source. -</p><dl> -<dt>Returns:</dt> -<dd> -next line of source (string) -</dd> -</dl><a NAME="Pep257Checker.__resetReadline" ID="Pep257Checker.__resetReadline"></a> -<h4>Pep257Checker.__resetReadline</h4> -<b>__resetReadline</b>(<i></i>) -<p> - Private method to reset the internal readline function. -</p><a NAME="Pep257Checker.__skipIndentedBlock" ID="Pep257Checker.__skipIndentedBlock"></a> -<h4>Pep257Checker.__skipIndentedBlock</h4> -<b>__skipIndentedBlock</b>(<i>tokenGenerator</i>) -<p> - Private method to skip over an indented block of source code. -</p><dl> -<dt><i>tokenGenerator</i></dt> -<dd> -token generator -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -last token of the indented block -</dd> -</dl><a NAME="Pep257Checker.run" ID="Pep257Checker.run"></a> -<h4>Pep257Checker.run</h4> -<b>run</b>(<i></i>) -<p> - Public method to check the given source for violations of doc string - conventions according to PEP-257. -</p><a NAME="Pep257Checker.unpackArgs" ID="Pep257Checker.unpackArgs"></a> -<h4>Pep257Checker.unpackArgs</h4> -<b>unpackArgs</b>(<i></i>) -<p> - Local helper function to unpack function argument names. -</p><dl> -<dt><i>args</i></dt> -<dd> -list of AST node arguments -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -list of argument names (list of string) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="Pep257Context" ID="Pep257Context"></a> -<h2>Pep257Context</h2> -<p> - Class implementing the source context. -</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="#Pep257Context.__init__">Pep257Context</a></td> -<td>Constructor</td> -</tr><tr> -<td><a href="#Pep257Context.contextType">contextType</a></td> -<td>Public method to get the context type.</td> -</tr><tr> -<td><a href="#Pep257Context.end">end</a></td> -<td>Public method to get the end line number.</td> -</tr><tr> -<td><a href="#Pep257Context.indent">indent</a></td> -<td>Public method to get the indentation of the first line.</td> -</tr><tr> -<td><a href="#Pep257Context.source">source</a></td> -<td>Public method to get the source.</td> -</tr><tr> -<td><a href="#Pep257Context.ssource">ssource</a></td> -<td>Public method to get the joined source lines.</td> -</tr><tr> -<td><a href="#Pep257Context.start">start</a></td> -<td>Public method to get the start line number.</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="Pep257Context.__init__" ID="Pep257Context.__init__"></a> -<h4>Pep257Context (Constructor)</h4> -<b>Pep257Context</b>(<i>source, startLine, contextType</i>) -<p> - Constructor -</p><dl> -<dt><i>source</i></dt> -<dd> -source code of the context (list of string or string) -</dd><dt><i>startLine</i></dt> -<dd> -line number the context starts in the source (integer) -</dd><dt><i>contextType</i></dt> -<dd> -type of the context object (string) -</dd> -</dl><a NAME="Pep257Context.contextType" ID="Pep257Context.contextType"></a> -<h4>Pep257Context.contextType</h4> -<b>contextType</b>(<i></i>) -<p> - Public method to get the context type. -</p><dl> -<dt>Returns:</dt> -<dd> -context type (string) -</dd> -</dl><a NAME="Pep257Context.end" ID="Pep257Context.end"></a> -<h4>Pep257Context.end</h4> -<b>end</b>(<i></i>) -<p> - Public method to get the end line number. -</p><dl> -<dt>Returns:</dt> -<dd> -end line number (integer) -</dd> -</dl><a NAME="Pep257Context.indent" ID="Pep257Context.indent"></a> -<h4>Pep257Context.indent</h4> -<b>indent</b>(<i></i>) -<p> - Public method to get the indentation of the first line. -</p><dl> -<dt>Returns:</dt> -<dd> -indentation string (string) -</dd> -</dl><a NAME="Pep257Context.source" ID="Pep257Context.source"></a> -<h4>Pep257Context.source</h4> -<b>source</b>(<i></i>) -<p> - Public method to get the source. -</p><dl> -<dt>Returns:</dt> -<dd> -source (list of string) -</dd> -</dl><a NAME="Pep257Context.ssource" ID="Pep257Context.ssource"></a> -<h4>Pep257Context.ssource</h4> -<b>ssource</b>(<i></i>) -<p> - Public method to get the joined source lines. -</p><dl> -<dt>Returns:</dt> -<dd> -source (string) -</dd> -</dl><a NAME="Pep257Context.start" ID="Pep257Context.start"></a> -<h4>Pep257Context.start</h4> -<b>start</b>(<i></i>) -<p> - Public method to get the start line number. -</p><dl> -<dt>Returns:</dt> -<dd> -start line number (integer) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /> -</body></html> \ No newline at end of file
--- a/Documentation/Source/Pep8Checker.html Sun Jan 05 22:45:29 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,106 +0,0 @@ -<!DOCTYPE html> -<html><head> -<title>Pep8Checker</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>Pep8Checker</h1> -<p> -Class implementing the PEP 8 checker for Python2. -</p> -<h3>Global Attributes</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Classes</h3> -<table> -<tr> -<td><a href="#Pep8Report">Pep8Report</a></td> -<td>Class implementing a special report to be used with our dialog.</td> -</tr> -</table> -<h3>Functions</h3> -<table> -<tr><td>None</td></tr> -</table> -<hr /><hr /> -<a NAME="Pep8Report" ID="Pep8Report"></a> -<h2>Pep8Report</h2> -<p> - Class implementing a special report to be used with our dialog. -</p> -<h3>Derived from</h3> -pep8 -<h3>Class Attributes</h3> -<table> -<tr><td>docType</td></tr><tr><td>filename</td></tr><tr><td>hang_closing</td></tr><tr><td>ignore</td></tr><tr><td>max_line_length</td></tr><tr><td>repeat</td></tr><tr><td>select</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#Pep8Report.__init__">Pep8Report</a></td> -<td>Constructor</td> -</tr><tr> -<td><a href="#Pep8Report.error_args">error_args</a></td> -<td>Public method to collect the error messages.</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="Pep8Report.__init__" ID="Pep8Report.__init__"></a> -<h4>Pep8Report (Constructor)</h4> -<b>Pep8Report</b>(<i>options</i>) -<p> - Constructor -</p><dl> -<dt><i>options</i></dt> -<dd> -options for the report (optparse.Values) -</dd> -</dl><a NAME="Pep8Report.error_args" ID="Pep8Report.error_args"></a> -<h4>Pep8Report.error_args</h4> -<b>error_args</b>(<i>line_number, offset, code, check, *args</i>) -<p> - Public method to collect the error messages. -</p><dl> -<dt><i>line_number</i></dt> -<dd> -line number of the issue (integer) -</dd><dt><i>offset</i></dt> -<dd> -position within line of the issue (integer) -</dd><dt><i>code</i></dt> -<dd> -message code (string) -</dd><dt><i>check</i></dt> -<dd> -reference to the checker function (function) -</dd><dt><i>args</i></dt> -<dd> -arguments for the message (list) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /> -</body></html> \ No newline at end of file
--- a/Documentation/Source/Pep8NamingCheckerPy2.html Sun Jan 05 22:45:29 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,396 +0,0 @@ -<!DOCTYPE html> -<html><head> -<title>Pep8NamingCheckerPy2</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>Pep8NamingCheckerPy2</h1> -<p> -Module implementing a checker for PEP-8 naming conventions for Python2. -</p> -<h3>Global Attributes</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Classes</h3> -<table> -<tr> -<td><a href="#Pep8NamingChecker">Pep8NamingChecker</a></td> -<td>Class implementing a checker for PEP-8 naming conventions for Python2.</td> -</tr> -</table> -<h3>Functions</h3> -<table> -<tr><td>None</td></tr> -</table> -<hr /><hr /> -<a NAME="Pep8NamingChecker" ID="Pep8NamingChecker"></a> -<h2>Pep8NamingChecker</h2> -<p> - Class implementing a checker for PEP-8 naming conventions for Python2. -</p> -<h3>Derived from</h3> -object -<h3>Class Attributes</h3> -<table> -<tr><td>CamelcaseRegexp</td></tr><tr><td>Codes</td></tr><tr><td>LowercaseRegex</td></tr><tr><td>MixedcaseRegexp</td></tr><tr><td>UppercaseRegexp</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#Pep8NamingChecker.__init__">Pep8NamingChecker</a></td> -<td>Constructor (according to 'extended' pep8.py API)</td> -</tr><tr> -<td><a href="#Pep8NamingChecker.__checkClassName">__checkClassName</a></td> -<td>Private class to check the given node for class name conventions (N801).</td> -</tr><tr> -<td><a href="#Pep8NamingChecker.__checkFunctionArgumentNames">__checkFunctionArgumentNames</a></td> -<td>Private class to check the argument names of functions (N803, N804, N805, N806).</td> -</tr><tr> -<td><a href="#Pep8NamingChecker.__checkFuntionName">__checkFuntionName</a></td> -<td>Private class to check the given node for function name conventions (N802).</td> -</tr><tr> -<td><a href="#Pep8NamingChecker.__checkImportAs">__checkImportAs</a></td> -<td>Private method to check that imports don't change the naming convention (N811, N812, N813, N814).</td> -</tr><tr> -<td><a href="#Pep8NamingChecker.__checkModule">__checkModule</a></td> -<td>Private method to check module naming conventions (N807, N808).</td> -</tr><tr> -<td><a href="#Pep8NamingChecker.__checkNameToBeAvoided">__checkNameToBeAvoided</a></td> -<td>Private class to check the given node for a name to be avoided (N831).</td> -</tr><tr> -<td><a href="#Pep8NamingChecker.__checkVariablesInFunction">__checkVariablesInFunction</a></td> -<td>Private method to check local variables in functions (N821).</td> -</tr><tr> -<td><a href="#Pep8NamingChecker.__error">__error</a></td> -<td>Private method to build the error information</td> -</tr><tr> -<td><a href="#Pep8NamingChecker.__findGlobalDefs">__findGlobalDefs</a></td> -<td>Private method amend a node with global definitions information.</td> -</tr><tr> -<td><a href="#Pep8NamingChecker.__getArgNames">__getArgNames</a></td> -<td>Private method to get the argument names of a function node.</td> -</tr><tr> -<td><a href="#Pep8NamingChecker.__isNameToBeAvoided">__isNameToBeAvoided</a></td> -<td>Private method to check, if the given name should be avoided.</td> -</tr><tr> -<td><a href="#Pep8NamingChecker.__tagClassFunctions">__tagClassFunctions</a></td> -<td>Private method to tag functions if they are methods, class methods or static methods.</td> -</tr><tr> -<td><a href="#Pep8NamingChecker.__visitNode">__visitNode</a></td> -<td>Private method to inspect the given AST node.</td> -</tr><tr> -<td><a href="#Pep8NamingChecker.__visitTree">__visitTree</a></td> -<td>Private method to scan the given AST tree.</td> -</tr><tr> -<td><a href="#Pep8NamingChecker.run">run</a></td> -<td>Public method run by the pep8.py checker.</td> -</tr><tr> -<td><a href="#Pep8NamingChecker.unpackArgs">unpackArgs</a></td> -<td>Local helper function to unpack function argument names.</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="Pep8NamingChecker.__init__" ID="Pep8NamingChecker.__init__"></a> -<h4>Pep8NamingChecker (Constructor)</h4> -<b>Pep8NamingChecker</b>(<i>tree, filename, options</i>) -<p> - Constructor (according to 'extended' pep8.py API) -</p><dl> -<dt><i>tree</i></dt> -<dd> -AST tree of the source file -</dd><dt><i>filename</i></dt> -<dd> -name of the source file (string) -</dd><dt><i>options</i></dt> -<dd> -options as parsed by pep8.StyleGuide -</dd> -</dl><a NAME="Pep8NamingChecker.__checkClassName" ID="Pep8NamingChecker.__checkClassName"></a> -<h4>Pep8NamingChecker.__checkClassName</h4> -<b>__checkClassName</b>(<i>node, parents</i>) -<p> - Private class to check the given node for class name - conventions (N801). -</p><p> - Almost without exception, class names use the CapWords convention. - Classes for internal use have a leading underscore in addition. -</p><dl> -<dt><i>node</i></dt> -<dd> -AST note to check -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -tuple giving line number, offset within line and error code - (integer, integer, string) -</dd> -</dl><a NAME="Pep8NamingChecker.__checkFunctionArgumentNames" ID="Pep8NamingChecker.__checkFunctionArgumentNames"></a> -<h4>Pep8NamingChecker.__checkFunctionArgumentNames</h4> -<b>__checkFunctionArgumentNames</b>(<i>node, parents</i>) -<p> - Private class to check the argument names of functions - (N803, N804, N805, N806). -</p><p> - The argument names of a function should be lowercase, with words - separated by underscores. A class method should have 'cls' as the - first argument. A method should have 'self' as the first argument. -</p><dl> -<dt><i>node</i></dt> -<dd> -AST note to check -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -tuple giving line number, offset within line and error code - (integer, integer, string) -</dd> -</dl><a NAME="Pep8NamingChecker.__checkFuntionName" ID="Pep8NamingChecker.__checkFuntionName"></a> -<h4>Pep8NamingChecker.__checkFuntionName</h4> -<b>__checkFuntionName</b>(<i>node, parents</i>) -<p> - Private class to check the given node for function name - conventions (N802). -</p><p> - Function names should be lowercase, with words separated by underscores - as necessary to improve readability. Functions <b>not</b> being - methods '__' in front and back are not allowed. Mixed case is allowed - only in contexts where that's already the prevailing style - (e.g. threading.py), to retain backwards compatibility. -</p><dl> -<dt><i>node</i></dt> -<dd> -AST note to check -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -tuple giving line number, offset within line and error code - (integer, integer, string) -</dd> -</dl><a NAME="Pep8NamingChecker.__checkImportAs" ID="Pep8NamingChecker.__checkImportAs"></a> -<h4>Pep8NamingChecker.__checkImportAs</h4> -<b>__checkImportAs</b>(<i>node, parents</i>) -<p> - Private method to check that imports don't change the - naming convention (N811, N812, N813, N814). -</p><dl> -<dt><i>node</i></dt> -<dd> -AST note to check -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -tuple giving line number, offset within line and error code - (integer, integer, string) -</dd> -</dl><a NAME="Pep8NamingChecker.__checkModule" ID="Pep8NamingChecker.__checkModule"></a> -<h4>Pep8NamingChecker.__checkModule</h4> -<b>__checkModule</b>(<i>node, parents</i>) -<p> - Private method to check module naming conventions (N807, N808). -</p><p> - Module and package names should be lowercase. -</p><dl> -<dt><i>node</i></dt> -<dd> -AST note to check -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -tuple giving line number, offset within line and error code - (integer, integer, string) -</dd> -</dl><a NAME="Pep8NamingChecker.__checkNameToBeAvoided" ID="Pep8NamingChecker.__checkNameToBeAvoided"></a> -<h4>Pep8NamingChecker.__checkNameToBeAvoided</h4> -<b>__checkNameToBeAvoided</b>(<i>node, parents</i>) -<p> - Private class to check the given node for a name to be avoided (N831). -</p><dl> -<dt><i>node</i></dt> -<dd> -AST note to check -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -tuple giving line number, offset within line and error code - (integer, integer, string) -</dd> -</dl><a NAME="Pep8NamingChecker.__checkVariablesInFunction" ID="Pep8NamingChecker.__checkVariablesInFunction"></a> -<h4>Pep8NamingChecker.__checkVariablesInFunction</h4> -<b>__checkVariablesInFunction</b>(<i>node, parents</i>) -<p> - Private method to check local variables in functions (N821). -</p><p> - Local variables in functions should be lowercase. -</p><dl> -<dt><i>node</i></dt> -<dd> -AST note to check -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -tuple giving line number, offset within line and error code - (integer, integer, string) -</dd> -</dl><a NAME="Pep8NamingChecker.__error" ID="Pep8NamingChecker.__error"></a> -<h4>Pep8NamingChecker.__error</h4> -<b>__error</b>(<i>node, code</i>) -<p> - Private method to build the error information -</p><dl> -<dt><i>node</i></dt> -<dd> -AST node to report an error for -</dd><dt><i>code</i></dt> -<dd> -error code to report (string) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -tuple giving line number, offset within line and error code - (integer, integer, string) -</dd> -</dl><a NAME="Pep8NamingChecker.__findGlobalDefs" ID="Pep8NamingChecker.__findGlobalDefs"></a> -<h4>Pep8NamingChecker.__findGlobalDefs</h4> -<b>__findGlobalDefs</b>(<i>functionNode</i>) -<p> - Private method amend a node with global definitions information. -</p><dl> -<dt><i>functionNode</i></dt> -<dd> -AST tree node to amend -</dd> -</dl><a NAME="Pep8NamingChecker.__getArgNames" ID="Pep8NamingChecker.__getArgNames"></a> -<h4>Pep8NamingChecker.__getArgNames</h4> -<b>__getArgNames</b>(<i>node</i>) -<p> - Private method to get the argument names of a function node. -</p><dl> -<dt><i>node</i></dt> -<dd> -AST node to extract arguments names from -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -list of argument names (list of string) -</dd> -</dl><a NAME="Pep8NamingChecker.__isNameToBeAvoided" ID="Pep8NamingChecker.__isNameToBeAvoided"></a> -<h4>Pep8NamingChecker.__isNameToBeAvoided</h4> -<b>__isNameToBeAvoided</b>(<i>name</i>) -<p> - Private method to check, if the given name should be avoided. -</p><dl> -<dt><i>name</i></dt> -<dd> -name to be checked (string) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -flag indicating to avoid it (boolen) -</dd> -</dl><a NAME="Pep8NamingChecker.__tagClassFunctions" ID="Pep8NamingChecker.__tagClassFunctions"></a> -<h4>Pep8NamingChecker.__tagClassFunctions</h4> -<b>__tagClassFunctions</b>(<i>classNode</i>) -<p> - Private method to tag functions if they are methods, class methods or - static methods. -</p><dl> -<dt><i>classNode</i></dt> -<dd> -AST tree node to tag -</dd> -</dl><a NAME="Pep8NamingChecker.__visitNode" ID="Pep8NamingChecker.__visitNode"></a> -<h4>Pep8NamingChecker.__visitNode</h4> -<b>__visitNode</b>(<i>node</i>) -<p> - Private method to inspect the given AST node. -</p><dl> -<dt><i>node</i></dt> -<dd> -AST tree node to inspect -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -tuple giving line number, offset within line, code and - checker function -</dd> -</dl><a NAME="Pep8NamingChecker.__visitTree" ID="Pep8NamingChecker.__visitTree"></a> -<h4>Pep8NamingChecker.__visitTree</h4> -<b>__visitTree</b>(<i>node</i>) -<p> - Private method to scan the given AST tree. -</p><dl> -<dt><i>node</i></dt> -<dd> -AST tree node to scan -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -tuple giving line number, offset within line, code and - checker function -</dd> -</dl><a NAME="Pep8NamingChecker.run" ID="Pep8NamingChecker.run"></a> -<h4>Pep8NamingChecker.run</h4> -<b>run</b>(<i></i>) -<p> - Public method run by the pep8.py checker. -</p><dl> -<dt>Returns:</dt> -<dd> -tuple giving line number, offset within line, code and - checker function -</dd> -</dl><a NAME="Pep8NamingChecker.unpackArgs" ID="Pep8NamingChecker.unpackArgs"></a> -<h4>Pep8NamingChecker.unpackArgs</h4> -<b>unpackArgs</b>(<i></i>) -<p> - Local helper function to unpack function argument names. -</p><dl> -<dt><i>args</i></dt> -<dd> -list of AST node arguments -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -list of argument names (list of string) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /> -</body></html> \ No newline at end of file
--- a/Documentation/Source/Tools.html Sun Jan 05 22:45:29 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,150 +0,0 @@ -<!DOCTYPE html> -<html><head> -<title>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>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 its 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 its 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/eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleChecker.html Sun Jan 05 22:45:29 2014 +0100 +++ b/Documentation/Source/eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleChecker.html Wed Jan 15 22:55:52 2014 +0100 @@ -30,22 +30,31 @@ <h3>Classes</h3> <table> <tr> -<td><a href="#CodeStyleCheckerPy2">CodeStyleCheckerPy2</a></td> -<td>Class implementing the code style checker interface for Python 2.</td> +<td><a href="#CodeStyleCheckerReport">CodeStyleCheckerReport</a></td> +<td>Class implementing a special report to be used with our dialog.</td> </tr> </table> <h3>Functions</h3> <table> -<tr><td>None</td></tr> +<tr> +<td><a href="#codeStyleCheck">codeStyleCheck</a></td> +<td>Do the code style check and/ or fix found errors.</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="#initService">initService</a></td> +<td>Initialize the service and return the entry point.</td> +</tr> </table> <hr /><hr /> -<a NAME="CodeStyleCheckerPy2" ID="CodeStyleCheckerPy2"></a> -<h2>CodeStyleCheckerPy2</h2> +<a NAME="CodeStyleCheckerReport" ID="CodeStyleCheckerReport"></a> +<h2>CodeStyleCheckerReport</h2> <p> - Class implementing the code style checker interface for Python 2. + Class implementing a special report to be used with our dialog. </p> <h3>Derived from</h3> -object +pep8.BaseReport <h3>Class Attributes</h3> <table> <tr><td>None</td></tr> @@ -57,48 +66,121 @@ <h3>Methods</h3> <table> <tr> -<td><a href="#CodeStyleCheckerPy2.__init__">CodeStyleCheckerPy2</a></td> +<td><a href="#CodeStyleCheckerReport.__init__">CodeStyleCheckerReport</a></td> <td>Constructor</td> +</tr><tr> +<td><a href="#CodeStyleCheckerReport.error_args">error_args</a></td> +<td>Public method to collect the error messages.</td> </tr> </table> <h3>Static Methods</h3> <table> <tr><td>None</td></tr> </table> -<a NAME="CodeStyleCheckerPy2.__init__" ID="CodeStyleCheckerPy2.__init__"></a> -<h4>CodeStyleCheckerPy2 (Constructor)</h4> -<b>CodeStyleCheckerPy2</b>(<i>filename, lines, repeat=False, select="", ignore="", max_line_length=79, hang_closing=False, docType="pep257"</i>) +<a NAME="CodeStyleCheckerReport.__init__" ID="CodeStyleCheckerReport.__init__"></a> +<h4>CodeStyleCheckerReport (Constructor)</h4> +<b>CodeStyleCheckerReport</b>(<i>options</i>) <p> Constructor </p><dl> +<dt><i>options</i></dt> +<dd> +options for the report (optparse.Values) +</dd> +</dl><a NAME="CodeStyleCheckerReport.error_args" ID="CodeStyleCheckerReport.error_args"></a> +<h4>CodeStyleCheckerReport.error_args</h4> +<b>error_args</b>(<i>line_number, offset, code, check, *args</i>) +<p> + Public method to collect the error messages. +</p><dl> +<dt><i>line_number</i></dt> +<dd> +line number of the issue (integer) +</dd><dt><i>offset</i></dt> +<dd> +position within line of the issue (integer) +</dd><dt><i>code</i></dt> +<dd> +message code (string) +</dd><dt><i>check</i></dt> +<dd> +reference to the checker function (function) +</dd><dt><i>args</i></dt> +<dd> +arguments for the message (list) +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +error code (string) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="codeStyleCheck" ID="codeStyleCheck"></a> +<h2>codeStyleCheck</h2> +<b>codeStyleCheck</b>(<i>filename, source, args</i>) +<p> + Do the code style check and/ or fix found errors. +</p><dl> <dt><i>filename</i></dt> <dd> -name of the file to check (string) -</dd><dt><i>lines</i></dt> +source filename (string) +</dd><dt><i>source</i></dt> <dd> -source of the file (list of strings) (ignored) -</dd><dt><i>repeat=</i></dt> +string containing the code to check (string) +</dd><dt><i>args</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> +arguments used by the codeStyleCheck function (list of + excludeMessages (str), includeMessages (str), repeatMessages + (bool), fixCodes (str), noFixCodes (str), fixIssues (bool), + maxLineLength (int), hangClosing (bool), docType (str), errors + (list of str), eol (str), encoding (str)) +</dd> +</dl><dl> +<dt>Returns:</dt> <dd> -list of message IDs to ignore - (comma separated string) -</dd><dt><i>max_line_length=</i></dt> +tuple of stats (dict) and results (tuple for each found violation + of style (tuple of lineno (int), position (int), text (str), fixed + (bool), autofixing (bool), fixedMsg (str))) +</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> -maximum allowed line length (integer) -</dd><dt><i>hang_closing=</i></dt> +line to extract flags from (string) +</dd><dt><i>startComment=</i></dt> <dd> -flag indicating to allow hanging closing - brackets (boolean) -</dd><dt><i>docType=</i></dt> +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> -type of the documentation strings - (string, one of 'eric' or 'pep257') +list containing the extracted flags (list of strings) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="initService" ID="initService"></a> +<h2>initService</h2> +<b>initService</b>(<i></i>) +<p> + Initialize the service and return the entry point. +</p><dl> +<dt>Returns:</dt> +<dd> +the entry point for the background client (function) </dd> </dl> <div align="right"><a href="#top">Up</a></div>
--- a/Documentation/Source/eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.html Sun Jan 05 22:45:29 2014 +0100 +++ b/Documentation/Source/eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.html Wed Jan 15 22:55:52 2014 +0100 @@ -32,9 +32,6 @@ <tr> <td><a href="#CodeStyleCheckerDialog">CodeStyleCheckerDialog</a></td> <td>Class implementing a dialog to show the results of the code style check.</td> -</tr><tr> -<td><a href="#CodeStyleCheckerReport">CodeStyleCheckerReport</a></td> -<td>Class implementing a special report to be used with our dialog.</td> </tr> </table> <h3>Functions</h3> @@ -72,6 +69,9 @@ <td><a href="#CodeStyleCheckerDialog.__finish">__finish</a></td> <td>Private slot called when the code style check finished or the user pressed the cancel button.</td> </tr><tr> +<td><a href="#CodeStyleCheckerDialog.__getEol">__getEol</a></td> +<td>Private method to get the applicable eol string.</td> +</tr><tr> <td><a href="#CodeStyleCheckerDialog.__getSelectedFixableItems">__getSelectedFixableItems</a></td> <td>Private method to extract all selected items for fixable issues.</td> </tr><tr> @@ -81,6 +81,9 @@ <td><a href="#CodeStyleCheckerDialog.__modifyFixedResultItem">__modifyFixedResultItem</a></td> <td>Private method to modify a result list entry to show its positive fixed state.</td> </tr><tr> +<td><a href="#CodeStyleCheckerDialog.__processResult">__processResult</a></td> +<td>Privat slot called after perfoming a style check on one file.</td> +</tr><tr> <td><a href="#CodeStyleCheckerDialog.__resetStatistics">__resetStatistics</a></td> <td>Private slot to reset the statistics data.</td> </tr><tr> @@ -96,6 +99,9 @@ <td><a href="#CodeStyleCheckerDialog.__updateStatistics">__updateStatistics</a></td> <td>Private method to update the collected statistics.</td> </tr><tr> +<td><a href="#CodeStyleCheckerDialog.check">check</a></td> +<td>Start a style check for one file.</td> +</tr><tr> <td><a href="#CodeStyleCheckerDialog.on_buttonBox_clicked">on_buttonBox_clicked</a></td> <td>Private slot called by a button of the button box clicked.</td> </tr><tr> @@ -201,7 +207,22 @@ <p> Private slot called when the code style check finished or the user pressed the cancel button. -</p><a NAME="CodeStyleCheckerDialog.__getSelectedFixableItems" ID="CodeStyleCheckerDialog.__getSelectedFixableItems"></a> +</p><a NAME="CodeStyleCheckerDialog.__getEol" ID="CodeStyleCheckerDialog.__getEol"></a> +<h4>CodeStyleCheckerDialog.__getEol</h4> +<b>__getEol</b>(<i>fn</i>) +<p> + Private method to get the applicable eol string. +</p><dl> +<dt><i>fn</i></dt> +<dd> +filename where to determine the line ending (str) +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +eol string (string) +</dd> +</dl><a NAME="CodeStyleCheckerDialog.__getSelectedFixableItems" ID="CodeStyleCheckerDialog.__getSelectedFixableItems"></a> <h4>CodeStyleCheckerDialog.__getSelectedFixableItems</h4> <b>__getSelectedFixableItems</b>(<i></i>) <p> @@ -243,6 +264,27 @@ <dd> flag indicating a fixed issue (boolean) </dd> +</dl><a NAME="CodeStyleCheckerDialog.__processResult" ID="CodeStyleCheckerDialog.__processResult"></a> +<h4>CodeStyleCheckerDialog.__processResult</h4> +<b>__processResult</b>(<i>fn, codeStyleCheckerStats, fixes, results</i>) +<p> + Privat slot called after perfoming a style check on one file. +</p><dl> +<dt><i>fn</i></dt> +<dd> +filename of the just checked file (str) +</dd><dt><i>codeStyleCheckerStats</i></dt> +<dd> +stats of style and name check (dict) +</dd><dt><i>fixes</i></dt> +<dd> +number of applied fixes (int) +</dd><dt><i>results</i></dt> +<dd> +tuple for each found violation of style (tuple of + lineno (int), position (int), text (str), fixed (bool), + autofixing (bool)) +</dd> </dl><a NAME="CodeStyleCheckerDialog.__resetStatistics" ID="CodeStyleCheckerDialog.__resetStatistics"></a> <h4>CodeStyleCheckerDialog.__resetStatistics</h4> <b>__resetStatistics</b>(<i></i>) @@ -291,6 +333,21 @@ <dd> reference to the code style fixer (CodeStyleFixer) </dd> +</dl><a NAME="CodeStyleCheckerDialog.check" ID="CodeStyleCheckerDialog.check"></a> +<h4>CodeStyleCheckerDialog.check</h4> +<b>check</b>(<i>codestring='', onlyFixes={}</i>) +<p> + Start a style check for one file. +</p><p> + The results are reported to the __processResult slot. +</p><dl> +<dt><i>codestring=</i></dt> +<dd> +optional sourcestring (str) +</dd><dt><i>onlyFixes=</i></dt> +<dd> +dict which violations should be fixed (dict) +</dd> </dl><a NAME="CodeStyleCheckerDialog.on_buttonBox_clicked" ID="CodeStyleCheckerDialog.on_buttonBox_clicked"></a> <h4>CodeStyleCheckerDialog.on_buttonBox_clicked</h4> <b>on_buttonBox_clicked</b>(<i>button</i>) @@ -312,6 +369,9 @@ <b>on_fixButton_clicked</b>(<i></i>) <p> Private slot to fix selected issues. +</p><p> + Build a dictionary of issues to fix. Update the initialized __options. + Then call check with the dict as keyparam to fix selected issues. </p><a NAME="CodeStyleCheckerDialog.on_fixIssuesSelectButton_clicked" ID="CodeStyleCheckerDialog.on_fixIssuesSelectButton_clicked"></a> <h4>CodeStyleCheckerDialog.on_fixIssuesSelectButton_clicked</h4> <b>on_fixIssuesSelectButton_clicked</b>(<i></i>) @@ -413,74 +473,5 @@ </dd> </dl> <div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="CodeStyleCheckerReport" ID="CodeStyleCheckerReport"></a> -<h2>CodeStyleCheckerReport</h2> -<p> - Class implementing a special report to be used with our dialog. -</p> -<h3>Derived from</h3> -pep8.BaseReport -<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="#CodeStyleCheckerReport.__init__">CodeStyleCheckerReport</a></td> -<td>Constructor</td> -</tr><tr> -<td><a href="#CodeStyleCheckerReport.error_args">error_args</a></td> -<td>Public method to collect the error messages.</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="CodeStyleCheckerReport.__init__" ID="CodeStyleCheckerReport.__init__"></a> -<h4>CodeStyleCheckerReport (Constructor)</h4> -<b>CodeStyleCheckerReport</b>(<i>options</i>) -<p> - Constructor -</p><dl> -<dt><i>options</i></dt> -<dd> -options for the report (optparse.Values) -</dd> -</dl><a NAME="CodeStyleCheckerReport.error_args" ID="CodeStyleCheckerReport.error_args"></a> -<h4>CodeStyleCheckerReport.error_args</h4> -<b>error_args</b>(<i>line_number, offset, code, check, *args</i>) -<p> - Public method to collect the error messages. -</p><dl> -<dt><i>line_number</i></dt> -<dd> -line number of the issue (integer) -</dd><dt><i>offset</i></dt> -<dd> -position within line of the issue (integer) -</dd><dt><i>code</i></dt> -<dd> -message code (string) -</dd><dt><i>check</i></dt> -<dd> -reference to the checker function (function) -</dd><dt><i>args</i></dt> -<dd> -arguments for the message (list) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -error code (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.CodeStyleChecker.CodeStyleFixer.html Sun Jan 05 22:45:29 2014 +0100 +++ b/Documentation/Source/eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.html Wed Jan 15 22:55:52 2014 +0100 @@ -25,7 +25,7 @@ </p> <h3>Global Attributes</h3> <table> -<tr><td>FixableCodeStyleIssues</td></tr> +<tr><td>FixableCodeStyleIssues</td></tr><tr><td>QT_TRANSLATE_NOOP</td></tr> </table> <h3>Classes</h3> <table> @@ -54,7 +54,7 @@ Class implementing a fixer for certain code style issues. </p> <h3>Derived from</h3> -QObject +object <h3>Class Attributes</h3> <table> <tr><td>None</td></tr> @@ -204,9 +204,6 @@ <td><a href="#CodeStyleFixer.__fixWhitespace">__fixWhitespace</a></td> <td>Private method to correct whitespace at the given offset.</td> </tr><tr> -<td><a href="#CodeStyleFixer.__getEol">__getEol</a></td> -<td>Private method to get the applicable eol string.</td> -</tr><tr> <td><a href="#CodeStyleFixer.__getID">__getID</a></td> <td>Private method to get the ID for a deferred fix.</td> </tr><tr> @@ -241,14 +238,11 @@ </table> <a NAME="CodeStyleFixer.__init__" ID="CodeStyleFixer.__init__"></a> <h4>CodeStyleFixer (Constructor)</h4> -<b>CodeStyleFixer</b>(<i>project, filename, sourceLines, fixCodes, noFixCodes, maxLineLength, inPlace</i>) +<b>CodeStyleFixer</b>(<i>filename, sourceLines, fixCodes, noFixCodes, maxLineLength, inPlace, eol</i>) <p> Constructor </p><dl> -<dt><i>project</i></dt> -<dd> -reference to the project object (Project) -</dd><dt><i>filename</i></dt> +<dt><i>filename</i></dt> <dd> name of the file to be fixed (string) </dd><dt><i>sourceLines</i></dt> @@ -269,6 +263,9 @@ </dd><dt><i>inPlace</i></dt> <dd> flag indicating to modify the file in place (boolean) +</dd><dt><i>eol</i></dt> +<dd> +end of line character(s) (string) </dd> </dl><a NAME="CodeStyleFixer.__codeMatch" ID="CodeStyleFixer.__codeMatch"></a> <h4>CodeStyleFixer.__codeMatch</h4> @@ -1488,16 +1485,6 @@ <dd> corrected line </dd> -</dl><a NAME="CodeStyleFixer.__getEol" ID="CodeStyleFixer.__getEol"></a> -<h4>CodeStyleFixer.__getEol</h4> -<b>__getEol</b>(<i></i>) -<p> - Private method to get the applicable eol string. -</p><dl> -<dt>Returns:</dt> -<dd> -eol string (string) -</dd> </dl><a NAME="CodeStyleFixer.__getID" ID="CodeStyleFixer.__getID"></a> <h4>CodeStyleFixer.__getID</h4> <b>__getID</b>(<i></i>)
--- a/Documentation/Source/eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html Sun Jan 05 22:45:29 2014 +0100 +++ b/Documentation/Source/eric5.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html Wed Jan 15 22:55:52 2014 +0100 @@ -25,7 +25,7 @@ </p> <h3>Global Attributes</h3> <table> -<tr><td>PyCF_ONLY_AST</td></tr> +<tr><td>QT_TRANSLATE_NOOP</td></tr> </table> <h3>Classes</h3> <table>
--- a/Documentation/Source/eric5.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.html Sun Jan 05 22:45:29 2014 +0100 +++ b/Documentation/Source/eric5.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.html Wed Jan 15 22:55:52 2014 +0100 @@ -25,7 +25,7 @@ </p> <h3>Global Attributes</h3> <table> -<tr><td>None</td></tr> +<tr><td>QT_TRANSLATE_NOOP</td></tr> </table> <h3>Classes</h3> <table> @@ -107,6 +107,9 @@ </tr><tr> <td><a href="#NamingStyleChecker.run">run</a></td> <td>Public method run by the pep8.py checker.</td> +</tr><tr> +<td><a href="#NamingStyleChecker.unpackArgs">unpackArgs</a></td> +<td>Local helper function to unpack function argument names.</td> </tr> </table> <h3>Static Methods</h3> @@ -415,6 +418,21 @@ tuple giving line number, offset within line, code and checker function </dd> +</dl><a NAME="NamingStyleChecker.unpackArgs" ID="NamingStyleChecker.unpackArgs"></a> +<h4>NamingStyleChecker.unpackArgs</h4> +<b>unpackArgs</b>(<i></i>) +<p> + Local helper function to unpack function argument names. +</p><dl> +<dt><i>args</i></dt> +<dd> +list of AST node arguments +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +list of argument names (list of string) +</dd> </dl> <div align="right"><a href="#top">Up</a></div> <hr />
--- a/Documentation/Source/eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html Sun Jan 05 22:45:29 2014 +0100 +++ b/Documentation/Source/eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html Wed Jan 15 22:55:52 2014 +0100 @@ -23,7 +23,7 @@ <h3>Global Attributes</h3> <table> -<tr><td>ARITHMETIC_OP</td></tr><tr><td>BENCHMARK_KEYS</td></tr><tr><td>COMMENT_WITH_NL</td></tr><tr><td>COMPARE_SINGLETON_REGEX</td></tr><tr><td>COMPARE_TYPE_REGEX</td></tr><tr><td>DEFAULT_EXCLUDE</td></tr><tr><td>DEFAULT_IGNORE</td></tr><tr><td>DOCSTRING_REGEX</td></tr><tr><td>ERRORCODE_REGEX</td></tr><tr><td>EXTRANEOUS_WHITESPACE_REGEX</td></tr><tr><td>HUNK_REGEX</td></tr><tr><td>INDENT_REGEX</td></tr><tr><td>KEYWORDS</td></tr><tr><td>KEYWORD_REGEX</td></tr><tr><td>LAMBDA_REGEX</td></tr><tr><td>MAX_LINE_LENGTH</td></tr><tr><td>OPERATOR_REGEX</td></tr><tr><td>PROJECT_CONFIG</td></tr><tr><td>PyCF_ONLY_AST</td></tr><tr><td>RAISE_COMMA_REGEX</td></tr><tr><td>REPORT_FORMAT</td></tr><tr><td>RERAISE_COMMA_REGEX</td></tr><tr><td>SINGLETONS</td></tr><tr><td>SKIP_TOKENS</td></tr><tr><td>TESTSUITE_PATH</td></tr><tr><td>UNARY_OPERATORS</td></tr><tr><td>WHITESPACE</td></tr><tr><td>WHITESPACE_AFTER_COMMA_REGEX</td></tr><tr><td>WS_NEEDED_OPERATORS</td></tr><tr><td>WS_OPTIONAL_OPERATORS</td></tr><tr><td>__version__</td></tr><tr><td>_checks</td></tr><tr><td>noqa</td></tr><tr><td>pep8_messages</td></tr><tr><td>pep8_messages_sample_args</td></tr> +<tr><td>ARITHMETIC_OP</td></tr><tr><td>BENCHMARK_KEYS</td></tr><tr><td>COMMENT_WITH_NL</td></tr><tr><td>COMPARE_SINGLETON_REGEX</td></tr><tr><td>COMPARE_TYPE_REGEX</td></tr><tr><td>DEFAULT_EXCLUDE</td></tr><tr><td>DEFAULT_IGNORE</td></tr><tr><td>DOCSTRING_REGEX</td></tr><tr><td>ERRORCODE_REGEX</td></tr><tr><td>EXTRANEOUS_WHITESPACE_REGEX</td></tr><tr><td>HUNK_REGEX</td></tr><tr><td>INDENT_REGEX</td></tr><tr><td>KEYWORDS</td></tr><tr><td>KEYWORD_REGEX</td></tr><tr><td>LAMBDA_REGEX</td></tr><tr><td>MAX_LINE_LENGTH</td></tr><tr><td>OPERATOR_REGEX</td></tr><tr><td>PROJECT_CONFIG</td></tr><tr><td>PyCF_ONLY_AST</td></tr><tr><td>QT_TRANSLATE_NOOP</td></tr><tr><td>RAISE_COMMA_REGEX</td></tr><tr><td>REPORT_FORMAT</td></tr><tr><td>RERAISE_COMMA_REGEX</td></tr><tr><td>SINGLETONS</td></tr><tr><td>SKIP_TOKENS</td></tr><tr><td>TESTSUITE_PATH</td></tr><tr><td>UNARY_OPERATORS</td></tr><tr><td>WHITESPACE</td></tr><tr><td>WHITESPACE_AFTER_COMMA_REGEX</td></tr><tr><td>WS_NEEDED_OPERATORS</td></tr><tr><td>WS_OPTIONAL_OPERATORS</td></tr><tr><td>__version__</td></tr><tr><td>_checks</td></tr><tr><td>noqa</td></tr><tr><td>pep8_messages</td></tr><tr><td>pep8_messages_sample_args</td></tr> </table> <h3>Classes</h3> <table>
--- a/Documentation/Source/eric5.Plugins.CheckerPlugins.Pep8.pep8.html Sun Jan 05 22:45:29 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1282 +0,0 @@ -<!DOCTYPE html> -<html><head> -<title>eric5.Plugins.CheckerPlugins.Pep8.pep8</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.Plugins.CheckerPlugins.Pep8.pep8</h1> - -<h3>Global Attributes</h3> -<table> -<tr><td>ARITHMETIC_OP</td></tr><tr><td>BENCHMARK_KEYS</td></tr><tr><td>COMMENT_WITH_NL</td></tr><tr><td>COMPARE_SINGLETON_REGEX</td></tr><tr><td>COMPARE_TYPE_REGEX</td></tr><tr><td>DEFAULT_EXCLUDE</td></tr><tr><td>DEFAULT_IGNORE</td></tr><tr><td>DOCSTRING_REGEX</td></tr><tr><td>ERRORCODE_REGEX</td></tr><tr><td>EXTRANEOUS_WHITESPACE_REGEX</td></tr><tr><td>HUNK_REGEX</td></tr><tr><td>INDENT_REGEX</td></tr><tr><td>KEYWORDS</td></tr><tr><td>KEYWORD_REGEX</td></tr><tr><td>LAMBDA_REGEX</td></tr><tr><td>MAX_LINE_LENGTH</td></tr><tr><td>OPERATOR_REGEX</td></tr><tr><td>PROJECT_CONFIG</td></tr><tr><td>PyCF_ONLY_AST</td></tr><tr><td>RAISE_COMMA_REGEX</td></tr><tr><td>REPORT_FORMAT</td></tr><tr><td>RERAISE_COMMA_REGEX</td></tr><tr><td>SINGLETONS</td></tr><tr><td>SKIP_TOKENS</td></tr><tr><td>TESTSUITE_PATH</td></tr><tr><td>UNARY_OPERATORS</td></tr><tr><td>WHITESPACE</td></tr><tr><td>WHITESPACE_AFTER_COMMA_REGEX</td></tr><tr><td>WS_NEEDED_OPERATORS</td></tr><tr><td>WS_OPTIONAL_OPERATORS</td></tr><tr><td>__version__</td></tr><tr><td>_checks</td></tr><tr><td>noqa</td></tr><tr><td>pep8_messages</td></tr><tr><td>pep8_messages_sample_args</td></tr> -</table> -<h3>Classes</h3> -<table> -<tr> -<td><a href="#BaseReport">BaseReport</a></td> -<td>Collect the results of the checks.</td> -</tr><tr> -<td><a href="#Checker">Checker</a></td> -<td>Load a Python source file, tokenize it, check coding style.</td> -</tr><tr> -<td><a href="#DiffReport">DiffReport</a></td> -<td>Collect and print the results for the changed lines only.</td> -</tr><tr> -<td><a href="#FileReport">FileReport</a></td> -<td>Collect the results of the checks and print only the filenames.</td> -</tr><tr> -<td><a href="#StandardReport">StandardReport</a></td> -<td>Collect and print the results of the checks.</td> -</tr><tr> -<td><a href="#StyleGuide">StyleGuide</a></td> -<td>Initialize a PEP-8 instance with few options.</td> -</tr> -</table> -<h3>Functions</h3> -<table> -<tr> -<td><a href="#_add_check">_add_check</a></td> -<td></td> -</tr><tr> -<td><a href="#_main">_main</a></td> -<td>Parse options and run checks on Python source.</td> -</tr><tr> -<td><a href="#blank_lines">blank_lines</a></td> -<td>Separate top-level function and class definitions with two blank lines.</td> -</tr><tr> -<td><a href="#comparison_to_singleton">comparison_to_singleton</a></td> -<td>Comparisons to singletons like None should always be done with "is" or "is not", never the equality operators.</td> -</tr><tr> -<td><a href="#comparison_type">comparison_type</a></td> -<td>Object type comparisons should always use isinstance() instead of comparing types directly.</td> -</tr><tr> -<td><a href="#compound_statements">compound_statements</a></td> -<td>Compound statements (multiple statements on the same line) are generally discouraged.</td> -</tr><tr> -<td><a href="#continued_indentation">continued_indentation</a></td> -<td>Continuation lines should align wrapped elements either vertically using Python's implicit line joining inside parentheses, brackets and braces, or using a hanging indent.</td> -</tr><tr> -<td><a href="#expand_indent">expand_indent</a></td> -<td>Return the amount of indentation.</td> -</tr><tr> -<td><a href="#explicit_line_join">explicit_line_join</a></td> -<td>Avoid explicit line join between brackets.</td> -</tr><tr> -<td><a href="#extraneous_whitespace">extraneous_whitespace</a></td> -<td>Avoid extraneous whitespace in the following situations:</td> -</tr><tr> -<td><a href="#filename_match">filename_match</a></td> -<td>Check if patterns contains a pattern that matches filename.</td> -</tr><tr> -<td><a href="#getMessage">getMessage</a></td> -<td>Function to get a translated and formatted message for a given code.</td> -</tr><tr> -<td><a href="#get_parser">get_parser</a></td> -<td></td> -</tr><tr> -<td><a href="#imports_on_separate_lines">imports_on_separate_lines</a></td> -<td>Imports should usually be on separate lines.</td> -</tr><tr> -<td><a href="#indentation">indentation</a></td> -<td>Use 4 spaces per indentation level.</td> -</tr><tr> -<td><a href="#init_checks_registry">init_checks_registry</a></td> -<td>Register all globally visible functions where the first argument name is 'physical_line' or 'logical_line'.</td> -</tr><tr> -<td><a href="#maximum_line_length">maximum_line_length</a></td> -<td>Limit all lines to a maximum of 79 characters.</td> -</tr><tr> -<td><a href="#missing_newline">missing_newline</a></td> -<td>JCR: The last line should have a newline.</td> -</tr><tr> -<td><a href="#missing_whitespace">missing_whitespace</a></td> -<td>JCR: Each comma, semicolon or colon should be followed by whitespace.</td> -</tr><tr> -<td><a href="#missing_whitespace_around_operator">missing_whitespace_around_operator</a></td> -<td>- Always surround these binary operators with a single space on either side: assignment (=), augmented assignment (+=, -= etc.), comparisons (==, <, >, !=, <>, <=, >=, in, not in, is, is not), Booleans (and, or, not).</td> -</tr><tr> -<td><a href="#mute_string">mute_string</a></td> -<td>Replace contents with 'xxx' to prevent syntax matching.</td> -</tr><tr> -<td><a href="#parse_udiff">parse_udiff</a></td> -<td>Return a dictionary of matching lines.</td> -</tr><tr> -<td><a href="#process_options">process_options</a></td> -<td>Process options passed either via arglist or via command line args.</td> -</tr><tr> -<td><a href="#python_3000_backticks">python_3000_backticks</a></td> -<td>Backticks are removed in Python 3.</td> -</tr><tr> -<td><a href="#python_3000_has_key">python_3000_has_key</a></td> -<td>The {}.has_key() method is removed in the Python 3.</td> -</tr><tr> -<td><a href="#python_3000_not_equal">python_3000_not_equal</a></td> -<td>!= can also be written <>, but this is an obsolete usage kept for backwards compatibility only.</td> -</tr><tr> -<td><a href="#python_3000_raise_comma">python_3000_raise_comma</a></td> -<td>When raising an exception, use "raise ValueError('message')" instead of the older form "raise ValueError, 'message'".</td> -</tr><tr> -<td><a href="#read_config">read_config</a></td> -<td>Read both user configuration and local configuration.</td> -</tr><tr> -<td><a href="#readlines">readlines</a></td> -<td></td> -</tr><tr> -<td><a href="#readlines_1">readlines</a></td> -<td></td> -</tr><tr> -<td><a href="#register_check">register_check</a></td> -<td>Register a new check object.</td> -</tr><tr> -<td><a href="#stdin_get_value">stdin_get_value</a></td> -<td></td> -</tr><tr> -<td><a href="#tabs_obsolete">tabs_obsolete</a></td> -<td>For new projects, spaces-only are strongly recommended over tabs.</td> -</tr><tr> -<td><a href="#tabs_or_spaces">tabs_or_spaces</a></td> -<td>Never mix tabs and spaces.</td> -</tr><tr> -<td><a href="#trailing_blank_lines">trailing_blank_lines</a></td> -<td>JCR: Trailing blank lines are superfluous.</td> -</tr><tr> -<td><a href="#trailing_whitespace">trailing_whitespace</a></td> -<td>JCR: Trailing whitespace is superfluous.</td> -</tr><tr> -<td><a href="#whitespace_around_comma">whitespace_around_comma</a></td> -<td>Avoid extraneous whitespace in the following situations:</td> -</tr><tr> -<td><a href="#whitespace_around_keywords">whitespace_around_keywords</a></td> -<td>Avoid extraneous whitespace around keywords.</td> -</tr><tr> -<td><a href="#whitespace_around_named_parameter_equals">whitespace_around_named_parameter_equals</a></td> -<td>Don't use spaces around the '=' sign when used to indicate a keyword argument or a default parameter value.</td> -</tr><tr> -<td><a href="#whitespace_around_operator">whitespace_around_operator</a></td> -<td>Avoid extraneous whitespace in the following situations:</td> -</tr><tr> -<td><a href="#whitespace_before_inline_comment">whitespace_before_inline_comment</a></td> -<td>Separate inline comments by at least two spaces.</td> -</tr><tr> -<td><a href="#whitespace_before_parameters">whitespace_before_parameters</a></td> -<td>Avoid extraneous whitespace in the following situations:</td> -</tr> -</table> -<hr /><hr /> -<a NAME="BaseReport" ID="BaseReport"></a> -<h2>BaseReport</h2> -<p> -Collect the results of the checks. -</p> -<h3>Derived from</h3> -object -<h3>Class Attributes</h3> -<table> -<tr><td>print_filename</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#BaseReport.__init__">BaseReport</a></td> -<td></td> -</tr><tr> -<td><a href="#BaseReport.error">error</a></td> -<td>Report an error, according to options.</td> -</tr><tr> -<td><a href="#BaseReport.error_args">error_args</a></td> -<td>Report an error, according to options.</td> -</tr><tr> -<td><a href="#BaseReport.get_count">get_count</a></td> -<td>Return the total count of errors and warnings.</td> -</tr><tr> -<td><a href="#BaseReport.get_file_results">get_file_results</a></td> -<td>Return the count of errors and warnings for this file.</td> -</tr><tr> -<td><a href="#BaseReport.get_statistics">get_statistics</a></td> -<td>Get statistics for message codes that start with the prefix.</td> -</tr><tr> -<td><a href="#BaseReport.increment_logical_line">increment_logical_line</a></td> -<td>Signal a new logical line.</td> -</tr><tr> -<td><a href="#BaseReport.init_file">init_file</a></td> -<td>Signal a new file.</td> -</tr><tr> -<td><a href="#BaseReport.print_benchmark">print_benchmark</a></td> -<td>Print benchmark numbers.</td> -</tr><tr> -<td><a href="#BaseReport.print_statistics">print_statistics</a></td> -<td>Print overall statistics (number of errors and warnings).</td> -</tr><tr> -<td><a href="#BaseReport.start">start</a></td> -<td>Start the timer.</td> -</tr><tr> -<td><a href="#BaseReport.stop">stop</a></td> -<td>Stop the timer.</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="BaseReport.__init__" ID="BaseReport.__init__"></a> -<h4>BaseReport (Constructor)</h4> -<b>BaseReport</b>(<i>options</i>) -<a NAME="BaseReport.error" ID="BaseReport.error"></a> -<h4>BaseReport.error</h4> -<b>error</b>(<i>line_number, offset, text, check</i>) -<p> -Report an error, according to options. -</p><a NAME="BaseReport.error_args" ID="BaseReport.error_args"></a> -<h4>BaseReport.error_args</h4> -<b>error_args</b>(<i>line_number, offset, code, check, *args</i>) -<p> -Report an error, according to options. -</p><a NAME="BaseReport.get_count" ID="BaseReport.get_count"></a> -<h4>BaseReport.get_count</h4> -<b>get_count</b>(<i>prefix=''</i>) -<p> -Return the total count of errors and warnings. -</p><a NAME="BaseReport.get_file_results" ID="BaseReport.get_file_results"></a> -<h4>BaseReport.get_file_results</h4> -<b>get_file_results</b>(<i></i>) -<p> -Return the count of errors and warnings for this file. -</p><a NAME="BaseReport.get_statistics" ID="BaseReport.get_statistics"></a> -<h4>BaseReport.get_statistics</h4> -<b>get_statistics</b>(<i>prefix=''</i>) -<p> - Get statistics for message codes that start with the prefix. -</p><p> - prefix='' matches all errors and warnings - prefix='E' matches all errors - prefix='W' matches all warnings - prefix='E4' matches all errors that have to do with imports -</p><a NAME="BaseReport.increment_logical_line" ID="BaseReport.increment_logical_line"></a> -<h4>BaseReport.increment_logical_line</h4> -<b>increment_logical_line</b>(<i></i>) -<p> -Signal a new logical line. -</p><a NAME="BaseReport.init_file" ID="BaseReport.init_file"></a> -<h4>BaseReport.init_file</h4> -<b>init_file</b>(<i>filename, lines, expected, line_offset</i>) -<p> -Signal a new file. -</p><a NAME="BaseReport.print_benchmark" ID="BaseReport.print_benchmark"></a> -<h4>BaseReport.print_benchmark</h4> -<b>print_benchmark</b>(<i></i>) -<p> -Print benchmark numbers. -</p><a NAME="BaseReport.print_statistics" ID="BaseReport.print_statistics"></a> -<h4>BaseReport.print_statistics</h4> -<b>print_statistics</b>(<i>prefix=''</i>) -<p> -Print overall statistics (number of errors and warnings). -</p><a NAME="BaseReport.start" ID="BaseReport.start"></a> -<h4>BaseReport.start</h4> -<b>start</b>(<i></i>) -<p> -Start the timer. -</p><a NAME="BaseReport.stop" ID="BaseReport.stop"></a> -<h4>BaseReport.stop</h4> -<b>stop</b>(<i></i>) -<p> -Stop the timer. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="Checker" ID="Checker"></a> -<h2>Checker</h2> -<p> - Load a Python source file, tokenize it, check coding style. -</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="#Checker.__init__">Checker</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.build_tokens_line">build_tokens_line</a></td> -<td>Build a logical line from tokens.</td> -</tr><tr> -<td><a href="#Checker.check_all">check_all</a></td> -<td>Run all checks on the input file.</td> -</tr><tr> -<td><a href="#Checker.check_ast">check_ast</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.check_logical">check_logical</a></td> -<td>Build a line from tokens and run all logical checks on it.</td> -</tr><tr> -<td><a href="#Checker.check_physical">check_physical</a></td> -<td>Run all physical checks on a raw input line.</td> -</tr><tr> -<td><a href="#Checker.generate_tokens">generate_tokens</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.readline">readline</a></td> -<td>Get the next line from the input buffer.</td> -</tr><tr> -<td><a href="#Checker.readline_check_physical">readline_check_physical</a></td> -<td>Check and return the next physical line.</td> -</tr><tr> -<td><a href="#Checker.report_invalid_syntax">report_invalid_syntax</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.run_check">run_check</a></td> -<td>Run a check plugin.</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="Checker.__init__" ID="Checker.__init__"></a> -<h4>Checker (Constructor)</h4> -<b>Checker</b>(<i>filename=None, lines=None, options=None, report=None, **kwargs</i>) -<a NAME="Checker.build_tokens_line" ID="Checker.build_tokens_line"></a> -<h4>Checker.build_tokens_line</h4> -<b>build_tokens_line</b>(<i></i>) -<p> - Build a logical line from tokens. -</p><a NAME="Checker.check_all" ID="Checker.check_all"></a> -<h4>Checker.check_all</h4> -<b>check_all</b>(<i>expected=None, line_offset=0</i>) -<p> - Run all checks on the input file. -</p><a NAME="Checker.check_ast" ID="Checker.check_ast"></a> -<h4>Checker.check_ast</h4> -<b>check_ast</b>(<i></i>) -<a NAME="Checker.check_logical" ID="Checker.check_logical"></a> -<h4>Checker.check_logical</h4> -<b>check_logical</b>(<i></i>) -<p> - Build a line from tokens and run all logical checks on it. -</p><a NAME="Checker.check_physical" ID="Checker.check_physical"></a> -<h4>Checker.check_physical</h4> -<b>check_physical</b>(<i>line</i>) -<p> - Run all physical checks on a raw input line. -</p><a NAME="Checker.generate_tokens" ID="Checker.generate_tokens"></a> -<h4>Checker.generate_tokens</h4> -<b>generate_tokens</b>(<i></i>) -<a NAME="Checker.readline" ID="Checker.readline"></a> -<h4>Checker.readline</h4> -<b>readline</b>(<i></i>) -<p> - Get the next line from the input buffer. -</p><a NAME="Checker.readline_check_physical" ID="Checker.readline_check_physical"></a> -<h4>Checker.readline_check_physical</h4> -<b>readline_check_physical</b>(<i></i>) -<p> - Check and return the next physical line. This method can be - used to feed tokenize.generate_tokens. -</p><a NAME="Checker.report_invalid_syntax" ID="Checker.report_invalid_syntax"></a> -<h4>Checker.report_invalid_syntax</h4> -<b>report_invalid_syntax</b>(<i></i>) -<a NAME="Checker.run_check" ID="Checker.run_check"></a> -<h4>Checker.run_check</h4> -<b>run_check</b>(<i>check, argument_names</i>) -<p> - Run a check plugin. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="DiffReport" ID="DiffReport"></a> -<h2>DiffReport</h2> -<p> -Collect and print the results for the changed lines only. -</p> -<h3>Derived from</h3> -StandardReport -<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="#DiffReport.__init__">DiffReport</a></td> -<td></td> -</tr><tr> -<td><a href="#DiffReport.error">error</a></td> -<td></td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="DiffReport.__init__" ID="DiffReport.__init__"></a> -<h4>DiffReport (Constructor)</h4> -<b>DiffReport</b>(<i>options</i>) -<a NAME="DiffReport.error" ID="DiffReport.error"></a> -<h4>DiffReport.error</h4> -<b>error</b>(<i>line_number, offset, text, check</i>) - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="FileReport" ID="FileReport"></a> -<h2>FileReport</h2> -<p> -Collect the results of the checks and print only the filenames. -</p> -<h3>Derived from</h3> -BaseReport -<h3>Class Attributes</h3> -<table> -<tr><td>print_filename</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="StandardReport" ID="StandardReport"></a> -<h2>StandardReport</h2> -<p> -Collect and print the results of the checks. -</p> -<h3>Derived from</h3> -BaseReport -<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="#StandardReport.__init__">StandardReport</a></td> -<td></td> -</tr><tr> -<td><a href="#StandardReport.error">error</a></td> -<td>Report an error, according to options.</td> -</tr><tr> -<td><a href="#StandardReport.error_args">error_args</a></td> -<td>Report an error, according to options.</td> -</tr><tr> -<td><a href="#StandardReport.get_file_results">get_file_results</a></td> -<td>Print the result and return the overall count for this file.</td> -</tr><tr> -<td><a href="#StandardReport.init_file">init_file</a></td> -<td>Signal a new file.</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="StandardReport.__init__" ID="StandardReport.__init__"></a> -<h4>StandardReport (Constructor)</h4> -<b>StandardReport</b>(<i>options</i>) -<a NAME="StandardReport.error" ID="StandardReport.error"></a> -<h4>StandardReport.error</h4> -<b>error</b>(<i>line_number, offset, text, check</i>) -<p> -Report an error, according to options. -</p><a NAME="StandardReport.error_args" ID="StandardReport.error_args"></a> -<h4>StandardReport.error_args</h4> -<b>error_args</b>(<i>line_number, offset, code, check, *args</i>) -<p> -Report an error, according to options. -</p><a NAME="StandardReport.get_file_results" ID="StandardReport.get_file_results"></a> -<h4>StandardReport.get_file_results</h4> -<b>get_file_results</b>(<i></i>) -<p> -Print the result and return the overall count for this file. -</p><a NAME="StandardReport.init_file" ID="StandardReport.init_file"></a> -<h4>StandardReport.init_file</h4> -<b>init_file</b>(<i>filename, lines, expected, line_offset</i>) -<p> -Signal a new file. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="StyleGuide" ID="StyleGuide"></a> -<h2>StyleGuide</h2> -<p> -Initialize a PEP-8 instance with few options. -</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="#StyleGuide.__init__">StyleGuide</a></td> -<td></td> -</tr><tr> -<td><a href="#StyleGuide.check_files">check_files</a></td> -<td>Run all checks on the paths.</td> -</tr><tr> -<td><a href="#StyleGuide.excluded">excluded</a></td> -<td>Check if options.exclude contains a pattern that matches filename.</td> -</tr><tr> -<td><a href="#StyleGuide.get_checks">get_checks</a></td> -<td>Find all globally visible functions where the first argument name starts with argument_name and which contain selected tests.</td> -</tr><tr> -<td><a href="#StyleGuide.ignore_code">ignore_code</a></td> -<td>Check if the error code should be ignored.</td> -</tr><tr> -<td><a href="#StyleGuide.init_report">init_report</a></td> -<td>Initialize the report instance.</td> -</tr><tr> -<td><a href="#StyleGuide.input_dir">input_dir</a></td> -<td>Check all files in this directory and all subdirectories.</td> -</tr><tr> -<td><a href="#StyleGuide.input_file">input_file</a></td> -<td>Run all checks on a Python source file.</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="StyleGuide.__init__" ID="StyleGuide.__init__"></a> -<h4>StyleGuide (Constructor)</h4> -<b>StyleGuide</b>(<i>*args, **kwargs</i>) -<a NAME="StyleGuide.check_files" ID="StyleGuide.check_files"></a> -<h4>StyleGuide.check_files</h4> -<b>check_files</b>(<i>paths=None</i>) -<p> -Run all checks on the paths. -</p><a NAME="StyleGuide.excluded" ID="StyleGuide.excluded"></a> -<h4>StyleGuide.excluded</h4> -<b>excluded</b>(<i>filename, parent=None</i>) -<p> - Check if options.exclude contains a pattern that matches filename. -</p><a NAME="StyleGuide.get_checks" ID="StyleGuide.get_checks"></a> -<h4>StyleGuide.get_checks</h4> -<b>get_checks</b>(<i>argument_name</i>) -<p> - Find all globally visible functions where the first argument name - starts with argument_name and which contain selected tests. -</p><a NAME="StyleGuide.ignore_code" ID="StyleGuide.ignore_code"></a> -<h4>StyleGuide.ignore_code</h4> -<b>ignore_code</b>(<i>code</i>) -<p> - Check if the error code should be ignored. -</p><p> - If 'options.select' contains a prefix of the error code, - return False. Else, if 'options.ignore' contains a prefix of - the error code, return True. -</p><a NAME="StyleGuide.init_report" ID="StyleGuide.init_report"></a> -<h4>StyleGuide.init_report</h4> -<b>init_report</b>(<i>reporter=None</i>) -<p> -Initialize the report instance. -</p><a NAME="StyleGuide.input_dir" ID="StyleGuide.input_dir"></a> -<h4>StyleGuide.input_dir</h4> -<b>input_dir</b>(<i>dirname</i>) -<p> -Check all files in this directory and all subdirectories. -</p><a NAME="StyleGuide.input_file" ID="StyleGuide.input_file"></a> -<h4>StyleGuide.input_file</h4> -<b>input_file</b>(<i>filename, lines=None, expected=None, line_offset=0</i>) -<p> -Run all checks on a Python source file. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="_add_check" ID="_add_check"></a> -<h2>_add_check</h2> -<b>_add_check</b>(<i>check, kind, codes, args</i>) - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="_main" ID="_main"></a> -<h2>_main</h2> -<b>_main</b>(<i></i>) -<p> -Parse options and run checks on Python source. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="blank_lines" ID="blank_lines"></a> -<h2>blank_lines</h2> -<b>blank_lines</b>(<i>logical_line, blank_lines, indent_level, line_number, previous_logical, previous_indent_level</i>) -<p> - Separate top-level function and class definitions with two blank lines. -</p><p> - Method definitions inside a class are separated by a single blank line. -</p><p> - Extra blank lines may be used (sparingly) to separate groups of related - functions. Blank lines may be omitted between a bunch of related - one-liners (e.g. a set of dummy implementations). -</p><p> - Use blank lines in functions, sparingly, to indicate logical sections. -</p><p> - Okay: def a():\n pass\n\n\ndef b():\n pass - Okay: def a():\n pass\n\n\n# Foo\n# Bar\n\ndef b():\n pass -</p><p> - E301: class Foo:\n b = 0\n def bar():\n pass - E302: def a():\n pass\n\ndef b(n):\n pass - E303: def a():\n pass\n\n\n\ndef b(n):\n pass - E303: def a():\n\n\n\n pass - E304: @decorator\n\ndef a():\n pass -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="comparison_to_singleton" ID="comparison_to_singleton"></a> -<h2>comparison_to_singleton</h2> -<b>comparison_to_singleton</b>(<i>logical_line, noqa</i>) -<p> - Comparisons to singletons like None should always be done - with "is" or "is not", never the equality operators. -</p><p> - Okay: if arg is not None: - E711: if arg != None: - E712: if arg == True: -</p><p> - Also, beware of writing if x when you really mean if x is not None -- - e.g. when testing whether a variable or argument that defaults to None was - set to some other value. The other value might have a type (such as a - container) that could be false in a boolean context! -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="comparison_type" ID="comparison_type"></a> -<h2>comparison_type</h2> -<b>comparison_type</b>(<i>logical_line</i>) -<p> - Object type comparisons should always use isinstance() instead of - comparing types directly. -</p><p> - Okay: if isinstance(obj, int): - E721: if type(obj) is type(1): -</p><p> - When checking if an object is a string, keep in mind that it might be a - unicode string too! In Python 2.3, str and unicode have a common base - class, basestring, so you can do: -</p><p> - Okay: if isinstance(obj, basestring): - Okay: if type(a1) is type(b1): -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="compound_statements" ID="compound_statements"></a> -<h2>compound_statements</h2> -<b>compound_statements</b>(<i>logical_line</i>) -<p> - Compound statements (multiple statements on the same line) are - generally discouraged. -</p><p> - While sometimes it's okay to put an if/for/while with a small body - on the same line, never do this for multi-clause statements. Also - avoid folding such long lines! -</p><p> - Okay: if foo == 'blah':\n do_blah_thing() - Okay: do_one() - Okay: do_two() - Okay: do_three() -</p><p> - E701: if foo == 'blah': do_blah_thing() - E701: for x in lst: total += x - E701: while t < 10: t = delay() - E701: if foo == 'blah': do_blah_thing() - E701: else: do_non_blah_thing() - E701: try: something() - E701: finally: cleanup() - E701: if foo == 'blah': one(); two(); three() -</p><p> - E702: do_one(); do_two(); do_three() - E703: do_four(); # useless semicolon -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="continued_indentation" ID="continued_indentation"></a> -<h2>continued_indentation</h2> -<b>continued_indentation</b>(<i>logical_line, tokens, indent_level, hang_closing, noqa, verbose</i>) -<p> - Continuation lines should align wrapped elements either vertically using - Python's implicit line joining inside parentheses, brackets and braces, or - using a hanging indent. -</p><p> - When using a hanging indent the following considerations should be applied: -</p><p> - - there should be no arguments on the first line, and -</p><p> - - further indentation should be used to clearly distinguish itself as a - continuation line. -</p><p> - Okay: a = (\n) - E123: a = (\n ) -</p><p> - Okay: a = (\n 42) - E121: a = (\n 42) - E122: a = (\n42) - E123: a = (\n 42\n ) - E124: a = (24,\n 42\n) - E125: if (a or\n b):\n pass - E126: a = (\n 42) - E127: a = (24,\n 42) - E128: a = (24,\n 42) -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="expand_indent" ID="expand_indent"></a> -<h2>expand_indent</h2> -<b>expand_indent</b>(<i>line</i>) -<p> - Return the amount of indentation. - Tabs are expanded to the next multiple of 8. -</p><p> - >>> expand_indent(' ') - 4 - >>> expand_indent('\t') - 8 - >>> expand_indent(' \t') - 8 - >>> expand_indent(' \t') - 8 - >>> expand_indent(' \t') - 16 -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="explicit_line_join" ID="explicit_line_join"></a> -<h2>explicit_line_join</h2> -<b>explicit_line_join</b>(<i>logical_line, tokens</i>) -<p> - Avoid explicit line join between brackets. -</p><p> - The preferred way of wrapping long lines is by using Python's implied line - continuation inside parentheses, brackets and braces. Long lines can be - broken over multiple lines by wrapping expressions in parentheses. These - should be used in preference to using a backslash for line continuation. -</p><p> - E502: aaa = [123, \\n 123] - E502: aaa = ("bbb " \\n "ccc") -</p><p> - Okay: aaa = [123,\n 123] - Okay: aaa = ("bbb "\n "ccc") - Okay: aaa = "bbb " \\n "ccc" -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="extraneous_whitespace" ID="extraneous_whitespace"></a> -<h2>extraneous_whitespace</h2> -<b>extraneous_whitespace</b>(<i>logical_line</i>) -<p> - Avoid extraneous whitespace in the following situations: -</p><p> - - Immediately inside parentheses, brackets or braces. -</p><p> - - Immediately before a comma, semicolon, or colon. -</p><p> - Okay: spam(ham[1], {eggs: 2}) - E201: spam( ham[1], {eggs: 2}) - E201: spam(ham[ 1], {eggs: 2}) - E201: spam(ham[1], { eggs: 2}) - E202: spam(ham[1], {eggs: 2} ) - E202: spam(ham[1 ], {eggs: 2}) - E202: spam(ham[1], {eggs: 2 }) -</p><p> - E203: if x == 4: print x, y; x, y = y , x - E203: if x == 4: print x, y ; x, y = y, x - E203: if x == 4 : print x, y; x, y = y, x -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="filename_match" ID="filename_match"></a> -<h2>filename_match</h2> -<b>filename_match</b>(<i>filename, patterns, default=True</i>) -<p> - Check if patterns contains a pattern that matches filename. - If patterns is unspecified, this always returns True. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="getMessage" ID="getMessage"></a> -<h2>getMessage</h2> -<b>getMessage</b>(<i>code, *args</i>) -<p> - Function to get a translated and formatted message for a given code. -</p><dl> -<dt><i>code</i></dt> -<dd> -message code (string) -</dd><dt><i>args</i></dt> -<dd> -arguments for a formatted message (list) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -translated and formatted message (string) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="get_parser" ID="get_parser"></a> -<h2>get_parser</h2> -<b>get_parser</b>(<i>prog='pep8', version=__version__</i>) - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="imports_on_separate_lines" ID="imports_on_separate_lines"></a> -<h2>imports_on_separate_lines</h2> -<b>imports_on_separate_lines</b>(<i>logical_line</i>) -<p> - Imports should usually be on separate lines. -</p><p> - Okay: import os\nimport sys - E401: import sys, os -</p><p> - Okay: from subprocess import Popen, PIPE - Okay: from myclas import MyClass - Okay: from foo.bar.yourclass import YourClass - Okay: import myclass - Okay: import foo.bar.yourclass -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="indentation" ID="indentation"></a> -<h2>indentation</h2> -<b>indentation</b>(<i>logical_line, previous_logical, indent_char, indent_level, previous_indent_level</i>) -<p> - Use 4 spaces per indentation level. -</p><p> - For really old code that you don't want to mess up, you can continue to - use 8-space tabs. -</p><p> - Okay: a = 1 - Okay: if a == 0:\n a = 1 - E111: a = 1 -</p><p> - Okay: for item in items:\n pass - E112: for item in items:\npass -</p><p> - Okay: a = 1\nb = 2 - E113: a = 1\n b = 2 -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="init_checks_registry" ID="init_checks_registry"></a> -<h2>init_checks_registry</h2> -<b>init_checks_registry</b>(<i></i>) -<p> - Register all globally visible functions where the first argument name - is 'physical_line' or 'logical_line'. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="maximum_line_length" ID="maximum_line_length"></a> -<h2>maximum_line_length</h2> -<b>maximum_line_length</b>(<i>physical_line, max_line_length</i>) -<p> - Limit all lines to a maximum of 79 characters. -</p><p> - There are still many devices around that are limited to 80 character - lines; plus, limiting windows to 80 characters makes it possible to have - several windows side-by-side. The default wrapping on such devices looks - ugly. Therefore, please limit all lines to a maximum of 79 characters. - For flowing long blocks of text (docstrings or comments), limiting the - length to 72 characters is recommended. -</p><p> - Reports error E501. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="missing_newline" ID="missing_newline"></a> -<h2>missing_newline</h2> -<b>missing_newline</b>(<i>physical_line</i>) -<p> - JCR: The last line should have a newline. -</p><p> - Reports warning W292. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="missing_whitespace" ID="missing_whitespace"></a> -<h2>missing_whitespace</h2> -<b>missing_whitespace</b>(<i>logical_line</i>) -<p> - JCR: Each comma, semicolon or colon should be followed by whitespace. -</p><p> - Okay: [a, b] - Okay: (3,) - Okay: a[1:4] - Okay: a[:4] - Okay: a[1:] - Okay: a[1:4:2] - E231: ['a','b'] - E231: foo(bar,baz) - E231: [{'a':'b'}] -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="missing_whitespace_around_operator" ID="missing_whitespace_around_operator"></a> -<h2>missing_whitespace_around_operator</h2> -<b>missing_whitespace_around_operator</b>(<i>logical_line, tokens</i>) -<p> - - Always surround these binary operators with a single space on - either side: assignment (=), augmented assignment (+=, -= etc.), - comparisons (==, <, >, !=, <>, <=, >=, in, not in, is, is not), - Booleans (and, or, not). -</p><p> - - Use spaces around arithmetic operators. -</p><p> - Okay: i = i + 1 - Okay: submitted += 1 - Okay: x = x * 2 - 1 - Okay: hypot2 = x * x + y * y - Okay: c = (a + b) * (a - b) - Okay: foo(bar, key='word', *args, **kwargs) - Okay: alpha[:-i] -</p><p> - E225: i=i+1 - E225: submitted +=1 - E225: x = x /2 - 1 - E225: z = x **y - E226: c = (a+b) * (a-b) - E226: hypot2 = x*x + y*y - E227: c = a|b - E228: msg = fmt%(errno, errmsg) -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="mute_string" ID="mute_string"></a> -<h2>mute_string</h2> -<b>mute_string</b>(<i>text</i>) -<p> - Replace contents with 'xxx' to prevent syntax matching. -</p><p> - >>> mute_string('"abc"') - '"xxx"' - >>> mute_string("'''abc'''") - "'''xxx'''" - >>> mute_string("r'abc'") - "r'xxx'" -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="parse_udiff" ID="parse_udiff"></a> -<h2>parse_udiff</h2> -<b>parse_udiff</b>(<i>diff, patterns=None, parent='.'</i>) -<p> -Return a dictionary of matching lines. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="process_options" ID="process_options"></a> -<h2>process_options</h2> -<b>process_options</b>(<i>arglist=None, parse_argv=False, config_file=None, parser=None</i>) -<p> -Process options passed either via arglist or via command line args. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="python_3000_backticks" ID="python_3000_backticks"></a> -<h2>python_3000_backticks</h2> -<b>python_3000_backticks</b>(<i>logical_line</i>) -<p> - Backticks are removed in Python 3. - Use repr() instead. -</p><p> - Okay: val = repr(1 + 2) - W604: val = `1 + 2` -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="python_3000_has_key" ID="python_3000_has_key"></a> -<h2>python_3000_has_key</h2> -<b>python_3000_has_key</b>(<i>logical_line</i>) -<p> - The {}.has_key() method is removed in the Python 3. - Use the 'in' operation instead. -</p><p> - Okay: if "alph" in d:\n print d["alph"] - W601: assert d.has_key('alph') -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="python_3000_not_equal" ID="python_3000_not_equal"></a> -<h2>python_3000_not_equal</h2> -<b>python_3000_not_equal</b>(<i>logical_line</i>) -<p> - != can also be written <>, but this is an obsolete usage kept for - backwards compatibility only. New code should always use !=. - The older syntax is removed in Python 3. -</p><p> - Okay: if a != 'no': - W603: if a <> 'no': -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="python_3000_raise_comma" ID="python_3000_raise_comma"></a> -<h2>python_3000_raise_comma</h2> -<b>python_3000_raise_comma</b>(<i>logical_line</i>) -<p> - When raising an exception, use "raise ValueError('message')" - instead of the older form "raise ValueError, 'message'". -</p><p> - The paren-using form is preferred because when the exception arguments - are long or include string formatting, you don't need to use line - continuation characters thanks to the containing parentheses. The older - form is removed in Python 3. -</p><p> - Okay: raise DummyError("Message") - W602: raise DummyError, "Message" -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="read_config" ID="read_config"></a> -<h2>read_config</h2> -<b>read_config</b>(<i>options, args, arglist, parser</i>) -<p> -Read both user configuration and local configuration. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="readlines" ID="readlines"></a> -<h2>readlines</h2> -<b>readlines</b>(<i>filename</i>) - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="readlines_1" ID="readlines_1"></a> -<h2>readlines</h2> -<b>readlines</b>(<i>filename</i>) - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="register_check" ID="register_check"></a> -<h2>register_check</h2> -<b>register_check</b>(<i>check, codes=None</i>) -<p> - Register a new check object. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="stdin_get_value" ID="stdin_get_value"></a> -<h2>stdin_get_value</h2> -<b>stdin_get_value</b>(<i></i>) - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="tabs_obsolete" ID="tabs_obsolete"></a> -<h2>tabs_obsolete</h2> -<b>tabs_obsolete</b>(<i>physical_line</i>) -<p> - For new projects, spaces-only are strongly recommended over tabs. Most - editors have features that make this easy to do. -</p><p> - Okay: if True:\n return - W191: if True:\n\treturn -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="tabs_or_spaces" ID="tabs_or_spaces"></a> -<h2>tabs_or_spaces</h2> -<b>tabs_or_spaces</b>(<i>physical_line, indent_char</i>) -<p> - Never mix tabs and spaces. -</p><p> - The most popular way of indenting Python is with spaces only. The - second-most popular way is with tabs only. Code indented with a mixture - of tabs and spaces should be converted to using spaces exclusively. When - invoking the Python command line interpreter with the -t option, it issues - warnings about code that illegally mixes tabs and spaces. When using -tt - these warnings become errors. These options are highly recommended! -</p><p> - Okay: if a == 0:\n a = 1\n b = 1 - E101: if a == 0:\n a = 1\n\tb = 1 -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="trailing_blank_lines" ID="trailing_blank_lines"></a> -<h2>trailing_blank_lines</h2> -<b>trailing_blank_lines</b>(<i>physical_line, lines, line_number</i>) -<p> - JCR: Trailing blank lines are superfluous. -</p><p> - Okay: spam(1) - W391: spam(1)\n -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="trailing_whitespace" ID="trailing_whitespace"></a> -<h2>trailing_whitespace</h2> -<b>trailing_whitespace</b>(<i>physical_line</i>) -<p> - JCR: Trailing whitespace is superfluous. - FBM: Except when it occurs as part of a blank line (i.e. the line is - nothing but whitespace). According to Python docs[1] a line with only - whitespace is considered a blank line, and is to be ignored. However, - matching a blank line to its indentation level avoids mistakenly - terminating a multi-line statement (e.g. class declaration) when - pasting code into the standard Python interpreter. -</p><p> - [1] http://docs.python.org/reference/lexical_analysis.html#blank-lines -</p><p> - The warning returned varies on whether the line itself is blank, for easier - filtering for those who want to indent their blank lines. -</p><p> - Okay: spam(1)\n# - W291: spam(1) \n# - W293: class Foo(object):\n \n bang = 12 -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="whitespace_around_comma" ID="whitespace_around_comma"></a> -<h2>whitespace_around_comma</h2> -<b>whitespace_around_comma</b>(<i>logical_line</i>) -<p> - Avoid extraneous whitespace in the following situations: -</p><p> - - More than one space around an assignment (or other) operator to - align it with another. -</p><p> - JCR: This should also be applied around comma etc. - Note: these checks are disabled by default -</p><p> - Okay: a = (1, 2) - E241: a = (1, 2) - E242: a = (1,\t2) -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="whitespace_around_keywords" ID="whitespace_around_keywords"></a> -<h2>whitespace_around_keywords</h2> -<b>whitespace_around_keywords</b>(<i>logical_line</i>) -<p> - Avoid extraneous whitespace around keywords. -</p><p> - Okay: True and False - E271: True and False - E272: True and False - E273: True and\tFalse - E274: True\tand False -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="whitespace_around_named_parameter_equals" ID="whitespace_around_named_parameter_equals"></a> -<h2>whitespace_around_named_parameter_equals</h2> -<b>whitespace_around_named_parameter_equals</b>(<i>logical_line, tokens</i>) -<p> - Don't use spaces around the '=' sign when used to indicate a - keyword argument or a default parameter value. -</p><p> - Okay: def complex(real, imag=0.0): - Okay: return magic(r=real, i=imag) - Okay: boolean(a == b) - Okay: boolean(a != b) - Okay: boolean(a <= b) - Okay: boolean(a >= b) -</p><p> - E251: def complex(real, imag = 0.0): - E251: return magic(r = real, i = imag) -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="whitespace_around_operator" ID="whitespace_around_operator"></a> -<h2>whitespace_around_operator</h2> -<b>whitespace_around_operator</b>(<i>logical_line</i>) -<p> - Avoid extraneous whitespace in the following situations: -</p><p> - - More than one space around an assignment (or other) operator to - align it with another. -</p><p> - Okay: a = 12 + 3 - E221: a = 4 + 5 - E222: a = 4 + 5 - E223: a = 4\t+ 5 - E224: a = 4 +\t5 -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="whitespace_before_inline_comment" ID="whitespace_before_inline_comment"></a> -<h2>whitespace_before_inline_comment</h2> -<b>whitespace_before_inline_comment</b>(<i>logical_line, tokens</i>) -<p> - Separate inline comments by at least two spaces. -</p><p> - An inline comment is a comment on the same line as a statement. Inline - comments should be separated by at least two spaces from the statement. - They should start with a # and a single space. -</p><p> - Okay: x = x + 1 # Increment x - Okay: x = x + 1 # Increment x - E261: x = x + 1 # Increment x - E262: x = x + 1 #Increment x - E262: x = x + 1 # Increment x -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="whitespace_before_parameters" ID="whitespace_before_parameters"></a> -<h2>whitespace_before_parameters</h2> -<b>whitespace_before_parameters</b>(<i>logical_line, tokens</i>) -<p> - Avoid extraneous whitespace in the following situations: -</p><p> - - Immediately before the open parenthesis that starts the argument - list of a function call. -</p><p> - - Immediately before the open parenthesis that starts an indexing or - slicing. -</p><p> - Okay: spam(1) - E211: spam (1) -</p><p> - Okay: dict['key'] = list[index] - E211: dict ['key'] = list[index] - E211: dict['key'] = list [index] -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /> -</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck.html Wed Jan 15 22:55:52 2014 +0100 @@ -0,0 +1,141 @@ +<!DOCTYPE html> +<html><head> +<title>eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck</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.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck</h1> +<p> +Module implementing the syntax check for Python 2/3. +</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><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="#initService">initService</a></td> +<td>Initialize the service and return the entry point.</td> +</tr><tr> +<td><a href="#normalizeCode">normalizeCode</a></td> +<td>Function to normalize the given code.</td> +</tr><tr> +<td><a href="#syntaxAndPyflakesCheck">syntaxAndPyflakesCheck</a></td> +<td>Function to compile one Python source file to Python bytecode and to perform a pyflakes check.</td> +</tr> +</table> +<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="initService" ID="initService"></a> +<h2>initService</h2> +<b>initService</b>(<i></i>) +<p> + Initialize the service and return the entry point. +</p><dl> +<dt>Returns:</dt> +<dd> +the entry point for the background client (function) +</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="syntaxAndPyflakesCheck" ID="syntaxAndPyflakesCheck"></a> +<h2>syntaxAndPyflakesCheck</h2> +<b>syntaxAndPyflakesCheck</b>(<i>filename, codestring="", checkFlakes=True, ignoreStarImportWarnings=False</i>) +<p> + Function to compile one Python source file to Python bytecode + and to perform a pyflakes check. +</p><dl> +<dt><i>filename</i></dt> +<dd> +source filename (string) +</dd><dt><i>codestring=</i></dt> +<dd> +string containing the code to compile (string) +</dd><dt><i>checkFlakes=</i></dt> +<dd> +flag indicating to do a pyflakes check (boolean) +</dd><dt><i>ignoreStarImportWarnings=</i></dt> +<dd> +flag indicating to + ignore 'star import' warnings (boolean) +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +A tuple indicating status (True = an error was found), the + file name, the line number, the index number, the code string + and the error message (boolean, string, string, string, string, + string). If checkFlakes is True, a list of strings containing the + warnings (marker, file name, line number, message) + The values are only valid, if the status is True. +</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.SyntaxChecker.SyntaxCheckerDialog.html Sun Jan 05 22:45:29 2014 +0100 +++ b/Documentation/Source/eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.html Wed Jan 15 22:55:52 2014 +0100 @@ -69,9 +69,15 @@ <td><a href="#SyntaxCheckerDialog.__finish">__finish</a></td> <td>Private slot called when the syntax check finished or the user pressed the button.</td> </tr><tr> +<td><a href="#SyntaxCheckerDialog.__processResult">__processResult</a></td> +<td>Slot to display the reported messages.</td> +</tr><tr> <td><a href="#SyntaxCheckerDialog.__resort">__resort</a></td> <td>Private method to resort the tree.</td> </tr><tr> +<td><a href="#SyntaxCheckerDialog.check">check</a></td> +<td>Start a check for one file.</td> +</tr><tr> <td><a href="#SyntaxCheckerDialog.on_buttonBox_clicked">on_buttonBox_clicked</a></td> <td>Private slot called by a button of the button box clicked.</td> </tr><tr> @@ -141,12 +147,60 @@ <p> Private slot called when the syntax check finished or the user pressed the button. -</p><a NAME="SyntaxCheckerDialog.__resort" ID="SyntaxCheckerDialog.__resort"></a> +</p><a NAME="SyntaxCheckerDialog.__processResult" ID="SyntaxCheckerDialog.__processResult"></a> +<h4>SyntaxCheckerDialog.__processResult</h4> +<b>__processResult</b>(<i>fn, nok, fname, line, index, code, error, warnings</i>) +<p> + Slot to display the reported messages. +</p><p> + If checkFlakes is True, warnings contains a list of strings containing + the warnings (marker, file name, line number, message) + The values are only valid, if nok is False. +</p><dl> +<dt><i>fn</i></dt> +<dd> +filename of the checked file (str) +</dd><dt><i>nok</i></dt> +<dd> +flag if an error in the source was found (boolean) +</dd><dt><i>fname</i></dt> +<dd> +filename of the checked file (str) # TODO: remove dubl. +</dd><dt><i>line</i></dt> +<dd> +number where the error occured (int) +</dd><dt><i>index</i></dt> +<dd> +the column where the error occured (int) +</dd><dt><i>code</i></dt> +<dd> +the part of the code where the error occured (str) +</dd><dt><i>error</i></dt> +<dd> +the name of the error (str) +</dd><dt><i>warnings</i></dt> +<dd> +a list of strings containing the warnings + (marker, file name, line number, col, message) +</dd> +</dl><a NAME="SyntaxCheckerDialog.__resort" ID="SyntaxCheckerDialog.__resort"></a> <h4>SyntaxCheckerDialog.__resort</h4> <b>__resort</b>(<i></i>) <p> Private method to resort the tree. -</p><a NAME="SyntaxCheckerDialog.on_buttonBox_clicked" ID="SyntaxCheckerDialog.on_buttonBox_clicked"></a> +</p><a NAME="SyntaxCheckerDialog.check" ID="SyntaxCheckerDialog.check"></a> +<h4>SyntaxCheckerDialog.check</h4> +<b>check</b>(<i>codestring=''</i>) +<p> + Start a check for one file. +</p><p> + The results are reported to the __processResult slot. +</p><dl> +<dt><i>codestring=</i></dt> +<dd> +optional sourcestring (str) +</dd> +</dl><a NAME="SyntaxCheckerDialog.on_buttonBox_clicked" ID="SyntaxCheckerDialog.on_buttonBox_clicked"></a> <h4>SyntaxCheckerDialog.on_buttonBox_clicked</h4> <b>on_buttonBox_clicked</b>(<i>button</i>) <p> @@ -205,7 +259,7 @@ </dd><dt><i>codestring</i></dt> <dd> string containing the code to be checked (string). - If this is given, file must be a single file name. + If this is given, fn must be a single file name. </dd> </dl> <div align="right"><a href="#top">Up</a></div>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html Wed Jan 15 22:55:52 2014 +0100 @@ -0,0 +1,461 @@ +<!DOCTYPE html> +<html><head> +<title>eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker</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.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker</h1> +<p> +Main module. +</p><p> +Implement the central Checker class. +Also, it models the Bindings and Scopes. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>_MAGIC_GLOBALS</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#Argument">Argument</a></td> +<td>Represents binding a name as an argument.</td> +</tr><tr> +<td><a href="#Assignment">Assignment</a></td> +<td>Represents binding a name with an explicit assignment.</td> +</tr><tr> +<td><a href="#Binding">Binding</a></td> +<td>Represents the binding of a value to a name.</td> +</tr><tr> +<td><a href="#Checker">Checker</a></td> +<td>I check the cleanliness and sanity of Python code.</td> +</tr><tr> +<td><a href="#ClassDefinition">ClassDefinition</a></td> +<td></td> +</tr><tr> +<td><a href="#ClassScope">ClassScope</a></td> +<td></td> +</tr><tr> +<td><a href="#Definition">Definition</a></td> +<td>A binding that defines a function or a class.</td> +</tr><tr> +<td><a href="#ExportBinding">ExportBinding</a></td> +<td>A binding created by an C{__all__} assignment.</td> +</tr><tr> +<td><a href="#FunctionDefinition">FunctionDefinition</a></td> +<td></td> +</tr><tr> +<td><a href="#FunctionScope">FunctionScope</a></td> +<td>I represent a name scope for a function.</td> +</tr><tr> +<td><a href="#GeneratorScope">GeneratorScope</a></td> +<td></td> +</tr><tr> +<td><a href="#Importation">Importation</a></td> +<td>A binding created by an import statement.</td> +</tr><tr> +<td><a href="#ModuleScope">ModuleScope</a></td> +<td></td> +</tr><tr> +<td><a href="#Scope">Scope</a></td> +<td></td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr> +<td><a href="#__init__">__init__</a></td> +<td></td> +</tr><tr> +<td><a href="#__init___1">__init__</a></td> +<td></td> +</tr><tr> +<td><a href="#__init___2">__init__</a></td> +<td></td> +</tr><tr> +<td><a href="#__repr__">__repr__</a></td> +<td></td> +</tr><tr> +<td><a href="#__repr___1">__repr__</a></td> +<td></td> +</tr><tr> +<td><a href="#__str__">__str__</a></td> +<td></td> +</tr><tr> +<td><a href="#getNodeName">getNodeName</a></td> +<td></td> +</tr><tr> +<td><a href="#getNodeType">getNodeType</a></td> +<td></td> +</tr><tr> +<td><a href="#getNodeType_1">getNodeType</a></td> +<td></td> +</tr><tr> +<td><a href="#iter_child_nodes">iter_child_nodes</a></td> +<td>Yield all direct child nodes of *node*, that is, all fields that are nodes and all items of fields that are lists of nodes.</td> +</tr><tr> +<td><a href="#names">names</a></td> +<td>Return a list of the names referenced by this binding.</td> +</tr><tr> +<td><a href="#unusedAssignments">unusedAssignments</a></td> +<td>Return a generator for the assignments which have not been used.</td> +</tr> +</table> +<hr /><hr /> +<a NAME="Argument" ID="Argument"></a> +<h2>Argument</h2> +<p> + Represents binding a name as an argument. +</p> +<h3>Derived from</h3> +Binding +<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>None</td></tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> + +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="Assignment" ID="Assignment"></a> +<h2>Assignment</h2> +<p> + Represents binding a name with an explicit assignment. +</p><p> + The checker will raise warnings for any Assignment that isn't used. Also, + the checker does not consider assignments in tuple/list unpacking to be + Assignments, rather it treats them as simple Bindings. +</p> +<h3>Derived from</h3> +Binding +<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>None</td></tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> + +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="ClassDefinition" ID="ClassDefinition"></a> +<h2>ClassDefinition</h2> + +<h3>Derived from</h3> +Definition +<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>None</td></tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> + +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="ClassScope" ID="ClassScope"></a> +<h2>ClassScope</h2> + +<h3>Derived from</h3> +Scope +<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>None</td></tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> + +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="Definition" ID="Definition"></a> +<h2>Definition</h2> +<p> + A binding that defines a function or a class. +</p> +<h3>Derived from</h3> +Binding +<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>None</td></tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> + +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="ExportBinding" ID="ExportBinding"></a> +<h2>ExportBinding</h2> +<p> + A binding created by an C{__all__} assignment. If the names in the list + can be determined statically, they will be treated as names for export and + additional checking applied to them. +</p><p> + The only C{__all__} assignment that can be recognized is one which takes + the value of a literal list containing literal strings. For example:: +</p><p> + __all__ = ["foo", "bar"] +</p><p> + Names which are imported and not otherwise used but appear in the value of + C{__all__} will not have an unused import warning reported for them. +</p> +<h3>Derived from</h3> +Binding +<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>None</td></tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> + +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="FunctionDefinition" ID="FunctionDefinition"></a> +<h2>FunctionDefinition</h2> + +<h3>Derived from</h3> +Definition +<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>None</td></tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> + +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="GeneratorScope" ID="GeneratorScope"></a> +<h2>GeneratorScope</h2> + +<h3>Derived from</h3> +Scope +<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>None</td></tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> + +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="ModuleScope" ID="ModuleScope"></a> +<h2>ModuleScope</h2> + +<h3>Derived from</h3> +Scope +<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>None</td></tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> + +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="Scope" ID="Scope"></a> +<h2>Scope</h2> + +<h3>Derived from</h3> +dict +<h3>Class Attributes</h3> +<table> +<tr><td>importStarred</td></tr> +</table> +<h3>Class Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> + +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="__init__" ID="__init__"></a> +<h2>__init__</h2> +<b>__init__</b>(<i>self, name, source</i>) + +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="__init___1" ID="__init___1"></a> +<h2>__init__</h2> +<b>__init__</b>(<i>self, name, source</i>) + +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="__init___2" ID="__init___2"></a> +<h2>__init__</h2> +<b>__init__</b>(<i>self</i>) + +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="__repr__" ID="__repr__"></a> +<h2>__repr__</h2> +<b>__repr__</b>(<i>self</i>) + +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="__repr___1" ID="__repr___1"></a> +<h2>__repr__</h2> +<b>__repr__</b>(<i>self</i>) + +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="__str__" ID="__str__"></a> +<h2>__str__</h2> +<b>__str__</b>(<i>self</i>) + +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="getNodeName" ID="getNodeName"></a> +<h2>getNodeName</h2> +<b>getNodeName</b>(<i>node</i>) + +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="getNodeType" ID="getNodeType"></a> +<h2>getNodeType</h2> +<b>getNodeType</b>(<i>node_class</i>) + +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="getNodeType_1" ID="getNodeType_1"></a> +<h2>getNodeType</h2> +<b>getNodeType</b>(<i>node_class</i>) + +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="iter_child_nodes" ID="iter_child_nodes"></a> +<h2>iter_child_nodes</h2> +<b>iter_child_nodes</b>(<i>node</i>) +<p> + Yield all direct child nodes of *node*, that is, all fields that + are nodes and all items of fields that are lists of nodes. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="names" ID="names"></a> +<h2>names</h2> +<b>names</b>(<i>self</i>) +<p> + Return a list of the names referenced by this binding. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="unusedAssignments" ID="unusedAssignments"></a> +<h2>unusedAssignments</h2> +<b>unusedAssignments</b>(<i>self</i>) +<p> + Return a generator for the assignments which have not been used. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html Wed Jan 15 22:55:52 2014 +0100 @@ -0,0 +1,753 @@ +<!DOCTYPE html> +<html><head> +<title>eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages</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.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages</h1> +<p> +Provide the class Message and its subclasses. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>QT_TRANSLATE_NOOP</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#DoctestSyntaxError">DoctestSyntaxError</a></td> +<td>Class defining the "Syntax error in doctest" message.</td> +</tr><tr> +<td><a href="#DuplicateArgument">DuplicateArgument</a></td> +<td>Class defining the "Duplicate Argument" message.</td> +</tr><tr> +<td><a href="#ImportShadowedByLoopVar">ImportShadowedByLoopVar</a></td> +<td>Class defining the "Import Shadowed By Loop Var" message.</td> +</tr><tr> +<td><a href="#ImportStarUsed">ImportStarUsed</a></td> +<td>Class defining the "Import Star Used" message.</td> +</tr><tr> +<td><a href="#LateFutureImport">LateFutureImport</a></td> +<td>Class defining the "Late Future Import" message.</td> +</tr><tr> +<td><a href="#Message">Message</a></td> +<td>Class defining the base for all specific message classes.</td> +</tr><tr> +<td><a href="#Redefined">Redefined</a></td> +<td>Class defining the "Redefined" message.</td> +</tr><tr> +<td><a href="#RedefinedInListComp">RedefinedInListComp</a></td> +<td>Class defining the list comprehension redefinition.</td> +</tr><tr> +<td><a href="#RedefinedWhileUnused">RedefinedWhileUnused</a></td> +<td>Class defining the "Redefined While Unused" message.</td> +</tr><tr> +<td><a href="#UndefinedExport">UndefinedExport</a></td> +<td>Class defining the "Undefined Export" message.</td> +</tr><tr> +<td><a href="#UndefinedLocal">UndefinedLocal</a></td> +<td>Class defining the "Undefined Local Variable" message.</td> +</tr><tr> +<td><a href="#UndefinedName">UndefinedName</a></td> +<td>Class defining the "Undefined Name" message.</td> +</tr><tr> +<td><a href="#UnusedImport">UnusedImport</a></td> +<td>Class defining the "Unused Import" message.</td> +</tr><tr> +<td><a href="#UnusedVariable">UnusedVariable</a></td> +<td>Class defining the "Unused Variable" message.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="DoctestSyntaxError" ID="DoctestSyntaxError"></a> +<h2>DoctestSyntaxError</h2> +<p> + Class defining the "Syntax error in doctest" message. +</p> +<h3>Derived from</h3> +Message +<h3>Class Attributes</h3> +<table> +<tr><td>message</td></tr> +</table> +<h3>Class Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#DoctestSyntaxError.__init__">DoctestSyntaxError</a></td> +<td>Constructor</td> +</tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<a NAME="DoctestSyntaxError.__init__" ID="DoctestSyntaxError.__init__"></a> +<h4>DoctestSyntaxError (Constructor)</h4> +<b>DoctestSyntaxError</b>(<i>filename, loc, position=None</i>) +<p> + Constructor +</p><dl> +<dt><i>filename</i></dt> +<dd> +name of the file (string) +</dd><dt><i>loc</i></dt> +<dd> +location of warning (object) +</dd><dt><i>position=</i></dt> +<dd> +of warning if existent (object) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="DuplicateArgument" ID="DuplicateArgument"></a> +<h2>DuplicateArgument</h2> +<p> + Class defining the "Duplicate Argument" message. +</p> +<h3>Derived from</h3> +Message +<h3>Class Attributes</h3> +<table> +<tr><td>message</td></tr> +</table> +<h3>Class Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#DuplicateArgument.__init__">DuplicateArgument</a></td> +<td>Constructor</td> +</tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<a NAME="DuplicateArgument.__init__" ID="DuplicateArgument.__init__"></a> +<h4>DuplicateArgument (Constructor)</h4> +<b>DuplicateArgument</b>(<i>filename, loc, name</i>) +<p> + Constructor +</p><dl> +<dt><i>filename</i></dt> +<dd> +name of the file (string) +</dd><dt><i>loc</i></dt> +<dd> +location of warning (object) +</dd><dt><i>name</i></dt> +<dd> +name of the duplicate argument (string) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="ImportShadowedByLoopVar" ID="ImportShadowedByLoopVar"></a> +<h2>ImportShadowedByLoopVar</h2> +<p> + Class defining the "Import Shadowed By Loop Var" message. +</p> +<h3>Derived from</h3> +Message +<h3>Class Attributes</h3> +<table> +<tr><td>message</td></tr> +</table> +<h3>Class Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#ImportShadowedByLoopVar.__init__">ImportShadowedByLoopVar</a></td> +<td>Constructor</td> +</tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<a NAME="ImportShadowedByLoopVar.__init__" ID="ImportShadowedByLoopVar.__init__"></a> +<h4>ImportShadowedByLoopVar (Constructor)</h4> +<b>ImportShadowedByLoopVar</b>(<i>filename, loc, name, orig_loc</i>) +<p> + Constructor +</p><dl> +<dt><i>filename</i></dt> +<dd> +name of the file (string) +</dd><dt><i>loc</i></dt> +<dd> +location of warning (object) +</dd><dt><i>name</i></dt> +<dd> +name of the shadowed import (string) +</dd><dt><i>orig_loc</i></dt> +<dd> +location of the import (object) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="ImportStarUsed" ID="ImportStarUsed"></a> +<h2>ImportStarUsed</h2> +<p> + Class defining the "Import Star Used" message. +</p> +<h3>Derived from</h3> +Message +<h3>Class Attributes</h3> +<table> +<tr><td>message</td></tr> +</table> +<h3>Class Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#ImportStarUsed.__init__">ImportStarUsed</a></td> +<td>Constructor</td> +</tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<a NAME="ImportStarUsed.__init__" ID="ImportStarUsed.__init__"></a> +<h4>ImportStarUsed (Constructor)</h4> +<b>ImportStarUsed</b>(<i>filename, loc, modname</i>) +<p> + Constructor +</p><dl> +<dt><i>filename</i></dt> +<dd> +name of the file (string) +</dd><dt><i>loc</i></dt> +<dd> +location of warning (object) +</dd><dt><i>modname</i></dt> +<dd> +name of the module imported using star import (string) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="LateFutureImport" ID="LateFutureImport"></a> +<h2>LateFutureImport</h2> +<p> + Class defining the "Late Future Import" message. +</p> +<h3>Derived from</h3> +Message +<h3>Class Attributes</h3> +<table> +<tr><td>message</td></tr> +</table> +<h3>Class Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#LateFutureImport.__init__">LateFutureImport</a></td> +<td>Constructor</td> +</tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<a NAME="LateFutureImport.__init__" ID="LateFutureImport.__init__"></a> +<h4>LateFutureImport (Constructor)</h4> +<b>LateFutureImport</b>(<i>filename, loc, names</i>) +<p> + Constructor +</p><dl> +<dt><i>filename</i></dt> +<dd> +name of the file (string) +</dd><dt><i>loc</i></dt> +<dd> +location of warning (object) +</dd><dt><i>names</i></dt> +<dd> +names of the imported futures (string) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="Message" ID="Message"></a> +<h2>Message</h2> +<p> + Class defining the base for all specific message classes. +</p> +<h3>Derived from</h3> +object +<h3>Class Attributes</h3> +<table> +<tr><td>message</td></tr><tr><td>message_args</td></tr> +</table> +<h3>Class Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#Message.__init__">Message</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#Message.__str__">__str__</a></td> +<td>Special method return a string representation of the instance object.</td> +</tr><tr> +<td><a href="#Message.getMessageData">getMessageData</a></td> +<td>Public method to get the individual message data elements.</td> +</tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<a NAME="Message.__init__" ID="Message.__init__"></a> +<h4>Message (Constructor)</h4> +<b>Message</b>(<i>filename, loc</i>) +<p> + Constructor +</p><dl> +<dt><i>filename</i></dt> +<dd> +name of the file (string) +</dd><dt><i>loc</i></dt> +<dd> +location of warning (object) +</dd> +</dl><a NAME="Message.__str__" ID="Message.__str__"></a> +<h4>Message.__str__</h4> +<b>__str__</b>(<i></i>) +<p> + Special method return a string representation of the instance object. +</p><dl> +<dt>Returns:</dt> +<dd> +string representation of the object (string) +</dd> +</dl><a NAME="Message.getMessageData" ID="Message.getMessageData"></a> +<h4>Message.getMessageData</h4> +<b>getMessageData</b>(<i></i>) +<p> + Public method to get the individual message data elements. +</p><dl> +<dt>Returns:</dt> +<dd> +tuple containing file name, line number and message + (string, integer, string) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="Redefined" ID="Redefined"></a> +<h2>Redefined</h2> +<p> + Class defining the "Redefined" message. +</p> +<h3>Derived from</h3> +Message +<h3>Class Attributes</h3> +<table> +<tr><td>message</td></tr> +</table> +<h3>Class Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#Redefined.__init__">Redefined</a></td> +<td>Constructor</td> +</tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<a NAME="Redefined.__init__" ID="Redefined.__init__"></a> +<h4>Redefined (Constructor)</h4> +<b>Redefined</b>(<i>filename, loc, name, orig_loc</i>) +<p> + Constructor +</p><dl> +<dt><i>filename</i></dt> +<dd> +name of the file (string) +</dd><dt><i>loc</i></dt> +<dd> +location of warning (object) +</dd><dt><i>name</i></dt> +<dd> +name of the redefined function (string) +</dd><dt><i>orig_loc</i></dt> +<dd> +location of the original definition (object) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="RedefinedInListComp" ID="RedefinedInListComp"></a> +<h2>RedefinedInListComp</h2> +<p> + Class defining the list comprehension redefinition. +</p> +<h3>Derived from</h3> +Message +<h3>Class Attributes</h3> +<table> +<tr><td>message</td></tr> +</table> +<h3>Class Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#RedefinedInListComp.__init__">RedefinedInListComp</a></td> +<td>Constructor</td> +</tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<a NAME="RedefinedInListComp.__init__" ID="RedefinedInListComp.__init__"></a> +<h4>RedefinedInListComp (Constructor)</h4> +<b>RedefinedInListComp</b>(<i>filename, loc, name, orig_loc</i>) +<p> + Constructor +</p><dl> +<dt><i>filename</i></dt> +<dd> +name of the file (string) +</dd><dt><i>loc</i></dt> +<dd> +location of warning (object) +</dd><dt><i>name</i></dt> +<dd> +name of the redefined object (string) +</dd><dt><i>orig_loc</i></dt> +<dd> +location of the original definition (object) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="RedefinedWhileUnused" ID="RedefinedWhileUnused"></a> +<h2>RedefinedWhileUnused</h2> +<p> + Class defining the "Redefined While Unused" message. +</p> +<h3>Derived from</h3> +Message +<h3>Class Attributes</h3> +<table> +<tr><td>message</td></tr> +</table> +<h3>Class Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#RedefinedWhileUnused.__init__">RedefinedWhileUnused</a></td> +<td>Constructor</td> +</tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<a NAME="RedefinedWhileUnused.__init__" ID="RedefinedWhileUnused.__init__"></a> +<h4>RedefinedWhileUnused (Constructor)</h4> +<b>RedefinedWhileUnused</b>(<i>filename, loc, name, orig_loc</i>) +<p> + Constructor +</p><dl> +<dt><i>filename</i></dt> +<dd> +name of the file (string) +</dd><dt><i>loc</i></dt> +<dd> +location of warning (object) +</dd><dt><i>name</i></dt> +<dd> +name of the redefined object (string) +</dd><dt><i>orig_loc</i></dt> +<dd> +location of the original definition (object) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="UndefinedExport" ID="UndefinedExport"></a> +<h2>UndefinedExport</h2> +<p> + Class defining the "Undefined Export" message. +</p> +<h3>Derived from</h3> +Message +<h3>Class Attributes</h3> +<table> +<tr><td>message</td></tr> +</table> +<h3>Class Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#UndefinedExport.__init__">UndefinedExport</a></td> +<td>Constructor</td> +</tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<a NAME="UndefinedExport.__init__" ID="UndefinedExport.__init__"></a> +<h4>UndefinedExport (Constructor)</h4> +<b>UndefinedExport</b>(<i>filename, loc, name</i>) +<p> + Constructor +</p><dl> +<dt><i>filename</i></dt> +<dd> +name of the file (string) +</dd><dt><i>loc</i></dt> +<dd> +location of warning (object) +</dd><dt><i>name</i></dt> +<dd> +undefined exported name (string) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="UndefinedLocal" ID="UndefinedLocal"></a> +<h2>UndefinedLocal</h2> +<p> + Class defining the "Undefined Local Variable" message. +</p> +<h3>Derived from</h3> +Message +<h3>Class Attributes</h3> +<table> +<tr><td>message</td></tr> +</table> +<h3>Class Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#UndefinedLocal.__init__">UndefinedLocal</a></td> +<td>Constructor</td> +</tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<a NAME="UndefinedLocal.__init__" ID="UndefinedLocal.__init__"></a> +<h4>UndefinedLocal (Constructor)</h4> +<b>UndefinedLocal</b>(<i>filename, loc, name, orig_loc</i>) +<p> + Constructor +</p><dl> +<dt><i>filename</i></dt> +<dd> +name of the file (string) +</dd><dt><i>loc</i></dt> +<dd> +location of warning (object) +</dd><dt><i>name</i></dt> +<dd> +name of the prematurely referenced variable (string) +</dd><dt><i>orig_loc</i></dt> +<dd> +location of the variable definition (object) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="UndefinedName" ID="UndefinedName"></a> +<h2>UndefinedName</h2> +<p> + Class defining the "Undefined Name" message. +</p> +<h3>Derived from</h3> +Message +<h3>Class Attributes</h3> +<table> +<tr><td>message</td></tr> +</table> +<h3>Class Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#UndefinedName.__init__">UndefinedName</a></td> +<td>Constructor</td> +</tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<a NAME="UndefinedName.__init__" ID="UndefinedName.__init__"></a> +<h4>UndefinedName (Constructor)</h4> +<b>UndefinedName</b>(<i>filename, loc, name</i>) +<p> + Constructor +</p><dl> +<dt><i>filename</i></dt> +<dd> +name of the file (string) +</dd><dt><i>loc</i></dt> +<dd> +location of warning (object) +</dd><dt><i>name</i></dt> +<dd> +undefined name (string) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="UnusedImport" ID="UnusedImport"></a> +<h2>UnusedImport</h2> +<p> + Class defining the "Unused Import" message. +</p> +<h3>Derived from</h3> +Message +<h3>Class Attributes</h3> +<table> +<tr><td>message</td></tr> +</table> +<h3>Class Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#UnusedImport.__init__">UnusedImport</a></td> +<td>Constructor</td> +</tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<a NAME="UnusedImport.__init__" ID="UnusedImport.__init__"></a> +<h4>UnusedImport (Constructor)</h4> +<b>UnusedImport</b>(<i>filename, loc, name</i>) +<p> + Constructor +</p><dl> +<dt><i>filename</i></dt> +<dd> +name of the file (string) +</dd><dt><i>loc</i></dt> +<dd> +location of warning (object) +</dd><dt><i>name</i></dt> +<dd> +name of the unused import (string) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="UnusedVariable" ID="UnusedVariable"></a> +<h2>UnusedVariable</h2> +<p> + Class defining the "Unused Variable" message. +</p><p> + Indicates that a variable has been explicitly assigned to but not actually + used. +</p> +<h3>Derived from</h3> +Message +<h3>Class Attributes</h3> +<table> +<tr><td>message</td></tr> +</table> +<h3>Class Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#UnusedVariable.__init__">UnusedVariable</a></td> +<td>Constructor</td> +</tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<a NAME="UnusedVariable.__init__" ID="UnusedVariable.__init__"></a> +<h4>UnusedVariable (Constructor)</h4> +<b>UnusedVariable</b>(<i>filename, loc, names</i>) +<p> + Constructor +</p><dl> +<dt><i>filename</i></dt> +<dd> +name of the file (string) +</dd><dt><i>loc</i></dt> +<dd> +location of warning (object) +</dd><dt><i>names</i></dt> +<dd> +names of the unused variable (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.QScintilla.Editor.html Sun Jan 05 22:45:29 2014 +0100 +++ b/Documentation/Source/eric5.QScintilla.Editor.html Wed Jan 15 22:55:52 2014 +0100 @@ -416,6 +416,9 @@ <td><a href="#Editor.__processRequestSyncCommand">__processRequestSyncCommand</a></td> <td>Private slot to process a remote RequestSync command.</td> </tr><tr> +<td><a href="#Editor.__processResult">__processResult</a></td> +<td>Slot to report the resulting messages.</td> +</tr><tr> <td><a href="#Editor.__processStartEditCommand">__processStartEditCommand</a></td> <td>Private slot to process a remote StartEdit command.</td> </tr><tr> @@ -1985,6 +1988,42 @@ <dd> string containing the command parameters (string) </dd> +</dl><a NAME="Editor.__processResult" ID="Editor.__processResult"></a> +<h4>Editor.__processResult</h4> +<b>__processResult</b>(<i>fn, nok, fname, line, index, code, error, warnings</i>) +<p> + Slot to report the resulting messages. +</p><p> + If checkFlakes is True, warnings contains a list of strings containing + the warnings (marker, file name, line number, message) + The values are only valid, if nok is False. +</p><dl> +<dt><i>fn</i></dt> +<dd> +filename of the checked file (str) +</dd><dt><i>nok</i></dt> +<dd> +flag if an error in the source was found (boolean) +</dd><dt><i>fname</i></dt> +<dd> +filename of the checked file (str) # TODO: remove dubl. +</dd><dt><i>line</i></dt> +<dd> +number where the error occured (int) +</dd><dt><i>index</i></dt> +<dd> +the column where the error occured (int) +</dd><dt><i>code</i></dt> +<dd> +the part of the code where the error occured (str) +</dd><dt><i>error</i></dt> +<dd> +the name of the error (str) +</dd><dt><i>warnings</i></dt> +<dd> +a list of strings containing the warnings + (marker, file name, line number, col, message) +</dd> </dl><a NAME="Editor.__processStartEditCommand" ID="Editor.__processStartEditCommand"></a> <h4>Editor.__processStartEditCommand</h4> <b>__processStartEditCommand</b>(<i>argsString</i>)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Utilities.BackgroundClient.html Wed Jan 15 22:55:52 2014 +0100 @@ -0,0 +1,155 @@ +<!DOCTYPE html> +<html><head> +<title>eric5.Utilities.BackgroundClient</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.BackgroundClient</h1> +<p> +Module implementing a Qt free version of a background client for the various +checkers and other python interpreter dependent functions. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#BackgroundClient">BackgroundClient</a></td> +<td>Class implementing the main part of the background client.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="BackgroundClient" ID="BackgroundClient"></a> +<h2>BackgroundClient</h2> +<p> + Class implementing the main part of the background client. +</p> +<h3>Derived from</h3> +object +<h3>Class Attributes</h3> +<table> +<tr><td>backgroundClient</td></tr> +</table> +<h3>Class Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#BackgroundClient.__init__">BackgroundClient</a></td> +<td>Constructor of the BackgroundClient class.</td> +</tr><tr> +<td><a href="#BackgroundClient.__initClientService">__initClientService</a></td> +<td>Import the given module and register it as service.</td> +</tr><tr> +<td><a href="#BackgroundClient.__send">__send</a></td> +<td>Private method to send a job response back to the BackgroundService.</td> +</tr><tr> +<td><a href="#BackgroundClient.__unhandled_exception">__unhandled_exception</a></td> +<td>Private method called to report an uncaught exception.</td> +</tr><tr> +<td><a href="#BackgroundClient.run">run</a></td> +<td>Implement the main loop of the client.</td> +</tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<a NAME="BackgroundClient.__init__" ID="BackgroundClient.__init__"></a> +<h4>BackgroundClient (Constructor)</h4> +<b>BackgroundClient</b>(<i>host, port</i>) +<p> + Constructor of the BackgroundClient class. +</p><dl> +<dt><i>host</i></dt> +<dd> +ip address the background service is listening +</dd><dt><i>port</i></dt> +<dd> +port of the background service +</dd> +</dl><a NAME="BackgroundClient.__initClientService" ID="BackgroundClient.__initClientService"></a> +<h4>BackgroundClient.__initClientService</h4> +<b>__initClientService</b>(<i>fn, path, module</i>) +<p> + Import the given module and register it as service. +</p><dl> +<dt><i>fn</i></dt> +<dd> +service name to register (str) +</dd><dt><i>path</i></dt> +<dd> +contains the path to the module (str) +</dd><dt><i>module</i></dt> +<dd> +name to import (str) +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +text result of the import action (str) +</dd> +</dl><a NAME="BackgroundClient.__send" ID="BackgroundClient.__send"></a> +<h4>BackgroundClient.__send</h4> +<b>__send</b>(<i>fx, fn, data</i>) +<p> + Private method to send a job response back to the BackgroundService. +</p><dl> +<dt><i>fx</i></dt> +<dd> +remote function name to execute (str) +</dd><dt><i>fn</i></dt> +<dd> +filename for identification (str) +</dd><dt><i>data</i></dt> +<dd> +return value(s) (any basic datatype) +</dd> +</dl><a NAME="BackgroundClient.__unhandled_exception" ID="BackgroundClient.__unhandled_exception"></a> +<h4>BackgroundClient.__unhandled_exception</h4> +<b>__unhandled_exception</b>(<i>exctype, excval, exctb</i>) +<p> + Private method called to report an uncaught exception. +</p><dl> +<dt><i>exctype</i></dt> +<dd> +the type of the exception +</dd><dt><i>excval</i></dt> +<dd> +data about the exception +</dd><dt><i>exctb</i></dt> +<dd> +traceback for the exception +</dd> +</dl><a NAME="BackgroundClient.run" ID="BackgroundClient.run"></a> +<h4>BackgroundClient.run</h4> +<b>run</b>(<i></i>) +<p> + Implement the main loop of the client. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Utilities.BackgroundService.html Wed Jan 15 22:55:52 2014 +0100 @@ -0,0 +1,259 @@ +<!DOCTYPE html> +<html><head> +<title>eric5.Utilities.BackgroundService</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.BackgroundService</h1> +<p> +Module implementing a background service for the various checkers and other +python interpreter dependent functions. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#BackgroundService">BackgroundService</a></td> +<td>Class implementing the main part of the background service.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="BackgroundService" ID="BackgroundService"></a> +<h2>BackgroundService</h2> +<p> + Class implementing the main part of the background service. +</p> +<h3>Derived from</h3> +QTcpServer +<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="#BackgroundService.__init__">BackgroundService</a></td> +<td>Constructor of the BackgroundService class.</td> +</tr><tr> +<td><a href="#BackgroundService.__postResult">__postResult</a></td> +<td>Private method to emit the correspondig signal for the returned function.</td> +</tr><tr> +<td><a href="#BackgroundService.__processQueue">__processQueue</a></td> +<td>Private method to take the next service request and send it to the client.</td> +</tr><tr> +<td><a href="#BackgroundService.__receive">__receive</a></td> +<td>Private method to receive the response from the clients.</td> +</tr><tr> +<td><a href="#BackgroundService.__send">__send</a></td> +<td>Private method to send a job request to one of the clients.</td> +</tr><tr> +<td><a href="#BackgroundService.__startExternalClient">__startExternalClient</a></td> +<td>Private method to start the background client as external process.</td> +</tr><tr> +<td><a href="#BackgroundService.__startInternalClient">__startInternalClient</a></td> +<td>Private method to start the background client as internal thread.</td> +</tr><tr> +<td><a href="#BackgroundService.enqueueRequest">enqueueRequest</a></td> +<td>Implement a queued processing of incomming events.</td> +</tr><tr> +<td><a href="#BackgroundService.on_newConnection">on_newConnection</a></td> +<td>Slot for new incomming connections from the clients.</td> +</tr><tr> +<td><a href="#BackgroundService.serviceConnect">serviceConnect</a></td> +<td>Announce a new service to the background service/ client.</td> +</tr><tr> +<td><a href="#BackgroundService.serviceDisconnect">serviceDisconnect</a></td> +<td>Remove the service from the service list.</td> +</tr><tr> +<td><a href="#BackgroundService.shutdown">shutdown</a></td> +<td>Cleanup the connections and processes when Eric is shuting down.</td> +</tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<a NAME="BackgroundService.__init__" ID="BackgroundService.__init__"></a> +<h4>BackgroundService (Constructor)</h4> +<b>BackgroundService</b>(<i></i>) +<p> + Constructor of the BackgroundService class. +</p><a NAME="BackgroundService.__postResult" ID="BackgroundService.__postResult"></a> +<h4>BackgroundService.__postResult</h4> +<b>__postResult</b>(<i>fx, fn, data</i>) +<p> + Private method to emit the correspondig signal for the returned + function. +</p><dl> +<dt><i>fx</i></dt> +<dd> +remote function name to execute (str) +</dd><dt><i>fn</i></dt> +<dd> +filename for identification (str) +</dd><dt><i>data</i></dt> +<dd> +function argument(s) (any basic datatype) +</dd> +</dl><a NAME="BackgroundService.__processQueue" ID="BackgroundService.__processQueue"></a> +<h4>BackgroundService.__processQueue</h4> +<b>__processQueue</b>(<i></i>) +<p> + Private method to take the next service request and send it to the + client. +</p><a NAME="BackgroundService.__receive" ID="BackgroundService.__receive"></a> +<h4>BackgroundService.__receive</h4> +<b>__receive</b>(<i>channel</i>) +<p> + Private method to receive the response from the clients. +</p><dl> +<dt><i>channel</i></dt> +<dd> +of the incomming connection (int: 0 or 1) +</dd> +</dl><a NAME="BackgroundService.__send" ID="BackgroundService.__send"></a> +<h4>BackgroundService.__send</h4> +<b>__send</b>(<i>fx, fn, pyVer, data</i>) +<p> + Private method to send a job request to one of the clients. +</p><dl> +<dt><i>fx</i></dt> +<dd> +remote function name to execute (str) +</dd><dt><i>fn</i></dt> +<dd> +filename for identification (str) +</dd><dt><i>pyVer</i></dt> +<dd> +version for the required interpreter (int) +</dd><dt><i>data</i></dt> +<dd> +function argument(s) (any basic datatype) +</dd> +</dl><a NAME="BackgroundService.__startExternalClient" ID="BackgroundService.__startExternalClient"></a> +<h4>BackgroundService.__startExternalClient</h4> +<b>__startExternalClient</b>(<i>interpreter, port</i>) +<p> + Private method to start the background client as external process. +</p><dl> +<dt><i>interpreter</i></dt> +<dd> +path and name of the executable to start (string) +</dd><dt><i>port</i></dt> +<dd> +socket port to which the interpreter should connect (int) +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +the process object (QProcess) or None +</dd> +</dl><a NAME="BackgroundService.__startInternalClient" ID="BackgroundService.__startInternalClient"></a> +<h4>BackgroundService.__startInternalClient</h4> +<b>__startInternalClient</b>(<i>port</i>) +<p> + Private method to start the background client as internal thread. +</p><dl> +<dt><i>port</i></dt> +<dd> +socket port to which the interpreter should connect (int) +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +the thread object (Thread) or None +</dd> +</dl><a NAME="BackgroundService.enqueueRequest" ID="BackgroundService.enqueueRequest"></a> +<h4>BackgroundService.enqueueRequest</h4> +<b>enqueueRequest</b>(<i>fx, fn, pyVer, data</i>) +<p> + Implement a queued processing of incomming events. +</p><p> + Dublicate file checks update an older request to avoid overrun or + starving of the check. +</p><dl> +<dt><i>fx</i></dt> +<dd> +function name of the service (str) +</dd><dt><i>fn</i></dt> +<dd> +filename for identification (str) +</dd><dt><i>pyVer</i></dt> +<dd> +version for the required interpreter (int) +</dd><dt><i>data</i></dt> +<dd> +function argument(s) (any basic datatype) +</dd> +</dl><a NAME="BackgroundService.on_newConnection" ID="BackgroundService.on_newConnection"></a> +<h4>BackgroundService.on_newConnection</h4> +<b>on_newConnection</b>(<i></i>) +<p> + Slot for new incomming connections from the clients. +</p><a NAME="BackgroundService.serviceConnect" ID="BackgroundService.serviceConnect"></a> +<h4>BackgroundService.serviceConnect</h4> +<b>serviceConnect</b>(<i>fx, modulepath, module, callback, onErrorCallback=None</i>) +<p> + Announce a new service to the background service/ client. +</p><dl> +<dt><i>fx</i></dt> +<dd> +function name of the service (str) +</dd><dt><i>modulepath</i></dt> +<dd> +full path to the module (str) +</dd><dt><i>module</i></dt> +<dd> +name to import (str) +</dd><dt><i>callback</i></dt> +<dd> +function on service response (function) +</dd><dt><i>onErrorCallback</i></dt> +<dd> +function if client isn't available (function) +</dd> +</dl><a NAME="BackgroundService.serviceDisconnect" ID="BackgroundService.serviceDisconnect"></a> +<h4>BackgroundService.serviceDisconnect</h4> +<b>serviceDisconnect</b>(<i>fx</i>) +<p> + Remove the service from the service list. +</p><dl> +<dt><i>fx</i></dt> +<dd> +function name of the service +</dd> +</dl><a NAME="BackgroundService.shutdown" ID="BackgroundService.shutdown"></a> +<h4>BackgroundService.shutdown</h4> +<b>shutdown</b>(<i></i>) +<p> + Cleanup the connections and processes when Eric is shuting down. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Utilities.InternalServices.html Wed Jan 15 22:55:52 2014 +0100 @@ -0,0 +1,204 @@ +<!DOCTYPE html> +<html><head> +<title>eric5.Utilities.InternalServices</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.InternalServices</h1> +<p> +Module implementing a Qt free version of a background client for the various +checkers and other python interpreter dependent functions. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#InternalServices">InternalServices</a></td> +<td>Implement the standard services (syntax with flakes and the style check).</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="InternalServices" ID="InternalServices"></a> +<h2>InternalServices</h2> +<p> + Implement the standard services (syntax with flakes and the style check). +</p> +<h3>Derived from</h3> +QObject +<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="#InternalServices.__init__">InternalServices</a></td> +<td>Contructor of InternalServices.</td> +</tr><tr> +<td><a href="#InternalServices.__translateStyleCheck">__translateStyleCheck</a></td> +<td>Privat slot called after perfoming a style check on one file.</td> +</tr><tr> +<td><a href="#InternalServices.__translateSyntaxCheck">__translateSyntaxCheck</a></td> +<td>Slot to translate the resulting messages.</td> +</tr><tr> +<td><a href="#InternalServices.styleCheck">styleCheck</a></td> +<td>Method to prepare a style check on one Python source file in another task.</td> +</tr><tr> +<td><a href="#InternalServices.syntaxCheck">syntaxCheck</a></td> +<td>Method to prepare to compile one Python source file to Python bytecode and to perform a pyflakes check in another task.</td> +</tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<a NAME="InternalServices.__init__" ID="InternalServices.__init__"></a> +<h4>InternalServices (Constructor)</h4> +<b>InternalServices</b>(<i>backgroundService</i>) +<p> + Contructor of InternalServices. +</p><dl> +<dt><i>backgroundService</i></dt> +<dd> +to connect to +</dd> +</dl><a NAME="InternalServices.__translateStyleCheck" ID="InternalServices.__translateStyleCheck"></a> +<h4>InternalServices.__translateStyleCheck</h4> +<b>__translateStyleCheck</b>(<i>fn, codeStyleCheckerStats, results</i>) +<p> + Privat slot called after perfoming a style check on one file. +</p><dl> +<dt><i>fn</i></dt> +<dd> +filename of the just checked file (str) +</dd><dt><i>codeStyleCheckerStats</i></dt> +<dd> +stats of style and name check (dict) +</dd><dt><i>results</i></dt> +<dd> +tuple for each found violation of style (tuple of + lineno (int), position (int), text (str), fixed (bool), + autofixing (bool), fixedMsg (str)) +</dd> +</dl><a NAME="InternalServices.__translateSyntaxCheck" ID="InternalServices.__translateSyntaxCheck"></a> +<h4>InternalServices.__translateSyntaxCheck</h4> +<b>__translateSyntaxCheck</b>(<i>fn, nok, fname, line, index, code, error, warnings</i>) +<p> + Slot to translate the resulting messages. +</p><p> + If checkFlakes is True, warnings contains a list of strings containing + the warnings (marker, file name, line number, message) + The values are only valid, if nok is False. +</p><dl> +<dt><i>fn</i></dt> +<dd> +filename of the checked file (str) +</dd><dt><i>nok</i></dt> +<dd> +flag if an error in the source was found (boolean) +</dd><dt><i>fname</i></dt> +<dd> +filename of the checked file (str) # TODO: remove dubl. +</dd><dt><i>line</i></dt> +<dd> +number where the error occured (int) +</dd><dt><i>index</i></dt> +<dd> +the column where the error occured (int) +</dd><dt><i>code</i></dt> +<dd> +the part of the code where the error occured (str) +</dd><dt><i>error</i></dt> +<dd> +the name of the error (str) +</dd><dt><i>warnings</i></dt> +<dd> +a list of strings containing the warnings + (marker, file name, line number, col, message, list(msg_args)) +</dd> +</dl><a NAME="InternalServices.styleCheck" ID="InternalServices.styleCheck"></a> +<h4>InternalServices.styleCheck</h4> +<b>styleCheck</b>(<i>filename, source, args, pyVer=None, editor=None</i>) +<p> + Method to prepare a style check on one Python source file in another + task. +</p><dl> +<dt><i>filename</i></dt> +<dd> +source filename (string) +</dd><dt><i>source</i></dt> +<dd> +string containing the code to check (string) +</dd><dt><i>args</i></dt> +<dd> +arguments used by the codeStyleCheck function (list of + excludeMessages (str), includeMessages (str), repeatMessages + (bool), fixCodes (str), noFixCodes (str), fixIssues (bool), + maxLineLength (int), hangClosing (bool), docType (str), errors + (list of str), eol (str), encoding (str)) +</dd><dt><i>pyVer=</i></dt> +<dd> +version of the interpreter to use or None for + autodetect corresponding interpreter (int or None) +</dd><dt><i>editor=</i></dt> +<dd> +if the file is opened already (Editor object) +</dd> +</dl><a NAME="InternalServices.syntaxCheck" ID="InternalServices.syntaxCheck"></a> +<h4>InternalServices.syntaxCheck</h4> +<b>syntaxCheck</b>(<i>filename, source="", checkFlakes=True, ignoreStarImportWarnings=False, pyVer=None, editor=None</i>) +<p> + Method to prepare to compile one Python source file to Python bytecode + and to perform a pyflakes check in another task. +</p><dl> +<dt><i>filename</i></dt> +<dd> +source filename (string) +</dd><dt><i>source=</i></dt> +<dd> +string containing the code to check (string) +</dd><dt><i>checkFlakes=</i></dt> +<dd> +flag indicating to do a pyflakes check (boolean) +</dd><dt><i>ignoreStarImportWarnings=</i></dt> +<dd> +flag indicating to + ignore 'star import' warnings (boolean) +</dd><dt><i>pyVer=</i></dt> +<dd> +version of the interpreter to use or None for + autodetect corresponding interpreter (int or None) +</dd><dt><i>editor=</i></dt> +<dd> +if the file is opened already (Editor object) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- a/Documentation/Source/eric5.Utilities.SyntaxCheck.html Sun Jan 05 22:45:29 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,188 +0,0 @@ -<!DOCTYPE html> -<html><head> -<title>eric5.Utilities.SyntaxCheck</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.SyntaxCheck</h1> -<p> -Module implementing the syntax check for Python 2/3. -</p> -<h3>Global Attributes</h3> -<table> -<tr><td>codingBytes_regexps</td></tr> -</table> -<h3>Classes</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Functions</h3> -<table> -<tr> -<td><a href="#compile_and_check">compile_and_check</a></td> -<td>Function to compile one Python source file to Python bytecode and to perform a pyflakes check.</td> -</tr><tr> -<td><a href="#decode">decode</a></td> -<td>Function to decode some byte text into a string.</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_codingBytes">get_codingBytes</a></td> -<td>Function to get the coding of a bytes 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="compile_and_check" ID="compile_and_check"></a> -<h2>compile_and_check</h2> -<b>compile_and_check</b>(<i>file_, codestring="", checkFlakes=True, ignoreStarImportWarnings=False</i>) -<p> - Function to compile one Python source file to Python bytecode - and to perform a pyflakes check. -</p><dl> -<dt><i>file_</i></dt> -<dd> -source filename (string) -</dd><dt><i>codestring</i></dt> -<dd> -string containing the code to compile (string) -</dd><dt><i>checkFlakes=</i></dt> -<dd> -flag indicating to do a pyflakes check (boolean) -</dd><dt><i>ignoreStarImportWarnings=</i></dt> -<dd> -flag indicating to - ignore 'star import' warnings (boolean) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -A tuple indicating status (True = an error was found), the - file name, the line number, the index number, the code string - and the error message (boolean, string, string, string, string, - string). If checkFlakes is True, a list of strings containing the - warnings (marker, file name, line number, message) - 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="decode" ID="decode"></a> -<h2>decode</h2> -<b>decode</b>(<i>text</i>) -<p> - Function to decode some byte text into a string. -</p><dl> -<dt><i>text</i></dt> -<dd> -byte text to decode (bytes) -</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 /><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_codingBytes" ID="get_codingBytes"></a> -<h2>get_codingBytes</h2> -<b>get_codingBytes</b>(<i>text</i>) -<p> - Function to get the coding of a bytes text. -</p><dl> -<dt><i>text</i></dt> -<dd> -bytes text to inspect (bytes) -</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/eric5.Utilities.__init__.html Sun Jan 05 22:45:29 2014 +0100 +++ b/Documentation/Source/eric5.Utilities.__init__.html Wed Jan 15 22:55:52 2014 +0100 @@ -25,7 +25,7 @@ </p> <h3>Global Attributes</h3> <table> -<tr><td>_escape</td></tr><tr><td>_escape_map</td></tr><tr><td>_uescape</td></tr><tr><td>_uunescape</td></tr><tr><td>coding_regexps</td></tr><tr><td>configDir</td></tr><tr><td>supportedCodecs</td></tr> +<tr><td>_escape</td></tr><tr><td>_escape_map</td></tr><tr><td>_uescape</td></tr><tr><td>_uunescape</td></tr><tr><td>codingBytes_regexps</td></tr><tr><td>coding_regexps</td></tr><tr><td>configDir</td></tr><tr><td>supportedCodecs</td></tr> </table> <h3>Classes</h3> <table> @@ -49,21 +49,21 @@ <td><a href="#compactPath">compactPath</a></td> <td>Function to return a compacted path fitting inside the given width.</td> </tr><tr> -<td><a href="#compile">compile</a></td> -<td>Function to compile one Python source file to Python bytecode.</td> -</tr><tr> -<td><a href="#compile_extern">compile_extern</a></td> -<td>Function to compile one Python source file to Python bytecode.</td> -</tr><tr> <td><a href="#convertLineEnds">convertLineEnds</a></td> <td>Function to convert the end of line characters.</td> </tr><tr> +<td><a href="#decode">decode</a></td> +<td>Function to decode some byte text into a string.</td> +</tr><tr> <td><a href="#decodeBytes">decodeBytes</a></td> <td>Function to decode some byte text into a string.</td> </tr><tr> <td><a href="#decodeString">decodeString</a></td> <td>Function to decode a string containing Unicode encoded characters.</td> </tr><tr> +<td><a href="#determinePythonVersion">determinePythonVersion</a></td> +<td>Determine the python version of a given file.</td> +</tr><tr> <td><a href="#direntries">direntries</a></td> <td>Function returning a list of all files and directories.</td> </tr><tr> @@ -82,6 +82,9 @@ <td><a href="#extractFlagsFromFile">extractFlagsFromFile</a></td> <td>Function to extract eric specific flags out of the given file.</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="#fromNativeSeparators">fromNativeSeparators</a></td> <td>Function returning a path, that is using "/" separator characters.</td> </tr><tr> @@ -142,6 +145,9 @@ <td><a href="#get_coding">get_coding</a></td> <td>Function to get the coding of a text.</td> </tr><tr> +<td><a href="#get_codingBytes">get_codingBytes</a></td> +<td>Function to get the coding of a bytes text.</td> +</tr><tr> <td><a href="#hasEnvironmentEntry">hasEnvironmentEntry</a></td> <td>Module function to check, if the environment contains an entry.</td> </tr><tr> @@ -196,6 +202,9 @@ <td><a href="#quote">quote</a></td> <td>Replacement for the urllib.quote function because of unicode problems.</td> </tr><tr> +<td><a href="#readEncodedFile">readEncodedFile</a></td> +<td>Function to read a file and decode its contents into proper text.</td> +</tr><tr> <td><a href="#readEncodedFileWithHash">readEncodedFileWithHash</a></td> <td>Function to read a file, calculate a hash value and decode its contents into proper text.</td> </tr><tr> @@ -393,67 +402,6 @@ </dl> <div align="right"><a href="#top">Up</a></div> <hr /><hr /> -<a NAME="compile" ID="compile"></a> -<h2>compile</h2> -<b>compile</b>(<i>file, codestring="", isPy2=False</i>) -<p> - Function to compile one Python source file to Python bytecode. -</p><dl> -<dt><i>file</i></dt> -<dd> -source filename (string) -</dd><dt><i>codestring</i></dt> -<dd> -string containing the code to compile (string) -</dd><dt><i>isPy2</i></dt> -<dd> -shows which interperter to use (boolean) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -A tuple indicating status (True = an error was found), the - file name, the line number, the index number, the code string - and the error message (boolean, string, string, 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="compile_extern" ID="compile_extern"></a> -<h2>compile_extern</h2> -<b>compile_extern</b>(<i>file, isPy2, checkFlakes=True, ignoreStarImportWarnings=False</i>) -<p> - Function to compile one Python source file to Python bytecode. -</p><dl> -<dt><i>file</i></dt> -<dd> -source filename (string) -</dd><dt><i>isPy2</i></dt> -<dd> -flag indicating if it's a Python 2 or 3 file (boolean) -</dd><dt><i>checkFlakes=</i></dt> -<dd> -flag indicating to do a pyflakes check (boolean) -</dd><dt><i>ignoreStarImportWarnings=</i></dt> -<dd> -flag if star import warnings should be - suppressed (boolean) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -A tuple indicating status (True = an error was found), the - file name, the line number, the index number, the code string, - the error message and a list of tuples of pyflakes warnings indicating - file name, line number and message (boolean, string, string, string, - string, string, list of (string, string, string)). The syntax error - values are only valid, if the status is True. The pyflakes list will - be empty, if a syntax error was detected by the syntax checker. -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> <a NAME="convertLineEnds" ID="convertLineEnds"></a> <h2>convertLineEnds</h2> <b>convertLineEnds</b>(<i>text, eol</i>) @@ -475,6 +423,24 @@ </dl> <div align="right"><a href="#top">Up</a></div> <hr /><hr /> +<a NAME="decode" ID="decode"></a> +<h2>decode</h2> +<b>decode</b>(<i>text</i>) +<p> + Function to decode some byte text into a string. +</p><dl> +<dt><i>text</i></dt> +<dd> +byte text to decode (bytes) +</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 /><hr /> <a NAME="decodeBytes" ID="decodeBytes"></a> <h2>decodeBytes</h2> <b>decodeBytes</b>(<i>buffer</i>) @@ -511,6 +477,30 @@ </dl> <div align="right"><a href="#top">Up</a></div> <hr /><hr /> +<a NAME="determinePythonVersion" ID="determinePythonVersion"></a> +<h2>determinePythonVersion</h2> +<b>determinePythonVersion</b>(<i>filename, source, editor=None</i>) +<p> + Determine the python version of a given file. +</p><dl> +<dt><i>filename</i></dt> +<dd> +name of the file with extension (str) +</dd><dt><i>source</i></dt> +<dd> +of the file (str) +</dd><dt><i>editor=</i></dt> +<dd> +if the file is opened already (Editor object) +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +flag if file is Python2 or Python3 (int) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> <a NAME="direntries" ID="direntries"></a> <h2>direntries</h2> <b>direntries</b>(<i>path, filesonly=False, pattern=None, followsymlinks=True, checkStop=None</i>) @@ -652,6 +642,31 @@ </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="fromNativeSeparators" ID="fromNativeSeparators"></a> <h2>fromNativeSeparators</h2> <b>fromNativeSeparators</b>(<i>path</i>) @@ -998,6 +1013,24 @@ </dl> <div align="right"><a href="#top">Up</a></div> <hr /><hr /> +<a NAME="get_codingBytes" ID="get_codingBytes"></a> +<h2>get_codingBytes</h2> +<b>get_codingBytes</b>(<i>text</i>) +<p> + Function to get the coding of a bytes text. +</p><dl> +<dt><i>text</i></dt> +<dd> +bytes text to inspect (bytes) +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +coding string +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> <a NAME="hasEnvironmentEntry" ID="hasEnvironmentEntry"></a> <h2>hasEnvironmentEntry</h2> <b>hasEnvironmentEntry</b>(<i>key</i>) @@ -1352,6 +1385,24 @@ </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 its 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 /><hr /> <a NAME="readEncodedFileWithHash" ID="readEncodedFileWithHash"></a> <h2>readEncodedFileWithHash</h2> <b>readEncodedFileWithHash</b>(<i>filename</i>)
--- a/Documentation/Source/eric5.Utilities.py2flakes.checker.html Sun Jan 05 22:45:29 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,796 +0,0 @@ -<!DOCTYPE html> -<html><head> -<title>eric5.Utilities.py2flakes.checker</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.py2flakes.checker</h1> - -<h3>Global Attributes</h3> -<table> -<tr><td>_MAGIC_GLOBALS</td></tr> -</table> -<h3>Classes</h3> -<table> -<tr> -<td><a href="#Argument">Argument</a></td> -<td>Represents binding a name as an argument.</td> -</tr><tr> -<td><a href="#Assignment">Assignment</a></td> -<td>Represents binding a name with an explicit assignment.</td> -</tr><tr> -<td><a href="#Binding">Binding</a></td> -<td>Represents the binding of a value to a name.</td> -</tr><tr> -<td><a href="#Checker">Checker</a></td> -<td>I check the cleanliness and sanity of Python code.</td> -</tr><tr> -<td><a href="#ClassDefinition">ClassDefinition</a></td> -<td></td> -</tr><tr> -<td><a href="#ClassScope">ClassScope</a></td> -<td></td> -</tr><tr> -<td><a href="#Definition">Definition</a></td> -<td>A binding that defines a function or a class.</td> -</tr><tr> -<td><a href="#ExportBinding">ExportBinding</a></td> -<td>A binding created by an C{__all__} assignment.</td> -</tr><tr> -<td><a href="#FunctionDefinition">FunctionDefinition</a></td> -<td></td> -</tr><tr> -<td><a href="#FunctionScope">FunctionScope</a></td> -<td>I represent a name scope for a function.</td> -</tr><tr> -<td><a href="#Importation">Importation</a></td> -<td>A binding created by an import statement.</td> -</tr><tr> -<td><a href="#ModuleScope">ModuleScope</a></td> -<td></td> -</tr><tr> -<td><a href="#Scope">Scope</a></td> -<td></td> -</tr><tr> -<td><a href="#UnBinding">UnBinding</a></td> -<td>Created by the 'del' operator.</td> -</tr> -</table> -<h3>Functions</h3> -<table> -<tr> -<td><a href="#getNodeName">getNodeName</a></td> -<td></td> -</tr><tr> -<td><a href="#iter_child_nodes">iter_child_nodes</a></td> -<td>Yield all direct child nodes of *node*, that is, all fields that are nodes and all items of fields that are lists of nodes.</td> -</tr> -</table> -<hr /><hr /> -<a NAME="Argument" ID="Argument"></a> -<h2>Argument</h2> -<p> - Represents binding a name as an argument. -</p> -<h3>Derived from</h3> -Binding -<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>None</td></tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="Assignment" ID="Assignment"></a> -<h2>Assignment</h2> -<p> - Represents binding a name with an explicit assignment. -</p><p> - The checker will raise warnings for any Assignment that isn't used. Also, - the checker does not consider assignments in tuple/list unpacking to be - Assignments, rather it treats them as simple Bindings. -</p> -<h3>Derived from</h3> -Binding -<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>None</td></tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="Binding" ID="Binding"></a> -<h2>Binding</h2> -<p> - Represents the binding of a value to a name. -</p><p> - The checker uses this to keep track of which names have been bound and - which names have not. See L{Assignment} for a special type of binding that - is checked with stricter rules. -</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="#Binding.__init__">Binding</a></td> -<td></td> -</tr><tr> -<td><a href="#Binding.__repr__">__repr__</a></td> -<td></td> -</tr><tr> -<td><a href="#Binding.__str__">__str__</a></td> -<td></td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="Binding.__init__" ID="Binding.__init__"></a> -<h4>Binding (Constructor)</h4> -<b>Binding</b>(<i>name, source</i>) -<a NAME="Binding.__repr__" ID="Binding.__repr__"></a> -<h4>Binding.__repr__</h4> -<b>__repr__</b>(<i></i>) -<a NAME="Binding.__str__" ID="Binding.__str__"></a> -<h4>Binding.__str__</h4> -<b>__str__</b>(<i></i>) - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="Checker" ID="Checker"></a> -<h2>Checker</h2> -<p> - I check the cleanliness and sanity of Python code. -</p> -<h3>Derived from</h3> -object -<h3>Class Attributes</h3> -<table> -<tr><td>AND</td></tr><tr><td>BOOLOP</td></tr><tr><td>COMPREHENSION</td></tr><tr><td>CONTINUE</td></tr><tr><td>GENERATOREXP</td></tr><tr><td>LOAD</td></tr><tr><td>NONLOCAL</td></tr><tr><td>NUM</td></tr><tr><td>RETURN</td></tr><tr><td>SLICE</td></tr><tr><td>builtIns</td></tr><tr><td>nodeDepth</td></tr><tr><td>traceTree</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#Checker.__init__">Checker</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.ASSIGN">ASSIGN</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.AUGASSIGN">AUGASSIGN</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.CLASSDEF">CLASSDEF</a></td> -<td>Check names used in a class definition, including its decorators, base classes, and the body of its definition.</td> -</tr><tr> -<td><a href="#Checker.DICTCOMP">DICTCOMP</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.EXCEPTHANDLER">EXCEPTHANDLER</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.FOR">FOR</a></td> -<td>Process bindings for loop variables.</td> -</tr><tr> -<td><a href="#Checker.FUNCTIONDEF">FUNCTIONDEF</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.GLOBAL">GLOBAL</a></td> -<td>Keep track of globals declarations.</td> -</tr><tr> -<td><a href="#Checker.IMPORT">IMPORT</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.IMPORTFROM">IMPORTFROM</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.LAMBDA">LAMBDA</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.LISTCOMP">LISTCOMP</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.NAME">NAME</a></td> -<td>Handle occurrence of Name (which can be a load/store/delete access.)</td> -</tr><tr> -<td><a href="#Checker.addArgs">addArgs</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.addBinding">addBinding</a></td> -<td>Called when a binding is altered.</td> -</tr><tr> -<td><a href="#Checker.checkDeadScopes">checkDeadScopes</a></td> -<td>Look at scopes which have been fully examined and report names in them which were imported but unused.</td> -</tr><tr> -<td><a href="#Checker.checkUnusedAssignments">checkUnusedAssignments</a></td> -<td>Check to see if any assignments have not been used.</td> -</tr><tr> -<td><a href="#Checker.collectLoopVars">collectLoopVars</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.deferAssignment">deferAssignment</a></td> -<td>Schedule an assignment handler to be called just after deferred function handlers.</td> -</tr><tr> -<td><a href="#Checker.deferFunction">deferFunction</a></td> -<td>Schedule a function handler to be called just before completion.</td> -</tr><tr> -<td><a href="#Checker.descendantOf">descendantOf</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.differentForks">differentForks</a></td> -<td>True, if lnode and rnode are located on different forks of IF/TRY</td> -</tr><tr> -<td><a href="#Checker.getCommonAncestor">getCommonAncestor</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.handleChildren">handleChildren</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.handleNode">handleNode</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.handleNodeDelete">handleNodeDelete</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.handleNodeLoad">handleNodeLoad</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.handleNodeStore">handleNodeStore</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.hasParent">hasParent</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.ignore">ignore</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.isDocstring">isDocstring</a></td> -<td>Determine if the given node is a docstring, as long as it is at the correct place in the node tree.</td> -</tr><tr> -<td><a href="#Checker.onFork">onFork</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.popScope">popScope</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.pushClassScope">pushClassScope</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.pushFunctionScope">pushFunctionScope</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.report">report</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.runDeferred">runDeferred</a></td> -<td>Run the callables in C{deferred} using their associated scope stack.</td> -</tr><tr> -<td><a href="#Checker.runFunction">runFunction</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.scope">scope</a></td> -<td></td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="Checker.__init__" ID="Checker.__init__"></a> -<h4>Checker (Constructor)</h4> -<b>Checker</b>(<i>tree, filename='(none)', builtins=None</i>) -<a NAME="Checker.ASSIGN" ID="Checker.ASSIGN"></a> -<h4>Checker.ASSIGN</h4> -<b>ASSIGN</b>(<i>node</i>) -<a NAME="Checker.AUGASSIGN" ID="Checker.AUGASSIGN"></a> -<h4>Checker.AUGASSIGN</h4> -<b>AUGASSIGN</b>(<i>node</i>) -<a NAME="Checker.CLASSDEF" ID="Checker.CLASSDEF"></a> -<h4>Checker.CLASSDEF</h4> -<b>CLASSDEF</b>(<i>node</i>) -<p> - Check names used in a class definition, including its decorators, base - classes, and the body of its definition. Additionally, add its name to - the current scope. -</p><a NAME="Checker.DICTCOMP" ID="Checker.DICTCOMP"></a> -<h4>Checker.DICTCOMP</h4> -<b>DICTCOMP</b>(<i>node</i>) -<a NAME="Checker.EXCEPTHANDLER" ID="Checker.EXCEPTHANDLER"></a> -<h4>Checker.EXCEPTHANDLER</h4> -<b>EXCEPTHANDLER</b>(<i>node</i>) -<a NAME="Checker.FOR" ID="Checker.FOR"></a> -<h4>Checker.FOR</h4> -<b>FOR</b>(<i>node</i>) -<p> - Process bindings for loop variables. -</p><a NAME="Checker.FUNCTIONDEF" ID="Checker.FUNCTIONDEF"></a> -<h4>Checker.FUNCTIONDEF</h4> -<b>FUNCTIONDEF</b>(<i>node</i>) -<a NAME="Checker.GLOBAL" ID="Checker.GLOBAL"></a> -<h4>Checker.GLOBAL</h4> -<b>GLOBAL</b>(<i>node</i>) -<p> - Keep track of globals declarations. -</p><a NAME="Checker.IMPORT" ID="Checker.IMPORT"></a> -<h4>Checker.IMPORT</h4> -<b>IMPORT</b>(<i>node</i>) -<a NAME="Checker.IMPORTFROM" ID="Checker.IMPORTFROM"></a> -<h4>Checker.IMPORTFROM</h4> -<b>IMPORTFROM</b>(<i>node</i>) -<a NAME="Checker.LAMBDA" ID="Checker.LAMBDA"></a> -<h4>Checker.LAMBDA</h4> -<b>LAMBDA</b>(<i>node</i>) -<a NAME="Checker.LISTCOMP" ID="Checker.LISTCOMP"></a> -<h4>Checker.LISTCOMP</h4> -<b>LISTCOMP</b>(<i>node</i>) -<a NAME="Checker.NAME" ID="Checker.NAME"></a> -<h4>Checker.NAME</h4> -<b>NAME</b>(<i>node</i>) -<p> - Handle occurrence of Name (which can be a load/store/delete access.) -</p><a NAME="Checker.addArgs" ID="Checker.addArgs"></a> -<h4>Checker.addArgs</h4> -<b>addArgs</b>(<i></i>) -<a NAME="Checker.addBinding" ID="Checker.addBinding"></a> -<h4>Checker.addBinding</h4> -<b>addBinding</b>(<i>node, value, reportRedef=True</i>) -<p> - Called when a binding is altered. -</p><p> - - `node` is the statement responsible for the change - - `value` is the optional new value, a Binding instance, associated - with the binding; if None, the binding is deleted if it exists. - - if `reportRedef` is True (default), rebinding while unused will be - reported. -</p><a NAME="Checker.checkDeadScopes" ID="Checker.checkDeadScopes"></a> -<h4>Checker.checkDeadScopes</h4> -<b>checkDeadScopes</b>(<i></i>) -<p> - Look at scopes which have been fully examined and report names in them - which were imported but unused. -</p><a NAME="Checker.checkUnusedAssignments" ID="Checker.checkUnusedAssignments"></a> -<h4>Checker.checkUnusedAssignments</h4> -<b>checkUnusedAssignments</b>(<i></i>) -<p> - Check to see if any assignments have not been used. -</p><a NAME="Checker.collectLoopVars" ID="Checker.collectLoopVars"></a> -<h4>Checker.collectLoopVars</h4> -<b>collectLoopVars</b>(<i></i>) -<a NAME="Checker.deferAssignment" ID="Checker.deferAssignment"></a> -<h4>Checker.deferAssignment</h4> -<b>deferAssignment</b>(<i>callable</i>) -<p> - Schedule an assignment handler to be called just after deferred - function handlers. -</p><a NAME="Checker.deferFunction" ID="Checker.deferFunction"></a> -<h4>Checker.deferFunction</h4> -<b>deferFunction</b>(<i>callable</i>) -<p> - Schedule a function handler to be called just before completion. -</p><p> - This is used for handling function bodies, which must be deferred - because code later in the file might modify the global scope. When - `callable` is called, the scope at the time this is called will be - restored, however it will contain any new bindings added to it. -</p><a NAME="Checker.descendantOf" ID="Checker.descendantOf"></a> -<h4>Checker.descendantOf</h4> -<b>descendantOf</b>(<i>node, ancestors, stop=None</i>) -<a NAME="Checker.differentForks" ID="Checker.differentForks"></a> -<h4>Checker.differentForks</h4> -<b>differentForks</b>(<i>lnode, rnode</i>) -<p> -True, if lnode and rnode are located on different forks of IF/TRY -</p><a NAME="Checker.getCommonAncestor" ID="Checker.getCommonAncestor"></a> -<h4>Checker.getCommonAncestor</h4> -<b>getCommonAncestor</b>(<i>lnode, rnode, stop=None</i>) -<a NAME="Checker.handleChildren" ID="Checker.handleChildren"></a> -<h4>Checker.handleChildren</h4> -<b>handleChildren</b>(<i>tree</i>) -<a NAME="Checker.handleNode" ID="Checker.handleNode"></a> -<h4>Checker.handleNode</h4> -<b>handleNode</b>(<i>node, parent</i>) -<a NAME="Checker.handleNodeDelete" ID="Checker.handleNodeDelete"></a> -<h4>Checker.handleNodeDelete</h4> -<b>handleNodeDelete</b>(<i>node</i>) -<a NAME="Checker.handleNodeLoad" ID="Checker.handleNodeLoad"></a> -<h4>Checker.handleNodeLoad</h4> -<b>handleNodeLoad</b>(<i>node</i>) -<a NAME="Checker.handleNodeStore" ID="Checker.handleNodeStore"></a> -<h4>Checker.handleNodeStore</h4> -<b>handleNodeStore</b>(<i>node</i>) -<a NAME="Checker.hasParent" ID="Checker.hasParent"></a> -<h4>Checker.hasParent</h4> -<b>hasParent</b>(<i>node, kind</i>) -<a NAME="Checker.ignore" ID="Checker.ignore"></a> -<h4>Checker.ignore</h4> -<b>ignore</b>(<i>node</i>) -<a NAME="Checker.isDocstring" ID="Checker.isDocstring"></a> -<h4>Checker.isDocstring</h4> -<b>isDocstring</b>(<i>node</i>) -<p> - Determine if the given node is a docstring, as long as it is at the - correct place in the node tree. -</p><a NAME="Checker.onFork" ID="Checker.onFork"></a> -<h4>Checker.onFork</h4> -<b>onFork</b>(<i>parent, lnode, rnode, items</i>) -<a NAME="Checker.popScope" ID="Checker.popScope"></a> -<h4>Checker.popScope</h4> -<b>popScope</b>(<i></i>) -<a NAME="Checker.pushClassScope" ID="Checker.pushClassScope"></a> -<h4>Checker.pushClassScope</h4> -<b>pushClassScope</b>(<i></i>) -<a NAME="Checker.pushFunctionScope" ID="Checker.pushFunctionScope"></a> -<h4>Checker.pushFunctionScope</h4> -<b>pushFunctionScope</b>(<i></i>) -<a NAME="Checker.report" ID="Checker.report"></a> -<h4>Checker.report</h4> -<b>report</b>(<i>messageClass, *args, **kwargs</i>) -<a NAME="Checker.runDeferred" ID="Checker.runDeferred"></a> -<h4>Checker.runDeferred</h4> -<b>runDeferred</b>(<i>deferred</i>) -<p> - Run the callables in C{deferred} using their associated scope stack. -</p><a NAME="Checker.runFunction" ID="Checker.runFunction"></a> -<h4>Checker.runFunction</h4> -<b>runFunction</b>(<i></i>) -<a NAME="Checker.scope" ID="Checker.scope"></a> -<h4>Checker.scope</h4> -<b>scope</b>(<i></i>) - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="ClassDefinition" ID="ClassDefinition"></a> -<h2>ClassDefinition</h2> - -<h3>Derived from</h3> -Definition -<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>None</td></tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="ClassScope" ID="ClassScope"></a> -<h2>ClassScope</h2> - -<h3>Derived from</h3> -Scope -<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>None</td></tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="Definition" ID="Definition"></a> -<h2>Definition</h2> -<p> - A binding that defines a function or a class. -</p> -<h3>Derived from</h3> -Binding -<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>None</td></tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="ExportBinding" ID="ExportBinding"></a> -<h2>ExportBinding</h2> -<p> - A binding created by an C{__all__} assignment. If the names in the list - can be determined statically, they will be treated as names for export and - additional checking applied to them. -</p><p> - The only C{__all__} assignment that can be recognized is one which takes - the value of a literal list containing literal strings. For example:: -</p><p> - __all__ = ["foo", "bar"] -</p><p> - Names which are imported and not otherwise used but appear in the value of - C{__all__} will not have an unused import warning reported for them. -</p> -<h3>Derived from</h3> -Binding -<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="#ExportBinding.names">names</a></td> -<td>Return a list of the names referenced by this binding.</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="ExportBinding.names" ID="ExportBinding.names"></a> -<h4>ExportBinding.names</h4> -<b>names</b>(<i></i>) -<p> - Return a list of the names referenced by this binding. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="FunctionDefinition" ID="FunctionDefinition"></a> -<h2>FunctionDefinition</h2> - -<h3>Derived from</h3> -Definition -<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>None</td></tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="FunctionScope" ID="FunctionScope"></a> -<h2>FunctionScope</h2> -<p> - I represent a name scope for a function. -</p> -<h3>Derived from</h3> -Scope -<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="#FunctionScope.__init__">FunctionScope</a></td> -<td></td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="FunctionScope.__init__" ID="FunctionScope.__init__"></a> -<h4>FunctionScope (Constructor)</h4> -<b>FunctionScope</b>(<i></i>) - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="Importation" ID="Importation"></a> -<h2>Importation</h2> -<p> - A binding created by an import statement. -</p> -<h3>Derived from</h3> -Binding -<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="#Importation.__init__">Importation</a></td> -<td></td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="Importation.__init__" ID="Importation.__init__"></a> -<h4>Importation (Constructor)</h4> -<b>Importation</b>(<i>name, source</i>) - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="ModuleScope" ID="ModuleScope"></a> -<h2>ModuleScope</h2> - -<h3>Derived from</h3> -Scope -<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>None</td></tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="Scope" ID="Scope"></a> -<h2>Scope</h2> - -<h3>Derived from</h3> -dict -<h3>Class Attributes</h3> -<table> -<tr><td>importStarred</td></tr><tr><td>usesLocals</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#Scope.__repr__">__repr__</a></td> -<td></td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="Scope.__repr__" ID="Scope.__repr__"></a> -<h4>Scope.__repr__</h4> -<b>__repr__</b>(<i></i>) - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="UnBinding" ID="UnBinding"></a> -<h2>UnBinding</h2> -<p> -Created by the 'del' operator. -</p> -<h3>Derived from</h3> -Binding -<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>None</td></tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="getNodeName" ID="getNodeName"></a> -<h2>getNodeName</h2> -<b>getNodeName</b>(<i>node</i>) - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="iter_child_nodes" ID="iter_child_nodes"></a> -<h2>iter_child_nodes</h2> -<b>iter_child_nodes</b>(<i>node, astcls=ast.AST</i>) -<p> - Yield all direct child nodes of *node*, that is, all fields that are nodes - and all items of fields that are lists of nodes. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /> -</body></html> \ No newline at end of file
--- a/Documentation/Source/eric5.Utilities.py2flakes.messages.html Sun Jan 05 22:45:29 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,729 +0,0 @@ -<!DOCTYPE html> -<html><head> -<title>eric5.Utilities.py2flakes.messages</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.py2flakes.messages</h1> -<p> -Module implementing the messages for py2flakes. -</p> -<h3>Global Attributes</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Classes</h3> -<table> -<tr> -<td><a href="#DuplicateArgument">DuplicateArgument</a></td> -<td>Class defining the "Duplicate Argument" message.</td> -</tr><tr> -<td><a href="#ImportShadowedByLoopVar">ImportShadowedByLoopVar</a></td> -<td>Class defining the "Import Shadowed By Loop Var" message.</td> -</tr><tr> -<td><a href="#ImportStarUsed">ImportStarUsed</a></td> -<td>Class defining the "Import Star Used" message.</td> -</tr><tr> -<td><a href="#LateFutureImport">LateFutureImport</a></td> -<td>Class defining the "Late Future Import" message.</td> -</tr><tr> -<td><a href="#Message">Message</a></td> -<td>Class defining the base for all specific message classes.</td> -</tr><tr> -<td><a href="#Redefined">Redefined</a></td> -<td>Class defining the "Redefined" message.</td> -</tr><tr> -<td><a href="#RedefinedInListComp">RedefinedInListComp</a></td> -<td>Class defining the list comprehension redefinition.</td> -</tr><tr> -<td><a href="#RedefinedWhileUnused">RedefinedWhileUnused</a></td> -<td>Class defining the "Redefined While Unused" message.</td> -</tr><tr> -<td><a href="#UndefinedExport">UndefinedExport</a></td> -<td>Class defining the "Undefined Export" message.</td> -</tr><tr> -<td><a href="#UndefinedLocal">UndefinedLocal</a></td> -<td>Class defining the "Undefined Local Variable" message.</td> -</tr><tr> -<td><a href="#UndefinedName">UndefinedName</a></td> -<td>Class defining the "Undefined Name" message.</td> -</tr><tr> -<td><a href="#UnusedImport">UnusedImport</a></td> -<td>Class defining the "Unused Import" message.</td> -</tr><tr> -<td><a href="#UnusedVariable">UnusedVariable</a></td> -<td>Class defining the "Unused Variable" message.</td> -</tr> -</table> -<h3>Functions</h3> -<table> -<tr> -<td><a href="#QT_TRANSLATE_NOOP">QT_TRANSLATE_NOOP</a></td> -<td>Function to tell 'lupdate' which strings to keep for translation.</td> -</tr> -</table> -<hr /><hr /> -<a NAME="DuplicateArgument" ID="DuplicateArgument"></a> -<h2>DuplicateArgument</h2> -<p> - Class defining the "Duplicate Argument" message. -</p> -<h3>Derived from</h3> -Message -<h3>Class Attributes</h3> -<table> -<tr><td>message</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#DuplicateArgument.__init__">DuplicateArgument</a></td> -<td>Constructor</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="DuplicateArgument.__init__" ID="DuplicateArgument.__init__"></a> -<h4>DuplicateArgument (Constructor)</h4> -<b>DuplicateArgument</b>(<i>filename, lineno, name</i>) -<p> - Constructor -</p><dl> -<dt><i>filename</i></dt> -<dd> -name of the file (string) -</dd><dt><i>lineno</i></dt> -<dd> -line number (integer) -</dd><dt><i>name</i></dt> -<dd> -name of the duplicate argument (string) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="ImportShadowedByLoopVar" ID="ImportShadowedByLoopVar"></a> -<h2>ImportShadowedByLoopVar</h2> -<p> - Class defining the "Import Shadowed By Loop Var" message. -</p> -<h3>Derived from</h3> -Message -<h3>Class Attributes</h3> -<table> -<tr><td>message</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#ImportShadowedByLoopVar.__init__">ImportShadowedByLoopVar</a></td> -<td>Constructor</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="ImportShadowedByLoopVar.__init__" ID="ImportShadowedByLoopVar.__init__"></a> -<h4>ImportShadowedByLoopVar (Constructor)</h4> -<b>ImportShadowedByLoopVar</b>(<i>filename, lineno, name, orig_lineno</i>) -<p> - Constructor -</p><dl> -<dt><i>filename</i></dt> -<dd> -name of the file (string) -</dd><dt><i>lineno</i></dt> -<dd> -line number (integer) -</dd><dt><i>name</i></dt> -<dd> -name of the shadowed import (string) -</dd><dt><i>orig_lineno</i></dt> -<dd> -line number of the import (integer) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="ImportStarUsed" ID="ImportStarUsed"></a> -<h2>ImportStarUsed</h2> -<p> - Class defining the "Import Star Used" message. -</p> -<h3>Derived from</h3> -Message -<h3>Class Attributes</h3> -<table> -<tr><td>message</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#ImportStarUsed.__init__">ImportStarUsed</a></td> -<td>Constructor</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="ImportStarUsed.__init__" ID="ImportStarUsed.__init__"></a> -<h4>ImportStarUsed (Constructor)</h4> -<b>ImportStarUsed</b>(<i>filename, lineno, modname</i>) -<p> - Constructor -</p><dl> -<dt><i>filename</i></dt> -<dd> -name of the file (string) -</dd><dt><i>lineno</i></dt> -<dd> -line number (integer) -</dd><dt><i>modname</i></dt> -<dd> -name of the module imported using star import (string) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="LateFutureImport" ID="LateFutureImport"></a> -<h2>LateFutureImport</h2> -<p> - Class defining the "Late Future Import" message. -</p> -<h3>Derived from</h3> -Message -<h3>Class Attributes</h3> -<table> -<tr><td>message</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#LateFutureImport.__init__">LateFutureImport</a></td> -<td>Constructor</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="LateFutureImport.__init__" ID="LateFutureImport.__init__"></a> -<h4>LateFutureImport (Constructor)</h4> -<b>LateFutureImport</b>(<i>filename, lineno, names</i>) -<p> - Constructor -</p><dl> -<dt><i>filename</i></dt> -<dd> -name of the file (string) -</dd><dt><i>lineno</i></dt> -<dd> -line number (integer) -</dd><dt><i>names</i></dt> -<dd> -names of the imported futures (string) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="Message" ID="Message"></a> -<h2>Message</h2> -<p> - Class defining the base for all specific message classes. -</p> -<h3>Derived from</h3> -object -<h3>Class Attributes</h3> -<table> -<tr><td>message</td></tr><tr><td>message_args</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#Message.__init__">Message</a></td> -<td>Constructor</td> -</tr><tr> -<td><a href="#Message.__str__">__str__</a></td> -<td>Special method return a string representation of the instance object.</td> -</tr><tr> -<td><a href="#Message.getMessageData">getMessageData</a></td> -<td>Public method to get the individual message data elements.</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="Message.__init__" ID="Message.__init__"></a> -<h4>Message (Constructor)</h4> -<b>Message</b>(<i>filename, lineno</i>) -<p> - Constructor -</p><dl> -<dt><i>filename</i></dt> -<dd> -name of the file (string) -</dd><dt><i>lineno</i></dt> -<dd> -line number (integer) -</dd> -</dl><a NAME="Message.__str__" ID="Message.__str__"></a> -<h4>Message.__str__</h4> -<b>__str__</b>(<i></i>) -<p> - Special method return a string representation of the instance object. -</p><dl> -<dt>Returns:</dt> -<dd> -string representation of the object (string) -</dd> -</dl><a NAME="Message.getMessageData" ID="Message.getMessageData"></a> -<h4>Message.getMessageData</h4> -<b>getMessageData</b>(<i></i>) -<p> - Public method to get the individual message data elements. -</p><dl> -<dt>Returns:</dt> -<dd> -tuple containing file name, line number and message - (string, integer, string) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="Redefined" ID="Redefined"></a> -<h2>Redefined</h2> -<p> - Class defining the "Redefined" message. -</p> -<h3>Derived from</h3> -Message -<h3>Class Attributes</h3> -<table> -<tr><td>message</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#Redefined.__init__">Redefined</a></td> -<td>Constructor</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="Redefined.__init__" ID="Redefined.__init__"></a> -<h4>Redefined (Constructor)</h4> -<b>Redefined</b>(<i>filename, lineno, name, orig_lineno</i>) -<p> - Constructor -</p><dl> -<dt><i>filename</i></dt> -<dd> -name of the file (string) -</dd><dt><i>lineno</i></dt> -<dd> -line number (integer) -</dd><dt><i>name</i></dt> -<dd> -name of the redefined function (string) -</dd><dt><i>orig_lineno</i></dt> -<dd> -line number of the original definition (integer) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="RedefinedInListComp" ID="RedefinedInListComp"></a> -<h2>RedefinedInListComp</h2> -<p> - Class defining the list comprehension redefinition. -</p> -<h3>Derived from</h3> -Message -<h3>Class Attributes</h3> -<table> -<tr><td>message</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#RedefinedInListComp.__init__">RedefinedInListComp</a></td> -<td>Constructor</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="RedefinedInListComp.__init__" ID="RedefinedInListComp.__init__"></a> -<h4>RedefinedInListComp (Constructor)</h4> -<b>RedefinedInListComp</b>(<i>filename, lineno, name, orig_lineno</i>) -<p> - Constructor -</p><dl> -<dt><i>filename</i></dt> -<dd> -name of the file (string) -</dd><dt><i>lineno</i></dt> -<dd> -line number (integer) -</dd><dt><i>name</i></dt> -<dd> -name of the redefined object (string) -</dd><dt><i>orig_lineno</i></dt> -<dd> -line number of the original definition (integer) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="RedefinedWhileUnused" ID="RedefinedWhileUnused"></a> -<h2>RedefinedWhileUnused</h2> -<p> - Class defining the "Redefined While Unused" message. -</p> -<h3>Derived from</h3> -Message -<h3>Class Attributes</h3> -<table> -<tr><td>message</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#RedefinedWhileUnused.__init__">RedefinedWhileUnused</a></td> -<td>Constructor</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="RedefinedWhileUnused.__init__" ID="RedefinedWhileUnused.__init__"></a> -<h4>RedefinedWhileUnused (Constructor)</h4> -<b>RedefinedWhileUnused</b>(<i>filename, lineno, name, orig_lineno</i>) -<p> - Constructor -</p><dl> -<dt><i>filename</i></dt> -<dd> -name of the file (string) -</dd><dt><i>lineno</i></dt> -<dd> -line number (integer) -</dd><dt><i>name</i></dt> -<dd> -name of the redefined object (string) -</dd><dt><i>orig_lineno</i></dt> -<dd> -line number of the original definition (integer) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="UndefinedExport" ID="UndefinedExport"></a> -<h2>UndefinedExport</h2> -<p> - Class defining the "Undefined Export" message. -</p> -<h3>Derived from</h3> -Message -<h3>Class Attributes</h3> -<table> -<tr><td>message</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#UndefinedExport.__init__">UndefinedExport</a></td> -<td>Constructor</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="UndefinedExport.__init__" ID="UndefinedExport.__init__"></a> -<h4>UndefinedExport (Constructor)</h4> -<b>UndefinedExport</b>(<i>filename, lineno, name</i>) -<p> - Constructor -</p><dl> -<dt><i>filename</i></dt> -<dd> -name of the file (string) -</dd><dt><i>lineno</i></dt> -<dd> -line number (integer) -</dd><dt><i>name</i></dt> -<dd> -undefined exported name (string) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="UndefinedLocal" ID="UndefinedLocal"></a> -<h2>UndefinedLocal</h2> -<p> - Class defining the "Undefined Local Variable" message. -</p> -<h3>Derived from</h3> -Message -<h3>Class Attributes</h3> -<table> -<tr><td>message</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#UndefinedLocal.__init__">UndefinedLocal</a></td> -<td>Constructor</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="UndefinedLocal.__init__" ID="UndefinedLocal.__init__"></a> -<h4>UndefinedLocal (Constructor)</h4> -<b>UndefinedLocal</b>(<i>filename, lineno, name, orig_lineno</i>) -<p> - Constructor -</p><dl> -<dt><i>filename</i></dt> -<dd> -name of the file (string) -</dd><dt><i>lineno</i></dt> -<dd> -line number (integer) -</dd><dt><i>name</i></dt> -<dd> -name of the prematurely referenced variable (string) -</dd><dt><i>orig_lineno</i></dt> -<dd> -line number of the variable definition (integer) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="UndefinedName" ID="UndefinedName"></a> -<h2>UndefinedName</h2> -<p> - Class defining the "Undefined Name" message. -</p> -<h3>Derived from</h3> -Message -<h3>Class Attributes</h3> -<table> -<tr><td>message</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#UndefinedName.__init__">UndefinedName</a></td> -<td>Constructor</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="UndefinedName.__init__" ID="UndefinedName.__init__"></a> -<h4>UndefinedName (Constructor)</h4> -<b>UndefinedName</b>(<i>filename, lineno, name</i>) -<p> - Constructor -</p><dl> -<dt><i>filename</i></dt> -<dd> -name of the file (string) -</dd><dt><i>lineno</i></dt> -<dd> -line number (integer) -</dd><dt><i>name</i></dt> -<dd> -undefined name (string) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="UnusedImport" ID="UnusedImport"></a> -<h2>UnusedImport</h2> -<p> - Class defining the "Unused Import" message. -</p> -<h3>Derived from</h3> -Message -<h3>Class Attributes</h3> -<table> -<tr><td>message</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#UnusedImport.__init__">UnusedImport</a></td> -<td>Constructor</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="UnusedImport.__init__" ID="UnusedImport.__init__"></a> -<h4>UnusedImport (Constructor)</h4> -<b>UnusedImport</b>(<i>filename, lineno, name</i>) -<p> - Constructor -</p><dl> -<dt><i>filename</i></dt> -<dd> -name of the file (string) -</dd><dt><i>lineno</i></dt> -<dd> -line number (integer) -</dd><dt><i>name</i></dt> -<dd> -name of the unused import (string) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="UnusedVariable" ID="UnusedVariable"></a> -<h2>UnusedVariable</h2> -<p> - Class defining the "Unused Variable" message. -</p><p> - Indicates that a variable has been explicitly assigned to but not actually - used. -</p> -<h3>Derived from</h3> -Message -<h3>Class Attributes</h3> -<table> -<tr><td>message</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#UnusedVariable.__init__">UnusedVariable</a></td> -<td>Constructor</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="UnusedVariable.__init__" ID="UnusedVariable.__init__"></a> -<h4>UnusedVariable (Constructor)</h4> -<b>UnusedVariable</b>(<i>filename, lineno, names</i>) -<p> - Constructor -</p><dl> -<dt><i>filename</i></dt> -<dd> -name of the file (string) -</dd><dt><i>lineno</i></dt> -<dd> -line number (integer) -</dd><dt><i>names</i></dt> -<dd> -names of the unused variable (string) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="QT_TRANSLATE_NOOP" ID="QT_TRANSLATE_NOOP"></a> -<h2>QT_TRANSLATE_NOOP</h2> -<b>QT_TRANSLATE_NOOP</b>(<i>mod, txt</i>) -<p> - Function to tell 'lupdate' which strings to keep for translation. -</p><dl> -<dt><i>mod</i></dt> -<dd> -module name -</dd><dt><i>txt</i></dt> -<dd> -translatable string -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -the untranslated! 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.Utilities.py3flakes.checker.html Sun Jan 05 22:45:29 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,719 +0,0 @@ -<!DOCTYPE html> -<html><head> -<title>eric5.Utilities.py3flakes.checker</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.py3flakes.checker</h1> - -<h3>Global Attributes</h3> -<table> -<tr><td>_MAGIC_GLOBALS</td></tr> -</table> -<h3>Classes</h3> -<table> -<tr> -<td><a href="#Argument">Argument</a></td> -<td>Represents binding a name as an argument.</td> -</tr><tr> -<td><a href="#Assignment">Assignment</a></td> -<td>Represents binding a name with an explicit assignment.</td> -</tr><tr> -<td><a href="#Binding">Binding</a></td> -<td>Represents the binding of a value to a name.</td> -</tr><tr> -<td><a href="#Checker">Checker</a></td> -<td>Class to check the cleanliness and sanity of Python code.</td> -</tr><tr> -<td><a href="#ClassScope">ClassScope</a></td> -<td>Class representing a name scope for a class.</td> -</tr><tr> -<td><a href="#ExportBinding">ExportBinding</a></td> -<td>A binding created by an __all__ assignment.</td> -</tr><tr> -<td><a href="#FunctionDefinition">FunctionDefinition</a></td> -<td>Represents a function definition.</td> -</tr><tr> -<td><a href="#FunctionScope">FunctionScope</a></td> -<td>Class representing a name scope for a function.</td> -</tr><tr> -<td><a href="#Importation">Importation</a></td> -<td>A binding created by an import statement.</td> -</tr><tr> -<td><a href="#ModuleScope">ModuleScope</a></td> -<td>Class representing a name scope for a module.</td> -</tr><tr> -<td><a href="#Scope">Scope</a></td> -<td>Class defining the scope base class.</td> -</tr><tr> -<td><a href="#UnBinding">UnBinding</a></td> -<td>Created by the 'del' operator.</td> -</tr> -</table> -<h3>Functions</h3> -<table> -<tr><td>None</td></tr> -</table> -<hr /><hr /> -<a NAME="Argument" ID="Argument"></a> -<h2>Argument</h2> -<p> - Represents binding a name as an argument. -</p> -<h3>Derived from</h3> -Binding -<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>None</td></tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="Assignment" ID="Assignment"></a> -<h2>Assignment</h2> -<p> - Represents binding a name with an explicit assignment. -</p><p> - The checker will raise warnings for any Assignment that isn't used. Also, - the checker does not consider assignments in tuple/list unpacking to be - Assignments, rather it treats them as simple Bindings. -</p> -<h3>Derived from</h3> -Binding -<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>None</td></tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="Binding" ID="Binding"></a> -<h2>Binding</h2> -<p> - Represents the binding of a value to a name. -</p><p> - The checker uses this to keep track of which names have been bound and - which names have not. See Assignment for a special type of binding that - is checked with stricter rules. -</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="#Binding.__init__">Binding</a></td> -<td></td> -</tr><tr> -<td><a href="#Binding.__repr__">__repr__</a></td> -<td></td> -</tr><tr> -<td><a href="#Binding.__str__">__str__</a></td> -<td></td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="Binding.__init__" ID="Binding.__init__"></a> -<h4>Binding (Constructor)</h4> -<b>Binding</b>(<i>name, source</i>) -<a NAME="Binding.__repr__" ID="Binding.__repr__"></a> -<h4>Binding.__repr__</h4> -<b>__repr__</b>(<i></i>) -<a NAME="Binding.__str__" ID="Binding.__str__"></a> -<h4>Binding.__str__</h4> -<b>__str__</b>(<i></i>) - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="Checker" ID="Checker"></a> -<h2>Checker</h2> -<p> - Class to check the cleanliness and sanity of Python code. -</p> -<h3>Derived from</h3> -object -<h3>Class Attributes</h3> -<table> -<tr><td>ATTRIBUTES</td></tr><tr><td>BOOLOP</td></tr><tr><td>CALL</td></tr><tr><td>COMPREHENSION</td></tr><tr><td>INVERT</td></tr><tr><td>ISNOT</td></tr><tr><td>LOAD</td></tr><tr><td>MOD</td></tr><tr><td>NONLOCAL</td></tr><tr><td>PASS</td></tr><tr><td>RETURN</td></tr><tr><td>SETCOMP</td></tr><tr><td>SLICE</td></tr><tr><td>TRY</td></tr><tr><td>nodeDepth</td></tr><tr><td>scope</td></tr><tr><td>traceTree</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#Checker.__init__">Checker</a></td> -<td>Constructor</td> -</tr><tr> -<td><a href="#Checker.ASSIGN">ASSIGN</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.AUGASSIGN">AUGASSIGN</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.CLASSDEF">CLASSDEF</a></td> -<td>Check names used in a class definition, including its decorators, base classes, and the body of its definition.</td> -</tr><tr> -<td><a href="#Checker.DICTCOMP">DICTCOMP</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.EXCEPTHANDLER">EXCEPTHANDLER</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.FOR">FOR</a></td> -<td>Process bindings for loop variables.</td> -</tr><tr> -<td><a href="#Checker.FUNCTIONDEF">FUNCTIONDEF</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.GLOBAL">GLOBAL</a></td> -<td>Keep track of globals declarations.</td> -</tr><tr> -<td><a href="#Checker.IMPORT">IMPORT</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.IMPORTFROM">IMPORTFROM</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.LAMBDA">LAMBDA</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.LISTCOMP">LISTCOMP</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.NAME">NAME</a></td> -<td>Handle occurrence of Name (which can be a load/store/delete access.)</td> -</tr><tr> -<td><a href="#Checker.STARRED">STARRED</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker._runDeferred">_runDeferred</a></td> -<td>Run the callables in deferred using their associated scope stack.</td> -</tr><tr> -<td><a href="#Checker.addArgs">addArgs</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.addBinding">addBinding</a></td> -<td>Called when a binding is altered.</td> -</tr><tr> -<td><a href="#Checker.checkUnusedAssignments">checkUnusedAssignments</a></td> -<td>Check to see if any assignments have not been used.</td> -</tr><tr> -<td><a href="#Checker.check_dead_scopes">check_dead_scopes</a></td> -<td>Look at scopes which have been fully examined and report names in them which were imported but unused.</td> -</tr><tr> -<td><a href="#Checker.collectLoopVars">collectLoopVars</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.deferAssignment">deferAssignment</a></td> -<td>Schedule an assignment handler to be called just after deferred function handlers.</td> -</tr><tr> -<td><a href="#Checker.deferFunction">deferFunction</a></td> -<td>Schedule a function handler to be called just before completion.</td> -</tr><tr> -<td><a href="#Checker.handleAssignName">handleAssignName</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.handleBody">handleBody</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.handleChildren">handleChildren</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.handleNode">handleNode</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.ignore">ignore</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.isDocstring">isDocstring</a></td> -<td>Determine if the given node is a docstring, as long as it is at the correct place in the node tree.</td> -</tr><tr> -<td><a href="#Checker.popScope">popScope</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.pushClassScope">pushClassScope</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.pushFunctionScope">pushFunctionScope</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.report">report</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.runFunction">runFunction</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.scope">scope</a></td> -<td></td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="Checker.__init__" ID="Checker.__init__"></a> -<h4>Checker (Constructor)</h4> -<b>Checker</b>(<i>module, filename='(none)'</i>) -<p> - Constructor -</p><dl> -<dt><i>module</i></dt> -<dd> -parsed module tree or module source code -</dd><dt><i>filename</i></dt> -<dd> -name of the module file (string) -</dd> -</dl><a NAME="Checker.ASSIGN" ID="Checker.ASSIGN"></a> -<h4>Checker.ASSIGN</h4> -<b>ASSIGN</b>(<i>node</i>) -<a NAME="Checker.AUGASSIGN" ID="Checker.AUGASSIGN"></a> -<h4>Checker.AUGASSIGN</h4> -<b>AUGASSIGN</b>(<i>node</i>) -<a NAME="Checker.CLASSDEF" ID="Checker.CLASSDEF"></a> -<h4>Checker.CLASSDEF</h4> -<b>CLASSDEF</b>(<i>node</i>) -<p> - Check names used in a class definition, including its decorators, base - classes, and the body of its definition. Additionally, add its name to - the current scope. -</p><a NAME="Checker.DICTCOMP" ID="Checker.DICTCOMP"></a> -<h4>Checker.DICTCOMP</h4> -<b>DICTCOMP</b>(<i>node</i>) -<a NAME="Checker.EXCEPTHANDLER" ID="Checker.EXCEPTHANDLER"></a> -<h4>Checker.EXCEPTHANDLER</h4> -<b>EXCEPTHANDLER</b>(<i>node</i>) -<a NAME="Checker.FOR" ID="Checker.FOR"></a> -<h4>Checker.FOR</h4> -<b>FOR</b>(<i>node</i>) -<p> - Process bindings for loop variables. -</p><a NAME="Checker.FUNCTIONDEF" ID="Checker.FUNCTIONDEF"></a> -<h4>Checker.FUNCTIONDEF</h4> -<b>FUNCTIONDEF</b>(<i>node</i>) -<a NAME="Checker.GLOBAL" ID="Checker.GLOBAL"></a> -<h4>Checker.GLOBAL</h4> -<b>GLOBAL</b>(<i>node</i>) -<p> - Keep track of globals declarations. -</p><a NAME="Checker.IMPORT" ID="Checker.IMPORT"></a> -<h4>Checker.IMPORT</h4> -<b>IMPORT</b>(<i>node</i>) -<a NAME="Checker.IMPORTFROM" ID="Checker.IMPORTFROM"></a> -<h4>Checker.IMPORTFROM</h4> -<b>IMPORTFROM</b>(<i>node</i>) -<a NAME="Checker.LAMBDA" ID="Checker.LAMBDA"></a> -<h4>Checker.LAMBDA</h4> -<b>LAMBDA</b>(<i>node</i>) -<a NAME="Checker.LISTCOMP" ID="Checker.LISTCOMP"></a> -<h4>Checker.LISTCOMP</h4> -<b>LISTCOMP</b>(<i>node</i>) -<a NAME="Checker.NAME" ID="Checker.NAME"></a> -<h4>Checker.NAME</h4> -<b>NAME</b>(<i>node</i>) -<p> - Handle occurrence of Name (which can be a load/store/delete access.) -</p><a NAME="Checker.STARRED" ID="Checker.STARRED"></a> -<h4>Checker.STARRED</h4> -<b>STARRED</b>(<i>node</i>) -<a NAME="Checker._runDeferred" ID="Checker._runDeferred"></a> -<h4>Checker._runDeferred</h4> -<b>_runDeferred</b>(<i>deferred</i>) -<p> - Run the callables in deferred using their associated scope stack. -</p><a NAME="Checker.addArgs" ID="Checker.addArgs"></a> -<h4>Checker.addArgs</h4> -<b>addArgs</b>(<i></i>) -<a NAME="Checker.addBinding" ID="Checker.addBinding"></a> -<h4>Checker.addBinding</h4> -<b>addBinding</b>(<i>lineno, value, reportRedef=True</i>) -<p> - Called when a binding is altered. -</p><dl> -<dt><i>lineno</i></dt> -<dd> -line of the statement responsible for the change - (integer) -</dd><dt><i>value</i></dt> -<dd> -the optional new value, a Binding instance, associated - with the binding; if None, the binding is deleted if it exists -</dd><dt><i>reportRedef</i></dt> -<dd> -flag indicating if rebinding while unused will be - reported (boolean) -</dd> -</dl><a NAME="Checker.checkUnusedAssignments" ID="Checker.checkUnusedAssignments"></a> -<h4>Checker.checkUnusedAssignments</h4> -<b>checkUnusedAssignments</b>(<i></i>) -<p> - Check to see if any assignments have not been used. -</p><a NAME="Checker.check_dead_scopes" ID="Checker.check_dead_scopes"></a> -<h4>Checker.check_dead_scopes</h4> -<b>check_dead_scopes</b>(<i></i>) -<p> - Look at scopes which have been fully examined and report names in them - which were imported but unused. -</p><a NAME="Checker.collectLoopVars" ID="Checker.collectLoopVars"></a> -<h4>Checker.collectLoopVars</h4> -<b>collectLoopVars</b>(<i></i>) -<a NAME="Checker.deferAssignment" ID="Checker.deferAssignment"></a> -<h4>Checker.deferAssignment</h4> -<b>deferAssignment</b>(<i>callable</i>) -<p> - Schedule an assignment handler to be called just after deferred - function handlers. -</p><a NAME="Checker.deferFunction" ID="Checker.deferFunction"></a> -<h4>Checker.deferFunction</h4> -<b>deferFunction</b>(<i>callable</i>) -<p> - Schedule a function handler to be called just before completion. -</p><p> - This is used for handling function bodies, which must be deferred - because code later in the file might modify the global scope. When - `callable` is called, the scope at the time this is called will be - restored, however it will contain any new bindings added to it. -</p><a NAME="Checker.handleAssignName" ID="Checker.handleAssignName"></a> -<h4>Checker.handleAssignName</h4> -<b>handleAssignName</b>(<i>node</i>) -<a NAME="Checker.handleBody" ID="Checker.handleBody"></a> -<h4>Checker.handleBody</h4> -<b>handleBody</b>(<i>tree</i>) -<a NAME="Checker.handleChildren" ID="Checker.handleChildren"></a> -<h4>Checker.handleChildren</h4> -<b>handleChildren</b>(<i>tree</i>) -<a NAME="Checker.handleNode" ID="Checker.handleNode"></a> -<h4>Checker.handleNode</h4> -<b>handleNode</b>(<i>node, parent</i>) -<a NAME="Checker.ignore" ID="Checker.ignore"></a> -<h4>Checker.ignore</h4> -<b>ignore</b>(<i>node</i>) -<a NAME="Checker.isDocstring" ID="Checker.isDocstring"></a> -<h4>Checker.isDocstring</h4> -<b>isDocstring</b>(<i>node</i>) -<p> - Determine if the given node is a docstring, as long as it is at the - correct place in the node tree. -</p><a NAME="Checker.popScope" ID="Checker.popScope"></a> -<h4>Checker.popScope</h4> -<b>popScope</b>(<i></i>) -<a NAME="Checker.pushClassScope" ID="Checker.pushClassScope"></a> -<h4>Checker.pushClassScope</h4> -<b>pushClassScope</b>(<i></i>) -<a NAME="Checker.pushFunctionScope" ID="Checker.pushFunctionScope"></a> -<h4>Checker.pushFunctionScope</h4> -<b>pushFunctionScope</b>(<i></i>) -<a NAME="Checker.report" ID="Checker.report"></a> -<h4>Checker.report</h4> -<b>report</b>(<i>messageClass, *args, **kwargs</i>) -<a NAME="Checker.runFunction" ID="Checker.runFunction"></a> -<h4>Checker.runFunction</h4> -<b>runFunction</b>(<i></i>) -<a NAME="Checker.scope" ID="Checker.scope"></a> -<h4>Checker.scope</h4> -<b>scope</b>(<i></i>) - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="ClassScope" ID="ClassScope"></a> -<h2>ClassScope</h2> -<p> - Class representing a name scope for a class. -</p> -<h3>Derived from</h3> -Scope -<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>None</td></tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="ExportBinding" ID="ExportBinding"></a> -<h2>ExportBinding</h2> -<p> - A binding created by an __all__ assignment. If the names in the list - can be determined statically, they will be treated as names for export and - additional checking applied to them. -</p><p> - The only __all__ assignment that can be recognized is one which takes - the value of a literal list containing literal strings. For example:: -</p><p> - __all__ = ["foo", "bar"] -</p><p> - Names which are imported and not otherwise used but appear in the value of - __all__ will not have an unused import warning reported for them. -</p> -<h3>Derived from</h3> -Binding -<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="#ExportBinding.names">names</a></td> -<td>Return a list of the names referenced by this binding.</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="ExportBinding.names" ID="ExportBinding.names"></a> -<h4>ExportBinding.names</h4> -<b>names</b>(<i></i>) -<p> - Return a list of the names referenced by this binding. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="FunctionDefinition" ID="FunctionDefinition"></a> -<h2>FunctionDefinition</h2> -<p> - Represents a function definition. -</p> -<h3>Derived from</h3> -Binding -<h3>Class Attributes</h3> -<table> -<tr><td>is_property</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="FunctionScope" ID="FunctionScope"></a> -<h2>FunctionScope</h2> -<p> - Class representing a name scope for a function. -</p> -<h3>Derived from</h3> -Scope -<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="#FunctionScope.__init__">FunctionScope</a></td> -<td></td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="FunctionScope.__init__" ID="FunctionScope.__init__"></a> -<h4>FunctionScope (Constructor)</h4> -<b>FunctionScope</b>(<i></i>) - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="Importation" ID="Importation"></a> -<h2>Importation</h2> -<p> - A binding created by an import statement. -</p> -<h3>Derived from</h3> -Binding -<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="#Importation.__init__">Importation</a></td> -<td></td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="Importation.__init__" ID="Importation.__init__"></a> -<h4>Importation (Constructor)</h4> -<b>Importation</b>(<i>name, source</i>) - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="ModuleScope" ID="ModuleScope"></a> -<h2>ModuleScope</h2> -<p> - Class representing a name scope for a module. -</p> -<h3>Derived from</h3> -Scope -<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>None</td></tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="Scope" ID="Scope"></a> -<h2>Scope</h2> -<p> - Class defining the scope base class. -</p> -<h3>Derived from</h3> -dict -<h3>Class Attributes</h3> -<table> -<tr><td>importStarred</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#Scope.__init__">Scope</a></td> -<td></td> -</tr><tr> -<td><a href="#Scope.__repr__">__repr__</a></td> -<td></td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="Scope.__init__" ID="Scope.__init__"></a> -<h4>Scope (Constructor)</h4> -<b>Scope</b>(<i></i>) -<a NAME="Scope.__repr__" ID="Scope.__repr__"></a> -<h4>Scope.__repr__</h4> -<b>__repr__</b>(<i></i>) - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="UnBinding" ID="UnBinding"></a> -<h2>UnBinding</h2> -<p> - Created by the 'del' operator. -</p> -<h3>Derived from</h3> -Binding -<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>None</td></tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> - -<div align="right"><a href="#top">Up</a></div> -<hr /> -</body></html> \ No newline at end of file
--- a/Documentation/Source/eric5.Utilities.py3flakes.messages.html Sun Jan 05 22:45:29 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,678 +0,0 @@ -<!DOCTYPE html> -<html><head> -<title>eric5.Utilities.py3flakes.messages</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.py3flakes.messages</h1> -<p> -Module implementing the messages for py3flakes. -</p> -<h3>Global Attributes</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Classes</h3> -<table> -<tr> -<td><a href="#DuplicateArgument">DuplicateArgument</a></td> -<td>Class defining the "Duplicate Argument" message.</td> -</tr><tr> -<td><a href="#ImportShadowedByLoopVar">ImportShadowedByLoopVar</a></td> -<td>Class defining the "Import Shadowed By Loop Var" message.</td> -</tr><tr> -<td><a href="#ImportStarUsed">ImportStarUsed</a></td> -<td>Class defining the "Import Star Used" message.</td> -</tr><tr> -<td><a href="#LateFutureImport">LateFutureImport</a></td> -<td>Class defining the "Late Future Import" message.</td> -</tr><tr> -<td><a href="#Message">Message</a></td> -<td>Class defining the base for all specific message classes.</td> -</tr><tr> -<td><a href="#RedefinedFunction">RedefinedFunction</a></td> -<td>Class defining the "Redefined Function" message.</td> -</tr><tr> -<td><a href="#RedefinedWhileUnused">RedefinedWhileUnused</a></td> -<td>Class defining the "Redefined While Unused" message.</td> -</tr><tr> -<td><a href="#UndefinedExport">UndefinedExport</a></td> -<td>Class defining the "Undefined Export" message.</td> -</tr><tr> -<td><a href="#UndefinedLocal">UndefinedLocal</a></td> -<td>Class defining the "Undefined Local Variable" message.</td> -</tr><tr> -<td><a href="#UndefinedName">UndefinedName</a></td> -<td>Class defining the "Undefined Name" message.</td> -</tr><tr> -<td><a href="#UnusedImport">UnusedImport</a></td> -<td>Class defining the "Unused Import" message.</td> -</tr><tr> -<td><a href="#UnusedVariable">UnusedVariable</a></td> -<td>Class defining the "Unused Variable" message.</td> -</tr> -</table> -<h3>Functions</h3> -<table> -<tr> -<td><a href="#QT_TRANSLATE_NOOP">QT_TRANSLATE_NOOP</a></td> -<td>Function to tell 'lupdate' which strings to keep for translation.</td> -</tr> -</table> -<hr /><hr /> -<a NAME="DuplicateArgument" ID="DuplicateArgument"></a> -<h2>DuplicateArgument</h2> -<p> - Class defining the "Duplicate Argument" message. -</p> -<h3>Derived from</h3> -Message -<h3>Class Attributes</h3> -<table> -<tr><td>message</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#DuplicateArgument.__init__">DuplicateArgument</a></td> -<td>Constructor</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="DuplicateArgument.__init__" ID="DuplicateArgument.__init__"></a> -<h4>DuplicateArgument (Constructor)</h4> -<b>DuplicateArgument</b>(<i>filename, lineno, name</i>) -<p> - Constructor -</p><dl> -<dt><i>filename</i></dt> -<dd> -name of the file (string) -</dd><dt><i>lineno</i></dt> -<dd> -line number (integer) -</dd><dt><i>name</i></dt> -<dd> -name of the duplicate argument (string) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="ImportShadowedByLoopVar" ID="ImportShadowedByLoopVar"></a> -<h2>ImportShadowedByLoopVar</h2> -<p> - Class defining the "Import Shadowed By Loop Var" message. -</p> -<h3>Derived from</h3> -Message -<h3>Class Attributes</h3> -<table> -<tr><td>message</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#ImportShadowedByLoopVar.__init__">ImportShadowedByLoopVar</a></td> -<td>Constructor</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="ImportShadowedByLoopVar.__init__" ID="ImportShadowedByLoopVar.__init__"></a> -<h4>ImportShadowedByLoopVar (Constructor)</h4> -<b>ImportShadowedByLoopVar</b>(<i>filename, lineno, name, orig_lineno</i>) -<p> - Constructor -</p><dl> -<dt><i>filename</i></dt> -<dd> -name of the file (string) -</dd><dt><i>lineno</i></dt> -<dd> -line number (integer) -</dd><dt><i>name</i></dt> -<dd> -name of the shadowed import (string) -</dd><dt><i>orig_lineno</i></dt> -<dd> -line number of the import (integer) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="ImportStarUsed" ID="ImportStarUsed"></a> -<h2>ImportStarUsed</h2> -<p> - Class defining the "Import Star Used" message. -</p> -<h3>Derived from</h3> -Message -<h3>Class Attributes</h3> -<table> -<tr><td>message</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#ImportStarUsed.__init__">ImportStarUsed</a></td> -<td>Constructor</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="ImportStarUsed.__init__" ID="ImportStarUsed.__init__"></a> -<h4>ImportStarUsed (Constructor)</h4> -<b>ImportStarUsed</b>(<i>filename, lineno, modname</i>) -<p> - Constructor -</p><dl> -<dt><i>filename</i></dt> -<dd> -name of the file (string) -</dd><dt><i>lineno</i></dt> -<dd> -line number (integer) -</dd><dt><i>modname</i></dt> -<dd> -name of the module imported using star import (string) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="LateFutureImport" ID="LateFutureImport"></a> -<h2>LateFutureImport</h2> -<p> - Class defining the "Late Future Import" message. -</p> -<h3>Derived from</h3> -Message -<h3>Class Attributes</h3> -<table> -<tr><td>message</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#LateFutureImport.__init__">LateFutureImport</a></td> -<td>Constructor</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="LateFutureImport.__init__" ID="LateFutureImport.__init__"></a> -<h4>LateFutureImport (Constructor)</h4> -<b>LateFutureImport</b>(<i>filename, lineno, names</i>) -<p> - Constructor -</p><dl> -<dt><i>filename</i></dt> -<dd> -name of the file (string) -</dd><dt><i>lineno</i></dt> -<dd> -line number (integer) -</dd><dt><i>names</i></dt> -<dd> -names of the imported futures (string) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="Message" ID="Message"></a> -<h2>Message</h2> -<p> - Class defining the base for all specific message classes. -</p> -<h3>Derived from</h3> -object -<h3>Class Attributes</h3> -<table> -<tr><td>message</td></tr><tr><td>message_args</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#Message.__init__">Message</a></td> -<td>Constructor</td> -</tr><tr> -<td><a href="#Message.__str__">__str__</a></td> -<td>Special method return a string representation of the instance object.</td> -</tr><tr> -<td><a href="#Message.getMessageData">getMessageData</a></td> -<td>Public method to get the individual message data elements.</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="Message.__init__" ID="Message.__init__"></a> -<h4>Message (Constructor)</h4> -<b>Message</b>(<i>filename, lineno</i>) -<p> - Constructor -</p><dl> -<dt><i>filename</i></dt> -<dd> -name of the file (string) -</dd><dt><i>lineno</i></dt> -<dd> -line number (integer) -</dd> -</dl><a NAME="Message.__str__" ID="Message.__str__"></a> -<h4>Message.__str__</h4> -<b>__str__</b>(<i></i>) -<p> - Special method return a string representation of the instance object. -</p><dl> -<dt>Returns:</dt> -<dd> -string representation of the object (string) -</dd> -</dl><a NAME="Message.getMessageData" ID="Message.getMessageData"></a> -<h4>Message.getMessageData</h4> -<b>getMessageData</b>(<i></i>) -<p> - Public method to get the individual message data elements. -</p><dl> -<dt>Returns:</dt> -<dd> -tuple containing file name, line number and message - (string, integer, string) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="RedefinedFunction" ID="RedefinedFunction"></a> -<h2>RedefinedFunction</h2> -<p> - Class defining the "Redefined Function" message. -</p> -<h3>Derived from</h3> -Message -<h3>Class Attributes</h3> -<table> -<tr><td>message</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#RedefinedFunction.__init__">RedefinedFunction</a></td> -<td>Constructor</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="RedefinedFunction.__init__" ID="RedefinedFunction.__init__"></a> -<h4>RedefinedFunction (Constructor)</h4> -<b>RedefinedFunction</b>(<i>filename, lineno, name, orig_lineno</i>) -<p> - Constructor -</p><dl> -<dt><i>filename</i></dt> -<dd> -name of the file (string) -</dd><dt><i>lineno</i></dt> -<dd> -line number (integer) -</dd><dt><i>name</i></dt> -<dd> -name of the redefined function (string) -</dd><dt><i>orig_lineno</i></dt> -<dd> -line number of the original definition (integer) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="RedefinedWhileUnused" ID="RedefinedWhileUnused"></a> -<h2>RedefinedWhileUnused</h2> -<p> - Class defining the "Redefined While Unused" message. -</p> -<h3>Derived from</h3> -Message -<h3>Class Attributes</h3> -<table> -<tr><td>message</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#RedefinedWhileUnused.__init__">RedefinedWhileUnused</a></td> -<td>Constructor</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="RedefinedWhileUnused.__init__" ID="RedefinedWhileUnused.__init__"></a> -<h4>RedefinedWhileUnused (Constructor)</h4> -<b>RedefinedWhileUnused</b>(<i>filename, lineno, name, orig_lineno</i>) -<p> - Constructor -</p><dl> -<dt><i>filename</i></dt> -<dd> -name of the file (string) -</dd><dt><i>lineno</i></dt> -<dd> -line number (integer) -</dd><dt><i>name</i></dt> -<dd> -name of the redefined object (string) -</dd><dt><i>orig_lineno</i></dt> -<dd> -line number of the original definition (integer) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="UndefinedExport" ID="UndefinedExport"></a> -<h2>UndefinedExport</h2> -<p> - Class defining the "Undefined Export" message. -</p> -<h3>Derived from</h3> -Message -<h3>Class Attributes</h3> -<table> -<tr><td>message</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#UndefinedExport.__init__">UndefinedExport</a></td> -<td>Constructor</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="UndefinedExport.__init__" ID="UndefinedExport.__init__"></a> -<h4>UndefinedExport (Constructor)</h4> -<b>UndefinedExport</b>(<i>filename, lineno, name</i>) -<p> - Constructor -</p><dl> -<dt><i>filename</i></dt> -<dd> -name of the file (string) -</dd><dt><i>lineno</i></dt> -<dd> -line number (integer) -</dd><dt><i>name</i></dt> -<dd> -undefined exported name (string) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="UndefinedLocal" ID="UndefinedLocal"></a> -<h2>UndefinedLocal</h2> -<p> - Class defining the "Undefined Local Variable" message. -</p> -<h3>Derived from</h3> -Message -<h3>Class Attributes</h3> -<table> -<tr><td>message</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#UndefinedLocal.__init__">UndefinedLocal</a></td> -<td>Constructor</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="UndefinedLocal.__init__" ID="UndefinedLocal.__init__"></a> -<h4>UndefinedLocal (Constructor)</h4> -<b>UndefinedLocal</b>(<i>filename, lineno, name, orig_lineno</i>) -<p> - Constructor -</p><dl> -<dt><i>filename</i></dt> -<dd> -name of the file (string) -</dd><dt><i>lineno</i></dt> -<dd> -line number (integer) -</dd><dt><i>name</i></dt> -<dd> -name of the prematurely referenced variable (string) -</dd><dt><i>orig_lineno</i></dt> -<dd> -line number of the variable definition (integer) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="UndefinedName" ID="UndefinedName"></a> -<h2>UndefinedName</h2> -<p> - Class defining the "Undefined Name" message. -</p> -<h3>Derived from</h3> -Message -<h3>Class Attributes</h3> -<table> -<tr><td>message</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#UndefinedName.__init__">UndefinedName</a></td> -<td>Constructor</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="UndefinedName.__init__" ID="UndefinedName.__init__"></a> -<h4>UndefinedName (Constructor)</h4> -<b>UndefinedName</b>(<i>filename, lineno, name</i>) -<p> - Constructor -</p><dl> -<dt><i>filename</i></dt> -<dd> -name of the file (string) -</dd><dt><i>lineno</i></dt> -<dd> -line number (integer) -</dd><dt><i>name</i></dt> -<dd> -undefined name (string) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="UnusedImport" ID="UnusedImport"></a> -<h2>UnusedImport</h2> -<p> - Class defining the "Unused Import" message. -</p> -<h3>Derived from</h3> -Message -<h3>Class Attributes</h3> -<table> -<tr><td>message</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#UnusedImport.__init__">UnusedImport</a></td> -<td>Constructor</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="UnusedImport.__init__" ID="UnusedImport.__init__"></a> -<h4>UnusedImport (Constructor)</h4> -<b>UnusedImport</b>(<i>filename, lineno, name</i>) -<p> - Constructor -</p><dl> -<dt><i>filename</i></dt> -<dd> -name of the file (string) -</dd><dt><i>lineno</i></dt> -<dd> -line number (integer) -</dd><dt><i>name</i></dt> -<dd> -name of the unused import (string) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="UnusedVariable" ID="UnusedVariable"></a> -<h2>UnusedVariable</h2> -<p> - Class defining the "Unused Variable" message. -</p><p> - Indicates that a variable has been explicitly assigned to but not actually - used. -</p> -<h3>Derived from</h3> -Message -<h3>Class Attributes</h3> -<table> -<tr><td>message</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#UnusedVariable.__init__">UnusedVariable</a></td> -<td>Constructor</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="UnusedVariable.__init__" ID="UnusedVariable.__init__"></a> -<h4>UnusedVariable (Constructor)</h4> -<b>UnusedVariable</b>(<i>filename, lineno, name</i>) -<p> - Constructor -</p><dl> -<dt><i>filename</i></dt> -<dd> -name of the file (string) -</dd><dt><i>lineno</i></dt> -<dd> -line number (integer) -</dd><dt><i>name</i></dt> -<dd> -name of the unused variable (string) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="QT_TRANSLATE_NOOP" ID="QT_TRANSLATE_NOOP"></a> -<h2>QT_TRANSLATE_NOOP</h2> -<b>QT_TRANSLATE_NOOP</b>(<i>mod, txt</i>) -<p> - Function to tell 'lupdate' which strings to keep for translation. -</p><dl> -<dt><i>mod</i></dt> -<dd> -module name -</dd><dt><i>txt</i></dt> -<dd> -translatable string -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -the untranslated! 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.UtilitiesPython2.CodeStyleChecker.html Sun Jan 05 22:45:29 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,111 +0,0 @@ -<!DOCTYPE html> -<html><head> -<title>eric5.UtilitiesPython2.CodeStyleChecker</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.CodeStyleChecker</h1> -<p> -Class implementing the PEP 8 checker for Python2. -</p> -<h3>Global Attributes</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Classes</h3> -<table> -<tr> -<td><a href="#CodeStyleReport">CodeStyleReport</a></td> -<td>Class implementing a special report to be used with our dialog.</td> -</tr> -</table> -<h3>Functions</h3> -<table> -<tr><td>None</td></tr> -</table> -<hr /><hr /> -<a NAME="CodeStyleReport" ID="CodeStyleReport"></a> -<h2>CodeStyleReport</h2> -<p> - Class implementing a special report to be used with our dialog. -</p> -<h3>Derived from</h3> -pep8.BaseReport -<h3>Class Attributes</h3> -<table> -<tr><td>docType</td></tr><tr><td>filename</td></tr><tr><td>hang_closing</td></tr><tr><td>ignore</td></tr><tr><td>max_line_length</td></tr><tr><td>repeat</td></tr><tr><td>select</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#CodeStyleReport.__init__">CodeStyleReport</a></td> -<td>Constructor</td> -</tr><tr> -<td><a href="#CodeStyleReport.error_args">error_args</a></td> -<td>Public method to collect the error messages.</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="CodeStyleReport.__init__" ID="CodeStyleReport.__init__"></a> -<h4>CodeStyleReport (Constructor)</h4> -<b>CodeStyleReport</b>(<i>options</i>) -<p> - Constructor -</p><dl> -<dt><i>options</i></dt> -<dd> -options for the report (optparse.Values) -</dd> -</dl><a NAME="CodeStyleReport.error_args" ID="CodeStyleReport.error_args"></a> -<h4>CodeStyleReport.error_args</h4> -<b>error_args</b>(<i>line_number, offset, code, check, *args</i>) -<p> - Public method to collect the error messages. -</p><dl> -<dt><i>line_number</i></dt> -<dd> -line number of the issue (integer) -</dd><dt><i>offset</i></dt> -<dd> -position within line of the issue (integer) -</dd><dt><i>code</i></dt> -<dd> -message code (string) -</dd><dt><i>check</i></dt> -<dd> -reference to the checker function (function) -</dd><dt><i>args</i></dt> -<dd> -arguments for the message (list) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -error code (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.UtilitiesPython2.DocStyleCheckerPy2.html Sun Jan 05 22:45:29 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,896 +0,0 @@ -<!DOCTYPE html> -<html><head> -<title>eric5.UtilitiesPython2.DocStyleCheckerPy2</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.DocStyleCheckerPy2</h1> -<p> -Module implementing a checker for documentation string conventions. -</p> -<h3>Global Attributes</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Classes</h3> -<table> -<tr> -<td><a href="#DocStyleChecker">DocStyleChecker</a></td> -<td>Class implementing a checker for documentation string conventions.</td> -</tr><tr> -<td><a href="#DocStyleContext">DocStyleContext</a></td> -<td>Class implementing the source context.</td> -</tr> -</table> -<h3>Functions</h3> -<table> -<tr><td>None</td></tr> -</table> -<hr /><hr /> -<a NAME="DocStyleChecker" ID="DocStyleChecker"></a> -<h2>DocStyleChecker</h2> -<p> - Class implementing a checker for documentation string conventions. -</p> -<h3>Derived from</h3> -object -<h3>Class Attributes</h3> -<table> -<tr><td>Codes</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#DocStyleChecker.__init__">DocStyleChecker</a></td> -<td>Constructor</td> -</tr><tr> -<td><a href="#DocStyleChecker.__checkBackslashes">__checkBackslashes</a></td> -<td>Private method to check, that all docstrings containing backslashes are surrounded by raw triple double quotes.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__checkBlankAfterLastParagraph">__checkBlankAfterLastParagraph</a></td> -<td>Private method to check, that the last paragraph of docstrings is followed by a blank line.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__checkBlankAfterSummary">__checkBlankAfterSummary</a></td> -<td>Private method to check, that docstring summaries are followed by a blank line.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__checkBlankBeforeAndAfterClass">__checkBlankBeforeAndAfterClass</a></td> -<td>Private method to check, that class docstrings have one blank line around them.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__checkClassDocstring">__checkClassDocstring</a></td> -<td>Private method to check, that all public functions and methods have a docstring.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__checkEndsWithPeriod">__checkEndsWithPeriod</a></td> -<td>Private method to check, that docstring summaries end with a period.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__checkEricBlankAfterSummary">__checkEricBlankAfterSummary</a></td> -<td>Private method to check, that docstring summaries are followed by a blank line.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__checkEricEndsWithPeriod">__checkEricEndsWithPeriod</a></td> -<td>Private method to check, that docstring summaries end with a period.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__checkEricException">__checkEricException</a></td> -<td>Private method to check, that docstrings contain an @exception line if they raise an exception and don't otherwise.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__checkEricFunctionArguments">__checkEricFunctionArguments</a></td> -<td>Private method to check, that docstrings contain an @param and/or @keyparam line for each argument.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__checkEricNBlankAfterLastParagraph">__checkEricNBlankAfterLastParagraph</a></td> -<td>Private method to check, that the last paragraph of docstrings is not followed by a blank line.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__checkEricNoBlankBeforeAndAfterClassOrFunction">__checkEricNoBlankBeforeAndAfterClassOrFunction</a></td> -<td>Private method to check, that class and function/method docstrings have no blank line around them.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__checkEricQuotesOnSeparateLines">__checkEricQuotesOnSeparateLines</a></td> -<td>Private method to check, that leading and trailing quotes are on a line by themselves.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__checkEricReturn">__checkEricReturn</a></td> -<td>Private method to check, that docstrings contain an @return line if they return anything and don't otherwise.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__checkFunctionDocstring">__checkFunctionDocstring</a></td> -<td>Private method to check, that all public functions and methods have a docstring.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__checkImperativeMood">__checkImperativeMood</a></td> -<td>Private method to check, that docstring summaries are in imperative mood.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__checkIndent">__checkIndent</a></td> -<td>Private method to check, that docstrings are properly indented.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__checkModulesDocstrings">__checkModulesDocstrings</a></td> -<td>Private method to check, if the module has a docstring.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__checkNoBlankLineBefore">__checkNoBlankLineBefore</a></td> -<td>Private method to check, that function/method docstrings are not preceded by a blank line.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__checkNoSignature">__checkNoSignature</a></td> -<td>Private method to check, that docstring summaries don't repeat the function's signature.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__checkOneLiner">__checkOneLiner</a></td> -<td>Private method to check, that one-liner docstrings fit on one line with quotes.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__checkReturnType">__checkReturnType</a></td> -<td>Private method to check, that docstrings mention the return value type.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__checkTripleDoubleQuotes">__checkTripleDoubleQuotes</a></td> -<td>Private method to check, that all docstrings are surrounded by triple double quotes.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__checkUnicode">__checkUnicode</a></td> -<td>Private method to check, that all docstrings containing unicode characters are surrounded by unicode triple double quotes.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__error">__error</a></td> -<td>Private method to record an issue.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__getArgNames">__getArgNames</a></td> -<td></td> -</tr><tr> -<td><a href="#DocStyleChecker.__getSummaryLine">__getSummaryLine</a></td> -<td>Private method to extract the summary line.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__getSummaryLines">__getSummaryLines</a></td> -<td>Private method to extract the summary lines.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__ignoreCode">__ignoreCode</a></td> -<td>Private method to check if the error code should be ignored.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__parseClasses">__parseClasses</a></td> -<td>Private method to extract top-level classes.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__parseContexts">__parseContexts</a></td> -<td>Private method to extract a context from the source.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__parseDocstring">__parseDocstring</a></td> -<td>Private method to extract a docstring given `def` or `class` source.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__parseFunctions">__parseFunctions</a></td> -<td>Private method to extract top-level functions.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__parseMethods">__parseMethods</a></td> -<td>Private method to extract methods of all classes.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__parseModuleDocstring">__parseModuleDocstring</a></td> -<td>Private method to extract a docstring given a module source.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__parseTopLevel">__parseTopLevel</a></td> -<td>Private method to extract top-level functions or classes.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__readline">__readline</a></td> -<td>Private method to get the next line from the source.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__resetReadline">__resetReadline</a></td> -<td>Private method to reset the internal readline function.</td> -</tr><tr> -<td><a href="#DocStyleChecker.__skipIndentedBlock">__skipIndentedBlock</a></td> -<td>Private method to skip over an indented block of source code.</td> -</tr><tr> -<td><a href="#DocStyleChecker.run">run</a></td> -<td>Public method to check the given source for violations of doc string conventions.</td> -</tr><tr> -<td><a href="#DocStyleChecker.unpackArgs">unpackArgs</a></td> -<td>Local helper function to unpack function argument names.</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="DocStyleChecker.__init__" ID="DocStyleChecker.__init__"></a> -<h4>DocStyleChecker (Constructor)</h4> -<b>DocStyleChecker</b>(<i>source, filename, select, ignore, expected, repeat, maxLineLength=79, docType="pep257"</i>) -<p> - Constructor -</p><dl> -<dt><i>source</i></dt> -<dd> -source code to be checked (list of string) -</dd><dt><i>filename</i></dt> -<dd> -name of the source file (string) -</dd><dt><i>select</i></dt> -<dd> -list of selected codes (list of string) -</dd><dt><i>ignore</i></dt> -<dd> -list of codes to be ignored (list of string) -</dd><dt><i>expected</i></dt> -<dd> -list of expected codes (list of string) -</dd><dt><i>repeat</i></dt> -<dd> -flag indicating to report each occurrence of a code - (boolean) -</dd><dt><i>maxLineLength=</i></dt> -<dd> -allowed line length (integer) -</dd><dt><i>docType=</i></dt> -<dd> -type of the documentation strings - (string, one of 'eric' or 'pep257') -</dd> -</dl><a NAME="DocStyleChecker.__checkBackslashes" ID="DocStyleChecker.__checkBackslashes"></a> -<h4>DocStyleChecker.__checkBackslashes</h4> -<b>__checkBackslashes</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that all docstrings containing - backslashes are surrounded by raw triple double quotes. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (DocStyleContext) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (DocStyleContext) -</dd> -</dl><a NAME="DocStyleChecker.__checkBlankAfterLastParagraph" ID="DocStyleChecker.__checkBlankAfterLastParagraph"></a> -<h4>DocStyleChecker.__checkBlankAfterLastParagraph</h4> -<b>__checkBlankAfterLastParagraph</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that the last paragraph of docstrings is - followed by a blank line. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (DocStyleContext) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (DocStyleContext) -</dd> -</dl><a NAME="DocStyleChecker.__checkBlankAfterSummary" ID="DocStyleChecker.__checkBlankAfterSummary"></a> -<h4>DocStyleChecker.__checkBlankAfterSummary</h4> -<b>__checkBlankAfterSummary</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that docstring summaries are followed - by a blank line. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (DocStyleContext) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (DocStyleContext) -</dd> -</dl><a NAME="DocStyleChecker.__checkBlankBeforeAndAfterClass" ID="DocStyleChecker.__checkBlankBeforeAndAfterClass"></a> -<h4>DocStyleChecker.__checkBlankBeforeAndAfterClass</h4> -<b>__checkBlankBeforeAndAfterClass</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that class docstrings have one - blank line around them. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (DocStyleContext) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (DocStyleContext) -</dd> -</dl><a NAME="DocStyleChecker.__checkClassDocstring" ID="DocStyleChecker.__checkClassDocstring"></a> -<h4>DocStyleChecker.__checkClassDocstring</h4> -<b>__checkClassDocstring</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that all public functions and methods - have a docstring. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (DocStyleContext) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (DocStyleContext) -</dd> -</dl><a NAME="DocStyleChecker.__checkEndsWithPeriod" ID="DocStyleChecker.__checkEndsWithPeriod"></a> -<h4>DocStyleChecker.__checkEndsWithPeriod</h4> -<b>__checkEndsWithPeriod</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that docstring summaries end with a period. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (DocStyleContext) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (DocStyleContext) -</dd> -</dl><a NAME="DocStyleChecker.__checkEricBlankAfterSummary" ID="DocStyleChecker.__checkEricBlankAfterSummary"></a> -<h4>DocStyleChecker.__checkEricBlankAfterSummary</h4> -<b>__checkEricBlankAfterSummary</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that docstring summaries are followed - by a blank line. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (DocStyleContext) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (DocStyleContext) -</dd> -</dl><a NAME="DocStyleChecker.__checkEricEndsWithPeriod" ID="DocStyleChecker.__checkEricEndsWithPeriod"></a> -<h4>DocStyleChecker.__checkEricEndsWithPeriod</h4> -<b>__checkEricEndsWithPeriod</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that docstring summaries end with a period. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (DocStyleContext) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (DocStyleContext) -</dd> -</dl><a NAME="DocStyleChecker.__checkEricException" ID="DocStyleChecker.__checkEricException"></a> -<h4>DocStyleChecker.__checkEricException</h4> -<b>__checkEricException</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that docstrings contain an @exception line - if they raise an exception and don't otherwise. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (DocStyleContext) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (DocStyleContext) -</dd> -</dl><a NAME="DocStyleChecker.__checkEricFunctionArguments" ID="DocStyleChecker.__checkEricFunctionArguments"></a> -<h4>DocStyleChecker.__checkEricFunctionArguments</h4> -<b>__checkEricFunctionArguments</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that docstrings contain an @param and/or - @keyparam line for each argument. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (DocStyleContext) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (DocStyleContext) -</dd> -</dl><a NAME="DocStyleChecker.__checkEricNBlankAfterLastParagraph" ID="DocStyleChecker.__checkEricNBlankAfterLastParagraph"></a> -<h4>DocStyleChecker.__checkEricNBlankAfterLastParagraph</h4> -<b>__checkEricNBlankAfterLastParagraph</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that the last paragraph of docstrings is - not followed by a blank line. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (DocStyleContext) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (DocStyleContext) -</dd> -</dl><a NAME="DocStyleChecker.__checkEricNoBlankBeforeAndAfterClassOrFunction" ID="DocStyleChecker.__checkEricNoBlankBeforeAndAfterClassOrFunction"></a> -<h4>DocStyleChecker.__checkEricNoBlankBeforeAndAfterClassOrFunction</h4> -<b>__checkEricNoBlankBeforeAndAfterClassOrFunction</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that class and function/method docstrings - have no blank line around them. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (DocStyleContext) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (DocStyleContext) -</dd> -</dl><a NAME="DocStyleChecker.__checkEricQuotesOnSeparateLines" ID="DocStyleChecker.__checkEricQuotesOnSeparateLines"></a> -<h4>DocStyleChecker.__checkEricQuotesOnSeparateLines</h4> -<b>__checkEricQuotesOnSeparateLines</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that leading and trailing quotes are on - a line by themselves. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (DocStyleContext) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (DocStyleContext) -</dd> -</dl><a NAME="DocStyleChecker.__checkEricReturn" ID="DocStyleChecker.__checkEricReturn"></a> -<h4>DocStyleChecker.__checkEricReturn</h4> -<b>__checkEricReturn</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that docstrings contain an @return line - if they return anything and don't otherwise. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (DocStyleContext) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (DocStyleContext) -</dd> -</dl><a NAME="DocStyleChecker.__checkFunctionDocstring" ID="DocStyleChecker.__checkFunctionDocstring"></a> -<h4>DocStyleChecker.__checkFunctionDocstring</h4> -<b>__checkFunctionDocstring</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that all public functions and methods - have a docstring. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (DocStyleContext) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (DocStyleContext) -</dd> -</dl><a NAME="DocStyleChecker.__checkImperativeMood" ID="DocStyleChecker.__checkImperativeMood"></a> -<h4>DocStyleChecker.__checkImperativeMood</h4> -<b>__checkImperativeMood</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that docstring summaries are in - imperative mood. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (DocStyleContext) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (DocStyleContext) -</dd> -</dl><a NAME="DocStyleChecker.__checkIndent" ID="DocStyleChecker.__checkIndent"></a> -<h4>DocStyleChecker.__checkIndent</h4> -<b>__checkIndent</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that docstrings are properly indented. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (DocStyleContext) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (DocStyleContext) -</dd> -</dl><a NAME="DocStyleChecker.__checkModulesDocstrings" ID="DocStyleChecker.__checkModulesDocstrings"></a> -<h4>DocStyleChecker.__checkModulesDocstrings</h4> -<b>__checkModulesDocstrings</b>(<i>docstringContext, context</i>) -<p> - Private method to check, if the module has a docstring. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (DocStyleContext) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (DocStyleContext) -</dd> -</dl><a NAME="DocStyleChecker.__checkNoBlankLineBefore" ID="DocStyleChecker.__checkNoBlankLineBefore"></a> -<h4>DocStyleChecker.__checkNoBlankLineBefore</h4> -<b>__checkNoBlankLineBefore</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that function/method docstrings are not - preceded by a blank line. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (DocStyleContext) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (DocStyleContext) -</dd> -</dl><a NAME="DocStyleChecker.__checkNoSignature" ID="DocStyleChecker.__checkNoSignature"></a> -<h4>DocStyleChecker.__checkNoSignature</h4> -<b>__checkNoSignature</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that docstring summaries don't repeat - the function's signature. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (DocStyleContext) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (DocStyleContext) -</dd> -</dl><a NAME="DocStyleChecker.__checkOneLiner" ID="DocStyleChecker.__checkOneLiner"></a> -<h4>DocStyleChecker.__checkOneLiner</h4> -<b>__checkOneLiner</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that one-liner docstrings fit on - one line with quotes. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (DocStyleContext) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (DocStyleContext) -</dd> -</dl><a NAME="DocStyleChecker.__checkReturnType" ID="DocStyleChecker.__checkReturnType"></a> -<h4>DocStyleChecker.__checkReturnType</h4> -<b>__checkReturnType</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that docstrings mention the return value type. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (DocStyleContext) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (DocStyleContext) -</dd> -</dl><a NAME="DocStyleChecker.__checkTripleDoubleQuotes" ID="DocStyleChecker.__checkTripleDoubleQuotes"></a> -<h4>DocStyleChecker.__checkTripleDoubleQuotes</h4> -<b>__checkTripleDoubleQuotes</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that all docstrings are surrounded - by triple double quotes. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (DocStyleContext) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (DocStyleContext) -</dd> -</dl><a NAME="DocStyleChecker.__checkUnicode" ID="DocStyleChecker.__checkUnicode"></a> -<h4>DocStyleChecker.__checkUnicode</h4> -<b>__checkUnicode</b>(<i>docstringContext, context</i>) -<p> - Private method to check, that all docstrings containing unicode - characters are surrounded by unicode triple double quotes. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (DocStyleContext) -</dd><dt><i>context</i></dt> -<dd> -context of the docstring (DocStyleContext) -</dd> -</dl><a NAME="DocStyleChecker.__error" ID="DocStyleChecker.__error"></a> -<h4>DocStyleChecker.__error</h4> -<b>__error</b>(<i>lineNumber, offset, code, *args</i>) -<p> - Private method to record an issue. -</p><dl> -<dt><i>lineNumber</i></dt> -<dd> -line number of the issue (integer) -</dd><dt><i>offset</i></dt> -<dd> -position within line of the issue (integer) -</dd><dt><i>code</i></dt> -<dd> -message code (string) -</dd><dt><i>args</i></dt> -<dd> -arguments for the message (list) -</dd> -</dl><a NAME="DocStyleChecker.__getArgNames" ID="DocStyleChecker.__getArgNames"></a> -<h4>DocStyleChecker.__getArgNames</h4> -<b>__getArgNames</b>(<i>node</i>) -<a NAME="DocStyleChecker.__getSummaryLine" ID="DocStyleChecker.__getSummaryLine"></a> -<h4>DocStyleChecker.__getSummaryLine</h4> -<b>__getSummaryLine</b>(<i>docstringContext</i>) -<p> - Private method to extract the summary line. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (DocStyleContext) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -summary line (string) and the line it was found on (integer) -</dd> -</dl><a NAME="DocStyleChecker.__getSummaryLines" ID="DocStyleChecker.__getSummaryLines"></a> -<h4>DocStyleChecker.__getSummaryLines</h4> -<b>__getSummaryLines</b>(<i>docstringContext</i>) -<p> - Private method to extract the summary lines. -</p><dl> -<dt><i>docstringContext</i></dt> -<dd> -docstring context (DocStyleContext) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -summary lines (list of string) and the line it was found on - (integer) -</dd> -</dl><a NAME="DocStyleChecker.__ignoreCode" ID="DocStyleChecker.__ignoreCode"></a> -<h4>DocStyleChecker.__ignoreCode</h4> -<b>__ignoreCode</b>(<i>code</i>) -<p> - Private method to check if the error code should be ignored. -</p><dl> -<dt><i>code</i></dt> -<dd> -message code to check for (string) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -flag indicating to ignore the given code (boolean) -</dd> -</dl><a NAME="DocStyleChecker.__parseClasses" ID="DocStyleChecker.__parseClasses"></a> -<h4>DocStyleChecker.__parseClasses</h4> -<b>__parseClasses</b>(<i></i>) -<p> - Private method to extract top-level classes. -</p><dl> -<dt>Returns:</dt> -<dd> -extracted class contexts (list of DocStyleContext) -</dd> -</dl><a NAME="DocStyleChecker.__parseContexts" ID="DocStyleChecker.__parseContexts"></a> -<h4>DocStyleChecker.__parseContexts</h4> -<b>__parseContexts</b>(<i>kind</i>) -<p> - Private method to extract a context from the source. -</p><dl> -<dt><i>kind</i></dt> -<dd> -kind of context to extract (string) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -requested contexts (list of DocStyleContext) -</dd> -</dl><a NAME="DocStyleChecker.__parseDocstring" ID="DocStyleChecker.__parseDocstring"></a> -<h4>DocStyleChecker.__parseDocstring</h4> -<b>__parseDocstring</b>(<i>context, what=''</i>) -<p> - Private method to extract a docstring given `def` or `class` source. -</p><dl> -<dt><i>context</i></dt> -<dd> -context data to get the docstring from (DocStyleContext) -</dd><dt><i>what</i></dt> -<dd> -string denoting what is being parsed (string) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -context of extracted docstring (DocStyleContext) -</dd> -</dl><a NAME="DocStyleChecker.__parseFunctions" ID="DocStyleChecker.__parseFunctions"></a> -<h4>DocStyleChecker.__parseFunctions</h4> -<b>__parseFunctions</b>(<i></i>) -<p> - Private method to extract top-level functions. -</p><dl> -<dt>Returns:</dt> -<dd> -extracted function contexts (list of DocStyleContext) -</dd> -</dl><a NAME="DocStyleChecker.__parseMethods" ID="DocStyleChecker.__parseMethods"></a> -<h4>DocStyleChecker.__parseMethods</h4> -<b>__parseMethods</b>(<i></i>) -<p> - Private method to extract methods of all classes. -</p><dl> -<dt>Returns:</dt> -<dd> -extracted method contexts (list of DocStyleContext) -</dd> -</dl><a NAME="DocStyleChecker.__parseModuleDocstring" ID="DocStyleChecker.__parseModuleDocstring"></a> -<h4>DocStyleChecker.__parseModuleDocstring</h4> -<b>__parseModuleDocstring</b>(<i>source</i>) -<p> - Private method to extract a docstring given a module source. -</p><dl> -<dt><i>source</i></dt> -<dd> -source to parse (list of string) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -context of extracted docstring (DocStyleContext) -</dd> -</dl><a NAME="DocStyleChecker.__parseTopLevel" ID="DocStyleChecker.__parseTopLevel"></a> -<h4>DocStyleChecker.__parseTopLevel</h4> -<b>__parseTopLevel</b>(<i>keyword</i>) -<p> - Private method to extract top-level functions or classes. -</p><dl> -<dt><i>keyword</i></dt> -<dd> -keyword signaling what to extract (string) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -extracted function or class contexts (list of DocStyleContext) -</dd> -</dl><a NAME="DocStyleChecker.__readline" ID="DocStyleChecker.__readline"></a> -<h4>DocStyleChecker.__readline</h4> -<b>__readline</b>(<i></i>) -<p> - Private method to get the next line from the source. -</p><dl> -<dt>Returns:</dt> -<dd> -next line of source (string) -</dd> -</dl><a NAME="DocStyleChecker.__resetReadline" ID="DocStyleChecker.__resetReadline"></a> -<h4>DocStyleChecker.__resetReadline</h4> -<b>__resetReadline</b>(<i></i>) -<p> - Private method to reset the internal readline function. -</p><a NAME="DocStyleChecker.__skipIndentedBlock" ID="DocStyleChecker.__skipIndentedBlock"></a> -<h4>DocStyleChecker.__skipIndentedBlock</h4> -<b>__skipIndentedBlock</b>(<i>tokenGenerator</i>) -<p> - Private method to skip over an indented block of source code. -</p><dl> -<dt><i>tokenGenerator</i></dt> -<dd> -token generator -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -last token of the indented block -</dd> -</dl><a NAME="DocStyleChecker.run" ID="DocStyleChecker.run"></a> -<h4>DocStyleChecker.run</h4> -<b>run</b>(<i></i>) -<p> - Public method to check the given source for violations of doc string - conventions. -</p><a NAME="DocStyleChecker.unpackArgs" ID="DocStyleChecker.unpackArgs"></a> -<h4>DocStyleChecker.unpackArgs</h4> -<b>unpackArgs</b>(<i></i>) -<p> - Local helper function to unpack function argument names. -</p><dl> -<dt><i>args</i></dt> -<dd> -list of AST node arguments -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -list of argument names (list of string) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="DocStyleContext" ID="DocStyleContext"></a> -<h2>DocStyleContext</h2> -<p> - Class implementing the source context. -</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="#DocStyleContext.__init__">DocStyleContext</a></td> -<td>Constructor</td> -</tr><tr> -<td><a href="#DocStyleContext.contextType">contextType</a></td> -<td>Public method to get the context type.</td> -</tr><tr> -<td><a href="#DocStyleContext.end">end</a></td> -<td>Public method to get the end line number.</td> -</tr><tr> -<td><a href="#DocStyleContext.indent">indent</a></td> -<td>Public method to get the indentation of the first line.</td> -</tr><tr> -<td><a href="#DocStyleContext.source">source</a></td> -<td>Public method to get the source.</td> -</tr><tr> -<td><a href="#DocStyleContext.ssource">ssource</a></td> -<td>Public method to get the joined source lines.</td> -</tr><tr> -<td><a href="#DocStyleContext.start">start</a></td> -<td>Public method to get the start line number.</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="DocStyleContext.__init__" ID="DocStyleContext.__init__"></a> -<h4>DocStyleContext (Constructor)</h4> -<b>DocStyleContext</b>(<i>source, startLine, contextType</i>) -<p> - Constructor -</p><dl> -<dt><i>source</i></dt> -<dd> -source code of the context (list of string or string) -</dd><dt><i>startLine</i></dt> -<dd> -line number the context starts in the source (integer) -</dd><dt><i>contextType</i></dt> -<dd> -type of the context object (string) -</dd> -</dl><a NAME="DocStyleContext.contextType" ID="DocStyleContext.contextType"></a> -<h4>DocStyleContext.contextType</h4> -<b>contextType</b>(<i></i>) -<p> - Public method to get the context type. -</p><dl> -<dt>Returns:</dt> -<dd> -context type (string) -</dd> -</dl><a NAME="DocStyleContext.end" ID="DocStyleContext.end"></a> -<h4>DocStyleContext.end</h4> -<b>end</b>(<i></i>) -<p> - Public method to get the end line number. -</p><dl> -<dt>Returns:</dt> -<dd> -end line number (integer) -</dd> -</dl><a NAME="DocStyleContext.indent" ID="DocStyleContext.indent"></a> -<h4>DocStyleContext.indent</h4> -<b>indent</b>(<i></i>) -<p> - Public method to get the indentation of the first line. -</p><dl> -<dt>Returns:</dt> -<dd> -indentation string (string) -</dd> -</dl><a NAME="DocStyleContext.source" ID="DocStyleContext.source"></a> -<h4>DocStyleContext.source</h4> -<b>source</b>(<i></i>) -<p> - Public method to get the source. -</p><dl> -<dt>Returns:</dt> -<dd> -source (list of string) -</dd> -</dl><a NAME="DocStyleContext.ssource" ID="DocStyleContext.ssource"></a> -<h4>DocStyleContext.ssource</h4> -<b>ssource</b>(<i></i>) -<p> - Public method to get the joined source lines. -</p><dl> -<dt>Returns:</dt> -<dd> -source (string) -</dd> -</dl><a NAME="DocStyleContext.start" ID="DocStyleContext.start"></a> -<h4>DocStyleContext.start</h4> -<b>start</b>(<i></i>) -<p> - Public method to get the start line number. -</p><dl> -<dt>Returns:</dt> -<dd> -start line number (integer) -</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.NamingStyleCheckerPy2.html Sun Jan 05 22:45:29 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,417 +0,0 @@ -<!DOCTYPE html> -<html><head> -<title>eric5.UtilitiesPython2.NamingStyleCheckerPy2</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.NamingStyleCheckerPy2</h1> -<p> -Module implementing a checker for naming conventions for Python2. -</p> -<h3>Global Attributes</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Classes</h3> -<table> -<tr> -<td><a href="#NamingStyleChecker">NamingStyleChecker</a></td> -<td>Class implementing a checker for naming conventions for Python2.</td> -</tr> -</table> -<h3>Functions</h3> -<table> -<tr><td>None</td></tr> -</table> -<hr /><hr /> -<a NAME="NamingStyleChecker" ID="NamingStyleChecker"></a> -<h2>NamingStyleChecker</h2> -<p> - Class implementing a checker for naming conventions for Python2. -</p> -<h3>Derived from</h3> -object -<h3>Class Attributes</h3> -<table> -<tr><td>CamelcaseRegexp</td></tr><tr><td>Codes</td></tr><tr><td>LowercaseRegex</td></tr><tr><td>MixedcaseRegexp</td></tr><tr><td>UppercaseRegexp</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#NamingStyleChecker.__init__">NamingStyleChecker</a></td> -<td>Constructor (according to 'extended' pep8.py API)</td> -</tr><tr> -<td><a href="#NamingStyleChecker.__checkClassName">__checkClassName</a></td> -<td>Private class to check the given node for class name conventions (N801).</td> -</tr><tr> -<td><a href="#NamingStyleChecker.__checkFunctionArgumentNames">__checkFunctionArgumentNames</a></td> -<td>Private class to check the argument names of functions (N803, N804, N805, N806).</td> -</tr><tr> -<td><a href="#NamingStyleChecker.__checkFuntionName">__checkFuntionName</a></td> -<td>Private class to check the given node for function name conventions (N802).</td> -</tr><tr> -<td><a href="#NamingStyleChecker.__checkImportAs">__checkImportAs</a></td> -<td>Private method to check that imports don't change the naming convention (N811, N812, N813, N814).</td> -</tr><tr> -<td><a href="#NamingStyleChecker.__checkModule">__checkModule</a></td> -<td>Private method to check module naming conventions (N807, N808).</td> -</tr><tr> -<td><a href="#NamingStyleChecker.__checkNameToBeAvoided">__checkNameToBeAvoided</a></td> -<td>Private class to check the given node for a name to be avoided (N831).</td> -</tr><tr> -<td><a href="#NamingStyleChecker.__checkVariablesInFunction">__checkVariablesInFunction</a></td> -<td>Private method to check local variables in functions (N821).</td> -</tr><tr> -<td><a href="#NamingStyleChecker.__error">__error</a></td> -<td>Private method to build the error information.</td> -</tr><tr> -<td><a href="#NamingStyleChecker.__findGlobalDefs">__findGlobalDefs</a></td> -<td>Private method amend a node with global definitions information.</td> -</tr><tr> -<td><a href="#NamingStyleChecker.__getArgNames">__getArgNames</a></td> -<td>Private method to get the argument names of a function node.</td> -</tr><tr> -<td><a href="#NamingStyleChecker.__isNameToBeAvoided">__isNameToBeAvoided</a></td> -<td>Private method to check, if the given name should be avoided.</td> -</tr><tr> -<td><a href="#NamingStyleChecker.__tagClassFunctions">__tagClassFunctions</a></td> -<td>Private method to tag functions if they are methods, class methods or static methods.</td> -</tr><tr> -<td><a href="#NamingStyleChecker.__visitNode">__visitNode</a></td> -<td>Private method to inspect the given AST node.</td> -</tr><tr> -<td><a href="#NamingStyleChecker.__visitTree">__visitTree</a></td> -<td>Private method to scan the given AST tree.</td> -</tr><tr> -<td><a href="#NamingStyleChecker.run">run</a></td> -<td>Public method run by the pep8.py checker.</td> -</tr><tr> -<td><a href="#NamingStyleChecker.unpackArgs">unpackArgs</a></td> -<td>Local helper function to unpack function argument names.</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="NamingStyleChecker.__init__" ID="NamingStyleChecker.__init__"></a> -<h4>NamingStyleChecker (Constructor)</h4> -<b>NamingStyleChecker</b>(<i>tree, filename, options</i>) -<p> - Constructor (according to 'extended' pep8.py API) -</p><dl> -<dt><i>tree</i></dt> -<dd> -AST tree of the source file -</dd><dt><i>filename</i></dt> -<dd> -name of the source file (string) -</dd><dt><i>options</i></dt> -<dd> -options as parsed by pep8.StyleGuide -</dd> -</dl><a NAME="NamingStyleChecker.__checkClassName" ID="NamingStyleChecker.__checkClassName"></a> -<h4>NamingStyleChecker.__checkClassName</h4> -<b>__checkClassName</b>(<i>node, parents</i>) -<p> - Private class to check the given node for class name - conventions (N801). -</p><p> - Almost without exception, class names use the CapWords convention. - Classes for internal use have a leading underscore in addition. -</p><dl> -<dt><i>node</i></dt> -<dd> -AST note to check -</dd><dt><i>parents</i></dt> -<dd> -list of parent nodes -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -tuple giving line number, offset within line and error code - (integer, integer, string) -</dd> -</dl><a NAME="NamingStyleChecker.__checkFunctionArgumentNames" ID="NamingStyleChecker.__checkFunctionArgumentNames"></a> -<h4>NamingStyleChecker.__checkFunctionArgumentNames</h4> -<b>__checkFunctionArgumentNames</b>(<i>node, parents</i>) -<p> - Private class to check the argument names of functions - (N803, N804, N805, N806). -</p><p> - The argument names of a function should be lowercase, with words - separated by underscores. A class method should have 'cls' as the - first argument. A method should have 'self' as the first argument. -</p><dl> -<dt><i>node</i></dt> -<dd> -AST note to check -</dd><dt><i>parents</i></dt> -<dd> -list of parent nodes -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -tuple giving line number, offset within line and error code - (integer, integer, string) -</dd> -</dl><a NAME="NamingStyleChecker.__checkFuntionName" ID="NamingStyleChecker.__checkFuntionName"></a> -<h4>NamingStyleChecker.__checkFuntionName</h4> -<b>__checkFuntionName</b>(<i>node, parents</i>) -<p> - Private class to check the given node for function name - conventions (N802). -</p><p> - Function names should be lowercase, with words separated by underscores - as necessary to improve readability. Functions <b>not</b> being - methods '__' in front and back are not allowed. Mixed case is allowed - only in contexts where that's already the prevailing style - (e.g. threading.py), to retain backwards compatibility. -</p><dl> -<dt><i>node</i></dt> -<dd> -AST note to check -</dd><dt><i>parents</i></dt> -<dd> -list of parent nodes -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -tuple giving line number, offset within line and error code - (integer, integer, string) -</dd> -</dl><a NAME="NamingStyleChecker.__checkImportAs" ID="NamingStyleChecker.__checkImportAs"></a> -<h4>NamingStyleChecker.__checkImportAs</h4> -<b>__checkImportAs</b>(<i>node, parents</i>) -<p> - Private method to check that imports don't change the - naming convention (N811, N812, N813, N814). -</p><dl> -<dt><i>node</i></dt> -<dd> -AST note to check -</dd><dt><i>parents</i></dt> -<dd> -list of parent nodes -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -tuple giving line number, offset within line and error code - (integer, integer, string) -</dd> -</dl><a NAME="NamingStyleChecker.__checkModule" ID="NamingStyleChecker.__checkModule"></a> -<h4>NamingStyleChecker.__checkModule</h4> -<b>__checkModule</b>(<i>node, parents</i>) -<p> - Private method to check module naming conventions (N807, N808). -</p><p> - Module and package names should be lowercase. -</p><dl> -<dt><i>node</i></dt> -<dd> -AST note to check -</dd><dt><i>parents</i></dt> -<dd> -list of parent nodes -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -tuple giving line number, offset within line and error code - (integer, integer, string) -</dd> -</dl><a NAME="NamingStyleChecker.__checkNameToBeAvoided" ID="NamingStyleChecker.__checkNameToBeAvoided"></a> -<h4>NamingStyleChecker.__checkNameToBeAvoided</h4> -<b>__checkNameToBeAvoided</b>(<i>node, parents</i>) -<p> - Private class to check the given node for a name to be avoided (N831). -</p><dl> -<dt><i>node</i></dt> -<dd> -AST note to check -</dd><dt><i>parents</i></dt> -<dd> -list of parent nodes -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -tuple giving line number, offset within line and error code - (integer, integer, string) -</dd> -</dl><a NAME="NamingStyleChecker.__checkVariablesInFunction" ID="NamingStyleChecker.__checkVariablesInFunction"></a> -<h4>NamingStyleChecker.__checkVariablesInFunction</h4> -<b>__checkVariablesInFunction</b>(<i>node, parents</i>) -<p> - Private method to check local variables in functions (N821). -</p><p> - Local variables in functions should be lowercase. -</p><dl> -<dt><i>node</i></dt> -<dd> -AST note to check -</dd><dt><i>parents</i></dt> -<dd> -list of parent nodes -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -tuple giving line number, offset within line and error code - (integer, integer, string) -</dd> -</dl><a NAME="NamingStyleChecker.__error" ID="NamingStyleChecker.__error"></a> -<h4>NamingStyleChecker.__error</h4> -<b>__error</b>(<i>node, code</i>) -<p> - Private method to build the error information. -</p><dl> -<dt><i>node</i></dt> -<dd> -AST node to report an error for -</dd><dt><i>code</i></dt> -<dd> -error code to report (string) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -tuple giving line number, offset within line and error code - (integer, integer, string) -</dd> -</dl><a NAME="NamingStyleChecker.__findGlobalDefs" ID="NamingStyleChecker.__findGlobalDefs"></a> -<h4>NamingStyleChecker.__findGlobalDefs</h4> -<b>__findGlobalDefs</b>(<i>functionNode</i>) -<p> - Private method amend a node with global definitions information. -</p><dl> -<dt><i>functionNode</i></dt> -<dd> -AST tree node to amend -</dd> -</dl><a NAME="NamingStyleChecker.__getArgNames" ID="NamingStyleChecker.__getArgNames"></a> -<h4>NamingStyleChecker.__getArgNames</h4> -<b>__getArgNames</b>(<i>node</i>) -<p> - Private method to get the argument names of a function node. -</p><dl> -<dt><i>node</i></dt> -<dd> -AST node to extract arguments names from -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -list of argument names (list of string) -</dd> -</dl><a NAME="NamingStyleChecker.__isNameToBeAvoided" ID="NamingStyleChecker.__isNameToBeAvoided"></a> -<h4>NamingStyleChecker.__isNameToBeAvoided</h4> -<b>__isNameToBeAvoided</b>(<i>name</i>) -<p> - Private method to check, if the given name should be avoided. -</p><dl> -<dt><i>name</i></dt> -<dd> -name to be checked (string) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -flag indicating to avoid it (boolen) -</dd> -</dl><a NAME="NamingStyleChecker.__tagClassFunctions" ID="NamingStyleChecker.__tagClassFunctions"></a> -<h4>NamingStyleChecker.__tagClassFunctions</h4> -<b>__tagClassFunctions</b>(<i>classNode</i>) -<p> - Private method to tag functions if they are methods, class methods or - static methods. -</p><dl> -<dt><i>classNode</i></dt> -<dd> -AST tree node to tag -</dd> -</dl><a NAME="NamingStyleChecker.__visitNode" ID="NamingStyleChecker.__visitNode"></a> -<h4>NamingStyleChecker.__visitNode</h4> -<b>__visitNode</b>(<i>node</i>) -<p> - Private method to inspect the given AST node. -</p><dl> -<dt><i>node</i></dt> -<dd> -AST tree node to inspect -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -tuple giving line number, offset within line, code and - checker function -</dd> -</dl><a NAME="NamingStyleChecker.__visitTree" ID="NamingStyleChecker.__visitTree"></a> -<h4>NamingStyleChecker.__visitTree</h4> -<b>__visitTree</b>(<i>node</i>) -<p> - Private method to scan the given AST tree. -</p><dl> -<dt><i>node</i></dt> -<dd> -AST tree node to scan -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -tuple giving line number, offset within line, code and - checker function -</dd> -</dl><a NAME="NamingStyleChecker.run" ID="NamingStyleChecker.run"></a> -<h4>NamingStyleChecker.run</h4> -<b>run</b>(<i></i>) -<p> - Public method run by the pep8.py checker. -</p><dl> -<dt>Returns:</dt> -<dd> -tuple giving line number, offset within line, code and - checker function -</dd> -</dl><a NAME="NamingStyleChecker.unpackArgs" ID="NamingStyleChecker.unpackArgs"></a> -<h4>NamingStyleChecker.unpackArgs</h4> -<b>unpackArgs</b>(<i></i>) -<p> - Local helper function to unpack function argument names. -</p><dl> -<dt><i>args</i></dt> -<dd> -list of AST node arguments -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -list of argument names (list of 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.UtilitiesPython2.Tools.html Sun Jan 05 22:45:29 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,151 +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 its 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 its 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/eric5.UtilitiesPython2.pep8.html Sun Jan 05 22:45:29 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1258 +0,0 @@ -<!DOCTYPE html> -<html><head> -<title>eric5.UtilitiesPython2.pep8</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.pep8</h1> - -<h3>Global Attributes</h3> -<table> -<tr><td>ARITHMETIC_OP</td></tr><tr><td>BENCHMARK_KEYS</td></tr><tr><td>COMMENT_WITH_NL</td></tr><tr><td>COMPARE_SINGLETON_REGEX</td></tr><tr><td>COMPARE_TYPE_REGEX</td></tr><tr><td>DEFAULT_EXCLUDE</td></tr><tr><td>DEFAULT_IGNORE</td></tr><tr><td>DOCSTRING_REGEX</td></tr><tr><td>ERRORCODE_REGEX</td></tr><tr><td>EXTRANEOUS_WHITESPACE_REGEX</td></tr><tr><td>HUNK_REGEX</td></tr><tr><td>INDENT_REGEX</td></tr><tr><td>KEYWORDS</td></tr><tr><td>KEYWORD_REGEX</td></tr><tr><td>LAMBDA_REGEX</td></tr><tr><td>MAX_LINE_LENGTH</td></tr><tr><td>OPERATOR_REGEX</td></tr><tr><td>PROJECT_CONFIG</td></tr><tr><td>PyCF_ONLY_AST</td></tr><tr><td>RAISE_COMMA_REGEX</td></tr><tr><td>REPORT_FORMAT</td></tr><tr><td>RERAISE_COMMA_REGEX</td></tr><tr><td>SINGLETONS</td></tr><tr><td>SKIP_TOKENS</td></tr><tr><td>TESTSUITE_PATH</td></tr><tr><td>UNARY_OPERATORS</td></tr><tr><td>WHITESPACE</td></tr><tr><td>WHITESPACE_AFTER_COMMA_REGEX</td></tr><tr><td>WS_NEEDED_OPERATORS</td></tr><tr><td>WS_OPTIONAL_OPERATORS</td></tr><tr><td>__version__</td></tr><tr><td>_checks</td></tr><tr><td>noqa</td></tr> -</table> -<h3>Classes</h3> -<table> -<tr> -<td><a href="#BaseReport">BaseReport</a></td> -<td>Collect the results of the checks.</td> -</tr><tr> -<td><a href="#Checker">Checker</a></td> -<td>Load a Python source file, tokenize it, check coding style.</td> -</tr><tr> -<td><a href="#DiffReport">DiffReport</a></td> -<td>Collect and print the results for the changed lines only.</td> -</tr><tr> -<td><a href="#FileReport">FileReport</a></td> -<td>Collect the results of the checks and print only the filenames.</td> -</tr><tr> -<td><a href="#StandardReport">StandardReport</a></td> -<td>Collect and print the results of the checks.</td> -</tr><tr> -<td><a href="#StyleGuide">StyleGuide</a></td> -<td>Initialize a PEP-8 instance with few options.</td> -</tr> -</table> -<h3>Functions</h3> -<table> -<tr> -<td><a href="#_add_check">_add_check</a></td> -<td></td> -</tr><tr> -<td><a href="#_main">_main</a></td> -<td>Parse options and run checks on Python source.</td> -</tr><tr> -<td><a href="#blank_lines">blank_lines</a></td> -<td>Separate top-level function and class definitions with two blank lines.</td> -</tr><tr> -<td><a href="#comparison_to_singleton">comparison_to_singleton</a></td> -<td>Comparisons to singletons like None should always be done with "is" or "is not", never the equality operators.</td> -</tr><tr> -<td><a href="#comparison_type">comparison_type</a></td> -<td>Object type comparisons should always use isinstance() instead of comparing types directly.</td> -</tr><tr> -<td><a href="#compound_statements">compound_statements</a></td> -<td>Compound statements (multiple statements on the same line) are generally discouraged.</td> -</tr><tr> -<td><a href="#continued_indentation">continued_indentation</a></td> -<td>Continuation lines should align wrapped elements either vertically using Python's implicit line joining inside parentheses, brackets and braces, or using a hanging indent.</td> -</tr><tr> -<td><a href="#expand_indent">expand_indent</a></td> -<td>Return the amount of indentation.</td> -</tr><tr> -<td><a href="#explicit_line_join">explicit_line_join</a></td> -<td>Avoid explicit line join between brackets.</td> -</tr><tr> -<td><a href="#extraneous_whitespace">extraneous_whitespace</a></td> -<td>Avoid extraneous whitespace in the following situations:</td> -</tr><tr> -<td><a href="#filename_match">filename_match</a></td> -<td>Check if patterns contains a pattern that matches filename.</td> -</tr><tr> -<td><a href="#get_parser">get_parser</a></td> -<td></td> -</tr><tr> -<td><a href="#imports_on_separate_lines">imports_on_separate_lines</a></td> -<td>Imports should usually be on separate lines.</td> -</tr><tr> -<td><a href="#indentation">indentation</a></td> -<td>Use 4 spaces per indentation level.</td> -</tr><tr> -<td><a href="#init_checks_registry">init_checks_registry</a></td> -<td>Register all globally visible functions where the first argument name is 'physical_line' or 'logical_line'.</td> -</tr><tr> -<td><a href="#maximum_line_length">maximum_line_length</a></td> -<td>Limit all lines to a maximum of 79 characters.</td> -</tr><tr> -<td><a href="#missing_newline">missing_newline</a></td> -<td>JCR: The last line should have a newline.</td> -</tr><tr> -<td><a href="#missing_whitespace">missing_whitespace</a></td> -<td>JCR: Each comma, semicolon or colon should be followed by whitespace.</td> -</tr><tr> -<td><a href="#missing_whitespace_around_operator">missing_whitespace_around_operator</a></td> -<td>- Always surround these binary operators with a single space on either side: assignment (=), augmented assignment (+=, -= etc.), comparisons (==, <, >, !=, <>, <=, >=, in, not in, is, is not), Booleans (and, or, not).</td> -</tr><tr> -<td><a href="#mute_string">mute_string</a></td> -<td>Replace contents with 'xxx' to prevent syntax matching.</td> -</tr><tr> -<td><a href="#parse_udiff">parse_udiff</a></td> -<td>Return a dictionary of matching lines.</td> -</tr><tr> -<td><a href="#process_options">process_options</a></td> -<td>Process options passed either via arglist or via command line args.</td> -</tr><tr> -<td><a href="#python_3000_backticks">python_3000_backticks</a></td> -<td>Backticks are removed in Python 3.</td> -</tr><tr> -<td><a href="#python_3000_has_key">python_3000_has_key</a></td> -<td>The {}.has_key() method is removed in the Python 3.</td> -</tr><tr> -<td><a href="#python_3000_not_equal">python_3000_not_equal</a></td> -<td>!= can also be written <>, but this is an obsolete usage kept for backwards compatibility only.</td> -</tr><tr> -<td><a href="#python_3000_raise_comma">python_3000_raise_comma</a></td> -<td>When raising an exception, use "raise ValueError('message')" instead of the older form "raise ValueError, 'message'".</td> -</tr><tr> -<td><a href="#read_config">read_config</a></td> -<td>Read both user configuration and local configuration.</td> -</tr><tr> -<td><a href="#readlines">readlines</a></td> -<td></td> -</tr><tr> -<td><a href="#readlines_1">readlines</a></td> -<td></td> -</tr><tr> -<td><a href="#register_check">register_check</a></td> -<td>Register a new check object.</td> -</tr><tr> -<td><a href="#stdin_get_value">stdin_get_value</a></td> -<td></td> -</tr><tr> -<td><a href="#tabs_obsolete">tabs_obsolete</a></td> -<td>For new projects, spaces-only are strongly recommended over tabs.</td> -</tr><tr> -<td><a href="#tabs_or_spaces">tabs_or_spaces</a></td> -<td>Never mix tabs and spaces.</td> -</tr><tr> -<td><a href="#trailing_blank_lines">trailing_blank_lines</a></td> -<td>JCR: Trailing blank lines are superfluous.</td> -</tr><tr> -<td><a href="#trailing_whitespace">trailing_whitespace</a></td> -<td>JCR: Trailing whitespace is superfluous.</td> -</tr><tr> -<td><a href="#whitespace_around_comma">whitespace_around_comma</a></td> -<td>Avoid extraneous whitespace in the following situations:</td> -</tr><tr> -<td><a href="#whitespace_around_keywords">whitespace_around_keywords</a></td> -<td>Avoid extraneous whitespace around keywords.</td> -</tr><tr> -<td><a href="#whitespace_around_named_parameter_equals">whitespace_around_named_parameter_equals</a></td> -<td>Don't use spaces around the '=' sign when used to indicate a keyword argument or a default parameter value.</td> -</tr><tr> -<td><a href="#whitespace_around_operator">whitespace_around_operator</a></td> -<td>Avoid extraneous whitespace in the following situations:</td> -</tr><tr> -<td><a href="#whitespace_before_inline_comment">whitespace_before_inline_comment</a></td> -<td>Separate inline comments by at least two spaces.</td> -</tr><tr> -<td><a href="#whitespace_before_parameters">whitespace_before_parameters</a></td> -<td>Avoid extraneous whitespace in the following situations:</td> -</tr> -</table> -<hr /><hr /> -<a NAME="BaseReport" ID="BaseReport"></a> -<h2>BaseReport</h2> -<p> -Collect the results of the checks. -</p> -<h3>Derived from</h3> -object -<h3>Class Attributes</h3> -<table> -<tr><td>print_filename</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#BaseReport.__init__">BaseReport</a></td> -<td></td> -</tr><tr> -<td><a href="#BaseReport.error">error</a></td> -<td>Report an error, according to options.</td> -</tr><tr> -<td><a href="#BaseReport.error_args">error_args</a></td> -<td>Report an error, according to options.</td> -</tr><tr> -<td><a href="#BaseReport.get_count">get_count</a></td> -<td>Return the total count of errors and warnings.</td> -</tr><tr> -<td><a href="#BaseReport.get_file_results">get_file_results</a></td> -<td>Return the count of errors and warnings for this file.</td> -</tr><tr> -<td><a href="#BaseReport.get_statistics">get_statistics</a></td> -<td>Get statistics for message codes that start with the prefix.</td> -</tr><tr> -<td><a href="#BaseReport.increment_logical_line">increment_logical_line</a></td> -<td>Signal a new logical line.</td> -</tr><tr> -<td><a href="#BaseReport.init_file">init_file</a></td> -<td>Signal a new file.</td> -</tr><tr> -<td><a href="#BaseReport.print_benchmark">print_benchmark</a></td> -<td>Print benchmark numbers.</td> -</tr><tr> -<td><a href="#BaseReport.print_statistics">print_statistics</a></td> -<td>Print overall statistics (number of errors and warnings).</td> -</tr><tr> -<td><a href="#BaseReport.start">start</a></td> -<td>Start the timer.</td> -</tr><tr> -<td><a href="#BaseReport.stop">stop</a></td> -<td>Stop the timer.</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="BaseReport.__init__" ID="BaseReport.__init__"></a> -<h4>BaseReport (Constructor)</h4> -<b>BaseReport</b>(<i>options</i>) -<a NAME="BaseReport.error" ID="BaseReport.error"></a> -<h4>BaseReport.error</h4> -<b>error</b>(<i>line_number, offset, text, check</i>) -<p> -Report an error, according to options. -</p><a NAME="BaseReport.error_args" ID="BaseReport.error_args"></a> -<h4>BaseReport.error_args</h4> -<b>error_args</b>(<i>line_number, offset, code, check, *args</i>) -<p> -Report an error, according to options. -</p><a NAME="BaseReport.get_count" ID="BaseReport.get_count"></a> -<h4>BaseReport.get_count</h4> -<b>get_count</b>(<i>prefix=''</i>) -<p> -Return the total count of errors and warnings. -</p><a NAME="BaseReport.get_file_results" ID="BaseReport.get_file_results"></a> -<h4>BaseReport.get_file_results</h4> -<b>get_file_results</b>(<i></i>) -<p> -Return the count of errors and warnings for this file. -</p><a NAME="BaseReport.get_statistics" ID="BaseReport.get_statistics"></a> -<h4>BaseReport.get_statistics</h4> -<b>get_statistics</b>(<i>prefix=''</i>) -<p> - Get statistics for message codes that start with the prefix. -</p><p> - prefix='' matches all errors and warnings - prefix='E' matches all errors - prefix='W' matches all warnings - prefix='E4' matches all errors that have to do with imports -</p><a NAME="BaseReport.increment_logical_line" ID="BaseReport.increment_logical_line"></a> -<h4>BaseReport.increment_logical_line</h4> -<b>increment_logical_line</b>(<i></i>) -<p> -Signal a new logical line. -</p><a NAME="BaseReport.init_file" ID="BaseReport.init_file"></a> -<h4>BaseReport.init_file</h4> -<b>init_file</b>(<i>filename, lines, expected, line_offset</i>) -<p> -Signal a new file. -</p><a NAME="BaseReport.print_benchmark" ID="BaseReport.print_benchmark"></a> -<h4>BaseReport.print_benchmark</h4> -<b>print_benchmark</b>(<i></i>) -<p> -Print benchmark numbers. -</p><a NAME="BaseReport.print_statistics" ID="BaseReport.print_statistics"></a> -<h4>BaseReport.print_statistics</h4> -<b>print_statistics</b>(<i>prefix=''</i>) -<p> -Print overall statistics (number of errors and warnings). -</p><a NAME="BaseReport.start" ID="BaseReport.start"></a> -<h4>BaseReport.start</h4> -<b>start</b>(<i></i>) -<p> -Start the timer. -</p><a NAME="BaseReport.stop" ID="BaseReport.stop"></a> -<h4>BaseReport.stop</h4> -<b>stop</b>(<i></i>) -<p> -Stop the timer. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="Checker" ID="Checker"></a> -<h2>Checker</h2> -<p> - Load a Python source file, tokenize it, check coding style. -</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="#Checker.__init__">Checker</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.build_tokens_line">build_tokens_line</a></td> -<td>Build a logical line from tokens.</td> -</tr><tr> -<td><a href="#Checker.check_all">check_all</a></td> -<td>Run all checks on the input file.</td> -</tr><tr> -<td><a href="#Checker.check_ast">check_ast</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.check_logical">check_logical</a></td> -<td>Build a line from tokens and run all logical checks on it.</td> -</tr><tr> -<td><a href="#Checker.check_physical">check_physical</a></td> -<td>Run all physical checks on a raw input line.</td> -</tr><tr> -<td><a href="#Checker.generate_tokens">generate_tokens</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.readline">readline</a></td> -<td>Get the next line from the input buffer.</td> -</tr><tr> -<td><a href="#Checker.readline_check_physical">readline_check_physical</a></td> -<td>Check and return the next physical line.</td> -</tr><tr> -<td><a href="#Checker.report_invalid_syntax">report_invalid_syntax</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.run_check">run_check</a></td> -<td>Run a check plugin.</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="Checker.__init__" ID="Checker.__init__"></a> -<h4>Checker (Constructor)</h4> -<b>Checker</b>(<i>filename=None, lines=None, options=None, report=None, **kwargs</i>) -<a NAME="Checker.build_tokens_line" ID="Checker.build_tokens_line"></a> -<h4>Checker.build_tokens_line</h4> -<b>build_tokens_line</b>(<i></i>) -<p> - Build a logical line from tokens. -</p><a NAME="Checker.check_all" ID="Checker.check_all"></a> -<h4>Checker.check_all</h4> -<b>check_all</b>(<i>expected=None, line_offset=0</i>) -<p> - Run all checks on the input file. -</p><a NAME="Checker.check_ast" ID="Checker.check_ast"></a> -<h4>Checker.check_ast</h4> -<b>check_ast</b>(<i></i>) -<a NAME="Checker.check_logical" ID="Checker.check_logical"></a> -<h4>Checker.check_logical</h4> -<b>check_logical</b>(<i></i>) -<p> - Build a line from tokens and run all logical checks on it. -</p><a NAME="Checker.check_physical" ID="Checker.check_physical"></a> -<h4>Checker.check_physical</h4> -<b>check_physical</b>(<i>line</i>) -<p> - Run all physical checks on a raw input line. -</p><a NAME="Checker.generate_tokens" ID="Checker.generate_tokens"></a> -<h4>Checker.generate_tokens</h4> -<b>generate_tokens</b>(<i></i>) -<a NAME="Checker.readline" ID="Checker.readline"></a> -<h4>Checker.readline</h4> -<b>readline</b>(<i></i>) -<p> - Get the next line from the input buffer. -</p><a NAME="Checker.readline_check_physical" ID="Checker.readline_check_physical"></a> -<h4>Checker.readline_check_physical</h4> -<b>readline_check_physical</b>(<i></i>) -<p> - Check and return the next physical line. This method can be - used to feed tokenize.generate_tokens. -</p><a NAME="Checker.report_invalid_syntax" ID="Checker.report_invalid_syntax"></a> -<h4>Checker.report_invalid_syntax</h4> -<b>report_invalid_syntax</b>(<i></i>) -<a NAME="Checker.run_check" ID="Checker.run_check"></a> -<h4>Checker.run_check</h4> -<b>run_check</b>(<i>check, argument_names</i>) -<p> - Run a check plugin. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="DiffReport" ID="DiffReport"></a> -<h2>DiffReport</h2> -<p> -Collect and print the results for the changed lines only. -</p> -<h3>Derived from</h3> -StandardReport -<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="#DiffReport.__init__">DiffReport</a></td> -<td></td> -</tr><tr> -<td><a href="#DiffReport.error">error</a></td> -<td></td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="DiffReport.__init__" ID="DiffReport.__init__"></a> -<h4>DiffReport (Constructor)</h4> -<b>DiffReport</b>(<i>options</i>) -<a NAME="DiffReport.error" ID="DiffReport.error"></a> -<h4>DiffReport.error</h4> -<b>error</b>(<i>line_number, offset, text, check</i>) - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="FileReport" ID="FileReport"></a> -<h2>FileReport</h2> -<p> -Collect the results of the checks and print only the filenames. -</p> -<h3>Derived from</h3> -BaseReport -<h3>Class Attributes</h3> -<table> -<tr><td>print_filename</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="StandardReport" ID="StandardReport"></a> -<h2>StandardReport</h2> -<p> -Collect and print the results of the checks. -</p> -<h3>Derived from</h3> -BaseReport -<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="#StandardReport.__init__">StandardReport</a></td> -<td></td> -</tr><tr> -<td><a href="#StandardReport.error">error</a></td> -<td>Report an error, according to options.</td> -</tr><tr> -<td><a href="#StandardReport.error_args">error_args</a></td> -<td>Report an error, according to options.</td> -</tr><tr> -<td><a href="#StandardReport.get_file_results">get_file_results</a></td> -<td>Print the result and return the overall count for this file.</td> -</tr><tr> -<td><a href="#StandardReport.init_file">init_file</a></td> -<td>Signal a new file.</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="StandardReport.__init__" ID="StandardReport.__init__"></a> -<h4>StandardReport (Constructor)</h4> -<b>StandardReport</b>(<i>options</i>) -<a NAME="StandardReport.error" ID="StandardReport.error"></a> -<h4>StandardReport.error</h4> -<b>error</b>(<i>line_number, offset, text, check</i>) -<p> -Report an error, according to options. -</p><a NAME="StandardReport.error_args" ID="StandardReport.error_args"></a> -<h4>StandardReport.error_args</h4> -<b>error_args</b>(<i>line_number, offset, code, check, *args</i>) -<p> -Report an error, according to options. -</p><a NAME="StandardReport.get_file_results" ID="StandardReport.get_file_results"></a> -<h4>StandardReport.get_file_results</h4> -<b>get_file_results</b>(<i></i>) -<p> -Print the result and return the overall count for this file. -</p><a NAME="StandardReport.init_file" ID="StandardReport.init_file"></a> -<h4>StandardReport.init_file</h4> -<b>init_file</b>(<i>filename, lines, expected, line_offset</i>) -<p> -Signal a new file. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="StyleGuide" ID="StyleGuide"></a> -<h2>StyleGuide</h2> -<p> -Initialize a PEP-8 instance with few options. -</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="#StyleGuide.__init__">StyleGuide</a></td> -<td></td> -</tr><tr> -<td><a href="#StyleGuide.check_files">check_files</a></td> -<td>Run all checks on the paths.</td> -</tr><tr> -<td><a href="#StyleGuide.excluded">excluded</a></td> -<td>Check if options.exclude contains a pattern that matches filename.</td> -</tr><tr> -<td><a href="#StyleGuide.get_checks">get_checks</a></td> -<td>Find all globally visible functions where the first argument name starts with argument_name and which contain selected tests.</td> -</tr><tr> -<td><a href="#StyleGuide.ignore_code">ignore_code</a></td> -<td>Check if the error code should be ignored.</td> -</tr><tr> -<td><a href="#StyleGuide.init_report">init_report</a></td> -<td>Initialize the report instance.</td> -</tr><tr> -<td><a href="#StyleGuide.input_dir">input_dir</a></td> -<td>Check all files in this directory and all subdirectories.</td> -</tr><tr> -<td><a href="#StyleGuide.input_file">input_file</a></td> -<td>Run all checks on a Python source file.</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="StyleGuide.__init__" ID="StyleGuide.__init__"></a> -<h4>StyleGuide (Constructor)</h4> -<b>StyleGuide</b>(<i>*args, **kwargs</i>) -<a NAME="StyleGuide.check_files" ID="StyleGuide.check_files"></a> -<h4>StyleGuide.check_files</h4> -<b>check_files</b>(<i>paths=None</i>) -<p> -Run all checks on the paths. -</p><a NAME="StyleGuide.excluded" ID="StyleGuide.excluded"></a> -<h4>StyleGuide.excluded</h4> -<b>excluded</b>(<i>filename, parent=None</i>) -<p> - Check if options.exclude contains a pattern that matches filename. -</p><a NAME="StyleGuide.get_checks" ID="StyleGuide.get_checks"></a> -<h4>StyleGuide.get_checks</h4> -<b>get_checks</b>(<i>argument_name</i>) -<p> - Find all globally visible functions where the first argument name - starts with argument_name and which contain selected tests. -</p><a NAME="StyleGuide.ignore_code" ID="StyleGuide.ignore_code"></a> -<h4>StyleGuide.ignore_code</h4> -<b>ignore_code</b>(<i>code</i>) -<p> - Check if the error code should be ignored. -</p><p> - If 'options.select' contains a prefix of the error code, - return False. Else, if 'options.ignore' contains a prefix of - the error code, return True. -</p><a NAME="StyleGuide.init_report" ID="StyleGuide.init_report"></a> -<h4>StyleGuide.init_report</h4> -<b>init_report</b>(<i>reporter=None</i>) -<p> -Initialize the report instance. -</p><a NAME="StyleGuide.input_dir" ID="StyleGuide.input_dir"></a> -<h4>StyleGuide.input_dir</h4> -<b>input_dir</b>(<i>dirname</i>) -<p> -Check all files in this directory and all subdirectories. -</p><a NAME="StyleGuide.input_file" ID="StyleGuide.input_file"></a> -<h4>StyleGuide.input_file</h4> -<b>input_file</b>(<i>filename, lines=None, expected=None, line_offset=0</i>) -<p> -Run all checks on a Python source file. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="_add_check" ID="_add_check"></a> -<h2>_add_check</h2> -<b>_add_check</b>(<i>check, kind, codes, args</i>) - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="_main" ID="_main"></a> -<h2>_main</h2> -<b>_main</b>(<i></i>) -<p> -Parse options and run checks on Python source. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="blank_lines" ID="blank_lines"></a> -<h2>blank_lines</h2> -<b>blank_lines</b>(<i>logical_line, blank_lines, indent_level, line_number, previous_logical, previous_indent_level</i>) -<p> - Separate top-level function and class definitions with two blank lines. -</p><p> - Method definitions inside a class are separated by a single blank line. -</p><p> - Extra blank lines may be used (sparingly) to separate groups of related - functions. Blank lines may be omitted between a bunch of related - one-liners (e.g. a set of dummy implementations). -</p><p> - Use blank lines in functions, sparingly, to indicate logical sections. -</p><p> - Okay: def a():\n pass\n\n\ndef b():\n pass - Okay: def a():\n pass\n\n\n# Foo\n# Bar\n\ndef b():\n pass -</p><p> - E301: class Foo:\n b = 0\n def bar():\n pass - E302: def a():\n pass\n\ndef b(n):\n pass - E303: def a():\n pass\n\n\n\ndef b(n):\n pass - E303: def a():\n\n\n\n pass - E304: @decorator\n\ndef a():\n pass -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="comparison_to_singleton" ID="comparison_to_singleton"></a> -<h2>comparison_to_singleton</h2> -<b>comparison_to_singleton</b>(<i>logical_line, noqa</i>) -<p> - Comparisons to singletons like None should always be done - with "is" or "is not", never the equality operators. -</p><p> - Okay: if arg is not None: - E711: if arg != None: - E712: if arg == True: -</p><p> - Also, beware of writing if x when you really mean if x is not None -- - e.g. when testing whether a variable or argument that defaults to None was - set to some other value. The other value might have a type (such as a - container) that could be false in a boolean context! -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="comparison_type" ID="comparison_type"></a> -<h2>comparison_type</h2> -<b>comparison_type</b>(<i>logical_line</i>) -<p> - Object type comparisons should always use isinstance() instead of - comparing types directly. -</p><p> - Okay: if isinstance(obj, int): - E721: if type(obj) is type(1): -</p><p> - When checking if an object is a string, keep in mind that it might be a - unicode string too! In Python 2.3, str and unicode have a common base - class, basestring, so you can do: -</p><p> - Okay: if isinstance(obj, basestring): - Okay: if type(a1) is type(b1): -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="compound_statements" ID="compound_statements"></a> -<h2>compound_statements</h2> -<b>compound_statements</b>(<i>logical_line</i>) -<p> - Compound statements (multiple statements on the same line) are - generally discouraged. -</p><p> - While sometimes it's okay to put an if/for/while with a small body - on the same line, never do this for multi-clause statements. Also - avoid folding such long lines! -</p><p> - Okay: if foo == 'blah':\n do_blah_thing() - Okay: do_one() - Okay: do_two() - Okay: do_three() -</p><p> - E701: if foo == 'blah': do_blah_thing() - E701: for x in lst: total += x - E701: while t < 10: t = delay() - E701: if foo == 'blah': do_blah_thing() - E701: else: do_non_blah_thing() - E701: try: something() - E701: finally: cleanup() - E701: if foo == 'blah': one(); two(); three() -</p><p> - E702: do_one(); do_two(); do_three() - E703: do_four(); # useless semicolon -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="continued_indentation" ID="continued_indentation"></a> -<h2>continued_indentation</h2> -<b>continued_indentation</b>(<i>logical_line, tokens, indent_level, hang_closing, noqa, verbose</i>) -<p> - Continuation lines should align wrapped elements either vertically using - Python's implicit line joining inside parentheses, brackets and braces, or - using a hanging indent. -</p><p> - When using a hanging indent the following considerations should be applied: -</p><p> - - there should be no arguments on the first line, and -</p><p> - - further indentation should be used to clearly distinguish itself as a - continuation line. -</p><p> - Okay: a = (\n) - E123: a = (\n ) -</p><p> - Okay: a = (\n 42) - E121: a = (\n 42) - E122: a = (\n42) - E123: a = (\n 42\n ) - E124: a = (24,\n 42\n) - E125: if (a or\n b):\n pass - E126: a = (\n 42) - E127: a = (24,\n 42) - E128: a = (24,\n 42) -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="expand_indent" ID="expand_indent"></a> -<h2>expand_indent</h2> -<b>expand_indent</b>(<i>line</i>) -<p> - Return the amount of indentation. - Tabs are expanded to the next multiple of 8. -</p><p> - >>> expand_indent(' ') - 4 - >>> expand_indent('\t') - 8 - >>> expand_indent(' \t') - 8 - >>> expand_indent(' \t') - 8 - >>> expand_indent(' \t') - 16 -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="explicit_line_join" ID="explicit_line_join"></a> -<h2>explicit_line_join</h2> -<b>explicit_line_join</b>(<i>logical_line, tokens</i>) -<p> - Avoid explicit line join between brackets. -</p><p> - The preferred way of wrapping long lines is by using Python's implied line - continuation inside parentheses, brackets and braces. Long lines can be - broken over multiple lines by wrapping expressions in parentheses. These - should be used in preference to using a backslash for line continuation. -</p><p> - E502: aaa = [123, \\n 123] - E502: aaa = ("bbb " \\n "ccc") -</p><p> - Okay: aaa = [123,\n 123] - Okay: aaa = ("bbb "\n "ccc") - Okay: aaa = "bbb " \\n "ccc" -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="extraneous_whitespace" ID="extraneous_whitespace"></a> -<h2>extraneous_whitespace</h2> -<b>extraneous_whitespace</b>(<i>logical_line</i>) -<p> - Avoid extraneous whitespace in the following situations: -</p><p> - - Immediately inside parentheses, brackets or braces. -</p><p> - - Immediately before a comma, semicolon, or colon. -</p><p> - Okay: spam(ham[1], {eggs: 2}) - E201: spam( ham[1], {eggs: 2}) - E201: spam(ham[ 1], {eggs: 2}) - E201: spam(ham[1], { eggs: 2}) - E202: spam(ham[1], {eggs: 2} ) - E202: spam(ham[1 ], {eggs: 2}) - E202: spam(ham[1], {eggs: 2 }) -</p><p> - E203: if x == 4: print x, y; x, y = y , x - E203: if x == 4: print x, y ; x, y = y, x - E203: if x == 4 : print x, y; x, y = y, x -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="filename_match" ID="filename_match"></a> -<h2>filename_match</h2> -<b>filename_match</b>(<i>filename, patterns, default=True</i>) -<p> - Check if patterns contains a pattern that matches filename. - If patterns is unspecified, this always returns True. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="get_parser" ID="get_parser"></a> -<h2>get_parser</h2> -<b>get_parser</b>(<i>prog='pep8', version=__version__</i>) - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="imports_on_separate_lines" ID="imports_on_separate_lines"></a> -<h2>imports_on_separate_lines</h2> -<b>imports_on_separate_lines</b>(<i>logical_line</i>) -<p> - Imports should usually be on separate lines. -</p><p> - Okay: import os\nimport sys - E401: import sys, os -</p><p> - Okay: from subprocess import Popen, PIPE - Okay: from myclas import MyClass - Okay: from foo.bar.yourclass import YourClass - Okay: import myclass - Okay: import foo.bar.yourclass -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="indentation" ID="indentation"></a> -<h2>indentation</h2> -<b>indentation</b>(<i>logical_line, previous_logical, indent_char, indent_level, previous_indent_level</i>) -<p> - Use 4 spaces per indentation level. -</p><p> - For really old code that you don't want to mess up, you can continue to - use 8-space tabs. -</p><p> - Okay: a = 1 - Okay: if a == 0:\n a = 1 - E111: a = 1 -</p><p> - Okay: for item in items:\n pass - E112: for item in items:\npass -</p><p> - Okay: a = 1\nb = 2 - E113: a = 1\n b = 2 -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="init_checks_registry" ID="init_checks_registry"></a> -<h2>init_checks_registry</h2> -<b>init_checks_registry</b>(<i></i>) -<p> - Register all globally visible functions where the first argument name - is 'physical_line' or 'logical_line'. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="maximum_line_length" ID="maximum_line_length"></a> -<h2>maximum_line_length</h2> -<b>maximum_line_length</b>(<i>physical_line, max_line_length</i>) -<p> - Limit all lines to a maximum of 79 characters. -</p><p> - There are still many devices around that are limited to 80 character - lines; plus, limiting windows to 80 characters makes it possible to have - several windows side-by-side. The default wrapping on such devices looks - ugly. Therefore, please limit all lines to a maximum of 79 characters. - For flowing long blocks of text (docstrings or comments), limiting the - length to 72 characters is recommended. -</p><p> - Reports error E501. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="missing_newline" ID="missing_newline"></a> -<h2>missing_newline</h2> -<b>missing_newline</b>(<i>physical_line</i>) -<p> - JCR: The last line should have a newline. -</p><p> - Reports warning W292. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="missing_whitespace" ID="missing_whitespace"></a> -<h2>missing_whitespace</h2> -<b>missing_whitespace</b>(<i>logical_line</i>) -<p> - JCR: Each comma, semicolon or colon should be followed by whitespace. -</p><p> - Okay: [a, b] - Okay: (3,) - Okay: a[1:4] - Okay: a[:4] - Okay: a[1:] - Okay: a[1:4:2] - E231: ['a','b'] - E231: foo(bar,baz) - E231: [{'a':'b'}] -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="missing_whitespace_around_operator" ID="missing_whitespace_around_operator"></a> -<h2>missing_whitespace_around_operator</h2> -<b>missing_whitespace_around_operator</b>(<i>logical_line, tokens</i>) -<p> - - Always surround these binary operators with a single space on - either side: assignment (=), augmented assignment (+=, -= etc.), - comparisons (==, <, >, !=, <>, <=, >=, in, not in, is, is not), - Booleans (and, or, not). -</p><p> - - Use spaces around arithmetic operators. -</p><p> - Okay: i = i + 1 - Okay: submitted += 1 - Okay: x = x * 2 - 1 - Okay: hypot2 = x * x + y * y - Okay: c = (a + b) * (a - b) - Okay: foo(bar, key='word', *args, **kwargs) - Okay: alpha[:-i] -</p><p> - E225: i=i+1 - E225: submitted +=1 - E225: x = x /2 - 1 - E225: z = x **y - E226: c = (a+b) * (a-b) - E226: hypot2 = x*x + y*y - E227: c = a|b - E228: msg = fmt%(errno, errmsg) -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="mute_string" ID="mute_string"></a> -<h2>mute_string</h2> -<b>mute_string</b>(<i>text</i>) -<p> - Replace contents with 'xxx' to prevent syntax matching. -</p><p> - >>> mute_string('"abc"') - '"xxx"' - >>> mute_string("'''abc'''") - "'''xxx'''" - >>> mute_string("r'abc'") - "r'xxx'" -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="parse_udiff" ID="parse_udiff"></a> -<h2>parse_udiff</h2> -<b>parse_udiff</b>(<i>diff, patterns=None, parent='.'</i>) -<p> -Return a dictionary of matching lines. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="process_options" ID="process_options"></a> -<h2>process_options</h2> -<b>process_options</b>(<i>arglist=None, parse_argv=False, config_file=None, parser=None</i>) -<p> -Process options passed either via arglist or via command line args. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="python_3000_backticks" ID="python_3000_backticks"></a> -<h2>python_3000_backticks</h2> -<b>python_3000_backticks</b>(<i>logical_line</i>) -<p> - Backticks are removed in Python 3. - Use repr() instead. -</p><p> - Okay: val = repr(1 + 2) - W604: val = `1 + 2` -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="python_3000_has_key" ID="python_3000_has_key"></a> -<h2>python_3000_has_key</h2> -<b>python_3000_has_key</b>(<i>logical_line</i>) -<p> - The {}.has_key() method is removed in the Python 3. - Use the 'in' operation instead. -</p><p> - Okay: if "alph" in d:\n print d["alph"] - W601: assert d.has_key('alph') -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="python_3000_not_equal" ID="python_3000_not_equal"></a> -<h2>python_3000_not_equal</h2> -<b>python_3000_not_equal</b>(<i>logical_line</i>) -<p> - != can also be written <>, but this is an obsolete usage kept for - backwards compatibility only. New code should always use !=. - The older syntax is removed in Python 3. -</p><p> - Okay: if a != 'no': - W603: if a <> 'no': -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="python_3000_raise_comma" ID="python_3000_raise_comma"></a> -<h2>python_3000_raise_comma</h2> -<b>python_3000_raise_comma</b>(<i>logical_line</i>) -<p> - When raising an exception, use "raise ValueError('message')" - instead of the older form "raise ValueError, 'message'". -</p><p> - The paren-using form is preferred because when the exception arguments - are long or include string formatting, you don't need to use line - continuation characters thanks to the containing parentheses. The older - form is removed in Python 3. -</p><p> - Okay: raise DummyError("Message") - W602: raise DummyError, "Message" -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="read_config" ID="read_config"></a> -<h2>read_config</h2> -<b>read_config</b>(<i>options, args, arglist, parser</i>) -<p> -Read both user configuration and local configuration. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="readlines" ID="readlines"></a> -<h2>readlines</h2> -<b>readlines</b>(<i>filename</i>) - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="readlines_1" ID="readlines_1"></a> -<h2>readlines</h2> -<b>readlines</b>(<i>filename</i>) - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="register_check" ID="register_check"></a> -<h2>register_check</h2> -<b>register_check</b>(<i>check, codes=None</i>) -<p> - Register a new check object. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="stdin_get_value" ID="stdin_get_value"></a> -<h2>stdin_get_value</h2> -<b>stdin_get_value</b>(<i></i>) - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="tabs_obsolete" ID="tabs_obsolete"></a> -<h2>tabs_obsolete</h2> -<b>tabs_obsolete</b>(<i>physical_line</i>) -<p> - For new projects, spaces-only are strongly recommended over tabs. Most - editors have features that make this easy to do. -</p><p> - Okay: if True:\n return - W191: if True:\n\treturn -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="tabs_or_spaces" ID="tabs_or_spaces"></a> -<h2>tabs_or_spaces</h2> -<b>tabs_or_spaces</b>(<i>physical_line, indent_char</i>) -<p> - Never mix tabs and spaces. -</p><p> - The most popular way of indenting Python is with spaces only. The - second-most popular way is with tabs only. Code indented with a mixture - of tabs and spaces should be converted to using spaces exclusively. When - invoking the Python command line interpreter with the -t option, it issues - warnings about code that illegally mixes tabs and spaces. When using -tt - these warnings become errors. These options are highly recommended! -</p><p> - Okay: if a == 0:\n a = 1\n b = 1 - E101: if a == 0:\n a = 1\n\tb = 1 -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="trailing_blank_lines" ID="trailing_blank_lines"></a> -<h2>trailing_blank_lines</h2> -<b>trailing_blank_lines</b>(<i>physical_line, lines, line_number</i>) -<p> - JCR: Trailing blank lines are superfluous. -</p><p> - Okay: spam(1) - W391: spam(1)\n -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="trailing_whitespace" ID="trailing_whitespace"></a> -<h2>trailing_whitespace</h2> -<b>trailing_whitespace</b>(<i>physical_line</i>) -<p> - JCR: Trailing whitespace is superfluous. - FBM: Except when it occurs as part of a blank line (i.e. the line is - nothing but whitespace). According to Python docs[1] a line with only - whitespace is considered a blank line, and is to be ignored. However, - matching a blank line to its indentation level avoids mistakenly - terminating a multi-line statement (e.g. class declaration) when - pasting code into the standard Python interpreter. -</p><p> - [1] http://docs.python.org/reference/lexical_analysis.html#blank-lines -</p><p> - The warning returned varies on whether the line itself is blank, for easier - filtering for those who want to indent their blank lines. -</p><p> - Okay: spam(1)\n# - W291: spam(1) \n# - W293: class Foo(object):\n \n bang = 12 -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="whitespace_around_comma" ID="whitespace_around_comma"></a> -<h2>whitespace_around_comma</h2> -<b>whitespace_around_comma</b>(<i>logical_line</i>) -<p> - Avoid extraneous whitespace in the following situations: -</p><p> - - More than one space around an assignment (or other) operator to - align it with another. -</p><p> - JCR: This should also be applied around comma etc. - Note: these checks are disabled by default -</p><p> - Okay: a = (1, 2) - E241: a = (1, 2) - E242: a = (1,\t2) -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="whitespace_around_keywords" ID="whitespace_around_keywords"></a> -<h2>whitespace_around_keywords</h2> -<b>whitespace_around_keywords</b>(<i>logical_line</i>) -<p> - Avoid extraneous whitespace around keywords. -</p><p> - Okay: True and False - E271: True and False - E272: True and False - E273: True and\tFalse - E274: True\tand False -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="whitespace_around_named_parameter_equals" ID="whitespace_around_named_parameter_equals"></a> -<h2>whitespace_around_named_parameter_equals</h2> -<b>whitespace_around_named_parameter_equals</b>(<i>logical_line, tokens</i>) -<p> - Don't use spaces around the '=' sign when used to indicate a - keyword argument or a default parameter value. -</p><p> - Okay: def complex(real, imag=0.0): - Okay: return magic(r=real, i=imag) - Okay: boolean(a == b) - Okay: boolean(a != b) - Okay: boolean(a <= b) - Okay: boolean(a >= b) -</p><p> - E251: def complex(real, imag = 0.0): - E251: return magic(r = real, i = imag) -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="whitespace_around_operator" ID="whitespace_around_operator"></a> -<h2>whitespace_around_operator</h2> -<b>whitespace_around_operator</b>(<i>logical_line</i>) -<p> - Avoid extraneous whitespace in the following situations: -</p><p> - - More than one space around an assignment (or other) operator to - align it with another. -</p><p> - Okay: a = 12 + 3 - E221: a = 4 + 5 - E222: a = 4 + 5 - E223: a = 4\t+ 5 - E224: a = 4 +\t5 -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="whitespace_before_inline_comment" ID="whitespace_before_inline_comment"></a> -<h2>whitespace_before_inline_comment</h2> -<b>whitespace_before_inline_comment</b>(<i>logical_line, tokens</i>) -<p> - Separate inline comments by at least two spaces. -</p><p> - An inline comment is a comment on the same line as a statement. Inline - comments should be separated by at least two spaces from the statement. - They should start with a # and a single space. -</p><p> - Okay: x = x + 1 # Increment x - Okay: x = x + 1 # Increment x - E261: x = x + 1 # Increment x - E262: x = x + 1 #Increment x - E262: x = x + 1 # Increment x -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="whitespace_before_parameters" ID="whitespace_before_parameters"></a> -<h2>whitespace_before_parameters</h2> -<b>whitespace_before_parameters</b>(<i>logical_line, tokens</i>) -<p> - Avoid extraneous whitespace in the following situations: -</p><p> - - Immediately before the open parenthesis that starts the argument - list of a function call. -</p><p> - - Immediately before the open parenthesis that starts an indexing or - slicing. -</p><p> - Okay: spam(1) - E211: spam (1) -</p><p> - Okay: dict['key'] = list[index] - E211: dict ['key'] = list[index] - E211: dict['key'] = list [index] -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /> -</body></html> \ No newline at end of file
--- a/Documentation/Source/index-eric5.Plugins.CheckerPlugins.SyntaxChecker.html Sun Jan 05 22:45:29 2014 +0100 +++ b/Documentation/Source/index-eric5.Plugins.CheckerPlugins.SyntaxChecker.html Wed Jan 15 22:55:52 2014 +0100 @@ -24,10 +24,20 @@ Package containing the Syntax Checker plugin. </p> +<h3>Packages</h3> +<table> +<tr> +<td><a href="index-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.html">pyflakes</a></td> +<td>Package containg pyflakes adapted for Qt.</td> +</tr> +</table> <h3>Modules</h3> <table> <tr> +<td><a href="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck.html">SyntaxCheck</a></td> +<td>Module implementing the syntax check for Python 2/3.</td> +</tr><tr> <td><a href="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.html">SyntaxCheckerDialog</a></td> <td>Module implementing a simple Python syntax checker.</td> </tr>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/index-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.html Wed Jan 15 22:55:52 2014 +0100 @@ -0,0 +1,38 @@ +<!DOCTYPE html> +<html><head> +<title>eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes</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.Plugins.CheckerPlugins.SyntaxChecker.pyflakes</h1> +<p> +Package containg pyflakes adapted for Qt. +</p> + + +<h3>Modules</h3> +<table> +<tr> +<td><a href="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html">checker</a></td> +<td>Main module.</td> +</tr><tr> +<td><a href="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html">messages</a></td> +<td>Provide the class Message and its subclasses.</td> +</tr> +</table> +</body></html> \ No newline at end of file
--- a/Documentation/Source/index-eric5.Utilities.html Sun Jan 05 22:45:29 2014 +0100 +++ b/Documentation/Source/index-eric5.Utilities.html Wed Jan 15 22:55:52 2014 +0100 @@ -32,12 +32,6 @@ </tr><tr> <td><a href="index-eric5.Utilities.crypto.html">crypto</a></td> <td>Package implementing cryptography related functionality.</td> -</tr><tr> -<td><a href="index-eric5.Utilities.py2flakes.html">py2flakes</a></td> -<td>Package containg the pyflakes Python2 port adapted for Qt.</td> -</tr><tr> -<td><a href="index-eric5.Utilities.py3flakes.html">py3flakes</a></td> -<td>Package containg the pyflakes Python3 port adapted for Qt.</td> </tr> </table> @@ -47,9 +41,18 @@ <td><a href="eric5.Utilities.AutoSaver.html">AutoSaver</a></td> <td>Module implementing an auto saver class.</td> </tr><tr> +<td><a href="eric5.Utilities.BackgroundClient.html">BackgroundClient</a></td> +<td>Module implementing a Qt free version of a background client for the various checkers and other python interpreter dependent functions.</td> +</tr><tr> +<td><a href="eric5.Utilities.BackgroundService.html">BackgroundService</a></td> +<td>Module implementing a background service for the various checkers and other python interpreter dependent functions.</td> +</tr><tr> <td><a href="eric5.Utilities.FtpUtilities.html">FtpUtilities</a></td> <td>Module implementing some FTP related utilities.</td> </tr><tr> +<td><a href="eric5.Utilities.InternalServices.html">InternalServices</a></td> +<td>Module implementing a Qt free version of a background client for the various checkers and other python interpreter dependent functions.</td> +</tr><tr> <td><a href="eric5.Utilities.ModuleParser.html">ModuleParser</a></td> <td>Parse a Python module file.</td> </tr><tr> @@ -59,9 +62,6 @@ <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> <td><a href="eric5.Utilities.__init__.html">Utilities</a></td> <td>Package implementing various functions/classes needed everywhere within eric5.</td> </tr><tr>
--- a/Documentation/Source/index-eric5.Utilities.py2flakes.html Sun Jan 05 22:45:29 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -<!DOCTYPE html> -<html><head> -<title>eric5.Utilities.py2flakes</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.Utilities.py2flakes</h1> -<p> -Package containg the pyflakes Python2 port adapted for Qt. -</p> - - -<h3>Modules</h3> -<table> -<tr> -<td><a href="eric5.Utilities.py2flakes.checker.html">checker</a></td> -<td></td> -</tr><tr> -<td><a href="eric5.Utilities.py2flakes.messages.html">messages</a></td> -<td>Module implementing the messages for py2flakes.</td> -</tr> -</table> -</body></html> \ No newline at end of file
--- a/Documentation/Source/index-eric5.Utilities.py3flakes.html Sun Jan 05 22:45:29 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -<!DOCTYPE html> -<html><head> -<title>eric5.Utilities.py3flakes</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.Utilities.py3flakes</h1> -<p> -Package containg the pyflakes Python3 port adapted for Qt. -</p> - - -<h3>Modules</h3> -<table> -<tr> -<td><a href="eric5.Utilities.py3flakes.checker.html">checker</a></td> -<td></td> -</tr><tr> -<td><a href="eric5.Utilities.py3flakes.messages.html">messages</a></td> -<td>Module implementing the messages for py3flakes.</td> -</tr> -</table> -</body></html> \ No newline at end of file
--- a/Documentation/Source/index-eric5.UtilitiesPython2.html Sun Jan 05 22:45:29 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +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.CodeStyleChecker.html">CodeStyleChecker</a></td> -<td>Class implementing the PEP 8 checker for Python2.</td> -</tr><tr> -<td><a href="eric5.UtilitiesPython2.DocStyleCheckerPy2.html">DocStyleCheckerPy2</a></td> -<td>Module implementing a checker for documentation string conventions.</td> -</tr><tr> -<td><a href="eric5.UtilitiesPython2.NamingStyleCheckerPy2.html">NamingStyleCheckerPy2</a></td> -<td>Module implementing a checker for naming conventions for Python2.</td> -</tr><tr> -<td><a href="eric5.UtilitiesPython2.Tools.html">Tools</a></td> -<td>Module implementing tool functions.</td> -</tr><tr> -<td><a href="eric5.UtilitiesPython2.pep8.html">pep8</a></td> -<td></td> -</tr> -</table> -</body></html> \ No newline at end of file
--- a/Documentation/Source/index-eric5.html Sun Jan 05 22:45:29 2014 +0100 +++ b/Documentation/Source/index-eric5.html Wed Jan 15 22:55:52 2014 +0100 @@ -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/Documentation/Source/pep8.html Sun Jan 05 22:45:29 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1258 +0,0 @@ -<!DOCTYPE html> -<html><head> -<title>pep8</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>pep8</h1> - -<h3>Global Attributes</h3> -<table> -<tr><td>ARITHMETIC_OP</td></tr><tr><td>BENCHMARK_KEYS</td></tr><tr><td>COMMENT_WITH_NL</td></tr><tr><td>COMPARE_SINGLETON_REGEX</td></tr><tr><td>COMPARE_TYPE_REGEX</td></tr><tr><td>DEFAULT_EXCLUDE</td></tr><tr><td>DEFAULT_IGNORE</td></tr><tr><td>DOCSTRING_REGEX</td></tr><tr><td>ERRORCODE_REGEX</td></tr><tr><td>EXTRANEOUS_WHITESPACE_REGEX</td></tr><tr><td>HUNK_REGEX</td></tr><tr><td>INDENT_REGEX</td></tr><tr><td>KEYWORDS</td></tr><tr><td>KEYWORD_REGEX</td></tr><tr><td>LAMBDA_REGEX</td></tr><tr><td>MAX_LINE_LENGTH</td></tr><tr><td>OPERATOR_REGEX</td></tr><tr><td>PROJECT_CONFIG</td></tr><tr><td>PyCF_ONLY_AST</td></tr><tr><td>RAISE_COMMA_REGEX</td></tr><tr><td>REPORT_FORMAT</td></tr><tr><td>RERAISE_COMMA_REGEX</td></tr><tr><td>SINGLETONS</td></tr><tr><td>SKIP_TOKENS</td></tr><tr><td>TESTSUITE_PATH</td></tr><tr><td>UNARY_OPERATORS</td></tr><tr><td>WHITESPACE</td></tr><tr><td>WHITESPACE_AFTER_COMMA_REGEX</td></tr><tr><td>WS_NEEDED_OPERATORS</td></tr><tr><td>WS_OPTIONAL_OPERATORS</td></tr><tr><td>__version__</td></tr><tr><td>_checks</td></tr><tr><td>noqa</td></tr> -</table> -<h3>Classes</h3> -<table> -<tr> -<td><a href="#BaseReport">BaseReport</a></td> -<td>Collect the results of the checks.</td> -</tr><tr> -<td><a href="#Checker">Checker</a></td> -<td>Load a Python source file, tokenize it, check coding style.</td> -</tr><tr> -<td><a href="#DiffReport">DiffReport</a></td> -<td>Collect and print the results for the changed lines only.</td> -</tr><tr> -<td><a href="#FileReport">FileReport</a></td> -<td>Collect the results of the checks and print only the filenames.</td> -</tr><tr> -<td><a href="#StandardReport">StandardReport</a></td> -<td>Collect and print the results of the checks.</td> -</tr><tr> -<td><a href="#StyleGuide">StyleGuide</a></td> -<td>Initialize a PEP-8 instance with few options.</td> -</tr> -</table> -<h3>Functions</h3> -<table> -<tr> -<td><a href="#_add_check">_add_check</a></td> -<td></td> -</tr><tr> -<td><a href="#_main">_main</a></td> -<td>Parse options and run checks on Python source.</td> -</tr><tr> -<td><a href="#blank_lines">blank_lines</a></td> -<td>Separate top-level function and class definitions with two blank lines.</td> -</tr><tr> -<td><a href="#comparison_to_singleton">comparison_to_singleton</a></td> -<td>Comparisons to singletons like None should always be done with "is" or "is not", never the equality operators.</td> -</tr><tr> -<td><a href="#comparison_type">comparison_type</a></td> -<td>Object type comparisons should always use isinstance() instead of comparing types directly.</td> -</tr><tr> -<td><a href="#compound_statements">compound_statements</a></td> -<td>Compound statements (multiple statements on the same line) are generally discouraged.</td> -</tr><tr> -<td><a href="#continued_indentation">continued_indentation</a></td> -<td>Continuation lines should align wrapped elements either vertically using Python's implicit line joining inside parentheses, brackets and braces, or using a hanging indent.</td> -</tr><tr> -<td><a href="#expand_indent">expand_indent</a></td> -<td>Return the amount of indentation.</td> -</tr><tr> -<td><a href="#explicit_line_join">explicit_line_join</a></td> -<td>Avoid explicit line join between brackets.</td> -</tr><tr> -<td><a href="#extraneous_whitespace">extraneous_whitespace</a></td> -<td>Avoid extraneous whitespace in the following situations:</td> -</tr><tr> -<td><a href="#filename_match">filename_match</a></td> -<td>Check if patterns contains a pattern that matches filename.</td> -</tr><tr> -<td><a href="#get_parser">get_parser</a></td> -<td></td> -</tr><tr> -<td><a href="#imports_on_separate_lines">imports_on_separate_lines</a></td> -<td>Imports should usually be on separate lines.</td> -</tr><tr> -<td><a href="#indentation">indentation</a></td> -<td>Use 4 spaces per indentation level.</td> -</tr><tr> -<td><a href="#init_checks_registry">init_checks_registry</a></td> -<td>Register all globally visible functions where the first argument name is 'physical_line' or 'logical_line'.</td> -</tr><tr> -<td><a href="#maximum_line_length">maximum_line_length</a></td> -<td>Limit all lines to a maximum of 79 characters.</td> -</tr><tr> -<td><a href="#missing_newline">missing_newline</a></td> -<td>JCR: The last line should have a newline.</td> -</tr><tr> -<td><a href="#missing_whitespace">missing_whitespace</a></td> -<td>JCR: Each comma, semicolon or colon should be followed by whitespace.</td> -</tr><tr> -<td><a href="#missing_whitespace_around_operator">missing_whitespace_around_operator</a></td> -<td>- Always surround these binary operators with a single space on either side: assignment (=), augmented assignment (+=, -= etc.), comparisons (==, <, >, !=, <>, <=, >=, in, not in, is, is not), Booleans (and, or, not).</td> -</tr><tr> -<td><a href="#mute_string">mute_string</a></td> -<td>Replace contents with 'xxx' to prevent syntax matching.</td> -</tr><tr> -<td><a href="#parse_udiff">parse_udiff</a></td> -<td>Return a dictionary of matching lines.</td> -</tr><tr> -<td><a href="#process_options">process_options</a></td> -<td>Process options passed either via arglist or via command line args.</td> -</tr><tr> -<td><a href="#python_3000_backticks">python_3000_backticks</a></td> -<td>Backticks are removed in Python 3.</td> -</tr><tr> -<td><a href="#python_3000_has_key">python_3000_has_key</a></td> -<td>The {}.has_key() method is removed in the Python 3.</td> -</tr><tr> -<td><a href="#python_3000_not_equal">python_3000_not_equal</a></td> -<td>!= can also be written <>, but this is an obsolete usage kept for backwards compatibility only.</td> -</tr><tr> -<td><a href="#python_3000_raise_comma">python_3000_raise_comma</a></td> -<td>When raising an exception, use "raise ValueError('message')" instead of the older form "raise ValueError, 'message'".</td> -</tr><tr> -<td><a href="#read_config">read_config</a></td> -<td>Read both user configuration and local configuration.</td> -</tr><tr> -<td><a href="#readlines">readlines</a></td> -<td></td> -</tr><tr> -<td><a href="#readlines_1">readlines</a></td> -<td></td> -</tr><tr> -<td><a href="#register_check">register_check</a></td> -<td>Register a new check object.</td> -</tr><tr> -<td><a href="#stdin_get_value">stdin_get_value</a></td> -<td></td> -</tr><tr> -<td><a href="#tabs_obsolete">tabs_obsolete</a></td> -<td>For new projects, spaces-only are strongly recommended over tabs.</td> -</tr><tr> -<td><a href="#tabs_or_spaces">tabs_or_spaces</a></td> -<td>Never mix tabs and spaces.</td> -</tr><tr> -<td><a href="#trailing_blank_lines">trailing_blank_lines</a></td> -<td>JCR: Trailing blank lines are superfluous.</td> -</tr><tr> -<td><a href="#trailing_whitespace">trailing_whitespace</a></td> -<td>JCR: Trailing whitespace is superfluous.</td> -</tr><tr> -<td><a href="#whitespace_around_comma">whitespace_around_comma</a></td> -<td>Avoid extraneous whitespace in the following situations:</td> -</tr><tr> -<td><a href="#whitespace_around_keywords">whitespace_around_keywords</a></td> -<td>Avoid extraneous whitespace around keywords.</td> -</tr><tr> -<td><a href="#whitespace_around_named_parameter_equals">whitespace_around_named_parameter_equals</a></td> -<td>Don't use spaces around the '=' sign when used to indicate a keyword argument or a default parameter value.</td> -</tr><tr> -<td><a href="#whitespace_around_operator">whitespace_around_operator</a></td> -<td>Avoid extraneous whitespace in the following situations:</td> -</tr><tr> -<td><a href="#whitespace_before_inline_comment">whitespace_before_inline_comment</a></td> -<td>Separate inline comments by at least two spaces.</td> -</tr><tr> -<td><a href="#whitespace_before_parameters">whitespace_before_parameters</a></td> -<td>Avoid extraneous whitespace in the following situations:</td> -</tr> -</table> -<hr /><hr /> -<a NAME="BaseReport" ID="BaseReport"></a> -<h2>BaseReport</h2> -<p> -Collect the results of the checks. -</p> -<h3>Derived from</h3> -object -<h3>Class Attributes</h3> -<table> -<tr><td>print_filename</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#BaseReport.__init__">BaseReport</a></td> -<td></td> -</tr><tr> -<td><a href="#BaseReport.error">error</a></td> -<td>Report an error, according to options.</td> -</tr><tr> -<td><a href="#BaseReport.error_args">error_args</a></td> -<td>Report an error, according to options.</td> -</tr><tr> -<td><a href="#BaseReport.get_count">get_count</a></td> -<td>Return the total count of errors and warnings.</td> -</tr><tr> -<td><a href="#BaseReport.get_file_results">get_file_results</a></td> -<td>Return the count of errors and warnings for this file.</td> -</tr><tr> -<td><a href="#BaseReport.get_statistics">get_statistics</a></td> -<td>Get statistics for message codes that start with the prefix.</td> -</tr><tr> -<td><a href="#BaseReport.increment_logical_line">increment_logical_line</a></td> -<td>Signal a new logical line.</td> -</tr><tr> -<td><a href="#BaseReport.init_file">init_file</a></td> -<td>Signal a new file.</td> -</tr><tr> -<td><a href="#BaseReport.print_benchmark">print_benchmark</a></td> -<td>Print benchmark numbers.</td> -</tr><tr> -<td><a href="#BaseReport.print_statistics">print_statistics</a></td> -<td>Print overall statistics (number of errors and warnings).</td> -</tr><tr> -<td><a href="#BaseReport.start">start</a></td> -<td>Start the timer.</td> -</tr><tr> -<td><a href="#BaseReport.stop">stop</a></td> -<td>Stop the timer.</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="BaseReport.__init__" ID="BaseReport.__init__"></a> -<h4>BaseReport (Constructor)</h4> -<b>BaseReport</b>(<i>options</i>) -<a NAME="BaseReport.error" ID="BaseReport.error"></a> -<h4>BaseReport.error</h4> -<b>error</b>(<i>line_number, offset, text, check</i>) -<p> -Report an error, according to options. -</p><a NAME="BaseReport.error_args" ID="BaseReport.error_args"></a> -<h4>BaseReport.error_args</h4> -<b>error_args</b>(<i>line_number, offset, code, check, *args</i>) -<p> -Report an error, according to options. -</p><a NAME="BaseReport.get_count" ID="BaseReport.get_count"></a> -<h4>BaseReport.get_count</h4> -<b>get_count</b>(<i>prefix=''</i>) -<p> -Return the total count of errors and warnings. -</p><a NAME="BaseReport.get_file_results" ID="BaseReport.get_file_results"></a> -<h4>BaseReport.get_file_results</h4> -<b>get_file_results</b>(<i></i>) -<p> -Return the count of errors and warnings for this file. -</p><a NAME="BaseReport.get_statistics" ID="BaseReport.get_statistics"></a> -<h4>BaseReport.get_statistics</h4> -<b>get_statistics</b>(<i>prefix=''</i>) -<p> - Get statistics for message codes that start with the prefix. -</p><p> - prefix='' matches all errors and warnings - prefix='E' matches all errors - prefix='W' matches all warnings - prefix='E4' matches all errors that have to do with imports -</p><a NAME="BaseReport.increment_logical_line" ID="BaseReport.increment_logical_line"></a> -<h4>BaseReport.increment_logical_line</h4> -<b>increment_logical_line</b>(<i></i>) -<p> -Signal a new logical line. -</p><a NAME="BaseReport.init_file" ID="BaseReport.init_file"></a> -<h4>BaseReport.init_file</h4> -<b>init_file</b>(<i>filename, lines, expected, line_offset</i>) -<p> -Signal a new file. -</p><a NAME="BaseReport.print_benchmark" ID="BaseReport.print_benchmark"></a> -<h4>BaseReport.print_benchmark</h4> -<b>print_benchmark</b>(<i></i>) -<p> -Print benchmark numbers. -</p><a NAME="BaseReport.print_statistics" ID="BaseReport.print_statistics"></a> -<h4>BaseReport.print_statistics</h4> -<b>print_statistics</b>(<i>prefix=''</i>) -<p> -Print overall statistics (number of errors and warnings). -</p><a NAME="BaseReport.start" ID="BaseReport.start"></a> -<h4>BaseReport.start</h4> -<b>start</b>(<i></i>) -<p> -Start the timer. -</p><a NAME="BaseReport.stop" ID="BaseReport.stop"></a> -<h4>BaseReport.stop</h4> -<b>stop</b>(<i></i>) -<p> -Stop the timer. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="Checker" ID="Checker"></a> -<h2>Checker</h2> -<p> - Load a Python source file, tokenize it, check coding style. -</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="#Checker.__init__">Checker</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.build_tokens_line">build_tokens_line</a></td> -<td>Build a logical line from tokens.</td> -</tr><tr> -<td><a href="#Checker.check_all">check_all</a></td> -<td>Run all checks on the input file.</td> -</tr><tr> -<td><a href="#Checker.check_ast">check_ast</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.check_logical">check_logical</a></td> -<td>Build a line from tokens and run all logical checks on it.</td> -</tr><tr> -<td><a href="#Checker.check_physical">check_physical</a></td> -<td>Run all physical checks on a raw input line.</td> -</tr><tr> -<td><a href="#Checker.generate_tokens">generate_tokens</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.readline">readline</a></td> -<td>Get the next line from the input buffer.</td> -</tr><tr> -<td><a href="#Checker.readline_check_physical">readline_check_physical</a></td> -<td>Check and return the next physical line.</td> -</tr><tr> -<td><a href="#Checker.report_invalid_syntax">report_invalid_syntax</a></td> -<td></td> -</tr><tr> -<td><a href="#Checker.run_check">run_check</a></td> -<td>Run a check plugin.</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="Checker.__init__" ID="Checker.__init__"></a> -<h4>Checker (Constructor)</h4> -<b>Checker</b>(<i>filename=None, lines=None, options=None, report=None, **kwargs</i>) -<a NAME="Checker.build_tokens_line" ID="Checker.build_tokens_line"></a> -<h4>Checker.build_tokens_line</h4> -<b>build_tokens_line</b>(<i></i>) -<p> - Build a logical line from tokens. -</p><a NAME="Checker.check_all" ID="Checker.check_all"></a> -<h4>Checker.check_all</h4> -<b>check_all</b>(<i>expected=None, line_offset=0</i>) -<p> - Run all checks on the input file. -</p><a NAME="Checker.check_ast" ID="Checker.check_ast"></a> -<h4>Checker.check_ast</h4> -<b>check_ast</b>(<i></i>) -<a NAME="Checker.check_logical" ID="Checker.check_logical"></a> -<h4>Checker.check_logical</h4> -<b>check_logical</b>(<i></i>) -<p> - Build a line from tokens and run all logical checks on it. -</p><a NAME="Checker.check_physical" ID="Checker.check_physical"></a> -<h4>Checker.check_physical</h4> -<b>check_physical</b>(<i>line</i>) -<p> - Run all physical checks on a raw input line. -</p><a NAME="Checker.generate_tokens" ID="Checker.generate_tokens"></a> -<h4>Checker.generate_tokens</h4> -<b>generate_tokens</b>(<i></i>) -<a NAME="Checker.readline" ID="Checker.readline"></a> -<h4>Checker.readline</h4> -<b>readline</b>(<i></i>) -<p> - Get the next line from the input buffer. -</p><a NAME="Checker.readline_check_physical" ID="Checker.readline_check_physical"></a> -<h4>Checker.readline_check_physical</h4> -<b>readline_check_physical</b>(<i></i>) -<p> - Check and return the next physical line. This method can be - used to feed tokenize.generate_tokens. -</p><a NAME="Checker.report_invalid_syntax" ID="Checker.report_invalid_syntax"></a> -<h4>Checker.report_invalid_syntax</h4> -<b>report_invalid_syntax</b>(<i></i>) -<a NAME="Checker.run_check" ID="Checker.run_check"></a> -<h4>Checker.run_check</h4> -<b>run_check</b>(<i>check, argument_names</i>) -<p> - Run a check plugin. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="DiffReport" ID="DiffReport"></a> -<h2>DiffReport</h2> -<p> -Collect and print the results for the changed lines only. -</p> -<h3>Derived from</h3> -StandardReport -<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="#DiffReport.__init__">DiffReport</a></td> -<td></td> -</tr><tr> -<td><a href="#DiffReport.error">error</a></td> -<td></td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="DiffReport.__init__" ID="DiffReport.__init__"></a> -<h4>DiffReport (Constructor)</h4> -<b>DiffReport</b>(<i>options</i>) -<a NAME="DiffReport.error" ID="DiffReport.error"></a> -<h4>DiffReport.error</h4> -<b>error</b>(<i>line_number, offset, text, check</i>) - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="FileReport" ID="FileReport"></a> -<h2>FileReport</h2> -<p> -Collect the results of the checks and print only the filenames. -</p> -<h3>Derived from</h3> -BaseReport -<h3>Class Attributes</h3> -<table> -<tr><td>print_filename</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="StandardReport" ID="StandardReport"></a> -<h2>StandardReport</h2> -<p> -Collect and print the results of the checks. -</p> -<h3>Derived from</h3> -BaseReport -<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="#StandardReport.__init__">StandardReport</a></td> -<td></td> -</tr><tr> -<td><a href="#StandardReport.error">error</a></td> -<td>Report an error, according to options.</td> -</tr><tr> -<td><a href="#StandardReport.error_args">error_args</a></td> -<td>Report an error, according to options.</td> -</tr><tr> -<td><a href="#StandardReport.get_file_results">get_file_results</a></td> -<td>Print the result and return the overall count for this file.</td> -</tr><tr> -<td><a href="#StandardReport.init_file">init_file</a></td> -<td>Signal a new file.</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="StandardReport.__init__" ID="StandardReport.__init__"></a> -<h4>StandardReport (Constructor)</h4> -<b>StandardReport</b>(<i>options</i>) -<a NAME="StandardReport.error" ID="StandardReport.error"></a> -<h4>StandardReport.error</h4> -<b>error</b>(<i>line_number, offset, text, check</i>) -<p> -Report an error, according to options. -</p><a NAME="StandardReport.error_args" ID="StandardReport.error_args"></a> -<h4>StandardReport.error_args</h4> -<b>error_args</b>(<i>line_number, offset, code, check, *args</i>) -<p> -Report an error, according to options. -</p><a NAME="StandardReport.get_file_results" ID="StandardReport.get_file_results"></a> -<h4>StandardReport.get_file_results</h4> -<b>get_file_results</b>(<i></i>) -<p> -Print the result and return the overall count for this file. -</p><a NAME="StandardReport.init_file" ID="StandardReport.init_file"></a> -<h4>StandardReport.init_file</h4> -<b>init_file</b>(<i>filename, lines, expected, line_offset</i>) -<p> -Signal a new file. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="StyleGuide" ID="StyleGuide"></a> -<h2>StyleGuide</h2> -<p> -Initialize a PEP-8 instance with few options. -</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="#StyleGuide.__init__">StyleGuide</a></td> -<td></td> -</tr><tr> -<td><a href="#StyleGuide.check_files">check_files</a></td> -<td>Run all checks on the paths.</td> -</tr><tr> -<td><a href="#StyleGuide.excluded">excluded</a></td> -<td>Check if options.exclude contains a pattern that matches filename.</td> -</tr><tr> -<td><a href="#StyleGuide.get_checks">get_checks</a></td> -<td>Find all globally visible functions where the first argument name starts with argument_name and which contain selected tests.</td> -</tr><tr> -<td><a href="#StyleGuide.ignore_code">ignore_code</a></td> -<td>Check if the error code should be ignored.</td> -</tr><tr> -<td><a href="#StyleGuide.init_report">init_report</a></td> -<td>Initialize the report instance.</td> -</tr><tr> -<td><a href="#StyleGuide.input_dir">input_dir</a></td> -<td>Check all files in this directory and all subdirectories.</td> -</tr><tr> -<td><a href="#StyleGuide.input_file">input_file</a></td> -<td>Run all checks on a Python source file.</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="StyleGuide.__init__" ID="StyleGuide.__init__"></a> -<h4>StyleGuide (Constructor)</h4> -<b>StyleGuide</b>(<i>*args, **kwargs</i>) -<a NAME="StyleGuide.check_files" ID="StyleGuide.check_files"></a> -<h4>StyleGuide.check_files</h4> -<b>check_files</b>(<i>paths=None</i>) -<p> -Run all checks on the paths. -</p><a NAME="StyleGuide.excluded" ID="StyleGuide.excluded"></a> -<h4>StyleGuide.excluded</h4> -<b>excluded</b>(<i>filename, parent=None</i>) -<p> - Check if options.exclude contains a pattern that matches filename. -</p><a NAME="StyleGuide.get_checks" ID="StyleGuide.get_checks"></a> -<h4>StyleGuide.get_checks</h4> -<b>get_checks</b>(<i>argument_name</i>) -<p> - Find all globally visible functions where the first argument name - starts with argument_name and which contain selected tests. -</p><a NAME="StyleGuide.ignore_code" ID="StyleGuide.ignore_code"></a> -<h4>StyleGuide.ignore_code</h4> -<b>ignore_code</b>(<i>code</i>) -<p> - Check if the error code should be ignored. -</p><p> - If 'options.select' contains a prefix of the error code, - return False. Else, if 'options.ignore' contains a prefix of - the error code, return True. -</p><a NAME="StyleGuide.init_report" ID="StyleGuide.init_report"></a> -<h4>StyleGuide.init_report</h4> -<b>init_report</b>(<i>reporter=None</i>) -<p> -Initialize the report instance. -</p><a NAME="StyleGuide.input_dir" ID="StyleGuide.input_dir"></a> -<h4>StyleGuide.input_dir</h4> -<b>input_dir</b>(<i>dirname</i>) -<p> -Check all files in this directory and all subdirectories. -</p><a NAME="StyleGuide.input_file" ID="StyleGuide.input_file"></a> -<h4>StyleGuide.input_file</h4> -<b>input_file</b>(<i>filename, lines=None, expected=None, line_offset=0</i>) -<p> -Run all checks on a Python source file. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="_add_check" ID="_add_check"></a> -<h2>_add_check</h2> -<b>_add_check</b>(<i>check, kind, codes, args</i>) - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="_main" ID="_main"></a> -<h2>_main</h2> -<b>_main</b>(<i></i>) -<p> -Parse options and run checks on Python source. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="blank_lines" ID="blank_lines"></a> -<h2>blank_lines</h2> -<b>blank_lines</b>(<i>logical_line, blank_lines, indent_level, line_number, previous_logical, previous_indent_level</i>) -<p> - Separate top-level function and class definitions with two blank lines. -</p><p> - Method definitions inside a class are separated by a single blank line. -</p><p> - Extra blank lines may be used (sparingly) to separate groups of related - functions. Blank lines may be omitted between a bunch of related - one-liners (e.g. a set of dummy implementations). -</p><p> - Use blank lines in functions, sparingly, to indicate logical sections. -</p><p> - Okay: def a():\n pass\n\n\ndef b():\n pass - Okay: def a():\n pass\n\n\n# Foo\n# Bar\n\ndef b():\n pass -</p><p> - E301: class Foo:\n b = 0\n def bar():\n pass - E302: def a():\n pass\n\ndef b(n):\n pass - E303: def a():\n pass\n\n\n\ndef b(n):\n pass - E303: def a():\n\n\n\n pass - E304: @decorator\n\ndef a():\n pass -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="comparison_to_singleton" ID="comparison_to_singleton"></a> -<h2>comparison_to_singleton</h2> -<b>comparison_to_singleton</b>(<i>logical_line, noqa</i>) -<p> - Comparisons to singletons like None should always be done - with "is" or "is not", never the equality operators. -</p><p> - Okay: if arg is not None: - E711: if arg != None: - E712: if arg == True: -</p><p> - Also, beware of writing if x when you really mean if x is not None -- - e.g. when testing whether a variable or argument that defaults to None was - set to some other value. The other value might have a type (such as a - container) that could be false in a boolean context! -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="comparison_type" ID="comparison_type"></a> -<h2>comparison_type</h2> -<b>comparison_type</b>(<i>logical_line</i>) -<p> - Object type comparisons should always use isinstance() instead of - comparing types directly. -</p><p> - Okay: if isinstance(obj, int): - E721: if type(obj) is type(1): -</p><p> - When checking if an object is a string, keep in mind that it might be a - unicode string too! In Python 2.3, str and unicode have a common base - class, basestring, so you can do: -</p><p> - Okay: if isinstance(obj, basestring): - Okay: if type(a1) is type(b1): -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="compound_statements" ID="compound_statements"></a> -<h2>compound_statements</h2> -<b>compound_statements</b>(<i>logical_line</i>) -<p> - Compound statements (multiple statements on the same line) are - generally discouraged. -</p><p> - While sometimes it's okay to put an if/for/while with a small body - on the same line, never do this for multi-clause statements. Also - avoid folding such long lines! -</p><p> - Okay: if foo == 'blah':\n do_blah_thing() - Okay: do_one() - Okay: do_two() - Okay: do_three() -</p><p> - E701: if foo == 'blah': do_blah_thing() - E701: for x in lst: total += x - E701: while t < 10: t = delay() - E701: if foo == 'blah': do_blah_thing() - E701: else: do_non_blah_thing() - E701: try: something() - E701: finally: cleanup() - E701: if foo == 'blah': one(); two(); three() -</p><p> - E702: do_one(); do_two(); do_three() - E703: do_four(); # useless semicolon -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="continued_indentation" ID="continued_indentation"></a> -<h2>continued_indentation</h2> -<b>continued_indentation</b>(<i>logical_line, tokens, indent_level, hang_closing, noqa, verbose</i>) -<p> - Continuation lines should align wrapped elements either vertically using - Python's implicit line joining inside parentheses, brackets and braces, or - using a hanging indent. -</p><p> - When using a hanging indent the following considerations should be applied: -</p><p> - - there should be no arguments on the first line, and -</p><p> - - further indentation should be used to clearly distinguish itself as a - continuation line. -</p><p> - Okay: a = (\n) - E123: a = (\n ) -</p><p> - Okay: a = (\n 42) - E121: a = (\n 42) - E122: a = (\n42) - E123: a = (\n 42\n ) - E124: a = (24,\n 42\n) - E125: if (a or\n b):\n pass - E126: a = (\n 42) - E127: a = (24,\n 42) - E128: a = (24,\n 42) -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="expand_indent" ID="expand_indent"></a> -<h2>expand_indent</h2> -<b>expand_indent</b>(<i>line</i>) -<p> - Return the amount of indentation. - Tabs are expanded to the next multiple of 8. -</p><p> - >>> expand_indent(' ') - 4 - >>> expand_indent('\t') - 8 - >>> expand_indent(' \t') - 8 - >>> expand_indent(' \t') - 8 - >>> expand_indent(' \t') - 16 -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="explicit_line_join" ID="explicit_line_join"></a> -<h2>explicit_line_join</h2> -<b>explicit_line_join</b>(<i>logical_line, tokens</i>) -<p> - Avoid explicit line join between brackets. -</p><p> - The preferred way of wrapping long lines is by using Python's implied line - continuation inside parentheses, brackets and braces. Long lines can be - broken over multiple lines by wrapping expressions in parentheses. These - should be used in preference to using a backslash for line continuation. -</p><p> - E502: aaa = [123, \\n 123] - E502: aaa = ("bbb " \\n "ccc") -</p><p> - Okay: aaa = [123,\n 123] - Okay: aaa = ("bbb "\n "ccc") - Okay: aaa = "bbb " \\n "ccc" -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="extraneous_whitespace" ID="extraneous_whitespace"></a> -<h2>extraneous_whitespace</h2> -<b>extraneous_whitespace</b>(<i>logical_line</i>) -<p> - Avoid extraneous whitespace in the following situations: -</p><p> - - Immediately inside parentheses, brackets or braces. -</p><p> - - Immediately before a comma, semicolon, or colon. -</p><p> - Okay: spam(ham[1], {eggs: 2}) - E201: spam( ham[1], {eggs: 2}) - E201: spam(ham[ 1], {eggs: 2}) - E201: spam(ham[1], { eggs: 2}) - E202: spam(ham[1], {eggs: 2} ) - E202: spam(ham[1 ], {eggs: 2}) - E202: spam(ham[1], {eggs: 2 }) -</p><p> - E203: if x == 4: print x, y; x, y = y , x - E203: if x == 4: print x, y ; x, y = y, x - E203: if x == 4 : print x, y; x, y = y, x -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="filename_match" ID="filename_match"></a> -<h2>filename_match</h2> -<b>filename_match</b>(<i>filename, patterns, default=True</i>) -<p> - Check if patterns contains a pattern that matches filename. - If patterns is unspecified, this always returns True. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="get_parser" ID="get_parser"></a> -<h2>get_parser</h2> -<b>get_parser</b>(<i>prog='pep8', version=__version__</i>) - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="imports_on_separate_lines" ID="imports_on_separate_lines"></a> -<h2>imports_on_separate_lines</h2> -<b>imports_on_separate_lines</b>(<i>logical_line</i>) -<p> - Imports should usually be on separate lines. -</p><p> - Okay: import os\nimport sys - E401: import sys, os -</p><p> - Okay: from subprocess import Popen, PIPE - Okay: from myclas import MyClass - Okay: from foo.bar.yourclass import YourClass - Okay: import myclass - Okay: import foo.bar.yourclass -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="indentation" ID="indentation"></a> -<h2>indentation</h2> -<b>indentation</b>(<i>logical_line, previous_logical, indent_char, indent_level, previous_indent_level</i>) -<p> - Use 4 spaces per indentation level. -</p><p> - For really old code that you don't want to mess up, you can continue to - use 8-space tabs. -</p><p> - Okay: a = 1 - Okay: if a == 0:\n a = 1 - E111: a = 1 -</p><p> - Okay: for item in items:\n pass - E112: for item in items:\npass -</p><p> - Okay: a = 1\nb = 2 - E113: a = 1\n b = 2 -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="init_checks_registry" ID="init_checks_registry"></a> -<h2>init_checks_registry</h2> -<b>init_checks_registry</b>(<i></i>) -<p> - Register all globally visible functions where the first argument name - is 'physical_line' or 'logical_line'. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="maximum_line_length" ID="maximum_line_length"></a> -<h2>maximum_line_length</h2> -<b>maximum_line_length</b>(<i>physical_line, max_line_length</i>) -<p> - Limit all lines to a maximum of 79 characters. -</p><p> - There are still many devices around that are limited to 80 character - lines; plus, limiting windows to 80 characters makes it possible to have - several windows side-by-side. The default wrapping on such devices looks - ugly. Therefore, please limit all lines to a maximum of 79 characters. - For flowing long blocks of text (docstrings or comments), limiting the - length to 72 characters is recommended. -</p><p> - Reports error E501. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="missing_newline" ID="missing_newline"></a> -<h2>missing_newline</h2> -<b>missing_newline</b>(<i>physical_line</i>) -<p> - JCR: The last line should have a newline. -</p><p> - Reports warning W292. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="missing_whitespace" ID="missing_whitespace"></a> -<h2>missing_whitespace</h2> -<b>missing_whitespace</b>(<i>logical_line</i>) -<p> - JCR: Each comma, semicolon or colon should be followed by whitespace. -</p><p> - Okay: [a, b] - Okay: (3,) - Okay: a[1:4] - Okay: a[:4] - Okay: a[1:] - Okay: a[1:4:2] - E231: ['a','b'] - E231: foo(bar,baz) - E231: [{'a':'b'}] -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="missing_whitespace_around_operator" ID="missing_whitespace_around_operator"></a> -<h2>missing_whitespace_around_operator</h2> -<b>missing_whitespace_around_operator</b>(<i>logical_line, tokens</i>) -<p> - - Always surround these binary operators with a single space on - either side: assignment (=), augmented assignment (+=, -= etc.), - comparisons (==, <, >, !=, <>, <=, >=, in, not in, is, is not), - Booleans (and, or, not). -</p><p> - - Use spaces around arithmetic operators. -</p><p> - Okay: i = i + 1 - Okay: submitted += 1 - Okay: x = x * 2 - 1 - Okay: hypot2 = x * x + y * y - Okay: c = (a + b) * (a - b) - Okay: foo(bar, key='word', *args, **kwargs) - Okay: alpha[:-i] -</p><p> - E225: i=i+1 - E225: submitted +=1 - E225: x = x /2 - 1 - E225: z = x **y - E226: c = (a+b) * (a-b) - E226: hypot2 = x*x + y*y - E227: c = a|b - E228: msg = fmt%(errno, errmsg) -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="mute_string" ID="mute_string"></a> -<h2>mute_string</h2> -<b>mute_string</b>(<i>text</i>) -<p> - Replace contents with 'xxx' to prevent syntax matching. -</p><p> - >>> mute_string('"abc"') - '"xxx"' - >>> mute_string("'''abc'''") - "'''xxx'''" - >>> mute_string("r'abc'") - "r'xxx'" -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="parse_udiff" ID="parse_udiff"></a> -<h2>parse_udiff</h2> -<b>parse_udiff</b>(<i>diff, patterns=None, parent='.'</i>) -<p> -Return a dictionary of matching lines. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="process_options" ID="process_options"></a> -<h2>process_options</h2> -<b>process_options</b>(<i>arglist=None, parse_argv=False, config_file=None, parser=None</i>) -<p> -Process options passed either via arglist or via command line args. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="python_3000_backticks" ID="python_3000_backticks"></a> -<h2>python_3000_backticks</h2> -<b>python_3000_backticks</b>(<i>logical_line</i>) -<p> - Backticks are removed in Python 3. - Use repr() instead. -</p><p> - Okay: val = repr(1 + 2) - W604: val = `1 + 2` -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="python_3000_has_key" ID="python_3000_has_key"></a> -<h2>python_3000_has_key</h2> -<b>python_3000_has_key</b>(<i>logical_line</i>) -<p> - The {}.has_key() method is removed in the Python 3. - Use the 'in' operation instead. -</p><p> - Okay: if "alph" in d:\n print d["alph"] - W601: assert d.has_key('alph') -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="python_3000_not_equal" ID="python_3000_not_equal"></a> -<h2>python_3000_not_equal</h2> -<b>python_3000_not_equal</b>(<i>logical_line</i>) -<p> - != can also be written <>, but this is an obsolete usage kept for - backwards compatibility only. New code should always use !=. - The older syntax is removed in Python 3. -</p><p> - Okay: if a != 'no': - W603: if a <> 'no': -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="python_3000_raise_comma" ID="python_3000_raise_comma"></a> -<h2>python_3000_raise_comma</h2> -<b>python_3000_raise_comma</b>(<i>logical_line</i>) -<p> - When raising an exception, use "raise ValueError('message')" - instead of the older form "raise ValueError, 'message'". -</p><p> - The paren-using form is preferred because when the exception arguments - are long or include string formatting, you don't need to use line - continuation characters thanks to the containing parentheses. The older - form is removed in Python 3. -</p><p> - Okay: raise DummyError("Message") - W602: raise DummyError, "Message" -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="read_config" ID="read_config"></a> -<h2>read_config</h2> -<b>read_config</b>(<i>options, args, arglist, parser</i>) -<p> -Read both user configuration and local configuration. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="readlines" ID="readlines"></a> -<h2>readlines</h2> -<b>readlines</b>(<i>filename</i>) - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="readlines_1" ID="readlines_1"></a> -<h2>readlines</h2> -<b>readlines</b>(<i>filename</i>) - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="register_check" ID="register_check"></a> -<h2>register_check</h2> -<b>register_check</b>(<i>check, codes=None</i>) -<p> - Register a new check object. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="stdin_get_value" ID="stdin_get_value"></a> -<h2>stdin_get_value</h2> -<b>stdin_get_value</b>(<i></i>) - -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="tabs_obsolete" ID="tabs_obsolete"></a> -<h2>tabs_obsolete</h2> -<b>tabs_obsolete</b>(<i>physical_line</i>) -<p> - For new projects, spaces-only are strongly recommended over tabs. Most - editors have features that make this easy to do. -</p><p> - Okay: if True:\n return - W191: if True:\n\treturn -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="tabs_or_spaces" ID="tabs_or_spaces"></a> -<h2>tabs_or_spaces</h2> -<b>tabs_or_spaces</b>(<i>physical_line, indent_char</i>) -<p> - Never mix tabs and spaces. -</p><p> - The most popular way of indenting Python is with spaces only. The - second-most popular way is with tabs only. Code indented with a mixture - of tabs and spaces should be converted to using spaces exclusively. When - invoking the Python command line interpreter with the -t option, it issues - warnings about code that illegally mixes tabs and spaces. When using -tt - these warnings become errors. These options are highly recommended! -</p><p> - Okay: if a == 0:\n a = 1\n b = 1 - E101: if a == 0:\n a = 1\n\tb = 1 -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="trailing_blank_lines" ID="trailing_blank_lines"></a> -<h2>trailing_blank_lines</h2> -<b>trailing_blank_lines</b>(<i>physical_line, lines, line_number</i>) -<p> - JCR: Trailing blank lines are superfluous. -</p><p> - Okay: spam(1) - W391: spam(1)\n -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="trailing_whitespace" ID="trailing_whitespace"></a> -<h2>trailing_whitespace</h2> -<b>trailing_whitespace</b>(<i>physical_line</i>) -<p> - JCR: Trailing whitespace is superfluous. - FBM: Except when it occurs as part of a blank line (i.e. the line is - nothing but whitespace). According to Python docs[1] a line with only - whitespace is considered a blank line, and is to be ignored. However, - matching a blank line to its indentation level avoids mistakenly - terminating a multi-line statement (e.g. class declaration) when - pasting code into the standard Python interpreter. -</p><p> - [1] http://docs.python.org/reference/lexical_analysis.html#blank-lines -</p><p> - The warning returned varies on whether the line itself is blank, for easier - filtering for those who want to indent their blank lines. -</p><p> - Okay: spam(1)\n# - W291: spam(1) \n# - W293: class Foo(object):\n \n bang = 12 -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="whitespace_around_comma" ID="whitespace_around_comma"></a> -<h2>whitespace_around_comma</h2> -<b>whitespace_around_comma</b>(<i>logical_line</i>) -<p> - Avoid extraneous whitespace in the following situations: -</p><p> - - More than one space around an assignment (or other) operator to - align it with another. -</p><p> - JCR: This should also be applied around comma etc. - Note: these checks are disabled by default -</p><p> - Okay: a = (1, 2) - E241: a = (1, 2) - E242: a = (1,\t2) -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="whitespace_around_keywords" ID="whitespace_around_keywords"></a> -<h2>whitespace_around_keywords</h2> -<b>whitespace_around_keywords</b>(<i>logical_line</i>) -<p> - Avoid extraneous whitespace around keywords. -</p><p> - Okay: True and False - E271: True and False - E272: True and False - E273: True and\tFalse - E274: True\tand False -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="whitespace_around_named_parameter_equals" ID="whitespace_around_named_parameter_equals"></a> -<h2>whitespace_around_named_parameter_equals</h2> -<b>whitespace_around_named_parameter_equals</b>(<i>logical_line, tokens</i>) -<p> - Don't use spaces around the '=' sign when used to indicate a - keyword argument or a default parameter value. -</p><p> - Okay: def complex(real, imag=0.0): - Okay: return magic(r=real, i=imag) - Okay: boolean(a == b) - Okay: boolean(a != b) - Okay: boolean(a <= b) - Okay: boolean(a >= b) -</p><p> - E251: def complex(real, imag = 0.0): - E251: return magic(r = real, i = imag) -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="whitespace_around_operator" ID="whitespace_around_operator"></a> -<h2>whitespace_around_operator</h2> -<b>whitespace_around_operator</b>(<i>logical_line</i>) -<p> - Avoid extraneous whitespace in the following situations: -</p><p> - - More than one space around an assignment (or other) operator to - align it with another. -</p><p> - Okay: a = 12 + 3 - E221: a = 4 + 5 - E222: a = 4 + 5 - E223: a = 4\t+ 5 - E224: a = 4 +\t5 -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="whitespace_before_inline_comment" ID="whitespace_before_inline_comment"></a> -<h2>whitespace_before_inline_comment</h2> -<b>whitespace_before_inline_comment</b>(<i>logical_line, tokens</i>) -<p> - Separate inline comments by at least two spaces. -</p><p> - An inline comment is a comment on the same line as a statement. Inline - comments should be separated by at least two spaces from the statement. - They should start with a # and a single space. -</p><p> - Okay: x = x + 1 # Increment x - Okay: x = x + 1 # Increment x - E261: x = x + 1 # Increment x - E262: x = x + 1 #Increment x - E262: x = x + 1 # Increment x -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="whitespace_before_parameters" ID="whitespace_before_parameters"></a> -<h2>whitespace_before_parameters</h2> -<b>whitespace_before_parameters</b>(<i>logical_line, tokens</i>) -<p> - Avoid extraneous whitespace in the following situations: -</p><p> - - Immediately before the open parenthesis that starts the argument - list of a function call. -</p><p> - - Immediately before the open parenthesis that starts an indexing or - slicing. -</p><p> - Okay: spam(1) - E211: spam (1) -</p><p> - Okay: dict['key'] = list[index] - E211: dict ['key'] = list[index] - E211: dict['key'] = list [index] -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /> -</body></html> \ No newline at end of file
--- a/PluginManager/PluginManager.py Sun Jan 05 22:45:29 2014 +0100 +++ b/PluginManager/PluginManager.py Wed Jan 15 22:55:52 2014 +0100 @@ -1127,7 +1127,7 @@ " updates available. Use the plug-in" " repository dialog to get them.</p>"), E5MessageBox.StandardButtons( - E5MessageBox.Ignore | \ + E5MessageBox.Ignore | E5MessageBox.Open), E5MessageBox.Open) if res == E5MessageBox.Open:
--- a/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleChecker.py Sun Jan 05 22:45:29 2014 +0100 +++ b/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleChecker.py Wed Jan 15 22:55:52 2014 +0100 @@ -9,129 +9,181 @@ from __future__ import unicode_literals -try: - str = unicode # __IGNORE_WARNING__ -except (NameError): - pass +import sys -import os - -from PyQt4.QtCore import QProcess, QCoreApplication +import pep8 +from NamingStyleChecker import NamingStyleChecker -from . import pep8 -from .NamingStyleChecker import NamingStyleChecker -from .DocStyleChecker import DocStyleChecker +# register the name checker +pep8.register_check(NamingStyleChecker, NamingStyleChecker.Codes) -import Preferences -import Utilities - -from eric5config import getConfig +from DocStyleChecker import DocStyleChecker -class CodeStyleCheckerPy2(object): +def initService(): """ - Class implementing the code style checker interface for Python 2. + Initialize the service and return the entry point. + + @return the entry point for the background client (function) """ - def __init__(self, filename, lines, repeat=False, - select="", ignore="", max_line_length=79, - hang_closing=False, docType="pep257"): + return codeStyleCheck + + +class CodeStyleCheckerReport(pep8.BaseReport): + """ + Class implementing a special report to be used with our dialog. + """ + def __init__(self, options): """ 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) - @keyparam max_line_length maximum allowed line length (integer) - @keyparam hang_closing flag indicating to allow hanging closing - brackets (boolean) - @keyparam docType type of the documentation strings - (string, one of 'eric' or 'pep257') + @param options options for the report (optparse.Values) """ - assert docType in ("eric", "pep257") - - self.errors = [] - self.counters = {} + super(CodeStyleCheckerReport, self).__init__(options) - interpreter = Preferences.getDebugger("PythonInterpreter") - if interpreter == "" or not Utilities.isExecutable(interpreter): - self.errors.append( - (filename, 1, 1, QCoreApplication.translate( - "CodeStyleCheckerPy2", - "Python2 interpreter not configured."))) - return - - checker = os.path.join(getConfig('ericDir'), - "UtilitiesPython2", "CodeStyleChecker.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("-m") - args.append(str(max_line_length)) - if hang_closing: - args.append("-h") - args.append("-d") - args.append(docType) - args.append("-f") - args.append(filename) + self.__repeat = options.repeat + self.errors = [] + + def error_args(self, line_number, offset, code, check, *args): + """ + Public method to collect the error messages. - 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.errors.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 - - if code in NamingStyleChecker.Codes: - text = NamingStyleChecker.getMessage(code, *args) - elif code in DocStyleChecker.Codes: - text = DocStyleChecker.getMessage(code, *args) + @param line_number line number of the issue (integer) + @param offset position within line of the issue (integer) + @param code message code (string) + @param check reference to the checker function (function) + @param args arguments for the message (list) + @return error code (string) + """ + code = super(CodeStyleCheckerReport, self).error_args( + line_number, offset, code, check, *args) + if code and (self.counters[code] == 1 or self.__repeat): + if code in NamingStyleChecker.Codes: + text = NamingStyleChecker.getMessage(code, *args) + else: + text = pep8.getMessage(code, *args) + self.errors.append( + (self.filename, line_number, offset, text) + ) + return code + + +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 + + +def codeStyleCheck(filename, source, args): + """ + Do the code style check and/ or fix found errors. + + @param filename source filename (string) + @param source string containing the code to check (string) + @param args arguments used by the codeStyleCheck function (list of + excludeMessages (str), includeMessages (str), repeatMessages + (bool), fixCodes (str), noFixCodes (str), fixIssues (bool), + maxLineLength (int), hangClosing (bool), docType (str), errors + (list of str), eol (str), encoding (str)) + @return tuple of stats (dict) and results (tuple for each found violation + of style (tuple of lineno (int), position (int), text (str), fixed + (bool), autofixing (bool), fixedMsg (str))) + """ + excludeMessages, includeMessages, \ + repeatMessages, fixCodes, noFixCodes, fixIssues, maxLineLength, \ + hangClosing, docType, errors, eol, encoding = args + + stats = {} + # avoid 'Encoding declaration in unicode string' exception on Python2 + if sys.version_info[0] == 2: + if encoding == 'utf-8-bom': + enc = 'utf-8' + else: + enc = encoding + source = [line.encode(enc) for line in source] + + if fixIssues: + from CodeStyleFixer import CodeStyleFixer + fixer = CodeStyleFixer( + filename, source, fixCodes, noFixCodes, + maxLineLength, True, eol) # always fix in place + else: + fixer = None + + if not errors: + if includeMessages: + select = [s.strip() for s in + includeMessages.split(',') if s.strip()] + else: + select = [] + if excludeMessages: + ignore = [i.strip() for i in + excludeMessages.split(',') if i.strip()] + else: + ignore = [] + + # check coding style + styleGuide = pep8.StyleGuide( + reporter=CodeStyleCheckerReport, + repeat=repeatMessages, + select=select, + ignore=ignore, + max_line_length=maxLineLength, + hang_closing=hangClosing, + ) + report = styleGuide.check_files([filename]) + stats.update(report.counters) + + # check documentation style + docStyleChecker = DocStyleChecker( + source, filename, select, ignore, [], repeatMessages, + maxLineLength=maxLineLength, docType=docType) + docStyleChecker.run() + stats.update(docStyleChecker.counters) + + errors = report.errors + docStyleChecker.errors + + deferredFixes = {} + results = [] + for error in errors: + fname, lineno, position, text = error + if lineno > len(source): + lineno = len(source) + if "__IGNORE_WARNING__" not in \ + extractLineFlags(source[lineno - 1].strip()): + if fixer: + res, msg, id_ = fixer.fixIssue(lineno, position, text) + if res == -1: + itm = [lineno, position, text] + deferredFixes[id_] = itm else: - text = pep8.getMessage(code, *args) - self.errors.append((fname, lineno, position, text)) - while index < len(output): - code, countStr = output[index].split(None, 1) - self.counters[code] = int(countStr) - index += 1 - else: - self.errors.append( - (filename, 1, 1, QCoreApplication.translate( - "CodeStyleCheckerPy2", - "Python2 interpreter did not finish within 15s."))) + itm = [lineno, position, text, res == 1, True, msg] + else: + itm = [lineno, position, text, False, False, ''] + results.append(itm) + + if fixer: + deferredResults = fixer.finalize() + for id_ in deferredResults: + fixed, msg = deferredResults[id_] + itm = deferredFixes[id_] + itm.extend([fixed == 1, fixed == 1, msg]) + fixer.saveFile(encoding) + + return stats, results
--- a/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py Sun Jan 05 22:45:29 2014 +0100 +++ b/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py Wed Jan 15 22:55:52 2014 +0100 @@ -25,51 +25,10 @@ import Utilities from . import pep8 -from .NamingStyleChecker import NamingStyleChecker - -# register the name checker -pep8.register_check(NamingStyleChecker, NamingStyleChecker.Codes) - -from .DocStyleChecker import DocStyleChecker - - -class CodeStyleCheckerReport(pep8.BaseReport): - """ - Class implementing a special report to be used with our dialog. - """ - def __init__(self, options): - """ - Constructor - - @param options options for the report (optparse.Values) - """ - super(CodeStyleCheckerReport, self).__init__(options) - - self.__repeat = options.repeat - self.errors = [] - - def error_args(self, line_number, offset, code, check, *args): - """ - Public method to collect the error messages. - - @param line_number line number of the issue (integer) - @param offset position within line of the issue (integer) - @param code message code (string) - @param check reference to the checker function (function) - @param args arguments for the message (list) - @return error code (string) - """ - code = super(CodeStyleCheckerReport, self).error_args( - line_number, offset, code, check, *args) - if code and (self.counters[code] == 1 or self.__repeat): - if code in NamingStyleChecker.Codes: - text = NamingStyleChecker.getMessage(code, *args) - else: - text = pep8.getMessage(code, *args) - self.errors.append( - (self.filename, line_number, offset, text) - ) - return code +#from .NamingStyleChecker import NamingStyleChecker +# +## register the name checker +#pep8.register_check(NamingStyleChecker, NamingStyleChecker.Codes) class CodeStyleCheckerDialog(QDialog, Ui_CodeStyleCheckerDialog): @@ -115,6 +74,9 @@ self.checkProgressLabel.setVisible(False) self.checkProgressLabel.setMaximumWidth(600) + self.internalServices = e5App().getObject('InternalServices') + self.internalServices.styleChecked.connect(self.__processResult) + self.noResults = True self.cancelled = False self.__lastFileItem = None @@ -202,7 +164,7 @@ @param fixed flag indicating a fixed issue (boolean) """ if fixed: - message = itm.data(0, self.messageRole) + text + code, message = text.split(None, 1) itm.setText(2, message) itm.setIcon(0, UI.PixmapCache.getIcon("issueFixed.png")) @@ -228,8 +190,7 @@ self.__statistics[key] += statistics[key] else: self.__statistics[key] = statistics[key] - if fixer: - self.__statistics["_IssuesFixed"] += fixer.fixed + self.__statistics["_IssuesFixed"] += fixer def __updateFixerStatistics(self, fixer): """ @@ -237,7 +198,7 @@ @param fixer reference to the code style fixer (CodeStyleFixer) """ - self.__statistics["_IssuesFixed"] += fixer.fixed + self.__statistics["_IssuesFixed"] += fixer def __resetStatistics(self): """ @@ -324,46 +285,38 @@ QApplication.processEvents() self.__resetStatistics() - self.__clearErrors() if save: self.__fileOrFileList = fn if isinstance(fn, list): - files = fn[:] + self.files = fn[:] elif os.path.isdir(fn): - files = [] + self.files = [] extensions = set(Preferences.getPython("PythonExtensions") + Preferences.getPython("Python3Extensions")) for ext in extensions: - files.extend(Utilities.direntries( + self.files.extend(Utilities.direntries( fn, True, '*{0}'.format(ext), 0)) else: - files = [fn] - + self.files = [fn] + # filter the list depending on the filter string - if files: + if self.files: filterString = self.excludeFilesEdit.text() filterList = [f.strip() for f in filterString.split(",") if f.strip()] for filter in filterList: - files = \ - [f for f in files + self.files = \ + [f for f in self.files if not fnmatch.fnmatch(f, filter.strip())] + + self.__clearErrors() - 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)) - self.checkProgressLabel.setVisible( - len(py3files) + len(py2files) > 1) - self.checkProgress.setVisible( - len(py3files) + len(py2files) > 1) + if len(self.files) > 0: + self.checkProgress.setMaximum(len(self.files)) + self.checkProgressLabel.setVisible(len(self.files) > 1) + self.checkProgress.setVisible(len(self.files) > 1) QApplication.processEvents() # extract the configuration values @@ -378,157 +331,124 @@ docType = self.docTypeComboBox.itemData( self.docTypeComboBox.currentIndex()) - try: - # disable updates of the list for speed - self.resultList.setUpdatesEnabled(False) - self.resultList.setSortingEnabled(False) - - # now go through all the files - progress = 0 - for file in sorted(py3files + py2files): - self.checkProgress.setValue(progress) - self.checkProgressLabel.setPath(file) - QApplication.processEvents() - - if self.cancelled: - self.__resort() - return - - self.__lastFileItem = None - - try: - source, encoding = Utilities.readEncodedFile(file) - source = source.splitlines(True) - except (UnicodeError, IOError) as msg: - self.noResults = False - self.__createResultItem( - file, 1, 1, - self.trUtf8("Error: {0}").format(str(msg)) - .rstrip()[1:-1], False, False) - progress += 1 - continue - - stats = {} - flags = Utilities.extractFlags(source) - ext = os.path.splitext(file)[1] - if fixIssues: - from .CodeStyleFixer import CodeStyleFixer - fixer = CodeStyleFixer( - self.__project, file, source, fixCodes, noFixCodes, - maxLineLength, True) # always fix in place - else: - fixer = None - 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"]): - from .CodeStyleChecker import CodeStyleCheckerPy2 - report = CodeStyleCheckerPy2( - file, [], - repeat=repeatMessages, - select=includeMessages, - ignore=excludeMessages, - max_line_length=maxLineLength, - hang_closing=hangClosing, - docType=docType, - ) - errors = report.errors[:] - stats.update(report.counters) - else: - if includeMessages: - select = [s.strip() for s in - includeMessages.split(',') if s.strip()] - else: - select = [] - if excludeMessages: - ignore = [i.strip() for i in - excludeMessages.split(',') if i.strip()] - else: - ignore = [] - - # check coding style - styleGuide = pep8.StyleGuide( - reporter=CodeStyleCheckerReport, - repeat=repeatMessages, - select=select, - ignore=ignore, - max_line_length=maxLineLength, - hang_closing=hangClosing, - ) - report = styleGuide.check_files([file]) - stats.update(report.counters) - - # check documentation style - docStyleChecker = DocStyleChecker( - source, file, select, ignore, [], repeatMessages, - maxLineLength=maxLineLength, docType=docType) - docStyleChecker.run() - stats.update(docStyleChecker.counters) - - errors = report.errors + docStyleChecker.errors - - deferredFixes = {} - for error in errors: - fname, lineno, position, text = error - if lineno > len(source): - lineno = len(source) - if "__IGNORE_WARNING__" not in \ - Utilities.extractLineFlags( - source[lineno - 1].strip()): - self.noResults = False - if fixer: - res, msg, id_ = fixer.fixIssue(lineno, - position, text) - if res == 1: - text += "\n" + \ - self.trUtf8("Fix: {0}").format(msg) - self.__createResultItem( - fname, lineno, position, text, True, - True) - elif res == 0: - self.__createResultItem( - fname, lineno, position, text, False, - True) - else: - itm = self.__createResultItem( - fname, lineno, position, - text, False, False) - deferredFixes[id_] = itm - else: - self.__createResultItem( - fname, lineno, position, text, False, - False) - if fixer: - deferredResults = fixer.finalize() - for id_ in deferredResults: - fixed, msg = deferredResults[id_] - itm = deferredFixes[id_] - if fixed == 1: - text = "\n" + \ - self.trUtf8("Fix: {0}").format(msg) - self.__modifyFixedResultItem(itm, text, True) - else: - self.__modifyFixedResultItem(itm, "", False) - fixer.saveFile(encoding) - self.__updateStatistics(stats, fixer) - progress += 1 - finally: - # reenable updates of the list - self.resultList.setSortingEnabled(True) - self.resultList.setUpdatesEnabled(True) - self.checkProgress.setValue(progress) + self.__options = [excludeMessages, includeMessages, repeatMessages, + fixCodes, noFixCodes, fixIssues, maxLineLength, + hangClosing, docType] + + # now go through all the files + self.progress = 0 + self.files.sort() + self.check() + + def check(self, codestring='', onlyFixes={}): + """ + Start a style check for one file. + + The results are reported to the __processResult slot. + @keyparam codestring optional sourcestring (str) + @keyparam onlyFixes dict which violations should be fixed (dict) + """ + if not self.files: self.checkProgressLabel.setPath("") - QApplication.processEvents() - self.__resort() - else: self.checkProgress.setMaximum(1) self.checkProgress.setValue(1) - self.__finish() + self.__finish() + return + + self.filename = self.files.pop(0) + self.checkProgress.setValue(self.progress) + self.checkProgressLabel.setPath(self.filename) + QApplication.processEvents() + + if self.cancelled: + self.__resort() + return + + self.__lastFileItem = None + + if codestring: + self.source = codestring + else: + try: + self.source, encoding = Utilities.readEncodedFile( + self.filename) + if encoding.endswith( + ('-selected', '-default', '-guessed', '-ignore')): + encoding = encoding.rsplit('-', 1)[0] + + self.source = self.source.splitlines(True) + except (UnicodeError, IOError) as msg: + self.noResults = False + self.__createResultItem( + self.filename, 1, 1, + self.trUtf8("Error: {0}").format(str(msg)) + .rstrip()[1:-1], False, False) + self.progress += 1 + # Continue with next file + self.check() + return + + errors = [] + self.__itms = [] + for error, itm in onlyFixes.get(self.filename, []): + errors.append(error) + self.__itms.append(itm) + + eol = self.__getEol(self.filename) + args = self.__options + [errors, eol, encoding] + self.internalServices.styleCheck( + self.filename, self.source, args) + + def __processResult(self, fn, codeStyleCheckerStats, fixes, results): + """ + Privat slot called after perfoming a style check on one file. + + @param fn filename of the just checked file (str) + @param codeStyleCheckerStats stats of style and name check (dict) + @param fixes number of applied fixes (int) + @param results tuple for each found violation of style (tuple of + lineno (int), position (int), text (str), fixed (bool), + autofixing (bool)) + """ + # Check if it's the requested file, otherwise ignore signal + if fn != self.filename: + return + + # disable updates of the list for speed + self.resultList.setUpdatesEnabled(False) + self.resultList.setSortingEnabled(False) + + fixed = None + if self.__itms: + for itm, (lineno, position, text, fixed, autofixing) in zip( + self.__itms, results): + self.__modifyFixedResultItem(itm, text, fixed) + self.__updateFixerStatistics(fixes) + else: + for lineno, position, text, fixed, autofixing in results: + self.noResults = False + self.__createResultItem( + fn, lineno, position, text, fixed, autofixing) + + self.__updateStatistics(codeStyleCheckerStats, fixes) + + if fixed: + vm = e5App().getObject("ViewManager") + editor = vm.getOpenEditor(fn) + if editor: + editor.refresh() + + self.progress += 1 + + self.__resort() + # reenable updates of the list + self.resultList.setSortingEnabled(True) + self.resultList.setUpdatesEnabled(True) + + self.checkProgress.setValue(self.progress) + QApplication.processEvents() + + self.check() def __finish(self): """ @@ -558,6 +478,19 @@ self.checkProgress.setVisible(False) self.checkProgressLabel.setVisible(False) + def __getEol(self, fn): + """ + Private method to get the applicable eol string. + + @param fn filename where to determine the line ending (str) + @return eol string (string) + """ + if self.__project.isOpen() and self.__project.isProjectFile(fn): + eol = self.__project.getEolString() + else: + eol = Utilities.linesep() + return eol + @pyqtSlot() def on_startButton_clicked(self): """ @@ -817,82 +750,39 @@ def on_fixButton_clicked(self): """ Private slot to fix selected issues. + + Build a dictionary of issues to fix. Update the initialized __options. + Then call check with the dict as keyparam to fix selected issues. """ - from .CodeStyleFixer import CodeStyleFixer - - # build a dictionary of issues to fix fixableItems = self.__getSelectedFixableItems() - fixesDict = {} # dictionary of lists of tuples containing - # the issue and the item + # dictionary of lists of tuples containing the issue and the item + fixesDict = {} for itm in fixableItems: filename = itm.data(0, self.filenameRole) if filename not in fixesDict: fixesDict[filename] = [] fixesDict[filename].append(( - (itm.data(0, self.lineRole), + (filename, itm.data(0, self.lineRole), itm.data(0, self.positionRole), "{0} {1}".format(itm.data(0, self.codeRole), itm.data(0, self.messageRole))), itm )) - # extract the configuration values - fixCodes = self.fixIssuesEdit.text() - noFixCodes = self.noFixIssuesEdit.text() - maxLineLength = self.lineLengthSpinBox.value() + # update the configuration values (3: fixCodes, 4: noFixCodes, + # 5: fixIssues, 6: maxLineLength) + self.__options[3] = self.fixIssuesEdit.text() + self.__options[4] = self.noFixIssuesEdit.text() + self.__options[5] = True + self.__options[6] = self.lineLengthSpinBox.value() + self.files = fixesDict.keys() # now go through all the files - if fixesDict: - self.checkProgress.setMaximum(len(fixesDict)) - progress = 0 - for file in fixesDict: - self.checkProgress.setValue(progress) - QApplication.processEvents() - - try: - source, encoding = Utilities.readEncodedFile(file) - source = source.splitlines(True) - except (UnicodeError, IOError) as msg: - # skip silently because that should not happen - progress += 1 - continue - - deferredFixes = {} - fixer = CodeStyleFixer( - self.__project, file, source, fixCodes, noFixCodes, - maxLineLength, True) # always fix in place - errors = fixesDict[file] - errors.sort(key=lambda a: a[0][0]) - for error in errors: - (lineno, position, text), itm = error - if lineno > len(source): - lineno = len(source) - fixed, msg, id_ = fixer.fixIssue(lineno, position, text) - if fixed == 1: - text = "\n" + self.trUtf8("Fix: {0}").format(msg) - self.__modifyFixedResultItem(itm, text, True) - elif fixed == 0: - self.__modifyFixedResultItem(itm, "", False) - else: - # remember item for the deferred fix - deferredFixes[id_] = itm - deferredResults = fixer.finalize() - for id_ in deferredResults: - fixed, msg = deferredResults[id_] - itm = deferredFixes[id_] - if fixed == 1: - text = "\n" + self.trUtf8("Fix: {0}").format(msg) - self.__modifyFixedResultItem(itm, text, True) - else: - self.__modifyFixedResultItem(itm, "", False) - fixer.saveFile(encoding) - - self.__updateFixerStatistics(fixer) - progress += 1 - - self.checkProgress.setValue(progress) - QApplication.processEvents() - + self.progress = 0 + self.files.sort() + self.cancelled = False + self.check(onlyFixes=fixesDict) + def __getSelectedFixableItems(self): """ Private method to extract all selected items for fixable issues.
--- a/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py Sun Jan 05 22:45:29 2014 +0100 +++ b/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py Wed Jan 15 22:55:52 2014 +0100 @@ -7,20 +7,21 @@ Module implementing a class to fix certain code style issues. """ -from __future__ import unicode_literals - +try: + # Python 2 + from StringIO import StringIO # __IGNORE_EXCEPTION__ +except ImportError: + # Python 3 + from io import StringIO # __IGNORE_WARNING__ import os import re +import sys import tokenize -import io - -from PyQt4.QtCore import QObject -from E5Gui import E5MessageBox +import pep8 -from . import pep8 - -import Utilities +# Tell 'lupdate' which strings to keep for translation. +QT_TRANSLATE_NOOP = lambda mod, txt: txt FixableCodeStyleIssues = [ "D111", "D112", "D113", "D121", "D131", "D141", @@ -40,16 +41,15 @@ ] -class CodeStyleFixer(QObject): +class CodeStyleFixer(object): """ Class implementing a fixer for certain code style issues. """ - def __init__(self, project, filename, sourceLines, fixCodes, noFixCodes, - maxLineLength, inPlace): + def __init__(self, filename, sourceLines, fixCodes, noFixCodes, + maxLineLength, inPlace, eol): """ Constructor - @param project reference to the project object (Project) @param filename name of the file to be fixed (string) @param sourceLines list of source lines including eol marker (list of string) @@ -59,10 +59,10 @@ separated string (string) @param maxLineLength maximum allowed line length (integer) @param inPlace flag indicating to modify the file in place (boolean) + @param eol end of line character(s) (string) """ super(CodeStyleFixer, self).__init__() - self.__project = project self.__filename = filename self.__origName = "" self.__source = sourceLines[:] # save a copy @@ -73,15 +73,18 @@ self.fixed = 0 self.__reindenter = None - self.__eol = "" self.__indentWord = self.__getIndentWord() - if not inPlace: + if inPlace: + # TODO: Do a backup before any changes + pass + else: self.__origName = self.__filename self.__filename = os.path.join( os.path.dirname(self.__filename), "fixed_" + os.path.basename(self.__filename)) - + self.__eol = eol + self.__fixes = { "D111": self.__fixD111, "D112": self.__fixD112, @@ -176,22 +179,30 @@ @param encoding encoding of the source file (string) @return flag indicating success (boolean) """ + import codecs + if not self.__modified: # no need to write return True txt = "".join(self.__source) try: - Utilities.writeEncodedFile(self.__filename, txt, encoding) - except (IOError, Utilities.CodingError, UnicodeError) as err: - E5MessageBox.critical( - self, - self.trUtf8("Fix Code Style Issues"), - self.trUtf8( - """<p>Could not save the file <b>{0}</b>.""" - """ Skipping it.</p><p>Reason: {1}</p>""") - .format(self.__filename, str(err)) - ) + if sys.version_info[0] == 3: + txt = txt.encode(encoding) + if encoding == 'utf-8-bom': + txt = codecs.BOM_UTF8 + txt + + with open(self.__filename, "wb") as fp: + fp.write(txt) + except (IOError, UnicodeError): # as err: +# E5MessageBox.critical( +# self, +# self.trUtf8("Fix Code Style Issues"), +# self.trUtf8( +# """<p>Could not save the file <b>{0}</b>.""" +# """ Skipping it.</p><p>Reason: {1}</p>""") +# .format(self.__filename, str(err)) +# ) return False return True @@ -286,24 +297,6 @@ self.__lastID += 1 return self.__lastID - def __getEol(self): - """ - Private method to get the applicable eol string. - - @return eol string (string) - """ - if not self.__eol: - if self.__origName: - fn = self.__origName - else: - fn = self.__filename - - if self.__project.isOpen() and self.__project.isProjectFile(fn): - self.__eol = self.__project.getEolString() - else: - self.__eol = Utilities.linesep() - return self.__eol - def __findLogical(self): """ Private method to extract the index of all the starts and ends of @@ -315,7 +308,7 @@ logical_start = [] logical_end = [] last_newline = True - sio = io.StringIO("".join(self.__source)) + sio = StringIO("".join(self.__source)) parens = 0 for t in tokenize.generate_tokens(sio.readline): if t[0] in [tokenize.COMMENT, tokenize.DEDENT, @@ -374,7 +367,7 @@ @return string to be used for an indentation (string) """ - sio = io.StringIO("".join(self.__source)) + sio = StringIO("".join(self.__source)) indentWord = " " # default in case of failure try: for token in tokenize.generate_tokens(sio.readline): @@ -405,7 +398,7 @@ """ if self.__multiLineNumbers is None: source = "".join(self.__source) - sio = io.StringIO(source) + sio = StringIO(source) self.__multiLineNumbers = set() self.__docLineNumbers = set() previousTokenType = '' @@ -511,11 +504,9 @@ break line += 1 - return ( - 1, - self.trUtf8( - "Triple single quotes converted to triple double quotes."), - 0) + return (1, QT_TRANSLATE_NOOP( + 'CodeStyleFixer', + "Triple single quotes converted to triple double quotes."), 0) def __fixD112(self, code, line, pos): """ @@ -541,11 +532,10 @@ newText = self.__getIndent(self.__source[line]) + \ insertChar + self.__source[line].lstrip() self.__source[line] = newText - return ( - 1, - self.trUtf8('Introductory quotes corrected to be {0}"""') - .format(insertChar), - 0) + return (1, QT_TRANSLATE_NOOP( + 'CodeStyleFixer', + 'Introductory quotes corrected to be {0}"""') + + '@@{0}'.format(insertChar), 0) def __fixD121(self, code, line, pos, apply=False): """ @@ -572,7 +562,7 @@ docstring = self.__source[line].rstrip() + \ self.__source[line + 1].strip() if docstring.endswith('"""'): - docstring += self.__getEol() + docstring += self.__eol else: docstring += self.__source[line + 2].lstrip() self.__source[line + 2] = "" @@ -581,7 +571,9 @@ self.__source[line + 1] = "" return ( 1, - self.trUtf8("Single line docstring put on one line."), + QT_TRANSLATE_NOOP( + 'CodeStyleFixer', + "Single line docstring put on one line."), 0) else: id = self.__getID() @@ -608,18 +600,23 @@ self.__source[line].lstrip().startswith(('"""', 'r"""', 'u"""')): # it is a one-liner newText = self.__source[line].rstrip()[:-3].rstrip() + "." + \ - self.__source[line].rstrip()[-3:] + self.__getEol() + self.__source[line].rstrip()[-3:] + self.__eol else: if line < len(self.__source) - 1 and \ (not self.__source[line + 1].strip() or self.__source[line + 1].lstrip().startswith("@") or (self.__source[line + 1].strip() in ('"""', "'''") and not self.__source[line].lstrip().startswith("@"))): - newText = self.__source[line].rstrip() + "." + self.__getEol() + newText = self.__source[line].rstrip() + "." + self.__eol if newText: self.__source[line] = newText - return (1, self.trUtf8("Period added to summary line."), 0) + return ( + 1, + QT_TRANSLATE_NOOP( + 'CodeStyleFixer', + "Period added to summary line."), + 0) else: return (0, "", 0) @@ -644,7 +641,8 @@ self.__source[line - 1] = "" return ( 1, - self.trUtf8( + QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "Blank line before function/method docstring removed."), 0) else: @@ -670,11 +668,10 @@ """ if apply: line = line - 1 - self.__source[line] = self.__getEol() + self.__source[line] - return ( - 1, - self.trUtf8("Blank line inserted before class docstring."), - 0) + self.__source[line] = self.__eol + self.__source[line] + return (1, QT_TRANSLATE_NOOP( + 'CodeStyleFixer', + "Blank line inserted before class docstring."), 0) else: id = self.__getID() self.__stack.append((id, code, line, pos)) @@ -698,11 +695,10 @@ """ if apply: line = line - 1 - self.__source[line] += self.__getEol() - return ( - 1, - self.trUtf8("Blank line inserted after class docstring."), - 0) + self.__source[line] += self.__eol + return (1, QT_TRANSLATE_NOOP( + 'CodeStyleFixer', + "Blank line inserted after class docstring."), 0) else: id = self.__getID() self.__stack.append((id, code, line, pos)) @@ -730,11 +726,10 @@ # only correct summary lines can be fixed here return (0, "", 0) - self.__source[line] += self.__getEol() - return ( - 1, - self.trUtf8("Blank line inserted after docstring summary."), - 0) + self.__source[line] += self.__eol + return (1, QT_TRANSLATE_NOOP( + 'CodeStyleFixer', + "Blank line inserted after docstring summary."), 0) else: id = self.__getID() self.__stack.append((id, code, line, pos)) @@ -758,12 +753,10 @@ """ if apply: line = line - 1 - self.__source[line] = self.__getEol() + self.__source[line] - return ( - 1, - self.trUtf8("Blank line inserted after last paragraph" - " of docstring."), - 0) + self.__source[line] = self.__eol + self.__source[line] + return (1, QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "Blank line inserted after last paragraph" + " of docstring."), 0) else: id = self.__getID() self.__stack.append((id, code, line, pos)) @@ -798,13 +791,15 @@ else: # trailing first, second = source[:-3].strip(), source[-3:] - newText = indent + first + self.__getEol() + \ - indent + second + self.__getEol() + newText = indent + first + self.__eol + \ + indent + second + self.__eol self.__source[line] = newText if code == "D221": - msg = self.trUtf8("Leading quotes put on separate line.") + msg = QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "Leading quotes put on separate line.") else: - msg = self.trUtf8("Trailing quotes put on separate line.") + msg = QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "Trailing quotes put on separate line.") return (1, msg, 0) else: id = self.__getID() @@ -831,9 +826,12 @@ line = line - 1 self.__source[line - 1] = "" if code == "D242": - msg = self.trUtf8("Blank line before class docstring removed.") + msg = QT_TRANSLATE_NOOP( + 'CodeStyleFixer', + "Blank line before class docstring removed.") else: - msg = self.trUtf8( + msg = QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "Blank line before function/method docstring removed.") return (1, msg, 0) else: @@ -861,9 +859,12 @@ line = line - 1 self.__source[line + 1] = "" if code == "D243": - msg = self.trUtf8("Blank line after class docstring removed.") + msg = QT_TRANSLATE_NOOP( + 'CodeStyleFixer', + "Blank line after class docstring removed.") else: - msg = self.trUtf8( + msg = QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "Blank line after function/method docstring removed.") return (1, msg, 0) else: @@ -890,9 +891,8 @@ if apply: line = line - 1 self.__source[line - 1] = "" - return ( - 1, - self.trUtf8("Blank line after last paragraph removed."), + return (1, QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "Blank line after last paragraph removed."), 0) else: id = self.__getID() @@ -919,9 +919,11 @@ if fixedLine is not None and fixedLine != self.__source[line - 1]: self.__source[line - 1] = fixedLine if code in ["E101", "W191"]: - msg = self.trUtf8("Tab converted to 4 spaces.") + msg = QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "Tab converted to 4 spaces.") else: - msg = self.trUtf8( + msg = QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "Indentation adjusted to be a multiple of four.") return (1, msg, 0) else: @@ -950,10 +952,12 @@ changed = self.__fixReindent(line, pos, logical) if changed: if code == "E121": - msg = self.trUtf8( + msg = QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "Indentation of continuation line corrected.") elif code == "E124": - msg = self.trUtf8( + msg = QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "Indentation of closing bracket corrected.") return (1, msg, 0) return (0, "", 0) @@ -989,11 +993,9 @@ indentation = self.__getIndent(text) self.__source[line] = indentation + \ self.__indentWord + text.lstrip() - return ( - 1, - self.trUtf8( - "Missing indentation of continuation line corrected."), - 0) + return (1, QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "Missing indentation of continuation" + " line corrected."), 0) return (0, "", 0) else: id = self.__getID() @@ -1030,9 +1032,8 @@ self.__source[row] = newText changed = True if changed: - return (1, self.trUtf8( - "Closing bracket aligned to opening bracket."), - 0) + return (1, QT_TRANSLATE_NOOP('CodeStyleFixer', + "Closing bracket aligned to opening bracket."), 0) return (0, "", 0) else: id = self.__getID() @@ -1065,7 +1066,8 @@ text = self.__source[row] self.__source[row] = self.__getIndent(text) + \ self.__indentWord + text.lstrip() - return (1, self.trUtf8("Indentation level changed."), 0) + return (1, QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "Indentation level changed."), 0) return (0, "", 0) else: id = self.__getID() @@ -1104,9 +1106,10 @@ self.__source[row] = newText changed = True if changed: - return (1, self.trUtf8( - "Indentation level of hanging indentation changed."), - 0) + return (1, QT_TRANSLATE_NOOP( + 'CodeStyleFixer', + "Indentation level of hanging indentation " + "changed."), 0) return (0, "", 0) else: id = self.__getID() @@ -1160,7 +1163,9 @@ self.__source[row] = newText changed = True if changed: - return (1, self.trUtf8("Visual indentation corrected."), 0) + return (1, QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "Visual indentation corrected."), + 0) return (0, "", 0) else: id = self.__getID() @@ -1191,7 +1196,8 @@ return (0, "", 0) self.__source[line] = newText - return (1, self.trUtf8("Extraneous whitespace removed."), 0) + return (1, QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "Extraneous whitespace removed."), 0) def __fixE221(self, code, line, pos): """ @@ -1220,9 +1226,11 @@ self.__source[line] = newText if code in ["E225", "E226", "E227", "E228"]: - return (1, self.trUtf8("Missing whitespace added."), 0) + return (1, QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "Missing whitespace added."), 0) else: - return (1, self.trUtf8("Extraneous whitespace removed."), 0) + return (1, QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "Extraneous whitespace removed."), 0) def __fixE231(self, code, line, pos): """ @@ -1241,7 +1249,8 @@ pos = pos + 1 self.__source[line] = self.__source[line][:pos] + \ " " + self.__source[line][pos:] - return (1, self.trUtf8("Missing whitespace added."), 0) + return (1, QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "Missing whitespace added."), 0) def __fixE251(self, code, line, pos): """ @@ -1278,7 +1287,8 @@ self.__source[line + 1] = self.__source[line + 1].lstrip() else: self.__source[line] = newText - return (1, self.trUtf8("Extraneous whitespace removed."), 0) + return (1, QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "Extraneous whitespace removed."), 0) def __fixE261(self, code, line, pos): """ @@ -1299,7 +1309,9 @@ right = text[pos:].lstrip(' \t#') newText = left + (" # " + right if right.strip() else right) self.__source[line] = newText - return (1, self.trUtf8("Whitespace around comment sign corrected."), 0) + return (1, QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "Whitespace around comment sign corrected."), + 0) def __fixE301(self, code, line, pos, apply=False): """ @@ -1317,8 +1329,9 @@ fix (integer) """ if apply: - self.__source.insert(line - 1, self.__getEol()) - return (1, self.trUtf8("One blank line inserted."), 0) + self.__source.insert(line - 1, self.__eol) + return (1, QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "One blank line inserted."), 0) else: id = self.__getID() self.__stack.append((id, code, line, pos)) @@ -1355,7 +1368,7 @@ if delta < 0: # insert blank lines (one or two) while delta < 0: - self.__source.insert(line, self.__getEol()) + self.__source.insert(line, self.__eol) delta += 1 changed = True elif delta > 0: @@ -1370,11 +1383,14 @@ if changed: if delta < 0: - msg = self.trUtf8( - "%n blank line(s) inserted.", "", -delta) + msg = QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "{0} blank line(s) inserted.") + \ + '@@{0}'.format(-delta) elif delta > 0: - msg = self.trUtf8( - "%n superfluous lines removed", "", delta) + msg = QT_TRANSLATE_NOOP( + 'CodeStyleFixer', + "{0} superfluous line(s) removed.") + \ + '@@{0}'.format(delta) else: msg = "" return (1, msg, 0) @@ -1407,7 +1423,8 @@ index -= 1 else: break - return (1, self.trUtf8("Superfluous blank lines removed."), 0) + return (1, QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "Superfluous blank lines removed."), 0) else: id = self.__getID() self.__stack.append((id, code, line, pos)) @@ -1437,9 +1454,9 @@ index -= 1 else: break - return (1, self.trUtf8( - "Superfluous blank lines after function decorator removed."), - 0) + return (1, QT_TRANSLATE_NOOP('CodeStyleFixer', + "Superfluous blank lines after function decorator " + "removed."), 0) else: id = self.__getID() self.__stack.append((id, code, line, pos)) @@ -1472,10 +1489,12 @@ if ';' in text: return (0, "", 0) - newText = text[:pos].rstrip("\t ,") + self.__getEol() + \ + newText = text[:pos].rstrip("\t ,") + self.__eol + \ self.__getIndent(text) + "import " + text[pos:].lstrip("\t ,") self.__source[line] = newText - return (1, self.trUtf8("Imports were put on separate lines."), 0) + return (1, QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "Imports were put on separate lines."), + 0) else: id = self.__getID() self.__stack.append((id, code, line, pos)) @@ -1512,7 +1531,7 @@ nextText = "" shortener = LineShortener( text, prevText, nextText, - maxLength=self.__maxLineLength, eol=self.__getEol(), + maxLength=self.__maxLineLength, eol=self.__eol, indentWord=self.__indentWord, isDocString=isDocString) changed, newText, newNextText = shortener.shorten() if changed: @@ -1522,7 +1541,9 @@ if newNextText == " ": newNextText = "" self.__source[line + 1] = newNextText - return (1, self.trUtf8("Long lines have been shortened."), 0) + return (1, QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "Long lines have been shortened."), + 0) else: return (0, "", 0) else: @@ -1544,8 +1565,10 @@ fix (integer) """ self.__source[line - 1] = \ - self.__source[line - 1].rstrip("\n\r \t\\") + self.__getEol() - return (1, self.trUtf8("Redundant backslash in brackets removed."), 0) + self.__source[line - 1].rstrip("\n\r \t\\") + self.__eol + return (1, QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "Redundant backslash in brackets removed."), + 0) def __fixE701(self, code, line, pos, apply=False): """ @@ -1567,11 +1590,12 @@ text = self.__source[line] pos = pos + 1 - newText = text[:pos] + self.__getEol() + self.__getIndent(text) + \ + newText = text[:pos] + self.__eol + self.__getIndent(text) + \ self.__indentWord + text[pos:].lstrip("\n\r \t\\") + \ - self.__getEol() + self.__eol self.__source[line] = newText - return (1, self.trUtf8("Compound statement corrected."), 0) + return (1, QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "Compound statement corrected."), 0) else: id = self.__getID() self.__stack.append((id, code, line, pos)) @@ -1601,12 +1625,13 @@ self.__source[line] = text.rstrip("\n\r \t\\") self.__source[line + 1] = self.__source[line + 1].lstrip() elif text.rstrip().endswith(";"): - self.__source[line] = text.rstrip("\n\r \t;") + self.__getEol() + self.__source[line] = text.rstrip("\n\r \t;") + self.__eol else: - first = text[:pos].rstrip("\n\r \t;") + self.__getEol() + first = text[:pos].rstrip("\n\r \t;") + self.__eol second = text[pos:].lstrip("\n\r \t;") self.__source[line] = first + self.__getIndent(text) + second - return (1, self.trUtf8("Compound statement corrected."), 0) + return (1, QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "Compound statement corrected."), 0) else: id = self.__getID() self.__stack.append((id, code, line, pos)) @@ -1647,7 +1672,9 @@ return (0, "", 0) self.__source[line] = " ".join([left, center, right]) - return (1, self.trUtf8("Comparison to None/True/False corrected."), 0) + return (1, QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "Comparison to None/True/False corrected."), + 0) def __fixN804(self, code, line, pos, apply=False): """ @@ -1675,7 +1702,7 @@ if text.rstrip().endswith("("): newText = text + self.__getIndent(text) + \ - self.__indentWord + arg + "," + self.__getEol() + self.__indentWord + arg + "," + self.__eol else: index = text.find("(") + 1 left = text[:index] @@ -1686,7 +1713,9 @@ center = arg + ", " newText = left + center + right self.__source[line] = newText - return (1, self.trUtf8("'{0}' argument added.").format(arg), 0) + return (1, QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "'{0}' argument added.") + + '@@{0}'.format(arg), 0) else: id = self.__getID() self.__stack.append((id, code, line, pos)) @@ -1746,7 +1775,9 @@ else: self.__source[line] = indent + right - return (1, self.trUtf8("'{0}' argument removed.").format(arg), 0) + return (1, QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "'{0}' argument removed.") + + '@@{0}'.format(arg), 0) else: id = self.__getID() self.__stack.append((id, code, line, pos)) @@ -1767,7 +1798,8 @@ """ self.__source[line - 1] = re.sub(r'[\t ]+(\r?)$', r"\1", self.__source[line - 1]) - return (1, self.trUtf8("Whitespace stripped from end of line."), 0) + return (1, QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "Whitespace stripped from end of line."), 0) def __fixW292(self, code, line, pos): """ @@ -1782,8 +1814,9 @@ a message for the fix (string) and an ID for a deferred fix (integer) """ - self.__source[line - 1] += self.__getEol() - return (1, self.trUtf8("newline added to end of file."), 0) + self.__source[line - 1] += self.__eol + return (1, QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "newline added to end of file."), 0) def __fixW391(self, code, line, pos): """ @@ -1805,8 +1838,10 @@ index -= 1 else: break - return (1, self.trUtf8( - "Superfluous trailing blank lines removed from end of file."), 0) + return (1, QT_TRANSLATE_NOOP( + 'CodeStyleFixer', + "Superfluous trailing blank lines removed from end of file."), + 0) def __fixW603(self, code, line, pos): """ @@ -1822,7 +1857,8 @@ fix (integer) """ self.__source[line - 1] = self.__source[line - 1].replace("<>", "!=") - return (1, self.trUtf8("'<>' replaced by '!='."), 0) + return (1, QT_TRANSLATE_NOOP( + 'CodeStyleFixer', "'<>' replaced by '!='."), 0) class Reindenter(object): @@ -2043,7 +2079,7 @@ self.lines = physical_lines self.tokens = [] self.rel_indent = None - sio = io.StringIO(''.join(physical_lines)) + sio = StringIO(''.join(physical_lines)) for t in tokenize.generate_tokens(sio.readline): if not len(self.tokens) and t[0] in self.SKIP_TOKENS: continue @@ -2338,7 +2374,7 @@ indent = self.__getIndent(self.__text) source = self.__text[len(indent):] assert source.lstrip() == source - sio = io.StringIO(source) + sio = StringIO(source) # Check for multi line string. try:
--- a/Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py Sun Jan 05 22:45:29 2014 +0100 +++ b/Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py Wed Jan 15 22:55:52 2014 +0100 @@ -7,8 +7,6 @@ Module implementing a checker for documentation string conventions. """ -from __future__ import unicode_literals - # # The routines of the checker class are modeled after the ones found in # pep257.py (version 0.2.4). @@ -24,9 +22,8 @@ import ast import sys -from PyQt4.QtCore import QT_TRANSLATE_NOOP, QCoreApplication - -PyCF_ONLY_AST = 1024 +# Tell 'lupdate' which strings to keep for translation. +QT_TRANSLATE_NOOP = lambda mod, txt: txt class DocStyleContext(object): @@ -397,11 +394,7 @@ return if code and (self.counters[code] == 1 or self.__repeat): - if code in DocStyleChecker.Codes: - text = self.getMessage(code, *args) - else: - text = code + " " + QCoreApplication.translate( - "DocStyleChecker", "no message for this code defined") + text = self.getMessage(code, *args) # record the issue with one based line number self.errors.append((self.__filename, lineNumber + 1, offset, text)) @@ -429,12 +422,11 @@ @param args arguments for a formatted message (list) @return translated and formatted message (string) """ - if code in DocStyleChecker.Messages: - return code + " " + QCoreApplication.translate( - "DocStyleChecker", - DocStyleChecker.Messages[code]).format(*args) + if code in cls.Messages: + return '@@'.join( + [code + ' ' + cls.Messages[code]] + list(args)) else: - return code + " " + QCoreApplication.translate( + return code + ' ' + QT_TRANSLATE_NOOP( "DocStyleChecker", "no message for this code defined") def __resetReadline(self): @@ -468,7 +460,7 @@ return try: - compile(''.join(self.__source), '', 'exec', PyCF_ONLY_AST) + compile(''.join(self.__source), '', 'exec', ast.PyCF_ONLY_AST) except (SyntaxError, TypeError): self.__reportInvalidSyntax() return
--- a/Plugins/CheckerPlugins/CodeStyleChecker/NamingStyleChecker.py Sun Jan 05 22:45:29 2014 +0100 +++ b/Plugins/CheckerPlugins/CodeStyleChecker/NamingStyleChecker.py Wed Jan 15 22:55:52 2014 +0100 @@ -7,14 +7,14 @@ Module implementing a checker for naming conventions. """ -from __future__ import unicode_literals - import collections import ast import re import os +import sys -from PyQt4.QtCore import QT_TRANSLATE_NOOP, QCoreApplication +# Tell 'lupdate' which strings to keep for translation. +QT_TRANSLATE_NOOP = lambda mod, txt: txt class NamingStyleChecker(object): @@ -143,13 +143,10 @@ @return translated and formatted message (string) """ if code in cls.Messages: - return code + " " + QCoreApplication.translate( - "NamingStyleChecker", - cls.Messages[code]).format(*args) + return '@@'.join( + [code + ' ' + cls.Messages[code]] + list(args)) else: - return code + " " + QCoreApplication.translate( - "NamingStyleChecker", - "no message for this code defined") + return code + ' ' + "no message for this code defined" def __visitTree(self, node): """ @@ -249,9 +246,27 @@ @param node AST node to extract arguments names from @return list of argument names (list of string) """ - posArgs = [arg.arg for arg in node.args.args] - kwOnly = [arg.arg for arg in node.args.kwonlyargs] - return posArgs + kwOnly + if sys.version_info[0] == 3: + posArgs = [arg.arg for arg in node.args.args] + kwOnly = [arg.arg for arg in node.args.kwonlyargs] + return posArgs + kwOnly + else: + def unpackArgs(args): + """ + Local helper function to unpack function argument names. + + @param args list of AST node arguments + @return list of argument names (list of string) + """ + ret = [] + for arg in args: + if isinstance(arg, ast.Tuple): + ret.extend(unpackArgs(arg.elts)) + else: + ret.append(arg.id) + return ret + + return unpackArgs(node.args.args) def __error(self, node, code): """
--- a/Plugins/CheckerPlugins/CodeStyleChecker/pep8.py Sun Jan 05 22:45:29 2014 +0100 +++ b/Plugins/CheckerPlugins/CodeStyleChecker/pep8.py Wed Jan 15 22:55:52 2014 +0100 @@ -48,8 +48,6 @@ 900 syntax error """ -from __future__ import unicode_literals - # # This is a modified version to make the original pep8.py better suitable # for being called from within the eric5 IDE. The modifications are as @@ -78,7 +76,8 @@ except ImportError: from ConfigParser import RawConfigParser # __IGNORE_WARNING__ -from PyQt4.QtCore import QCoreApplication, QT_TRANSLATE_NOOP +# Tell 'lupdate' which strings to keep for translation. +QT_TRANSLATE_NOOP = lambda mod, txt: txt DEFAULT_EXCLUDE = '.svn,CVS,.bzr,.hg,.git,__pycache__' DEFAULT_IGNORE = 'E123,E226,E24' @@ -281,11 +280,11 @@ @return translated and formatted message (string) """ if code in pep8_messages: - return code + " " + QCoreApplication.translate("pep8", - pep8_messages[code]).format(*args) + args = [str(arg) for arg in args] + return '@@'.join([code + ' ' + pep8_messages[code]] + args) else: - return code + " " + QCoreApplication.translate("pep8", - "no message for this code defined") + return code + ' ' + QT_TRANSLATE_NOOP( + "pep8", "no message for this code defined") ############################################################################## # Plugins (check functions) for physical lines @@ -396,7 +395,7 @@ # The line could contain multi-byte characters try: length = len(line.decode('utf-8')) - except (UnicodeDecodeError, UnicodeEncodeError): + except UnicodeError: pass if length > max_line_length: return max_line_length, "E501", length, max_line_length @@ -782,6 +781,7 @@ elif len(after) > 1: yield match.start(2), "E222" + def missing_whitespace_around_operator(logical_line, tokens): r""" - Always surround these binary operators with a single space on @@ -1439,8 +1439,8 @@ if result is not None: offset, code = result[:2] args = result[2:] - self.report_error_args(self.line_number, offset, code, check, - *args) + self.report_error_args( + self.line_number, offset, code, check, *args) def build_tokens_line(self): """ @@ -1507,8 +1507,8 @@ if offset >= token_offset: orig_number = token[2][0] orig_offset = (token[2][1] + offset - token_offset) - self.report_error_args(orig_number, orig_offset, code, check, - *args) + self.report_error_args( + orig_number, orig_offset, code, check, *args) self.previous_logical = self.logical_line def check_ast(self):
--- a/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py Sun Jan 05 22:45:29 2014 +0100 +++ b/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py Wed Jan 15 22:55:52 2014 +0100 @@ -189,8 +189,8 @@ """ Start a check for one file. - The results are reported to the processResult slot. - @param codestring optional sourcestring (str) + The results are reported to the __processResult slot. + @keyparam codestring optional sourcestring (str) """ self.filename = self.files.pop(0) self.checkProgress.setValue(self.progress) @@ -259,13 +259,13 @@ self.__createResultItem(_fn, lineno, col, msg, scr_line, True) self.progress += 1 self.checkProgress.setValue(self.progress) - self.checkProgressLabel.setPath("") QApplication.processEvents() self.__resort() if self.files: self.check() else: + self.checkProgressLabel.setPath("") self.checkProgress.setMaximum(1) self.checkProgress.setValue(1) self.__finish()
--- a/Plugins/WizardPlugins/FileDialogWizard/FileDialogWizardDialog.py Sun Jan 05 22:45:29 2014 +0100 +++ b/Plugins/WizardPlugins/FileDialogWizard/FileDialogWizardDialog.py Wed Jan 15 22:55:52 2014 +0100 @@ -104,7 +104,8 @@ self.__pyqtVariant = 5 if txt == "PyQt5" else 4 - self.__toggleInitialFilterAndResult(self.__typeButtonsGroup.checkedId()) + self.__toggleInitialFilterAndResult( + self.__typeButtonsGroup.checkedId()) def on_buttonBox_clicked(self, button): """ @@ -280,9 +281,9 @@ if (self.__pyqtVariant == 4 and self.__typeButtonsGroup.checkedButton() in [ self.rfOpenFile, self.rfOpenFiles, self.rfSaveFile]) or \ - (self.__pyqtVariant == 5 and - self.__typeButtonsGroup.checkedButton() in [ - self.rOpenFile, self.rOpenFiles, self.rSaveFile]): + (self.__pyqtVariant == 5 and + self.__typeButtonsGroup.checkedButton() in [ + self.rOpenFile, self.rOpenFiles, self.rSaveFile]): filterVariable = ", selectedFilter" else: filterVariable = ""
--- a/Utilities/BackgroundClient.py Sun Jan 05 22:45:29 2014 +0100 +++ b/Utilities/BackgroundClient.py Wed Jan 15 22:55:52 2014 +0100 @@ -11,7 +11,7 @@ from __future__ import unicode_literals try: - bytes = unicode #__IGNORE_WARNING__ + bytes = unicode except NameError: pass
--- a/Utilities/BackgroundService.py Sun Jan 05 22:45:29 2014 +0100 +++ b/Utilities/BackgroundService.py Wed Jan 15 22:55:52 2014 +0100 @@ -40,7 +40,7 @@ """ self.processes = [None, None] self.connections = [None, None] - self.isWorking = False + self.isWorking = None self.__queue = [] self.services = {} @@ -111,9 +111,9 @@ Private method to take the next service request and send it to the client. """ - if self.__queue and self.isWorking is False: - self.isWorking = True + if self.__queue and self.isWorking is None: fx, fn, pyVer, data = self.__queue.pop(0) + self.isWorking = pyVer self.__send(fx, fn, pyVer, data) def __send(self, fx, fn, pyVer, data): @@ -135,7 +135,7 @@ fx, fn, pyVer, self.trUtf8( 'Python{0} interpreter not configured.').format(pyVer)) # Reset flag and continue processing queue - self.isWorking = False + self.isWorking = None self.__processQueue() else: header = struct.pack( @@ -186,7 +186,7 @@ if callback: callback[2](fn, *data) - self.isWorking = False + self.isWorking = None self.__processQueue() def enqueueRequest(self, fx, fn, pyVer, data): @@ -245,6 +245,11 @@ if not connection.waitForReadyRead(1000): return ch = 0 if connection.read(1) == b'2' else 1 + # Avoid hanging of eric on shutdown + if self.connections[ch]: + self.connections[ch].close() + if self.isWorking == ch + 2: + self.isWorking = None self.connections[ch] = connection connection.readyRead.connect( lambda x=ch: self.__receive(x))
--- a/Utilities/InternalServices.py Sun Jan 05 22:45:29 2014 +0100 +++ b/Utilities/InternalServices.py Wed Jan 15 22:55:52 2014 +0100 @@ -25,7 +25,7 @@ Implement the standard services (syntax with flakes and the style check). """ syntaxChecked = pyqtSignal(str, bool, str, int, int, str, str, list) - #styleChecked = pyqtSignal(TBD) + styleChecked = pyqtSignal(str, dict, int, list) #indentChecked = pyqtSignal(TBD) def __init__(self, backgroundService): @@ -37,19 +37,37 @@ super(InternalServices, self).__init__() self.backgroundService = backgroundService - path = os.path.join( - getConfig('ericDir'), 'Plugins', 'CheckerPlugins', 'SyntaxChecker') + ericPath = getConfig('ericDir') + # Syntax check + path = os.path.join(ericPath, 'Plugins', 'CheckerPlugins', + 'SyntaxChecker') self.backgroundService.serviceConnect( 'syntax', path, 'SyntaxCheck', self.__translateSyntaxCheck, lambda fx, fn, ver, msg: self.syntaxChecked.emit( fn, True, fn, 0, 0, '', msg, [])) + + # Style check + path = os.path.join(ericPath, 'Plugins', 'CheckerPlugins', + 'CodeStyleChecker') + self.backgroundService.serviceConnect( + 'style', path, 'CodeStyleChecker', + self.__translateStyleCheck, + lambda fx, fn, ver, msg: self.styleChecked.emit( + fn, {}, 0, [[0, 0, '---- ' + msg, False, False]])) + +# # Indent check +# path = os.path.join(ericPath, 'Plugins', 'CheckerPlugins', +# 'Tabnanny') +# self.backgroundService.serviceConnect( +# 'indent', path, 'Tabnanny', +# self.__translateIndentCheck) def syntaxCheck(self, filename, source="", checkFlakes=True, ignoreStarImportWarnings=False, pyVer=None, editor=None): """ - Function to compile one Python source file to Python bytecode - and to perform a pyflakes check. + Method to prepare to compile one Python source file to Python bytecode + and to perform a pyflakes check in another task. @param filename source filename (string) @keyparam source string containing the code to check (string) @@ -97,3 +115,63 @@ self.syntaxChecked.emit( fn, nok, fname, line, index, code, error, warnings) + + def styleCheck(self, filename, source, args, pyVer=None, editor=None): + """ + Method to prepare a style check on one Python source file in another + task. + + @param filename source filename (string) + @param source string containing the code to check (string) + @param args arguments used by the codeStyleCheck function (list of + excludeMessages (str), includeMessages (str), repeatMessages + (bool), fixCodes (str), noFixCodes (str), fixIssues (bool), + maxLineLength (int), hangClosing (bool), docType (str), errors + (list of str), eol (str), encoding (str)) + @keyparam pyVer version of the interpreter to use or None for + autodetect corresponding interpreter (int or None) + @keyparam editor if the file is opened already (Editor object) + """ + if pyVer is None: + pyVer = determinePythonVersion(filename, source, editor) + + data = [source, args] + self.backgroundService.enqueueRequest('style', filename, pyVer, data) + + def __translateStyleCheck(self, fn, codeStyleCheckerStats, results): + """ + Privat slot called after perfoming a style check on one file. + + @param fn filename of the just checked file (str) + @param codeStyleCheckerStats stats of style and name check (dict) + @param results tuple for each found violation of style (tuple of + lineno (int), position (int), text (str), fixed (bool), + autofixing (bool), fixedMsg (str)) + """ + fixes = 0 + for result in results: + msg = result[2].split('@@') + if msg[0].startswith(('W', 'E')): + msgType = 'pep8' + elif msg[0].startswith('N'): + msgType = 'NamingStyleChecker' + else: + msgType = 'DocStyleChecker' + translMsg = msg[0][:5] + QApplication.translate( + msgType, msg[0][5:]).format(*msg[1:]) + + fixedMsg = result.pop() + if fixedMsg: + fixes += 1 + if '@@' in fixedMsg: + msg, param = fixedMsg.split('@@') + fixedMsg = QApplication.translate( + 'CodeStyleFixer', msg).format(param) + else: + fixedMsg = QApplication.translate( + 'CodeStyleFixer', fixedMsg) + + translMsg += "\n" + QApplication.translate( + 'CodeStyleCheckerDialog', "Fix: {0}").format(fixedMsg) + result[2] = translMsg + self.styleChecked.emit(fn, codeStyleCheckerStats, fixes, results)
--- a/Utilities/__init__.py Sun Jan 05 22:45:29 2014 +0100 +++ b/Utilities/__init__.py Wed Jan 15 22:55:52 2014 +0100 @@ -61,9 +61,10 @@ from PyQt4.Qsci import QSCINTILLA_VERSION_STR, QsciScintilla # import these methods into the Utilities namespace -from Globals import (isWindowsPlatform, isLinuxPlatform, # __IGNORE_WARNING__ - isMacPlatform, getConfigDir, setConfigDir, getPythonModulesDirectory, - getPyQt4ModulesDirectory, getQtBinariesPath) +from Globals import ( # __IGNORE_WARNING__ + isWindowsPlatform, isLinuxPlatform, isMacPlatform, getConfigDir, + setConfigDir, getPythonModulesDirectory, getPyQt4ModulesDirectory, + getQtBinariesPath) from E5Gui.E5Application import e5App
--- a/UtilitiesPython2/CodeStyleChecker.py Sun Jan 05 22:45:29 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,166 +0,0 @@ -# -*- coding: utf-8 -*- - -# Copyright (c) 2011 - 2013 Detlev Offenbach <detlev@die-offenbachs.de> -# - -""" -Class implementing the PEP 8 checker for Python2. -""" - -import sys -import getopt - -from Tools import readEncodedFile, normalizeCode - -import pep8 -from NamingStyleCheckerPy2 import NamingStyleChecker - -# register the name checker -pep8.register_check(NamingStyleChecker, NamingStyleChecker.Codes) - -from DocStyleCheckerPy2 import DocStyleChecker - - -class CodeStyleReport(pep8.BaseReport): - """ - Class implementing a special report to be used with our dialog. - """ - def __init__(self, options): - """ - Constructor - - @param options options for the report (optparse.Values) - """ - super(CodeStyleReport, self).__init__(options) - - self.__repeat = options.repeat - self.errors = [] - - def error_args(self, line_number, offset, code, check, *args): - """ - Public method to collect the error messages. - - @param line_number line number of the issue (integer) - @param offset position within line of the issue (integer) - @param code message code (string) - @param check reference to the checker function (function) - @param args arguments for the message (list) - @return error code (string) - """ - code = super(CodeStyleReport, self).error_args( - line_number, offset, code, check, *args) - if code and (self.counters[code] == 1 or self.__repeat): - self.errors.append( - (self.filename, line_number, offset, code, args) - ) - return code - - -if __name__ == "__main__": - repeat = False - select = "" - ignore = "" - filename = "" - max_line_length = 79 - hang_closing = False - docType = "pep257" - - if "-f" not in sys.argv: - print "ERROR" - print "" - print "No file name given." - else: - try: - optlist, args = getopt.getopt(sys.argv[1:], "d:f:hi:m:rs:") - except getopt.GetoptError: - print "ERROR" - print "" - print "Wrong arguments given" - sys.exit(1) - - for opt, arg in optlist: - if opt == "-r": - repeat = True - elif opt == "-f": - filename = arg - elif opt == "-i": - ignore = arg - elif opt == "-s": - select = arg - elif opt == "-m": - try: - max_line_length = int(arg) - except ValueError: - # ignore silently - pass - elif opt == "-h": - hang_closing = True - elif opt == "-d": - if arg in ("pep257", "eric"): - docType = arg - - try: - source = readEncodedFile(filename)[0] - source = normalizeCode(source) - source = source.splitlines(True) - except IOError, msg: - print "ERROR" - print filename - print "I/O Error: %s" % unicode(msg) - sys.exit(1) - - if select: - select = [s.strip() for s in select.split(',') - if s.strip()] - else: - select = [] - if ignore: - ignore = [i.strip() for i in ignore.split(',') - if i.strip()] - else: - ignore = [] - - # check coding style - styleGuide = pep8.StyleGuide( - reporter=CodeStyleReport, - repeat=repeat, - select=select, - ignore=ignore, - max_line_length=max_line_length, - hang_closing=hang_closing, - ) - report = styleGuide.check_files([filename]) - - # check documentation style - docStyleChecker = DocStyleChecker( - source, filename, select, ignore, [], repeat, - maxLineLength=max_line_length, docType=docType) - docStyleChecker.run() - - errors = report.errors + docStyleChecker.errors - - if len(errors) > 0: - errors.sort(key=lambda a: a[1]) - for error in errors: - fname, lineno, position, code, args = error - print "PEP8" - print fname - print lineno - print position - print code - print len(args) - for a in args: - print a - print "PEP8_STATISTICS" - for key in report.counters: - if key.startswith(("E", "N", "W")): - print key, report.counters[key] - for key in docStyleChecker.counters: - if key.startswith("D"): - print key, docStyleChecker.counters[key] - else: - print "NO_PEP8" - print filename - -# -# eflag: FileType = Python2
--- a/UtilitiesPython2/DocStyleCheckerPy2.py Sun Jan 05 22:45:29 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1175 +0,0 @@ -# -*- coding: utf-8 -*- - -# Copyright (c) 2013 Detlev Offenbach <detlev@die-offenbachs.de> -# - -""" -Module implementing a checker for documentation string conventions. -""" - -# -# The routines of the checker class are modeled after the ones found in -# pep257.py (version 0.2.4). -# - -try: - # Python 2 - from StringIO import StringIO # __IGNORE_EXCEPTION__ -except ImportError: - # Python 3 - from io import StringIO # __IGNORE_WARNING__ -import tokenize -import ast -import sys - - -class DocStyleContext(object): - """ - Class implementing the source context. - """ - def __init__(self, source, startLine, contextType): - """ - Constructor - - @param source source code of the context (list of string or string) - @param startLine line number the context starts in the source (integer) - @param contextType type of the context object (string) - """ - if isinstance(source, str): - self.__source = source.splitlines(True) - else: - self.__source = source[:] - self.__start = startLine - self.__indent = "" - self.__type = contextType - - # ensure first line is left justified - if self.__source: - self.__indent = self.__source[0].replace( - self.__source[0].lstrip(), "") - self.__source[0] = self.__source[0].lstrip() - - def source(self): - """ - Public method to get the source. - - @return source (list of string) - """ - return self.__source - - def ssource(self): - """ - Public method to get the joined source lines. - - @return source (string) - """ - return "".join(self.__source) - - def start(self): - """ - Public method to get the start line number. - - @return start line number (integer) - """ - return self.__start - - def end(self): - """ - Public method to get the end line number. - - @return end line number (integer) - """ - return self.__start + len(self.__source) - 1 - - def indent(self): - """ - Public method to get the indentation of the first line. - - @return indentation string (string) - """ - return self.__indent - - def contextType(self): - """ - Public method to get the context type. - - @return context type (string) - """ - return self.__type - - -class DocStyleChecker(object): - """ - Class implementing a checker for documentation string conventions. - """ - Codes = [ - "D101", "D102", "D103", "D104", "D105", - "D111", "D112", "D113", - "D121", "D122", - "D131", "D132", "D133", "D134", - "D141", "D142", "D143", "D144", "D145", - - "D203", "D205", - "D221", - "D231", "D234", "D235", "D236", "D237", "D238", "D239", - "D242", "D243", "D244", "D245", "D246", "D247", - "D250", "D251", - ] - - def __init__(self, source, filename, select, ignore, expected, repeat, - maxLineLength=79, docType="pep257"): - """ - Constructor - - @param source source code to be checked (list of string) - @param filename name of the source file (string) - @param select list of selected codes (list of string) - @param ignore list of codes to be ignored (list of string) - @param expected list of expected codes (list of string) - @param repeat flag indicating to report each occurrence of a code - (boolean) - @keyparam maxLineLength allowed line length (integer) - @keyparam docType type of the documentation strings - (string, one of 'eric' or 'pep257') - """ - assert docType in ("eric", "pep257") - - self.__select = tuple(select) - self.__ignore = tuple(ignore) - self.__expected = expected[:] - self.__repeat = repeat - self.__maxLineLength = maxLineLength - self.__docType = docType - self.__filename = filename - self.__source = source[:] - - # statistics counters - self.counters = {} - - # collection of detected errors - self.errors = [] - - self.__lineNumber = 0 - - # caches - self.__functionsCache = None - self.__classesCache = None - self.__methodsCache = None - - self.__keywords = [ - 'moduleDocstring', 'functionDocstring', - 'classDocstring', 'methodDocstring', - 'defDocstring', 'docstring' - ] - if self.__docType == "pep257": - checkersWithCodes = { - "moduleDocstring": [ - (self.__checkModulesDocstrings, ("D101",)), - ], - "functionDocstring": [ - ], - "classDocstring": [ - (self.__checkClassDocstring, ("D104", "D105")), - (self.__checkBlankBeforeAndAfterClass, ("D142", "D143")), - ], - "methodDocstring": [ - ], - "defDocstring": [ - (self.__checkFunctionDocstring, ("D102", "D103")), - (self.__checkImperativeMood, ("D132",)), - (self.__checkNoSignature, ("D133",)), - (self.__checkReturnType, ("D134",)), - (self.__checkNoBlankLineBefore, ("D141",)), - ], - "docstring": [ - (self.__checkTripleDoubleQuotes, ("D111",)), - (self.__checkBackslashes, ("D112",)), - (self.__checkUnicode, ("D113",)), - (self.__checkOneLiner, ("D121",)), - (self.__checkIndent, ("D122",)), - (self.__checkEndsWithPeriod, ("D131",)), - (self.__checkBlankAfterSummary, ("D144",)), - (self.__checkBlankAfterLastParagraph, ("D145",)), - ], - } - elif self.__docType == "eric": - checkersWithCodes = { - "moduleDocstring": [ - (self.__checkModulesDocstrings, ("D101",)), - ], - "functionDocstring": [ - ], - "classDocstring": [ - (self.__checkClassDocstring, ("D104", "D205")), - (self.__checkEricNoBlankBeforeAndAfterClassOrFunction, - ("D242", "D243")), - ], - "methodDocstring": [ - ], - "defDocstring": [ - (self.__checkFunctionDocstring, ("D102", "D203")), - (self.__checkImperativeMood, ("D132",)), - (self.__checkNoSignature, ("D133",)), - (self.__checkEricReturn, ("D234", "D235")), - (self.__checkEricFunctionArguments, - ("D236", "D237", "D238", "D239")), - (self.__checkEricNoBlankBeforeAndAfterClassOrFunction, - ("D244", "D245")), - (self.__checkEricException, ("D250", "D251")), - ], - "docstring": [ - (self.__checkTripleDoubleQuotes, ("D111",)), - (self.__checkBackslashes, ("D112",)), - (self.__checkUnicode, ("D113",)), - (self.__checkIndent, ("D122",)), - (self.__checkEricEndsWithPeriod, ("D231",)), - (self.__checkEricBlankAfterSummary, ("D246",)), - (self.__checkEricNBlankAfterLastParagraph, ("D247",)), - (self.__checkEricQuotesOnSeparateLines, ("D222", "D223")) - ], - } - - self.__checkers = {} - for key, checkers in checkersWithCodes.items(): - for checker, codes in checkers: - if any(not (code and self.__ignoreCode(code)) - for code in codes): - if key not in self.__checkers: - self.__checkers[key] = [] - self.__checkers[key].append(checker) - - def __ignoreCode(self, code): - """ - Private method to check if the error code should be ignored. - - @param code message code to check for (string) - @return flag indicating to ignore the given code (boolean) - """ - return (code.startswith(self.__ignore) and - not code.startswith(self.__select)) - - def __error(self, lineNumber, offset, code, *args): - """ - Private method to record an issue. - - @param lineNumber line number of the issue (integer) - @param offset position within line of the issue (integer) - @param code message code (string) - @param args arguments for the message (list) - """ - if self.__ignoreCode(code): - return - - if code in self.counters: - self.counters[code] += 1 - else: - self.counters[code] = 1 - - # Don't care about expected codes - if code in self.__expected: - return - - if code and (self.counters[code] == 1 or self.__repeat): - # record the issue with one based line number - self.errors.append( - (self.__filename, lineNumber + 1, offset, code, args)) - - def __resetReadline(self): - """ - Private method to reset the internal readline function. - """ - self.__lineNumber = 0 - - def __readline(self): - """ - Private method to get the next line from the source. - - @return next line of source (string) - """ - self.__lineNumber += 1 - if self.__lineNumber > len(self.__source): - return '' - return self.__source[self.__lineNumber - 1] - - def run(self): - """ - Public method to check the given source for violations of doc string - conventions. - """ - if not self.__source or not self.__filename: - # don't do anything, if essential data is missing - return - - if not self.__checkers: - # don't do anything, if no codes were selected - return - - for keyword in self.__keywords: - if keyword in self.__checkers: - for check in self.__checkers[keyword]: - for context in self.__parseContexts(keyword): - docstring = self.__parseDocstring(context, keyword) - check(docstring, context) - - def __getSummaryLine(self, docstringContext): - """ - Private method to extract the summary line. - - @param docstringContext docstring context (DocStyleContext) - @return summary line (string) and the line it was found on (integer) - """ - lines = docstringContext.source() - - line = (lines[0] - .replace('r"""', "", 1) - .replace('u"""', "", 1) - .replace('"""', "") - .replace("r'''", "", 1) - .replace("u'''", "", 1) - .replace("'''", "") - .strip()) - - if len(lines) == 1 or len(line) > 0: - return line, 0 - return lines[1].strip().replace('"""', "").replace("'''", ""), 1 - - def __getSummaryLines(self, docstringContext): - """ - Private method to extract the summary lines. - - @param docstringContext docstring context (DocStyleContext) - @return summary lines (list of string) and the line it was found on - (integer) - """ - summaries = [] - lines = docstringContext.source() - - line0 = (lines[0] - .replace('r"""', "", 1) - .replace('u"""', "", 1) - .replace('"""', "") - .replace("r'''", "", 1) - .replace("u'''", "", 1) - .replace("'''", "") - .strip()) - if len(lines) > 1: - line1 = lines[1].strip().replace('"""', "").replace("'''", "") - else: - line1 = "" - if len(lines) > 2: - line2 = lines[2].strip().replace('"""', "").replace("'''", "") - else: - line2 = "" - if line0: - lineno = 0 - summaries.append(line0) - if not line0.endswith(".") and line1: - # two line summary - summaries.append(line1) - elif line1: - lineno = 1 - summaries.append(line1) - if not line1.endswith(".") and line2: - # two line summary - summaries.append(line2) - else: - lineno = 2 - summaries.append(line2) - return summaries, lineno - - if sys.version_info[0] < 3: - def __getArgNames(self, node): - """ - Private method to get the argument names of a function node. - - @param node AST node to extract arguments names from - @return tuple of two list of argument names, one for arguments - and one for keyword arguments (tuple of list of string) - """ - def unpackArgs(args): - """ - Local helper function to unpack function argument names. - - @param args list of AST node arguments - @return list of argument names (list of string) - """ - ret = [] - for arg in args: - if isinstance(arg, ast.Tuple): - ret.extend(unpackArgs(arg.elts)) - else: - ret.append(arg.id) - return ret - - arguments = unpackArgs(node.args.args) - if node.args.vararg is not None: - arguments.append(node.args.vararg) - kwarguments = [] - if node.args.kwarg is not None: - kwarguments.append(node.args.kwarg) - return arguments, kwarguments - else: - def __getArgNames(self, node): # __IGNORE_WARNING__ - """ - Private method to get the argument names of a function node. - - @param node AST node to extract arguments names from - @return tuple of two list of argument names, one for arguments - and one for keyword arguments (tuple of list of string) - """ - arguments = [] - arguments.extend([arg.arg for arg in node.args.args]) - if node.args.vararg is not None: - arguments.append(node.args.vararg) - - kwarguments = [] - kwarguments.extend([arg.arg for arg in node.args.kwonlyargs]) - if node.args.kwarg is not None: - kwarguments.append(node.args.kwarg) - return arguments, kwarguments - - ################################################################## - ## Parsing functionality below - ################################################################## - - def __parseModuleDocstring(self, source): - """ - Private method to extract a docstring given a module source. - - @param source source to parse (list of string) - @return context of extracted docstring (DocStyleContext) - """ - for kind, value, (line, char), _, _ in tokenize.generate_tokens( - StringIO("".join(source)).readline): - if kind in [tokenize.COMMENT, tokenize.NEWLINE, tokenize.NL]: - continue - elif kind == tokenize.STRING: # first STRING should be docstring - return DocStyleContext(value, line - 1, "docstring") - else: - return None - - def __parseDocstring(self, context, what=''): - """ - Private method to extract a docstring given `def` or `class` source. - - @param context context data to get the docstring from (DocStyleContext) - @param what string denoting what is being parsed (string) - @return context of extracted docstring (DocStyleContext) - """ - moduleDocstring = self.__parseModuleDocstring(context.source()) - if what.startswith('module') or context.contextType() == "module": - return moduleDocstring - if moduleDocstring: - return moduleDocstring - - tokenGenerator = tokenize.generate_tokens( - StringIO(context.ssource()).readline) - try: - kind = None - while kind != tokenize.INDENT: - kind, _, _, _, _ = next(tokenGenerator) - kind, value, (line, char), _, _ = next(tokenGenerator) - if kind == tokenize.STRING: # STRING after INDENT is a docstring - return DocStyleContext( - value, context.start() + line - 1, "docstring") - except StopIteration: - pass - - return None - - def __parseTopLevel(self, keyword): - """ - Private method to extract top-level functions or classes. - - @param keyword keyword signaling what to extract (string) - @return extracted function or class contexts (list of DocStyleContext) - """ - self.__resetReadline() - tokenGenerator = tokenize.generate_tokens(self.__readline) - kind, value, char = None, None, None - contexts = [] - try: - while True: - start, end = None, None - while not (kind == tokenize.NAME and - value == keyword and - char == 0): - kind, value, (line, char), _, _ = next(tokenGenerator) - start = line - 1, char - while not (kind == tokenize.DEDENT and - value == '' and - char == 0): - kind, value, (line, char), _, _ = next(tokenGenerator) - end = line - 1, char - contexts.append(DocStyleContext( - self.__source[start[0]:end[0]], start[0], keyword)) - except StopIteration: - return contexts - - def __parseFunctions(self): - """ - Private method to extract top-level functions. - - @return extracted function contexts (list of DocStyleContext) - """ - if not self.__functionsCache: - self.__functionsCache = self.__parseTopLevel('def') - return self.__functionsCache - - def __parseClasses(self): - """ - Private method to extract top-level classes. - - @return extracted class contexts (list of DocStyleContext) - """ - if not self.__classesCache: - self.__classesCache = self.__parseTopLevel('class') - return self.__classesCache - - def __skipIndentedBlock(self, tokenGenerator): - """ - Private method to skip over an indented block of source code. - - @param tokenGenerator token generator - @return last token of the indented block - """ - kind, value, start, end, raw = next(tokenGenerator) - while kind != tokenize.INDENT: - kind, value, start, end, raw = next(tokenGenerator) - indent = 1 - for kind, value, start, end, raw in tokenGenerator: - if kind == tokenize.INDENT: - indent += 1 - elif kind == tokenize.DEDENT: - indent -= 1 - if indent == 0: - return kind, value, start, end, raw - - def __parseMethods(self): - """ - Private method to extract methods of all classes. - - @return extracted method contexts (list of DocStyleContext) - """ - if not self.__methodsCache: - contexts = [] - for classContext in self.__parseClasses(): - tokenGenerator = tokenize.generate_tokens( - StringIO(classContext.ssource()).readline) - kind, value, char = None, None, None - try: - while True: - start, end = None, None - while not (kind == tokenize.NAME and value == 'def'): - kind, value, (line, char), _, _ = \ - next(tokenGenerator) - start = line - 1, char - kind, value, (line, char), _, _ = \ - self.__skipIndentedBlock(tokenGenerator) - end = line - 1, char - startLine = classContext.start() + start[0] - endLine = classContext.start() + end[0] - contexts.append( - DocStyleContext(self.__source[startLine:endLine], - startLine, "def")) - except StopIteration: - pass - self.__methodsCache = contexts - - return self.__methodsCache - - def __parseContexts(self, kind): - """ - Private method to extract a context from the source. - - @param kind kind of context to extract (string) - @return requested contexts (list of DocStyleContext) - """ - if kind == 'moduleDocstring': - return [DocStyleContext(self.__source, 0, "module")] - if kind == 'functionDocstring': - return self.__parseFunctions() - if kind == 'classDocstring': - return self.__parseClasses() - if kind == 'methodDocstring': - return self.__parseMethods() - if kind == 'defDocstring': - return self.__parseFunctions() + self.__parseMethods() - if kind == 'docstring': - return ([DocStyleContext(self.__source, 0, "module")] + - self.__parseFunctions() + - self.__parseClasses() + - self.__parseMethods()) - return [] # fall back - - ################################################################## - ## Checking functionality below (PEP-257) - ################################################################## - - def __checkModulesDocstrings(self, docstringContext, context): - """ - Private method to check, if the module has a docstring. - - @param docstringContext docstring context (DocStyleContext) - @param context context of the docstring (DocStyleContext) - """ - if docstringContext is None: - self.__error(context.start(), 0, "D101") - return - - docstring = docstringContext.ssource() - if (not docstring or not docstring.strip() or - not docstring.strip('\'"')): - self.__error(context.start(), 0, "D101") - - def __checkFunctionDocstring(self, docstringContext, context): - """ - Private method to check, that all public functions and methods - have a docstring. - - @param docstringContext docstring context (DocStyleContext) - @param context context of the docstring (DocStyleContext) - """ - functionName = context.source()[0].lstrip().split()[1].split("(")[0] - if functionName.startswith('_') and not functionName.endswith('__'): - if self.__docType == "eric": - code = "D203" - else: - code = "D103" - else: - code = "D102" - - if docstringContext is None: - self.__error(context.start(), 0, code) - return - - docstring = docstringContext.ssource() - if (not docstring or not docstring.strip() or - not docstring.strip('\'"')): - self.__error(context.start(), 0, code) - - def __checkClassDocstring(self, docstringContext, context): - """ - Private method to check, that all public functions and methods - have a docstring. - - @param docstringContext docstring context (DocStyleContext) - @param context context of the docstring (DocStyleContext) - """ - className = context.source()[0].lstrip().split()[1].split("(")[0] - if className.startswith('_'): - if self.__docType == "eric": - code = "D205" - else: - code = "D105" - else: - code = "D104" - - if docstringContext is None: - self.__error(context.start(), 0, code) - return - - docstring = docstringContext.ssource() - if (not docstring or not docstring.strip() or - not docstring.strip('\'"')): - self.__error(context.start(), 0, code) - - def __checkTripleDoubleQuotes(self, docstringContext, context): - """ - Private method to check, that all docstrings are surrounded - by triple double quotes. - - @param docstringContext docstring context (DocStyleContext) - @param context context of the docstring (DocStyleContext) - """ - if docstringContext is None: - return - - docstring = docstringContext.ssource().strip() - if not docstring.startswith(('"""', 'r"""', 'u"""')): - self.__error(docstringContext.start(), 0, "D111") - - def __checkBackslashes(self, docstringContext, context): - """ - Private method to check, that all docstrings containing - backslashes are surrounded by raw triple double quotes. - - @param docstringContext docstring context (DocStyleContext) - @param context context of the docstring (DocStyleContext) - """ - if docstringContext is None: - return - - docstring = docstringContext.ssource().strip() - if "\\" in docstring and not docstring.startswith('r"""'): - self.__error(docstringContext.start(), 0, "D112") - - def __checkUnicode(self, docstringContext, context): - """ - Private method to check, that all docstrings containing unicode - characters are surrounded by unicode triple double quotes. - - @param docstringContext docstring context (DocStyleContext) - @param context context of the docstring (DocStyleContext) - """ - if docstringContext is None: - return - - docstring = docstringContext.ssource().strip() - if not docstring.startswith('u"""') and \ - any(ord(char) > 127 for char in docstring): - self.__error(docstringContext.start(), 0, "D113") - - def __checkOneLiner(self, docstringContext, context): - """ - Private method to check, that one-liner docstrings fit on - one line with quotes. - - @param docstringContext docstring context (DocStyleContext) - @param context context of the docstring (DocStyleContext) - """ - if docstringContext is None: - return - - lines = docstringContext.source() - if len(lines) > 1: - nonEmptyLines = [l for l in lines if l.strip().strip('\'"')] - if len(nonEmptyLines) == 1: - modLen = len(context.indent() + '"""' + - nonEmptyLines[0].strip() + '"""') - if context.contextType() != "module": - modLen += 4 - if not nonEmptyLines[0].strip().endswith("."): - # account for a trailing dot - modLen += 1 - if modLen <= self.__maxLineLength: - self.__error(docstringContext.start(), 0, "D121") - - def __checkIndent(self, docstringContext, context): - """ - Private method to check, that docstrings are properly indented. - - @param docstringContext docstring context (DocStyleContext) - @param context context of the docstring (DocStyleContext) - """ - if docstringContext is None: - return - - lines = docstringContext.source() - if len(lines) == 1: - return - - nonEmptyLines = [l.rstrip() for l in lines[1:] if l.strip()] - if not nonEmptyLines: - return - - indent = min([len(l) - len(l.strip()) for l in nonEmptyLines]) - if context.contextType() == "module": - expectedIndent = 0 - else: - expectedIndent = len(context.indent()) + 4 - if indent != expectedIndent: - self.__error(docstringContext.start(), 0, "D122") - - def __checkEndsWithPeriod(self, docstringContext, context): - """ - Private method to check, that docstring summaries end with a period. - - @param docstringContext docstring context (DocStyleContext) - @param context context of the docstring (DocStyleContext) - """ - if docstringContext is None: - return - - summary, lineNumber = self.__getSummaryLine(docstringContext) - if not summary.endswith("."): - self.__error(docstringContext.start() + lineNumber, 0, "D131") - - def __checkImperativeMood(self, docstringContext, context): - """ - Private method to check, that docstring summaries are in - imperative mood. - - @param docstringContext docstring context (DocStyleContext) - @param context context of the docstring (DocStyleContext) - """ - if docstringContext is None: - return - - summary, lineNumber = self.__getSummaryLine(docstringContext) - firstWord = summary.strip().split()[0] - if firstWord.endswith("s") and not firstWord.endswith("ss"): - self.__error(docstringContext.start() + lineNumber, 0, "D132") - - def __checkNoSignature(self, docstringContext, context): - """ - Private method to check, that docstring summaries don't repeat - the function's signature. - - @param docstringContext docstring context (DocStyleContext) - @param context context of the docstring (DocStyleContext) - """ - if docstringContext is None: - return - - functionName = context.source()[0].lstrip().split()[1].split("(")[0] - summary, lineNumber = self.__getSummaryLine(docstringContext) - if functionName + "(" in summary.replace(" ", "") and \ - not functionName + "()" in summary.replace(" ", ""): - # report only, if it is not an abbreviated form (i.e. function() ) - self.__error(docstringContext.start() + lineNumber, 0, "D133") - - def __checkReturnType(self, docstringContext, context): - """ - Private method to check, that docstrings mention the return value type. - - @param docstringContext docstring context (DocStyleContext) - @param context context of the docstring (DocStyleContext) - """ - if docstringContext is None: - return - - if "return" not in docstringContext.ssource().lower(): - tokens = list( - tokenize.generate_tokens(StringIO(context.ssource()).readline)) - return_ = [tokens[i + 1][0] for i, token in enumerate(tokens) - if token[1] == "return"] - if (set(return_) - - set([tokenize.COMMENT, tokenize.NL, tokenize.NEWLINE]) != - set([])): - self.__error(docstringContext.end(), 0, "D134") - - def __checkNoBlankLineBefore(self, docstringContext, context): - """ - Private method to check, that function/method docstrings are not - preceded by a blank line. - - @param docstringContext docstring context (DocStyleContext) - @param context context of the docstring (DocStyleContext) - """ - if docstringContext is None: - return - - contextLines = context.source() - cti = 0 - while cti < len(contextLines) and \ - not contextLines[cti].strip().startswith( - ('"""', 'r"""', 'u"""', "'''", "r'''", "u'''")): - cti += 1 - if cti == len(contextLines): - return - - if not contextLines[cti - 1].strip(): - self.__error(docstringContext.start(), 0, "D141") - - def __checkBlankBeforeAndAfterClass(self, docstringContext, context): - """ - Private method to check, that class docstrings have one - blank line around them. - - @param docstringContext docstring context (DocStyleContext) - @param context context of the docstring (DocStyleContext) - """ - if docstringContext is None: - return - - contextLines = context.source() - cti = 0 - while cti < len(contextLines) and \ - not contextLines[cti].strip().startswith( - ('"""', 'r"""', 'u"""', "'''", "r'''", "u'''")): - cti += 1 - if cti == len(contextLines): - return - - start = cti - if contextLines[cti].strip() in ( - '"""', 'r"""', 'u"""', "'''", "r'''", "u'''"): - # it is a multi line docstring - cti += 1 - - while cti < len(contextLines) and \ - not contextLines[cti].strip().endswith(('"""', "'''")): - cti += 1 - end = cti - if cti >= len(contextLines) - 1: - return - - if contextLines[start - 1].strip(): - self.__error(docstringContext.start(), 0, "D142") - if contextLines[end + 1].strip(): - self.__error(docstringContext.end(), 0, "D143") - - def __checkBlankAfterSummary(self, docstringContext, context): - """ - Private method to check, that docstring summaries are followed - by a blank line. - - @param docstringContext docstring context (DocStyleContext) - @param context context of the docstring (DocStyleContext) - """ - if docstringContext is None: - return - - docstrings = docstringContext.source() - if len(docstrings) <= 3: - # correct/invalid one-liner - return - - summary, lineNumber = self.__getSummaryLine(docstringContext) - if len(docstrings) > 2: - if docstrings[lineNumber + 1].strip(): - self.__error(docstringContext.start() + lineNumber, 0, "D144") - - def __checkBlankAfterLastParagraph(self, docstringContext, context): - """ - Private method to check, that the last paragraph of docstrings is - followed by a blank line. - - @param docstringContext docstring context (DocStyleContext) - @param context context of the docstring (DocStyleContext) - """ - if docstringContext is None: - return - - docstrings = docstringContext.source() - if len(docstrings) <= 3: - # correct/invalid one-liner - return - - if docstrings[-2].strip(): - self.__error(docstringContext.end(), 0, "D145") - - ################################################################## - ## Checking functionality below (eric specific ones) - ################################################################## - - def __checkEricQuotesOnSeparateLines(self, docstringContext, context): - """ - Private method to check, that leading and trailing quotes are on - a line by themselves. - - @param docstringContext docstring context (DocStyleContext) - @param context context of the docstring (DocStyleContext) - """ - if docstringContext is None: - return - - lines = docstringContext.source() - if lines[0].strip().strip('ru"\''): - self.__error(docstringContext.start(), 0, "D221") - if lines[-1].strip().strip('"\''): - self.__error(docstringContext.end(), 0, "D222") - - def __checkEricEndsWithPeriod(self, docstringContext, context): - """ - Private method to check, that docstring summaries end with a period. - - @param docstringContext docstring context (DocStyleContext) - @param context context of the docstring (DocStyleContext) - """ - if docstringContext is None: - return - - summaryLines, lineNumber = self.__getSummaryLines(docstringContext) - if summaryLines[-1].lstrip().startswith("@"): - summaryLines.pop(-1) - summary = " ".join([s.strip() for s in summaryLines if s]) - if not summary.endswith(".") and \ - not summary.split(None, 1)[0].lower() == "constructor": - self.__error( - docstringContext.start() + lineNumber + len(summaryLines) - 1, - 0, "D231") - - def __checkEricReturn(self, docstringContext, context): - """ - Private method to check, that docstrings contain an @return line - if they return anything and don't otherwise. - - @param docstringContext docstring context (DocStyleContext) - @param context context of the docstring (DocStyleContext) - """ - if docstringContext is None: - return - - tokens = list( - tokenize.generate_tokens(StringIO(context.ssource()).readline)) - return_ = [tokens[i + 1][0] for i, token in enumerate(tokens) - if token[1] in ("return", "yield")] - if "@return" not in docstringContext.ssource(): - if (set(return_) - - set([tokenize.COMMENT, tokenize.NL, tokenize.NEWLINE]) != - set([])): - self.__error(docstringContext.end(), 0, "D234") - else: - if (set(return_) - - set([tokenize.COMMENT, tokenize.NL, tokenize.NEWLINE]) == - set([])): - self.__error(docstringContext.end(), 0, "D235") - - def __checkEricFunctionArguments(self, docstringContext, context): - """ - Private method to check, that docstrings contain an @param and/or - @keyparam line for each argument. - - @param docstringContext docstring context (DocStyleContext) - @param context context of the docstring (DocStyleContext) - """ - if docstringContext is None: - return - - try: - tree = ast.parse(context.ssource()) - except (SyntaxError, TypeError): - return - if (isinstance(tree, ast.Module) and len(tree.body) == 1 and - isinstance(tree.body[0], ast.FunctionDef)): - functionDef = tree.body[0] - argNames, kwNames = self.__getArgNames(functionDef) - if "self" in argNames: - argNames.remove("self") - if "cls" in argNames: - argNames.remove("cls") - - docstring = docstringContext.ssource() - if (docstring.count("@param") + docstring.count("@keyparam") < - len(argNames + kwNames)): - self.__error(docstringContext.end(), 0, "D236") - elif (docstring.count("@param") + docstring.count("@keyparam") > - len(argNames + kwNames)): - self.__error(docstringContext.end(), 0, "D237") - else: - # extract @param and @keyparam from docstring - args = [] - kwargs = [] - for line in docstringContext.source(): - if line.strip().startswith(("@param", "@keyparam")): - at, name = line.strip().split(None, 2)[:2] - if at == "@keyparam": - kwargs.append(name.lstrip("*")) - args.append(name.lstrip("*")) - - # do the checks - for name in kwNames: - if name not in kwargs: - self.__error(docstringContext.end(), 0, "D238") - return - if argNames + kwNames != args: - self.__error(docstringContext.end(), 0, "D239") - - def __checkEricException(self, docstringContext, context): - """ - Private method to check, that docstrings contain an @exception line - if they raise an exception and don't otherwise. - - @param docstringContext docstring context (DocStyleContext) - @param context context of the docstring (DocStyleContext) - """ - if docstringContext is None: - return - - tokens = list( - tokenize.generate_tokens(StringIO(context.ssource()).readline)) - exception = [tokens[i + 1][0] for i, token in enumerate(tokens) - if token[1] == "raise"] - if "@exception" not in docstringContext.ssource() and \ - "@throws" not in docstringContext.ssource() and \ - "@raise" not in docstringContext.ssource(): - if (set(exception) - - set([tokenize.COMMENT, tokenize.NL, tokenize.NEWLINE]) != - set([])): - self.__error(docstringContext.end(), 0, "D250") - else: - if (set(exception) - - set([tokenize.COMMENT, tokenize.NL, tokenize.NEWLINE]) == - set([])): - self.__error(docstringContext.end(), 0, "D251") - - def __checkEricBlankAfterSummary(self, docstringContext, context): - """ - Private method to check, that docstring summaries are followed - by a blank line. - - @param docstringContext docstring context (DocStyleContext) - @param context context of the docstring (DocStyleContext) - """ - if docstringContext is None: - return - - docstrings = docstringContext.source() - if len(docstrings) <= 3: - # correct/invalid one-liner - return - - summaryLines, lineNumber = self.__getSummaryLines(docstringContext) - if len(docstrings) - 2 > lineNumber + len(summaryLines) - 1: - if docstrings[lineNumber + len(summaryLines)].strip(): - self.__error(docstringContext.start() + lineNumber, 0, "D246") - - def __checkEricNoBlankBeforeAndAfterClassOrFunction( - self, docstringContext, context): - """ - Private method to check, that class and function/method docstrings - have no blank line around them. - - @param docstringContext docstring context (DocStyleContext) - @param context context of the docstring (DocStyleContext) - """ - if docstringContext is None: - return - - contextLines = context.source() - isClassContext = contextLines[0].lstrip().startswith("class ") - cti = 0 - while cti < len(contextLines) and \ - not contextLines[cti].strip().startswith( - ('"""', 'r"""', 'u"""', "'''", "r'''", "u'''")): - cti += 1 - if cti == len(contextLines): - return - - start = cti - if contextLines[cti].strip() in ( - '"""', 'r"""', 'u"""', "'''", "r'''", "u'''"): - # it is a multi line docstring - cti += 1 - - while cti < len(contextLines) and \ - not contextLines[cti].strip().endswith(('"""', "'''")): - cti += 1 - end = cti - if cti >= len(contextLines) - 1: - return - - if isClassContext: - if not contextLines[start - 1].strip(): - self.__error(docstringContext.start(), 0, "D242") - if not contextLines[end + 1].strip(): - self.__error(docstringContext.end(), 0, "D243") - else: - if not contextLines[start - 1].strip(): - self.__error(docstringContext.start(), 0, "D244") - if not contextLines[end + 1].strip(): - self.__error(docstringContext.end(), 0, "D245") - - def __checkEricNBlankAfterLastParagraph(self, docstringContext, context): - """ - Private method to check, that the last paragraph of docstrings is - not followed by a blank line. - - @param docstringContext docstring context (DocStyleContext) - @param context context of the docstring (DocStyleContext) - """ - if docstringContext is None: - return - - docstrings = docstringContext.source() - if len(docstrings) <= 3: - # correct/invalid one-liner - return - - if not docstrings[-2].strip(): - self.__error(docstringContext.end(), 0, "D247") - -# -# eflag: FileType = Python2
--- a/UtilitiesPython2/NamingStyleCheckerPy2.py Sun Jan 05 22:45:29 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,426 +0,0 @@ -# -*- coding: utf-8 -*- - -# Copyright (c) 2013 Detlev Offenbach <detlev@die-offenbachs.de> -# - -""" -Module implementing a checker for naming conventions for Python2. -""" - -import collections -import ast -import re -import os - - -class NamingStyleChecker(object): - """ - Class implementing a checker for naming conventions for Python2. - """ - LowercaseRegex = re.compile(r"[_a-z][_a-z0-9]*$") - UppercaseRegexp = re.compile(r"[_A-Z][_A-Z0-9]*$") - CamelcaseRegexp = re.compile(r"_?[A-Z][a-zA-Z0-9]*$") - MixedcaseRegexp = re.compile(r"_?[a-z][a-zA-Z0-9]*$") - - Codes = [ - "N801", "N802", "N803", "N804", "N805", "N806", "N807", "N808", - "N811", "N812", "N813", "N814", "N821", "N831" - ] - - def __init__(self, tree, filename, options): - """ - Constructor (according to 'extended' pep8.py API) - - @param tree AST tree of the source file - @param filename name of the source file (string) - @param options options as parsed by pep8.StyleGuide - """ - self.__parents = collections.deque() - self.__tree = tree - self.__filename = filename - - self.__checkersWithCodes = { - "classdef": [ - (self.__checkClassName, ("N801",)), - (self.__checkNameToBeAvoided, ("N831",)), - ], - "functiondef": [ - (self.__checkFuntionName, ("N802",)), - (self.__checkFunctionArgumentNames, - ("N803", "N804", "N805", "N806")), - (self.__checkNameToBeAvoided, ("N831",)), - ], - "assign": [ - (self.__checkVariablesInFunction, ("N821",)), - (self.__checkNameToBeAvoided, ("N831",)), - ], - "importfrom": [ - (self.__checkImportAs, ("N811", "N812", "N813", "N814")), - ], - "module": [ - (self.__checkModule, ("N807", "N808")), - ], - } - - self.__checkers = {} - for key, checkers in self.__checkersWithCodes.items(): - for checker, codes in checkers: - if any(not (code and options.ignore_code(code)) - for code in codes): - if key not in self.__checkers: - self.__checkers[key] = [] - self.__checkers[key].append(checker) - - def run(self): - """ - Public method run by the pep8.py checker. - - @return tuple giving line number, offset within line, code and - checker function - """ - if self.__tree: - return self.__visitTree(self.__tree) - else: - return () - - def __visitTree(self, node): - """ - Private method to scan the given AST tree. - - @param node AST tree node to scan - @return tuple giving line number, offset within line, code and - checker function - """ - for error in self.__visitNode(node): - yield error - self.__parents.append(node) - for child in ast.iter_child_nodes(node): - for error in self.__visitTree(child): - yield error - self.__parents.pop() - - def __visitNode(self, node): - """ - Private method to inspect the given AST node. - - @param node AST tree node to inspect - @return tuple giving line number, offset within line, code and - checker function - """ - if isinstance(node, ast.ClassDef): - self.__tagClassFunctions(node) - elif isinstance(node, ast.FunctionDef): - self.__findGlobalDefs(node) - - checkerName = node.__class__.__name__.lower() - if checkerName in self.__checkers: - for checker in self.__checkers[checkerName]: - for error in checker(node, self.__parents): - yield error + (self.__checkers[checkerName],) - - def __tagClassFunctions(self, classNode): - """ - Private method to tag functions if they are methods, class methods or - static methods. - - @param classNode AST tree node to tag - """ - # try to find all 'old style decorators' like - # m = staticmethod(m) - lateDecoration = {} - for node in ast.iter_child_nodes(classNode): - if not (isinstance(node, ast.Assign) and - isinstance(node.value, ast.Call) and - isinstance(node.value.func, ast.Name)): - continue - funcName = node.value.func.id - if funcName in ("classmethod", "staticmethod"): - meth = (len(node.value.args) == 1 and node.value.args[0]) - if isinstance(meth, ast.Name): - lateDecoration[meth.id] = funcName - - # iterate over all functions and tag them - for node in ast.iter_child_nodes(classNode): - if not isinstance(node, ast.FunctionDef): - continue - - node.function_type = 'method' - if node.name == "__new__": - node.function_type = "classmethod" - - if node.name in lateDecoration: - node.function_type = lateDecoration[node.name] - elif node.decorator_list: - names = [d.id for d in node.decorator_list - if isinstance(d, ast.Name) and - d.id in ("classmethod", "staticmethod")] - if names: - node.function_type = names[0] - - def __findGlobalDefs(self, functionNode): - """ - Private method amend a node with global definitions information. - - @param functionNode AST tree node to amend - """ - globalNames = set() - nodesToCheck = collections.deque(ast.iter_child_nodes(functionNode)) - while nodesToCheck: - node = nodesToCheck.pop() - if isinstance(node, ast.Global): - globalNames.update(node.names) - - if not isinstance(node, (ast.FunctionDef, ast.ClassDef)): - nodesToCheck.extend(ast.iter_child_nodes(node)) - functionNode.global_names = globalNames - - def __getArgNames(self, node): - """ - Private method to get the argument names of a function node. - - @param node AST node to extract arguments names from - @return list of argument names (list of string) - """ - def unpackArgs(args): - """ - Local helper function to unpack function argument names. - - @param args list of AST node arguments - @return list of argument names (list of string) - """ - ret = [] - for arg in args: - if isinstance(arg, ast.Tuple): - ret.extend(unpackArgs(arg.elts)) - else: - ret.append(arg.id) - return ret - - return unpackArgs(node.args.args) - - def __error(self, node, code): - """ - Private method to build the error information. - - @param node AST node to report an error for - @param code error code to report (string) - @return tuple giving line number, offset within line and error code - (integer, integer, string) - """ - if isinstance(node, ast.Module): - lineno = 0 - offset = 0 - else: - lineno = node.lineno - offset = node.col_offset - if isinstance(node, ast.ClassDef): - lineno += len(node.decorator_list) - offset += 6 - elif isinstance(node, ast.FunctionDef): - lineno += len(node.decorator_list) - offset += 4 - return (lineno, offset, code) - - def __isNameToBeAvoided(self, name): - """ - Private method to check, if the given name should be avoided. - - @param name name to be checked (string) - @return flag indicating to avoid it (boolen) - """ - return name in ("l", "O", "I") - - def __checkNameToBeAvoided(self, node, parents): - """ - Private class to check the given node for a name to be avoided (N831). - - @param node AST note to check - @param parents list of parent nodes - @return tuple giving line number, offset within line and error code - (integer, integer, string) - """ - if isinstance(node, (ast.ClassDef, ast.FunctionDef)): - name = node.name - if self.__isNameToBeAvoided(name): - yield self.__error(node, "N831") - return - - if isinstance(node, ast.FunctionDef): - argNames = self.__getArgNames(node) - for arg in argNames: - if self.__isNameToBeAvoided(arg): - yield self.__error(node, "N831") - return - - if isinstance(node, ast.Assign): - for target in node.targets: - name = isinstance(target, ast.Name) and target.id - if not name: - return - - if self.__isNameToBeAvoided(name): - yield self.__error(node, "N831") - return - - def __checkClassName(self, node, parents): - """ - Private class to check the given node for class name - conventions (N801). - - Almost without exception, class names use the CapWords convention. - Classes for internal use have a leading underscore in addition. - - @param node AST note to check - @param parents list of parent nodes - @return tuple giving line number, offset within line and error code - (integer, integer, string) - """ - if not self.CamelcaseRegexp.match(node.name): - yield self.__error(node, "N801") - - def __checkFuntionName(self, node, parents): - """ - Private class to check the given node for function name - conventions (N802). - - Function names should be lowercase, with words separated by underscores - as necessary to improve readability. Functions <b>not</b> being - methods '__' in front and back are not allowed. Mixed case is allowed - only in contexts where that's already the prevailing style - (e.g. threading.py), to retain backwards compatibility. - - @param node AST note to check - @param parents list of parent nodes - @return tuple giving line number, offset within line and error code - (integer, integer, string) - """ - functionType = getattr(node, "function_type", "function") - name = node.name - if (functionType == "function" and "__" in (name[:2], name[-2:])) or \ - not self.LowercaseRegex.match(name): - yield self.__error(node, "N802") - - def __checkFunctionArgumentNames(self, node, parents): - """ - Private class to check the argument names of functions - (N803, N804, N805, N806). - - The argument names of a function should be lowercase, with words - separated by underscores. A class method should have 'cls' as the - first argument. A method should have 'self' as the first argument. - - @param node AST note to check - @param parents list of parent nodes - @return tuple giving line number, offset within line and error code - (integer, integer, string) - """ - if node.args.kwarg is not None: - if not self.LowercaseRegex.match(node.args.kwarg): - yield self.__error(node, "N803") - return - - if node.args.vararg is not None: - if not self.LowercaseRegex.match(node.args.vararg): - yield self.__error(node, "N803") - return - - argNames = self.__getArgNames(node) - functionType = getattr(node, "function_type", "function") - - if not argNames: - if functionType == "method": - yield self.__error(node, "N805") - elif functionType == "classmethod": - yield self.__error(node, "N804") - return - - if functionType == "method": - if argNames[0] != "self": - yield self.__error(node, "N805") - elif functionType == "classmethod": - if argNames[0] != "cls": - yield self.__error(node, "N804") - elif functionType == "staticmethod": - if argNames[0] in ("cls", "self"): - yield self.__error(node, "N806") - for arg in argNames: - if not self.LowercaseRegex.match(arg): - yield self.__error(node, "N803") - return - - def __checkVariablesInFunction(self, node, parents): - """ - Private method to check local variables in functions (N821). - - Local variables in functions should be lowercase. - - @param node AST note to check - @param parents list of parent nodes - @return tuple giving line number, offset within line and error code - (integer, integer, string) - """ - for parentFunc in reversed(parents): - if isinstance(parentFunc, ast.ClassDef): - return - if isinstance(parentFunc, ast.FunctionDef): - break - else: - return - for target in node.targets: - name = isinstance(target, ast.Name) and target.id - if not name or name in parentFunc.global_names: - return - - if not self.LowercaseRegex.match(name) and name[:1] != '_': - yield self.__error(target, "N821") - - def __checkModule(self, node, parents): - """ - Private method to check module naming conventions (N807, N808). - - Module and package names should be lowercase. - - @param node AST note to check - @param parents list of parent nodes - @return tuple giving line number, offset within line and error code - (integer, integer, string) - """ - if self.__filename: - moduleName = os.path.splitext(os.path.basename(self.__filename))[0] - if moduleName.lower() != moduleName: - yield self.__error(node, "N807") - - if moduleName == "__init__": - # we got a package - packageName = \ - os.path.split(os.path.dirname(self.__filename))[1] - if packageName.lower != packageName: - yield self.__error(node, "N808") - - def __checkImportAs(self, node, parents): - """ - Private method to check that imports don't change the - naming convention (N811, N812, N813, N814). - - @param node AST note to check - @param parents list of parent nodes - @return tuple giving line number, offset within line and error code - (integer, integer, string) - """ - for name in node.names: - if not name.asname: - continue - - if self.UppercaseRegexp.match(name.name): - if not self.UppercaseRegexp.match(name.asname): - yield self.__error(node, "N811") - elif self.LowercaseRegex.match(name.name): - if not self.LowercaseRegex.match(name.asname): - yield self.__error(node, "N812") - elif self.LowercaseRegex.match(name.asname): - yield self.__error(node, "N813") - elif self.UppercaseRegexp.match(name.asname): - yield self.__error(node, "N814") - -# -# eflag: FileType = Python2
--- a/UtilitiesPython2/Tools.py Sun Jan 05 22:45:29 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,122 +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 its 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 Sun Jan 05 22:45:29 2014 +0100 +++ /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/UtilitiesPython2/pep8.py Sun Jan 05 22:45:29 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1921 +0,0 @@ -# -*- coding: utf-8 -*- - -# -# pep8.py - Check Python source code formatting, according to PEP 8 -# Copyright (C) 2006-2009 Johann C. Rocholl <johann@rocholl.net> -# Copyright (C) 2009-2013 Florent Xicluna <florent.xicluna@gmail.com> -# -# Permission is hereby granted, free of charge, to any person -# obtaining a copy of this software and associated documentation files -# (the "Software"), to deal in the Software without restriction, -# including without limitation the rights to use, copy, modify, merge, -# publish, distribute, sublicense, and/or sell copies of the Software, -# and to permit persons to whom the Software is furnished to do so, -# subject to the following conditions: -# -# The above copyright notice and this permission notice shall be -# included in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS -# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -""" -Check Python source code formatting, according to PEP 8: -http://www.python.org/dev/peps/pep-0008/ - -For usage and a list of options, try this: -$ python pep8.py -h - -This program and its regression test suite live here: -http://github.com/jcrocholl/pep8 - -Groups of errors and warnings: -E errors -W warnings -100 indentation -200 whitespace -300 blank lines -400 imports -500 line length -600 deprecation -700 statements -900 syntax error -""" - -# -# This is a modified version to make the original pep8.py better suitable -# for being called from within the eric5 IDE. The modifications are as -# follows: -# -# - made messages translatable via Qt -# - added code for eric5 integration -# -# Copyright (c) 2011 - 2013 Detlev Offenbach <detlev@die-offenbachs.de> -# - -__version__ = '1.4.6' - -import os -import sys -import re -import time -import inspect -import keyword -import tokenize -from optparse import OptionParser -from fnmatch import fnmatch -try: - from configparser import RawConfigParser - from io import TextIOWrapper -except ImportError: - from ConfigParser import RawConfigParser # __IGNORE_WARNING__ - -DEFAULT_EXCLUDE = '.svn,CVS,.bzr,.hg,.git,__pycache__' -DEFAULT_IGNORE = 'E123,E226,E24' -if sys.platform == 'win32': - DEFAULT_CONFIG = os.path.expanduser(r'~\.pep8') -else: - DEFAULT_CONFIG = os.path.join(os.getenv('XDG_CONFIG_HOME') or - os.path.expanduser('~/.config'), 'pep8') -PROJECT_CONFIG = ('setup.cfg', 'tox.ini', '.pep8') -TESTSUITE_PATH = os.path.join(os.path.dirname(__file__), 'testsuite') -MAX_LINE_LENGTH = 79 -REPORT_FORMAT = { - 'default': '%(path)s:%(row)d:%(col)d: %(code)s %(text)s', - 'pylint': '%(path)s:%(row)d: [%(code)s] %(text)s', -} - -PyCF_ONLY_AST = 1024 -SINGLETONS = frozenset(['False', 'None', 'True']) -KEYWORDS = frozenset(keyword.kwlist + ['print']) - SINGLETONS -UNARY_OPERATORS = frozenset(['>>', '**', '*', '+', '-']) -ARITHMETIC_OP = frozenset(['**', '*', '/', '//', '+', '-']) -WS_OPTIONAL_OPERATORS = ARITHMETIC_OP.union(['^', '&', '|', '<<', '>>', '%']) -WS_NEEDED_OPERATORS = frozenset([ - '**=', '*=', '/=', '//=', '+=', '-=', '!=', '<>', '<', '>', - '%=', '^=', '&=', '|=', '==', '<=', '>=', '<<=', '>>=', '=']) -WHITESPACE = frozenset(' \t') -SKIP_TOKENS = frozenset([tokenize.COMMENT, tokenize.NL, tokenize.NEWLINE, - tokenize.INDENT, tokenize.DEDENT]) -BENCHMARK_KEYS = ['directories', 'files', 'logical lines', 'physical lines'] - -INDENT_REGEX = re.compile(r'([ \t]*)') -RAISE_COMMA_REGEX = re.compile(r'raise\s+\w+\s*,') -RERAISE_COMMA_REGEX = re.compile(r'raise\s+\w+\s*,\s*\w+\s*,\s*\w+') -ERRORCODE_REGEX = re.compile(r'\b[A-Z]\d{3}\b') -DOCSTRING_REGEX = re.compile(r'u?r?["\']') -EXTRANEOUS_WHITESPACE_REGEX = re.compile(r'[[({] | []}),;:]') -WHITESPACE_AFTER_COMMA_REGEX = re.compile(r'[,;:]\s*(?: |\t)') -COMPARE_SINGLETON_REGEX = re.compile(r'([=!]=)\s*(None|False|True)') -COMPARE_TYPE_REGEX = re.compile(r'(?:[=!]=|is(?:\s+not)?)\s*type(?:s.\w+Type' - r'|\s*\(\s*([^)]*[^ )])\s*\))') -KEYWORD_REGEX = re.compile(r'(\s*)\b(?:%s)\b(\s*)' % r'|'.join(KEYWORDS)) -OPERATOR_REGEX = re.compile(r'(?:[^,\s])(\s*)(?:[-+*/|!<=>%&^]+)(\s*)') -LAMBDA_REGEX = re.compile(r'\blambda\b') -HUNK_REGEX = re.compile(r'^@@ -\d+(?:,\d+)? \+(\d+)(?:,(\d+))? @@.*$') - -# Work around Python < 2.6 behaviour, which does not generate NL after -# a comment which is on a line by itself. -COMMENT_WITH_NL = tokenize.generate_tokens(['#\n'].pop).send(None)[1] == '#\n' - - -############################################################################## -# Plugins (check functions) for physical lines -############################################################################## - - -def tabs_or_spaces(physical_line, indent_char): - r""" - Never mix tabs and spaces. - - The most popular way of indenting Python is with spaces only. The - second-most popular way is with tabs only. Code indented with a mixture - of tabs and spaces should be converted to using spaces exclusively. When - invoking the Python command line interpreter with the -t option, it issues - warnings about code that illegally mixes tabs and spaces. When using -tt - these warnings become errors. These options are highly recommended! - - Okay: if a == 0:\n a = 1\n b = 1 - E101: if a == 0:\n a = 1\n\tb = 1 - """ - indent = INDENT_REGEX.match(physical_line).group(1) - for offset, char in enumerate(indent): - if char != indent_char: - return offset, "E101" - - -def tabs_obsolete(physical_line): - r""" - For new projects, spaces-only are strongly recommended over tabs. Most - editors have features that make this easy to do. - - Okay: if True:\n return - W191: if True:\n\treturn - """ - indent = INDENT_REGEX.match(physical_line).group(1) - if '\t' in indent: - return indent.index('\t'), "W191" - - -def trailing_whitespace(physical_line): - r""" - JCR: Trailing whitespace is superfluous. - FBM: Except when it occurs as part of a blank line (i.e. the line is - nothing but whitespace). According to Python docs[1] a line with only - whitespace is considered a blank line, and is to be ignored. However, - matching a blank line to its indentation level avoids mistakenly - terminating a multi-line statement (e.g. class declaration) when - pasting code into the standard Python interpreter. - - [1] http://docs.python.org/reference/lexical_analysis.html#blank-lines - - The warning returned varies on whether the line itself is blank, for easier - filtering for those who want to indent their blank lines. - - Okay: spam(1)\n# - W291: spam(1) \n# - W293: class Foo(object):\n \n bang = 12 - """ - physical_line = physical_line.rstrip('\n') # chr(10), newline - physical_line = physical_line.rstrip('\r') # chr(13), carriage return - physical_line = physical_line.rstrip('\x0c') # chr(12), form feed, ^L - stripped = physical_line.rstrip(' \t\v') - if physical_line != stripped: - if stripped: - return len(stripped), "W291" - else: - return 0, "W293" - - -def trailing_blank_lines(physical_line, lines, line_number): - r""" - JCR: Trailing blank lines are superfluous. - - Okay: spam(1) - W391: spam(1)\n - """ - if not physical_line.rstrip() and line_number == len(lines): - return 0, "W391" - - -def missing_newline(physical_line): - """ - JCR: The last line should have a newline. - - Reports warning W292. - """ - if physical_line.rstrip() == physical_line: - return len(physical_line), "W292" - - -def maximum_line_length(physical_line, max_line_length): - """ - Limit all lines to a maximum of 79 characters. - - There are still many devices around that are limited to 80 character - lines; plus, limiting windows to 80 characters makes it possible to have - several windows side-by-side. The default wrapping on such devices looks - ugly. Therefore, please limit all lines to a maximum of 79 characters. - For flowing long blocks of text (docstrings or comments), limiting the - length to 72 characters is recommended. - - Reports error E501. - """ - line = physical_line.rstrip() - length = len(line) - if length > max_line_length and not noqa(line): - if hasattr(line, 'decode'): # Python 2 - # The line could contain multi-byte characters - try: - length = len(line.decode('utf-8')) - except UnicodeError: - pass - if length > max_line_length: - return max_line_length, "E501", length, max_line_length - - -############################################################################## -# Plugins (check functions) for logical lines -############################################################################## - - -def blank_lines(logical_line, blank_lines, indent_level, line_number, - previous_logical, previous_indent_level): - r""" - Separate top-level function and class definitions with two blank lines. - - Method definitions inside a class are separated by a single blank line. - - Extra blank lines may be used (sparingly) to separate groups of related - functions. Blank lines may be omitted between a bunch of related - one-liners (e.g. a set of dummy implementations). - - Use blank lines in functions, sparingly, to indicate logical sections. - - Okay: def a():\n pass\n\n\ndef b():\n pass - Okay: def a():\n pass\n\n\n# Foo\n# Bar\n\ndef b():\n pass - - E301: class Foo:\n b = 0\n def bar():\n pass - E302: def a():\n pass\n\ndef b(n):\n pass - E303: def a():\n pass\n\n\n\ndef b(n):\n pass - E303: def a():\n\n\n\n pass - E304: @decorator\n\ndef a():\n pass - """ - if line_number < 3 and not previous_logical: - return # Don't expect blank lines before the first line - if previous_logical.startswith('@'): - if blank_lines: - yield 0, "E304" - elif blank_lines > 2 or (indent_level and blank_lines == 2): - yield 0, "E303", blank_lines - elif logical_line.startswith(('def ', 'class ', '@')): - if indent_level: - if not (blank_lines or previous_indent_level < indent_level or - DOCSTRING_REGEX.match(previous_logical)): - yield 0, "E301" - elif blank_lines != 2: - yield 0, "E302", blank_lines - - -def extraneous_whitespace(logical_line): - """ - Avoid extraneous whitespace in the following situations: - - - Immediately inside parentheses, brackets or braces. - - - Immediately before a comma, semicolon, or colon. - - Okay: spam(ham[1], {eggs: 2}) - E201: spam( ham[1], {eggs: 2}) - E201: spam(ham[ 1], {eggs: 2}) - E201: spam(ham[1], { eggs: 2}) - E202: spam(ham[1], {eggs: 2} ) - E202: spam(ham[1 ], {eggs: 2}) - E202: spam(ham[1], {eggs: 2 }) - - E203: if x == 4: print x, y; x, y = y , x - E203: if x == 4: print x, y ; x, y = y, x - E203: if x == 4 : print x, y; x, y = y, x - """ - line = logical_line - for match in EXTRANEOUS_WHITESPACE_REGEX.finditer(line): - text = match.group() - char = text.strip() - found = match.start() - if text == char + ' ': - # assert char in '([{' - yield found + 1, "E201", char - elif line[found - 1] != ',': - code = ('E202' if char in '}])' else 'E203') # if char in ',;:' - yield found, code, char - - -def whitespace_around_keywords(logical_line): - r""" - Avoid extraneous whitespace around keywords. - - Okay: True and False - E271: True and False - E272: True and False - E273: True and\tFalse - E274: True\tand False - """ - for match in KEYWORD_REGEX.finditer(logical_line): - before, after = match.groups() - - if '\t' in before: - yield match.start(1), "E274" - elif len(before) > 1: - yield match.start(1), "E272" - - if '\t' in after: - yield match.start(2), "E273" - elif len(after) > 1: - yield match.start(2), "E271" - - -def missing_whitespace(logical_line): - """ - JCR: Each comma, semicolon or colon should be followed by whitespace. - - Okay: [a, b] - Okay: (3,) - Okay: a[1:4] - Okay: a[:4] - Okay: a[1:] - Okay: a[1:4:2] - E231: ['a','b'] - E231: foo(bar,baz) - E231: [{'a':'b'}] - """ - line = logical_line - for index in range(len(line) - 1): - char = line[index] - if char in ',;:' and line[index + 1] not in WHITESPACE: - before = line[:index] - if char == ':' and before.count('[') > before.count(']') and \ - before.rfind('{') < before.rfind('['): - continue # Slice syntax, no space required - if char == ',' and line[index + 1] == ')': - continue # Allow tuple with only one element: (3,) - yield index, "E231", char - - -def indentation(logical_line, previous_logical, indent_char, - indent_level, previous_indent_level): - r""" - Use 4 spaces per indentation level. - - For really old code that you don't want to mess up, you can continue to - use 8-space tabs. - - Okay: a = 1 - Okay: if a == 0:\n a = 1 - E111: a = 1 - - Okay: for item in items:\n pass - E112: for item in items:\npass - - Okay: a = 1\nb = 2 - E113: a = 1\n b = 2 - """ - if indent_char == ' ' and indent_level % 4: - yield 0, "E111" - indent_expect = previous_logical.endswith(':') - if indent_expect and indent_level <= previous_indent_level: - yield 0, "E112" - if indent_level > previous_indent_level and not indent_expect: - yield 0, "E113" - - -def continued_indentation(logical_line, tokens, indent_level, hang_closing, - noqa, verbose): - r""" - Continuation lines should align wrapped elements either vertically using - Python's implicit line joining inside parentheses, brackets and braces, or - using a hanging indent. - - When using a hanging indent the following considerations should be applied: - - - there should be no arguments on the first line, and - - - further indentation should be used to clearly distinguish itself as a - continuation line. - - Okay: a = (\n) - E123: a = (\n ) - - Okay: a = (\n 42) - E121: a = (\n 42) - E122: a = (\n42) - E123: a = (\n 42\n ) - E124: a = (24,\n 42\n) - E125: if (a or\n b):\n pass - E126: a = (\n 42) - E127: a = (24,\n 42) - E128: a = (24,\n 42) - """ - first_row = tokens[0][2][0] - nrows = 1 + tokens[-1][2][0] - first_row - if noqa or nrows == 1: - return - - # indent_next tells us whether the next block is indented; assuming - # that it is indented by 4 spaces, then we should not allow 4-space - # indents on the final continuation line; in turn, some other - # indents are allowed to have an extra 4 spaces. - indent_next = logical_line.endswith(':') - - row = depth = 0 - # remember how many brackets were opened on each line - parens = [0] * nrows - # relative indents of physical lines - rel_indent = [0] * nrows - # visual indents - indent_chances = {} - last_indent = tokens[0][2] - indent = [last_indent[1]] - if verbose >= 3: - print(">>> " + tokens[0][4].rstrip()) - - for token_type, text, start, end, line in tokens: - - last_token_multiline = (start[0] != end[0]) - newline = row < start[0] - first_row - if newline: - row = start[0] - first_row - newline = (not last_token_multiline and - token_type not in (tokenize.NL, tokenize.NEWLINE)) - - if newline: - # this is the beginning of a continuation line. - last_indent = start - if verbose >= 3: - print("... " + line.rstrip()) - - # record the initial indent. - rel_indent[row] = expand_indent(line) - indent_level - - if depth: - # a bracket expression in a continuation line. - # find the line that it was opened on - for open_row in range(row - 1, -1, -1): - if parens[open_row]: - break - else: - # an unbracketed continuation line (ie, backslash) - open_row = 0 - hang = rel_indent[row] - rel_indent[open_row] - close_bracket = (token_type == tokenize.OP and text in ']})') - visual_indent = (not close_bracket and hang > 0 and - indent_chances.get(start[1])) - - if close_bracket and indent[depth]: - # closing bracket for visual indent - if start[1] != indent[depth]: - yield start, "E124" - elif close_bracket and not hang: - # closing bracket matches indentation of opening bracket's line - if hang_closing: - yield start, "E133" - elif visual_indent is True: - # visual indent is verified - if not indent[depth]: - indent[depth] = start[1] - elif visual_indent in (text, str): - # ignore token lined up with matching one from a previous line - pass - elif indent[depth] and start[1] < indent[depth]: - # visual indent is broken - yield start, "E128" - elif hang == 4 or (indent_next and rel_indent[row] == 8): - # hanging indent is verified - if close_bracket and not hang_closing: - yield (start, "E123") - else: - # indent is broken - if hang <= 0: - error = "E122" - elif indent[depth]: - error = "E127" - elif hang % 4: - error = "E121" - else: - error = "E126" - yield start, error - - # look for visual indenting - if (parens[row] and token_type not in (tokenize.NL, tokenize.COMMENT) - and not indent[depth]): - indent[depth] = start[1] - indent_chances[start[1]] = True - if verbose >= 4: - print("bracket depth %s indent to %s" % (depth, start[1])) - # deal with implicit string concatenation - elif (token_type in (tokenize.STRING, tokenize.COMMENT) or - text in ('u', 'ur', 'b', 'br')): - indent_chances[start[1]] = str - # special case for the "if" statement because len("if (") == 4 - elif not indent_chances and not row and not depth and text == 'if': - indent_chances[end[1] + 1] = True - - # keep track of bracket depth - if token_type == tokenize.OP: - if text in '([{': - depth += 1 - indent.append(0) - parens[row] += 1 - if verbose >= 4: - print("bracket depth %s seen, col %s, visual min = %s" % - (depth, start[1], indent[depth])) - elif text in ')]}' and depth > 0: - # parent indents should not be more than this one - prev_indent = indent.pop() or last_indent[1] - for d in range(depth): - if indent[d] > prev_indent: - indent[d] = 0 - for ind in list(indent_chances): - if ind >= prev_indent: - del indent_chances[ind] - depth -= 1 - if depth: - indent_chances[indent[depth]] = True - for idx in range(row, -1, -1): - if parens[idx]: - parens[idx] -= 1 - rel_indent[row] = rel_indent[idx] - break - assert len(indent) == depth + 1 - if start[1] not in indent_chances: - # allow to line up tokens - indent_chances[start[1]] = text - - if indent_next and expand_indent(line) == indent_level + 4: - yield last_indent, "E125" - - -def whitespace_before_parameters(logical_line, tokens): - """ - Avoid extraneous whitespace in the following situations: - - - Immediately before the open parenthesis that starts the argument - list of a function call. - - - Immediately before the open parenthesis that starts an indexing or - slicing. - - Okay: spam(1) - E211: spam (1) - - Okay: dict['key'] = list[index] - E211: dict ['key'] = list[index] - E211: dict['key'] = list [index] - """ - prev_type, prev_text, __, prev_end, __ = tokens[0] - for index in range(1, len(tokens)): - token_type, text, start, end, __ = tokens[index] - if (token_type == tokenize.OP and - text in '([' and - start != prev_end and - (prev_type == tokenize.NAME or prev_text in '}])') and - # Syntax "class A (B):" is allowed, but avoid it - (index < 2 or tokens[index - 2][1] != 'class') and - # Allow "return (a.foo for a in range(5))" - not keyword.iskeyword(prev_text)): - yield prev_end, "E211", text - prev_type = token_type - prev_text = text - prev_end = end - - -def whitespace_around_operator(logical_line): - """ - Avoid extraneous whitespace in the following situations: - - - More than one space around an assignment (or other) operator to - align it with another. - - Okay: a = 12 + 3 - E221: a = 4 + 5 - E222: a = 4 + 5 - E223: a = 4\t+ 5 - E224: a = 4 +\t5 - """ - for match in OPERATOR_REGEX.finditer(logical_line): - before, after = match.groups() - - if '\t' in before: - yield match.start(1), "E223" - elif len(before) > 1: - yield match.start(1), "E221" - - if '\t' in after: - yield match.start(2), "E224" - elif len(after) > 1: - yield match.start(2), "E222" - -def missing_whitespace_around_operator(logical_line, tokens): - r""" - - Always surround these binary operators with a single space on - either side: assignment (=), augmented assignment (+=, -= etc.), - comparisons (==, <, >, !=, <>, <=, >=, in, not in, is, is not), - Booleans (and, or, not). - - - Use spaces around arithmetic operators. - - Okay: i = i + 1 - Okay: submitted += 1 - Okay: x = x * 2 - 1 - Okay: hypot2 = x * x + y * y - Okay: c = (a + b) * (a - b) - Okay: foo(bar, key='word', *args, **kwargs) - Okay: alpha[:-i] - - E225: i=i+1 - E225: submitted +=1 - E225: x = x /2 - 1 - E225: z = x **y - E226: c = (a+b) * (a-b) - E226: hypot2 = x*x + y*y - E227: c = a|b - E228: msg = fmt%(errno, errmsg) - """ - parens = 0 - need_space = False - prev_type = tokenize.OP - prev_text = prev_end = None - for token_type, text, start, end, line in tokens: - if token_type in (tokenize.NL, tokenize.NEWLINE, tokenize.ERRORTOKEN): - # ERRORTOKEN is triggered by backticks in Python 3 - continue - if text in ('(', 'lambda'): - parens += 1 - elif text == ')': - parens -= 1 - if need_space: - if start != prev_end: - # Found a (probably) needed space - if need_space is not True and not need_space[1]: - yield need_space[0], "E225" - need_space = False - elif text == '>' and prev_text in ('<', '-'): - # Tolerate the "<>" operator, even if running Python 3 - # Deal with Python 3's annotated return value "->" - pass - else: - if need_space is True or need_space[1]: - # A needed trailing space was not found - yield prev_end, "E225" - else: - code = 'E226' - if prev_text == '%': - code = 'E228' - elif prev_text not in ARITHMETIC_OP: - code = 'E227' - yield need_space[0], code - need_space = False - elif token_type == tokenize.OP and prev_end is not None: - if text == '=' and parens: - # Allow keyword args or defaults: foo(bar=None). - pass - elif text in WS_NEEDED_OPERATORS: - need_space = True - elif text in UNARY_OPERATORS: - # Check if the operator is being used as a binary operator - # Allow unary operators: -123, -x, +1. - # Allow argument unpacking: foo(*args, **kwargs). - if prev_type == tokenize.OP: - binary_usage = (prev_text in '}])') - elif prev_type == tokenize.NAME: - binary_usage = (prev_text not in KEYWORDS) - else: - binary_usage = (prev_type not in SKIP_TOKENS) - - if binary_usage: - need_space = None - elif text in WS_OPTIONAL_OPERATORS: - need_space = None - - if need_space is None: - # Surrounding space is optional, but ensure that - # trailing space matches opening space - need_space = (prev_end, start != prev_end) - elif need_space and start == prev_end: - # A needed opening space was not found - yield prev_end, "E225" - need_space = False - prev_type = token_type - prev_text = text - prev_end = end - - -def whitespace_around_comma(logical_line): - """ - Avoid extraneous whitespace in the following situations: - - - More than one space around an assignment (or other) operator to - align it with another. - - JCR: This should also be applied around comma etc. - Note: these checks are disabled by default - - Okay: a = (1, 2) - E241: a = (1, 2) - E242: a = (1,\t2) - """ - line = logical_line - for m in WHITESPACE_AFTER_COMMA_REGEX.finditer(line): - found = m.start() + 1 - if '\t' in m.group(): - yield found, "E242", m.group()[0] - else: - yield found, "E241", m.group()[0] - - -def whitespace_around_named_parameter_equals(logical_line, tokens): - """ - Don't use spaces around the '=' sign when used to indicate a - keyword argument or a default parameter value. - - Okay: def complex(real, imag=0.0): - Okay: return magic(r=real, i=imag) - Okay: boolean(a == b) - Okay: boolean(a != b) - Okay: boolean(a <= b) - Okay: boolean(a >= b) - - E251: def complex(real, imag = 0.0): - E251: return magic(r = real, i = imag) - """ - parens = 0 - no_space = False - prev_end = None - message = "E251" - for token_type, text, start, end, line in tokens: - if no_space: - no_space = False - if start != prev_end: - yield prev_end, message - elif token_type == tokenize.OP: - if text == '(': - parens += 1 - elif text == ')': - parens -= 1 - elif parens and text == '=': - no_space = True - if start != prev_end: - yield prev_end, message - prev_end = end - - -def whitespace_before_inline_comment(logical_line, tokens): - """ - Separate inline comments by at least two spaces. - - An inline comment is a comment on the same line as a statement. Inline - comments should be separated by at least two spaces from the statement. - They should start with a # and a single space. - - Okay: x = x + 1 # Increment x - Okay: x = x + 1 # Increment x - E261: x = x + 1 # Increment x - E262: x = x + 1 #Increment x - E262: x = x + 1 # Increment x - """ - prev_end = (0, 0) - for token_type, text, start, end, line in tokens: - if token_type == tokenize.COMMENT: - if not line[:start[1]].strip(): - continue - if prev_end[0] == start[0] and start[1] < prev_end[1] + 2: - yield prev_end, "E261" - symbol, sp, comment = text.partition(' ') - if symbol not in ('#', '#:') or comment[:1].isspace(): - yield start, "E262" - elif token_type != tokenize.NL: - prev_end = end - - -def imports_on_separate_lines(logical_line): - r""" - Imports should usually be on separate lines. - - Okay: import os\nimport sys - E401: import sys, os - - Okay: from subprocess import Popen, PIPE - Okay: from myclas import MyClass - Okay: from foo.bar.yourclass import YourClass - Okay: import myclass - Okay: import foo.bar.yourclass - """ - line = logical_line - if line.startswith('import '): - found = line.find(',') - if -1 < found and ';' not in line[:found]: - yield found, "E401" - - -def compound_statements(logical_line): - r""" - Compound statements (multiple statements on the same line) are - generally discouraged. - - While sometimes it's okay to put an if/for/while with a small body - on the same line, never do this for multi-clause statements. Also - avoid folding such long lines! - - Okay: if foo == 'blah':\n do_blah_thing() - Okay: do_one() - Okay: do_two() - Okay: do_three() - - E701: if foo == 'blah': do_blah_thing() - E701: for x in lst: total += x - E701: while t < 10: t = delay() - E701: if foo == 'blah': do_blah_thing() - E701: else: do_non_blah_thing() - E701: try: something() - E701: finally: cleanup() - E701: if foo == 'blah': one(); two(); three() - - E702: do_one(); do_two(); do_three() - E703: do_four(); # useless semicolon - """ - line = logical_line - last_char = len(line) - 1 - found = line.find(':') - while -1 < found < last_char: - before = line[:found] - if (before.count('{') <= before.count('}') and # {'a': 1} (dict) - before.count('[') <= before.count(']') and # [1:2] (slice) - before.count('(') <= before.count(')') and # (Python 3 annotation) - not LAMBDA_REGEX.search(before)): # lambda x: x - yield found, "E701" - found = line.find(':', found + 1) - found = line.find(';') - while -1 < found: - if found < last_char: - yield found, "E702" - else: - yield found, "E703" - found = line.find(';', found + 1) - - -def explicit_line_join(logical_line, tokens): - r""" - Avoid explicit line join between brackets. - - The preferred way of wrapping long lines is by using Python's implied line - continuation inside parentheses, brackets and braces. Long lines can be - broken over multiple lines by wrapping expressions in parentheses. These - should be used in preference to using a backslash for line continuation. - - E502: aaa = [123, \\n 123] - E502: aaa = ("bbb " \\n "ccc") - - Okay: aaa = [123,\n 123] - Okay: aaa = ("bbb "\n "ccc") - Okay: aaa = "bbb " \\n "ccc" - """ - prev_start = prev_end = parens = 0 - backslash = None - for token_type, text, start, end, line in tokens: - if start[0] != prev_start and parens and backslash: - yield backslash, "E502" - if end[0] != prev_end: - if line.rstrip('\r\n').endswith('\\'): - backslash = (end[0], len(line.splitlines()[-1]) - 1) - else: - backslash = None - prev_start = prev_end = end[0] - else: - prev_start = start[0] - if token_type == tokenize.OP: - if text in '([{': - parens += 1 - elif text in ')]}': - parens -= 1 - - -def comparison_to_singleton(logical_line, noqa): - """ - Comparisons to singletons like None should always be done - with "is" or "is not", never the equality operators. - - Okay: if arg is not None: - E711: if arg != None: - E712: if arg == True: - - Also, beware of writing if x when you really mean if x is not None -- - e.g. when testing whether a variable or argument that defaults to None was - set to some other value. The other value might have a type (such as a - container) that could be false in a boolean context! - """ - match = not noqa and COMPARE_SINGLETON_REGEX.search(logical_line) - if match: - same = (match.group(1) == '==') - singleton = match.group(2) - msg = "'if cond is %s:'" % (('' if same else 'not ') + singleton) - if singleton in ('None',): - code = 'E711' - else: - code = 'E712' - nonzero = ((singleton == 'True' and same) or - (singleton == 'False' and not same)) - msg += " or 'if %scond:'" % ('' if nonzero else 'not ') - yield match.start(1), code, singleton, msg - - -def comparison_type(logical_line): - """ - Object type comparisons should always use isinstance() instead of - comparing types directly. - - Okay: if isinstance(obj, int): - E721: if type(obj) is type(1): - - When checking if an object is a string, keep in mind that it might be a - unicode string too! In Python 2.3, str and unicode have a common base - class, basestring, so you can do: - - Okay: if isinstance(obj, basestring): - Okay: if type(a1) is type(b1): - """ - match = COMPARE_TYPE_REGEX.search(logical_line) - if match: - inst = match.group(1) - if inst and isidentifier(inst) and inst not in SINGLETONS: - return # Allow comparison for types which are not obvious - yield match.start(), "E721" - - -def python_3000_has_key(logical_line): - r""" - The {}.has_key() method is removed in the Python 3. - Use the 'in' operation instead. - - Okay: if "alph" in d:\n print d["alph"] - W601: assert d.has_key('alph') - """ - pos = logical_line.find('.has_key(') - if pos > -1: - yield pos, "W601" - - -def python_3000_raise_comma(logical_line): - """ - When raising an exception, use "raise ValueError('message')" - instead of the older form "raise ValueError, 'message'". - - The paren-using form is preferred because when the exception arguments - are long or include string formatting, you don't need to use line - continuation characters thanks to the containing parentheses. The older - form is removed in Python 3. - - Okay: raise DummyError("Message") - W602: raise DummyError, "Message" - """ - match = RAISE_COMMA_REGEX.match(logical_line) - if match and not RERAISE_COMMA_REGEX.match(logical_line): - yield match.end() - 1, "W602" - - -def python_3000_not_equal(logical_line): - """ - != can also be written <>, but this is an obsolete usage kept for - backwards compatibility only. New code should always use !=. - The older syntax is removed in Python 3. - - Okay: if a != 'no': - W603: if a <> 'no': - """ - pos = logical_line.find('<>') - if pos > -1: - yield pos, "W603" - - -def python_3000_backticks(logical_line): - """ - Backticks are removed in Python 3. - Use repr() instead. - - Okay: val = repr(1 + 2) - W604: val = `1 + 2` - """ - pos = logical_line.find('`') - if pos > -1: - yield pos, "W604" - - -############################################################################## -# Helper functions -############################################################################## - - -if '' == ''.encode(): - # Python 2: implicit encoding. - def readlines(filename): - f = open(filename) - try: - return f.readlines() - finally: - f.close() - isidentifier = re.compile(r'[a-zA-Z_]\w*').match - stdin_get_value = sys.stdin.read -else: - # Python 3 - def readlines(filename): # __IGNORE_WARNING__ - f = open(filename, 'rb') - try: - coding, lines = tokenize.detect_encoding(f.readline) - f = TextIOWrapper(f, coding, line_buffering=True) - return [l.decode(coding) for l in lines] + f.readlines() - except (LookupError, SyntaxError, UnicodeError): - f.close() - # Fall back if files are improperly declared - f = open(filename, encoding='latin-1') - return f.readlines() - finally: - f.close() - isidentifier = str.isidentifier - - def stdin_get_value(): - return TextIOWrapper(sys.stdin.buffer, errors='ignore').read() -readlines.__doc__ = " Read the source code." -noqa = re.compile(r'# no(?:qa|pep8)\b', re.I).search - - -def expand_indent(line): - r""" - Return the amount of indentation. - Tabs are expanded to the next multiple of 8. - - >>> expand_indent(' ') - 4 - >>> expand_indent('\t') - 8 - >>> expand_indent(' \t') - 8 - >>> expand_indent(' \t') - 8 - >>> expand_indent(' \t') - 16 - """ - if '\t' not in line: - return len(line) - len(line.lstrip()) - result = 0 - for char in line: - if char == '\t': - result = result // 8 * 8 + 8 - elif char == ' ': - result += 1 - else: - break - return result - - -def mute_string(text): - """ - Replace contents with 'xxx' to prevent syntax matching. - - >>> mute_string('"abc"') - '"xxx"' - >>> mute_string("'''abc'''") - "'''xxx'''" - >>> mute_string("r'abc'") - "r'xxx'" - """ - # String modifiers (e.g. u or r) - start = text.index(text[-1]) + 1 - end = len(text) - 1 - # Triple quotes - if text[-3:] in ('"""', "'''"): - start += 2 - end -= 2 - return text[:start] + 'x' * (end - start) + text[end:] - - -def parse_udiff(diff, patterns=None, parent='.'): - """Return a dictionary of matching lines.""" - # For each file of the diff, the entry key is the filename, - # and the value is a set of row numbers to consider. - rv = {} - path = nrows = None - for line in diff.splitlines(): - if nrows: - if line[:1] != '-': - nrows -= 1 - continue - if line[:3] == '@@ ': - hunk_match = HUNK_REGEX.match(line) - row, nrows = [int(g or '1') for g in hunk_match.groups()] - rv[path].update(range(row, row + nrows)) - elif line[:3] == '+++': - path = line[4:].split('\t', 1)[0] - if path[:2] == 'b/': - path = path[2:] - rv[path] = set() - return dict([(os.path.join(parent, path), rows) - for (path, rows) in rv.items() - if rows and filename_match(path, patterns)]) - - -def filename_match(filename, patterns, default=True): - """ - Check if patterns contains a pattern that matches filename. - If patterns is unspecified, this always returns True. - """ - if not patterns: - return default - return any(fnmatch(filename, pattern) for pattern in patterns) - - -############################################################################## -# Framework to run all checks -############################################################################## - - -_checks = {'physical_line': {}, 'logical_line': {}, 'tree': {}} - - -def register_check(check, codes=None): - """ - Register a new check object. - """ - def _add_check(check, kind, codes, args): - if check in _checks[kind]: - _checks[kind][check][0].extend(codes or []) - else: - _checks[kind][check] = (codes or [''], args) - if inspect.isfunction(check): - args = inspect.getargspec(check)[0] - if args and args[0] in ('physical_line', 'logical_line'): - if codes is None: - codes = ERRORCODE_REGEX.findall(check.__doc__ or '') - _add_check(check, args[0], codes, args) - elif inspect.isclass(check): - if inspect.getargspec(check.__init__)[0][:2] == ['self', 'tree']: - _add_check(check, 'tree', codes, None) - - -def init_checks_registry(): - """ - Register all globally visible functions where the first argument name - is 'physical_line' or 'logical_line'. - """ - mod = inspect.getmodule(register_check) - for (name, function) in inspect.getmembers(mod, inspect.isfunction): - register_check(function) -init_checks_registry() - - -class Checker(object): - """ - Load a Python source file, tokenize it, check coding style. - """ - - def __init__(self, filename=None, lines=None, - options=None, report=None, **kwargs): - if options is None: - options = StyleGuide(kwargs).options - else: - assert not kwargs - self._io_error = None - self._physical_checks = options.physical_checks - self._logical_checks = options.logical_checks - self._ast_checks = options.ast_checks - self.max_line_length = options.max_line_length - self.hang_closing = options.hang_closing - self.verbose = options.verbose - self.filename = filename - if filename is None: - self.filename = 'stdin' - self.lines = lines or [] - elif filename == '-': - self.filename = 'stdin' - self.lines = stdin_get_value().splitlines(True) - elif lines is None: - try: - self.lines = readlines(filename) - except IOError: - exc_type, exc = sys.exc_info()[:2] - self._io_error = '%s: %s' % (exc_type.__name__, exc) - self.lines = [] - else: - self.lines = lines - if self.lines: - ord0 = ord(self.lines[0][0]) - if ord0 in (0xef, 0xfeff): # Strip the UTF-8 BOM - if ord0 == 0xfeff: - self.lines[0] = self.lines[0][1:] - elif self.lines[0][:3] == '\xef\xbb\xbf': - self.lines[0] = self.lines[0][3:] - self.report = report or options.report - self.report_error = self.report.error - self.report_error_args = self.report.error_args - - # added for eric5 integration - self.options = options - - def report_invalid_syntax(self): - exc_type, exc = sys.exc_info()[:2] - if len(exc.args) > 1: - offset = exc.args[1] - if len(offset) > 2: - offset = offset[1:3] - else: - offset = (1, 0) - self.report_error_args(offset[0], offset[1] or 0, - 'E901', self.report_invalid_syntax, - exc_type.__name__, exc.args[0]) - report_invalid_syntax.__doc__ = " Check if the syntax is valid." - - def readline(self): - """ - Get the next line from the input buffer. - """ - self.line_number += 1 - if self.line_number > len(self.lines): - return '' - return self.lines[self.line_number - 1] - - def readline_check_physical(self): - """ - Check and return the next physical line. This method can be - used to feed tokenize.generate_tokens. - """ - line = self.readline() - if line: - self.check_physical(line) - return line - - def run_check(self, check, argument_names): - """ - Run a check plugin. - """ - arguments = [] - for name in argument_names: - arguments.append(getattr(self, name)) - return check(*arguments) - - def check_physical(self, line): - """ - Run all physical checks on a raw input line. - """ - self.physical_line = line - if self.indent_char is None and line[:1] in WHITESPACE: - self.indent_char = line[0] - for name, check, argument_names in self._physical_checks: - result = self.run_check(check, argument_names) - if result is not None: - offset, code = result[:2] - args = result[2:] - self.report_error_args(self.line_number, offset, code, check, - *args) - - def build_tokens_line(self): - """ - Build a logical line from tokens. - """ - self.mapping = [] - logical = [] - comments = [] - length = 0 - previous = None - for token in self.tokens: - token_type, text = token[0:2] - if token_type == tokenize.COMMENT: - comments.append(text) - continue - if token_type in SKIP_TOKENS: - continue - if token_type == tokenize.STRING: - text = mute_string(text) - if previous: - end_row, end = previous[3] - start_row, start = token[2] - if end_row != start_row: # different row - prev_text = self.lines[end_row - 1][end - 1] - if prev_text == ',' or (prev_text not in '{[(' - and text not in '}])'): - logical.append(' ') - length += 1 - elif end != start: # different column - fill = self.lines[end_row - 1][end:start] - logical.append(fill) - length += len(fill) - self.mapping.append((length, token)) - logical.append(text) - length += len(text) - previous = token - self.logical_line = ''.join(logical) - self.noqa = comments and noqa(''.join(comments)) - # With Python 2, if the line ends with '\r\r\n' the assertion fails - # assert self.logical_line.strip() == self.logical_line - - def check_logical(self): - """ - Build a line from tokens and run all logical checks on it. - """ - self.build_tokens_line() - self.report.increment_logical_line() - first_line = self.lines[self.mapping[0][1][2][0] - 1] - indent = first_line[:self.mapping[0][1][2][1]] - self.previous_indent_level = self.indent_level - self.indent_level = expand_indent(indent) - if self.verbose >= 2: - print(self.logical_line[:80].rstrip()) - for name, check, argument_names in self._logical_checks: - if self.verbose >= 4: - print(' ' + name) - for result in self.run_check(check, argument_names): - offset, code = result[:2] - args = result[2:] - if isinstance(offset, tuple): - orig_number, orig_offset = offset - else: - for token_offset, token in self.mapping: - if offset >= token_offset: - orig_number = token[2][0] - orig_offset = (token[2][1] + offset - token_offset) - self.report_error_args(orig_number, orig_offset, code, check, - *args) - self.previous_logical = self.logical_line - - def check_ast(self): - try: - tree = compile(''.join(self.lines), '', 'exec', PyCF_ONLY_AST) - except (SyntaxError, TypeError): - return self.report_invalid_syntax() - for name, cls, _ in self._ast_checks: - # extended API for eric5 integration - checker = cls(tree, self.filename, self.options) - for result in checker.run(): - lineno, offset, code, check = result[:4] - args = result[4:] - if not noqa(self.lines[lineno - 1]): - self.report_error_args(lineno, offset, code, check, *args) - - def generate_tokens(self): - if self._io_error: - self.report_error(1, 0, 'E902 %s' % self._io_error, readlines) - tokengen = tokenize.generate_tokens(self.readline_check_physical) - try: - for token in tokengen: - yield token - except (SyntaxError, tokenize.TokenError): - self.report_invalid_syntax() - - def check_all(self, expected=None, line_offset=0): - """ - Run all checks on the input file. - """ - self.report.init_file(self.filename, self.lines, expected, line_offset) - if self._ast_checks: - self.check_ast() - self.line_number = 0 - self.indent_char = None - self.indent_level = 0 - self.previous_logical = '' - self.tokens = [] - self.blank_lines = blank_lines_before_comment = 0 - parens = 0 - for token in self.generate_tokens(): - self.tokens.append(token) - token_type, text = token[0:2] - if self.verbose >= 3: - if token[2][0] == token[3][0]: - pos = '[%s:%s]' % (token[2][1] or '', token[3][1]) - else: - pos = 'l.%s' % token[3][0] - print('l.%s\t%s\t%s\t%r' % - (token[2][0], pos, tokenize.tok_name[token[0]], text)) - if token_type == tokenize.OP: - if text in '([{': - parens += 1 - elif text in '}])': - parens -= 1 - elif not parens: - if token_type == tokenize.NEWLINE: - if self.blank_lines < blank_lines_before_comment: - self.blank_lines = blank_lines_before_comment - self.check_logical() - self.tokens = [] - self.blank_lines = blank_lines_before_comment = 0 - elif token_type == tokenize.NL: - if len(self.tokens) == 1: - # The physical line contains only this token. - self.blank_lines += 1 - self.tokens = [] - elif token_type == tokenize.COMMENT and len(self.tokens) == 1: - if blank_lines_before_comment < self.blank_lines: - blank_lines_before_comment = self.blank_lines - self.blank_lines = 0 - if COMMENT_WITH_NL: - # The comment also ends a physical line - self.tokens = [] - return self.report.get_file_results() - - -class BaseReport(object): - """Collect the results of the checks.""" - print_filename = False - - def __init__(self, options): - self._benchmark_keys = options.benchmark_keys - self._ignore_code = options.ignore_code - # Results - self.elapsed = 0 - self.total_errors = 0 - self.counters = dict.fromkeys(self._benchmark_keys, 0) - self.messages = {} - - def start(self): - """Start the timer.""" - self._start_time = time.time() - - def stop(self): - """Stop the timer.""" - self.elapsed = time.time() - self._start_time - - def init_file(self, filename, lines, expected, line_offset): - """Signal a new file.""" - self.filename = filename - self.lines = lines - self.expected = expected or () - self.line_offset = line_offset - self.file_errors = 0 - self.counters['files'] += 1 - self.counters['physical lines'] += len(lines) - - def increment_logical_line(self): - """Signal a new logical line.""" - self.counters['logical lines'] += 1 - - def error(self, line_number, offset, text, check): - """Report an error, according to options.""" - code = text[:4] - if self._ignore_code(code): - return - if code in self.counters: - self.counters[code] += 1 - else: - self.counters[code] = 1 - self.messages[code] = text[5:] - # Don't care about expected errors or warnings - if code in self.expected: - return - if self.print_filename and not self.file_errors: - print(self.filename) - self.file_errors += 1 - self.total_errors += 1 - return code - - def error_args(self, line_number, offset, code, check, *args): - """Report an error, according to options.""" - if self._ignore_code(code): - return - if code in self.counters: - self.counters[code] += 1 - else: - self.counters[code] = 1 - # Don't care about expected errors or warnings - if code in self.expected: - return - if self.print_filename and not self.file_errors: - print(self.filename) - self.file_errors += 1 - self.total_errors += 1 - return code - - def get_file_results(self): - """Return the count of errors and warnings for this file.""" - return self.file_errors - - def get_count(self, prefix=''): - """Return the total count of errors and warnings.""" - return sum([self.counters[key] - for key in self.messages if key.startswith(prefix)]) - - def get_statistics(self, prefix=''): - """ - Get statistics for message codes that start with the prefix. - - prefix='' matches all errors and warnings - prefix='E' matches all errors - prefix='W' matches all warnings - prefix='E4' matches all errors that have to do with imports - """ - return ['%-7s %s %s' % (self.counters[key], key, self.messages[key]) - for key in sorted(self.messages) if key.startswith(prefix)] - - def print_statistics(self, prefix=''): - """Print overall statistics (number of errors and warnings).""" - for line in self.get_statistics(prefix): - print(line) - - def print_benchmark(self): - """Print benchmark numbers.""" - print('%-7.2f %s' % (self.elapsed, 'seconds elapsed')) - if self.elapsed: - for key in self._benchmark_keys: - print('%-7d %s per second (%d total)' % - (self.counters[key] / self.elapsed, key, - self.counters[key])) - - -class FileReport(BaseReport): - """Collect the results of the checks and print only the filenames.""" - print_filename = True - - -class StandardReport(BaseReport): - """Collect and print the results of the checks.""" - - def __init__(self, options): - super(StandardReport, self).__init__(options) - self._fmt = REPORT_FORMAT.get(options.format.lower(), - options.format) - self._repeat = options.repeat - self._show_source = options.show_source - self._show_pep8 = options.show_pep8 - - def init_file(self, filename, lines, expected, line_offset): - """Signal a new file.""" - self._deferred_print = [] - return super(StandardReport, self).init_file( - filename, lines, expected, line_offset) - - def error(self, line_number, offset, text, check): - """Report an error, according to options.""" - code = super(StandardReport, self).error(line_number, offset, - text, check) - if code and (self.counters[code] == 1 or self._repeat): - self._deferred_print.append( - (line_number, offset, code, text[5:], check.__doc__)) - return code - - def error_args(self, line_number, offset, code, check, *args): - """Report an error, according to options.""" - code = super(StandardReport, self).error_args(line_number, offset, - code, check, *args) - if code and (self.counters[code] == 1 or self._repeat): - self._deferred_print.append( - (line_number, offset, code, "", check.__doc__)) - return code - - def get_file_results(self): - """Print the result and return the overall count for this file.""" - self._deferred_print.sort() - for line_number, offset, code, text, doc in self._deferred_print: - print(self._fmt % { - 'path': self.filename, - 'row': self.line_offset + line_number, 'col': offset + 1, - 'code': code, 'text': text, - }) - if self._show_source: - if line_number > len(self.lines): - line = '' - else: - line = self.lines[line_number - 1] - print(line.rstrip()) - print(' ' * offset + '^') - if self._show_pep8 and doc: - print(doc.lstrip('\n').rstrip()) - return self.file_errors - - -class DiffReport(StandardReport): - """Collect and print the results for the changed lines only.""" - - def __init__(self, options): - super(DiffReport, self).__init__(options) - self._selected = options.selected_lines - - def error(self, line_number, offset, text, check): - if line_number not in self._selected[self.filename]: - return - return super(DiffReport, self).error(line_number, offset, text, check) - - -class StyleGuide(object): - """Initialize a PEP-8 instance with few options.""" - - def __init__(self, *args, **kwargs): - # build options from the command line - self.checker_class = kwargs.pop('checker_class', Checker) - parse_argv = kwargs.pop('parse_argv', False) - config_file = kwargs.pop('config_file', None) - parser = kwargs.pop('parser', None) - options, self.paths = process_options( - parse_argv=parse_argv, config_file=config_file, parser=parser) - if args or kwargs: - # build options from dict - options_dict = dict(*args, **kwargs) - options.__dict__.update(options_dict) - if 'paths' in options_dict: - self.paths = options_dict['paths'] - - self.runner = self.input_file - self.options = options - - if not options.reporter: - options.reporter = BaseReport if options.quiet else StandardReport - - for index, value in enumerate(options.exclude): - options.exclude[index] = value.rstrip('/') - options.select = tuple(options.select or ()) - if not (options.select or options.ignore or - options.testsuite or options.doctest) and DEFAULT_IGNORE: - # The default choice: ignore controversial checks - options.ignore = tuple(DEFAULT_IGNORE.split(',')) - else: - # Ignore all checks which are not explicitly selected - options.ignore = ('',) if options.select else tuple(options.ignore) - options.benchmark_keys = BENCHMARK_KEYS[:] - options.ignore_code = self.ignore_code - options.physical_checks = self.get_checks('physical_line') - options.logical_checks = self.get_checks('logical_line') - options.ast_checks = self.get_checks('tree') - self.init_report() - - def init_report(self, reporter=None): - """Initialize the report instance.""" - self.options.report = (reporter or self.options.reporter)(self.options) - return self.options.report - - def check_files(self, paths=None): - """Run all checks on the paths.""" - if paths is None: - paths = self.paths - report = self.options.report - runner = self.runner - report.start() - try: - for path in paths: - if os.path.isdir(path): - self.input_dir(path) - elif not self.excluded(path): - runner(path) - except KeyboardInterrupt: - print('... stopped') - report.stop() - return report - - def input_file(self, filename, lines=None, expected=None, line_offset=0): - """Run all checks on a Python source file.""" - if self.options.verbose: - print('checking %s' % filename) - fchecker = self.checker_class( - filename, lines=lines, options=self.options) - return fchecker.check_all(expected=expected, line_offset=line_offset) - - def input_dir(self, dirname): - """Check all files in this directory and all subdirectories.""" - dirname = dirname.rstrip('/') - if self.excluded(dirname): - return 0 - counters = self.options.report.counters - verbose = self.options.verbose - filepatterns = self.options.filename - runner = self.runner - for root, dirs, files in os.walk(dirname): - if verbose: - print('directory ' + root) - counters['directories'] += 1 - for subdir in sorted(dirs): - if self.excluded(subdir, root): - dirs.remove(subdir) - for filename in sorted(files): - # contain a pattern that matches? - if ((filename_match(filename, filepatterns) and - not self.excluded(filename, root))): - runner(os.path.join(root, filename)) - - def excluded(self, filename, parent=None): - """ - Check if options.exclude contains a pattern that matches filename. - """ - if not self.options.exclude: - return False - basename = os.path.basename(filename) - if filename_match(basename, self.options.exclude): - return True - if parent: - filename = os.path.join(parent, filename) - return filename_match(filename, self.options.exclude) - - def ignore_code(self, code): - """ - Check if the error code should be ignored. - - If 'options.select' contains a prefix of the error code, - return False. Else, if 'options.ignore' contains a prefix of - the error code, return True. - """ - return (code.startswith(self.options.ignore) and - not code.startswith(self.options.select)) - - def get_checks(self, argument_name): - """ - Find all globally visible functions where the first argument name - starts with argument_name and which contain selected tests. - """ - checks = [] - for check, attrs in _checks[argument_name].items(): - (codes, args) = attrs - if any(not (code and self.ignore_code(code)) for code in codes): - checks.append((check.__name__, check, args)) - return sorted(checks) - - -def get_parser(prog='pep8', version=__version__): - parser = OptionParser(prog=prog, version=version, - usage="%prog [options] input ...") - parser.config_options = [ - 'exclude', 'filename', 'select', 'ignore', 'max-line-length', - 'hang-closing', 'count', 'format', 'quiet', 'show-pep8', - 'show-source', 'statistics', 'verbose'] - parser.add_option('-v', '--verbose', default=0, action='count', - help="print status messages, or debug with -vv") - parser.add_option('-q', '--quiet', default=0, action='count', - help="report only file names, or nothing with -qq") - parser.add_option('-r', '--repeat', default=True, action='store_true', - help="(obsolete) show all occurrences of the same error") - parser.add_option('--first', action='store_false', dest='repeat', - help="show first occurrence of each error") - parser.add_option('--exclude', metavar='patterns', default=DEFAULT_EXCLUDE, - help="exclude files or directories which match these " - "comma separated patterns (default: %default)") - parser.add_option('--filename', metavar='patterns', default='*.py', - help="when parsing directories, only check filenames " - "matching these comma separated patterns " - "(default: %default)") - parser.add_option('--select', metavar='errors', default='', - help="select errors and warnings (e.g. E,W6)") - parser.add_option('--ignore', metavar='errors', default='', - help="skip errors and warnings (e.g. E4,W)") - parser.add_option('--show-source', action='store_true', - help="show source code for each error") - parser.add_option('--show-pep8', action='store_true', - help="show text of PEP 8 for each error " - "(implies --first)") - parser.add_option('--statistics', action='store_true', - help="count errors and warnings") - parser.add_option('--count', action='store_true', - help="print total number of errors and warnings " - "to standard error and set exit code to 1 if " - "total is not null") - parser.add_option('--max-line-length', type='int', metavar='n', - default=MAX_LINE_LENGTH, - help="set maximum allowed line length " - "(default: %default)") - parser.add_option('--hang-closing', action='store_true', - help="hang closing bracket instead of matching " - "indentation of opening bracket's line") - parser.add_option('--format', metavar='format', default='default', - help="set the error format [default|pylint|<custom>]") - parser.add_option('--diff', action='store_true', - help="report only lines changed according to the " - "unified diff received on STDIN") - group = parser.add_option_group("Testing Options") - if os.path.exists(TESTSUITE_PATH): - group.add_option('--testsuite', metavar='dir', - help="run regression tests from dir") - group.add_option('--doctest', action='store_true', - help="run doctest on myself") - group.add_option('--benchmark', action='store_true', - help="measure processing speed") - return parser - - -def read_config(options, args, arglist, parser): - """Read both user configuration and local configuration.""" - config = RawConfigParser() - - user_conf = options.config - if user_conf and os.path.isfile(user_conf): - if options.verbose: - print('user configuration: %s' % user_conf) - config.read(user_conf) - - parent = tail = args and os.path.abspath(os.path.commonprefix(args)) - while tail: - if config.read([os.path.join(parent, fn) for fn in PROJECT_CONFIG]): - if options.verbose: - print('local configuration: in %s' % parent) - break - parent, tail = os.path.split(parent) - - pep8_section = parser.prog - if config.has_section(pep8_section): - option_list = dict([(o.dest, o.type or o.action) - for o in parser.option_list]) - - # First, read the default values - new_options, _ = parser.parse_args([]) - - # Second, parse the configuration - for opt in config.options(pep8_section): - if options.verbose > 1: - print(" %s = %s" % (opt, config.get(pep8_section, opt))) - if opt.replace('_', '-') not in parser.config_options: - print("Unknown option: '%s'\n not in [%s]" % - (opt, ' '.join(parser.config_options))) - sys.exit(1) - normalized_opt = opt.replace('-', '_') - opt_type = option_list[normalized_opt] - if opt_type in ('int', 'count'): - value = config.getint(pep8_section, opt) - elif opt_type == 'string': - value = config.get(pep8_section, opt) - else: - assert opt_type in ('store_true', 'store_false') - value = config.getboolean(pep8_section, opt) - setattr(new_options, normalized_opt, value) - - # Third, overwrite with the command-line options - options, _ = parser.parse_args(arglist, values=new_options) - options.doctest = options.testsuite = False - return options - - -def process_options(arglist=None, parse_argv=False, config_file=None, - parser=None): - """Process options passed either via arglist or via command line args.""" - if not arglist and not parse_argv: - # Don't read the command line if the module is used as a library. - arglist = [] - if not parser: - parser = get_parser() - if not parser.has_option('--config'): - if config_file is True: - config_file = DEFAULT_CONFIG - group = parser.add_option_group("Configuration", description=( - "The project options are read from the [%s] section of the " - "tox.ini file or the setup.cfg file located in any parent folder " - "of the path(s) being processed. Allowed options are: %s." % - (parser.prog, ', '.join(parser.config_options)))) - group.add_option('--config', metavar='path', default=config_file, - help="user config file location (default: %default)") - options, args = parser.parse_args(arglist) - options.reporter = None - - if options.ensure_value('testsuite', False): - args.append(options.testsuite) - elif not options.ensure_value('doctest', False): - if parse_argv and not args: - if options.diff or any(os.path.exists(name) - for name in PROJECT_CONFIG): - args = ['.'] - else: - parser.error('input not specified') - options = read_config(options, args, arglist, parser) - options.reporter = parse_argv and options.quiet == 1 and FileReport - - options.filename = options.filename and options.filename.split(',') - options.exclude = options.exclude.split(',') - options.select = options.select and options.select.split(',') - options.ignore = options.ignore and options.ignore.split(',') - - if options.diff: - options.reporter = DiffReport - stdin = stdin_get_value() - options.selected_lines = parse_udiff(stdin, options.filename, args[0]) - args = sorted(options.selected_lines) - - return options, args - - -def _main(): - """Parse options and run checks on Python source.""" - pep8style = StyleGuide(parse_argv=True, config_file=True) - options = pep8style.options - if options.doctest or options.testsuite: - from testsuite.support import run_tests - report = run_tests(pep8style) - else: - report = pep8style.check_files() - if options.statistics: - report.print_statistics() - if options.benchmark: - report.print_benchmark() - if options.testsuite and not options.quiet: - report.print_results() - if report.total_errors: - if options.count: - sys.stderr.write(str(report.total_errors) + '\n') - sys.exit(1) - -if __name__ == '__main__': - _main() - -# -# eflag: FileType = Python2
--- a/eric5.e4p Sun Jan 05 22:45:29 2014 +0100 +++ b/eric5.e4p Wed Jan 15 22:55:52 2014 +0100 @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE Project SYSTEM "Project-5.1.dtd"> <!-- eric5 project file for project eric5 --> -<!-- Saved: 2014-01-04, 21:59:29 --> +<!-- Saved: 2014-01-14, 23:44:35 --> <!-- Copyright (C) 2014 Detlev Offenbach, detlev@die-offenbachs.de --> <Project version="5.1"> <Language>en_US</Language> @@ -1095,17 +1095,11 @@ <Source>Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py</Source> <Source>Plugins/CheckerPlugins/CodeStyleChecker/NamingStyleChecker.py</Source> <Source>Plugins/PluginCodeStyleChecker.py</Source> - <Source>UtilitiesPython2/CodeStyleChecker.py</Source> - <Source>UtilitiesPython2/DocStyleCheckerPy2.py</Source> - <Source>UtilitiesPython2/NamingStyleCheckerPy2.py</Source> <Source>Helpviewer/Bookmarks/DefaultBookmarks_rc.py</Source> <Source>Helpviewer/OpenSearch/DefaultSearchEngines/__init__.py</Source> <Source>Helpviewer/OpenSearch/DefaultSearchEngines/DefaultSearchEngines_rc.py</Source> <Source>Helpviewer/UserAgent/UserAgentDefaults_rc.py</Source> <Source>E5Gui/E5ProgressDialog.py</Source> - <Source>UtilitiesPython2/pep8.py</Source> - <Source>UtilitiesPython2/__init__.py</Source> - <Source>UtilitiesPython2/Tools.py</Source> <Source>Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheck.py</Source> <Source>Utilities/BackgroundClient.py</Source> <Source>Utilities/BackgroundService.py</Source> @@ -1925,7 +1919,7 @@ <string>ExcludeFiles</string> </key> <value> - <string>*/ThirdParty/*, */coverage/*, */Ui_*.py, */Examples/*, */*_rc.py,*/pep8.py,*/py[23]flakes/checker.py</string> + <string>*/ThirdParty/*, */coverage/*, */Ui_*.py, */Examples/*, */*_rc.py,*/pep8.py,*/pyflakes/checker.py</string> </value> <key> <string>ExcludeMessages</string>
--- a/eric5.py Sun Jan 05 22:45:29 2014 +0100 +++ b/eric5.py Wed Jan 15 22:55:52 2014 +0100 @@ -14,13 +14,13 @@ from __future__ import unicode_literals try: # Only for Py2 + import StringIO as io import sip sip.setapi('QString', 2) sip.setapi('QVariant', 2) sip.setapi('QTextStream', 2) - import StringIO as io import Utilities.compatibility_fixes # __IGNORE_WARNING__ -except (ImportError): +except ImportError: import io # __IGNORE_WARNING__ import sys
--- a/i18n/eric5_de.ts Sun Jan 05 22:45:29 2014 +0100 +++ b/i18n/eric5_de.ts Wed Jan 15 22:55:52 2014 +0100 @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS><TS version="2.0" language="de" sourcelanguage=""> +<!DOCTYPE TS> +<TS version="2.0" language="de"> <context> <name>AboutDialog</name> <message> @@ -1398,6 +1399,14 @@ </message> </context> <context> + <name>BackgroundService</name> + <message> + <location filename="../Utilities/BackgroundService.py" line="134"/> + <source>Python{0} interpreter not configured.</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>BookmarkActionSelectionDialog</name> <message> <location filename="../Helpviewer/UrlBar/BookmarkActionSelectionDialog.ui" line="27"/> @@ -1948,8 +1957,8 @@ </message> <message> <location filename="../Helpviewer/Bookmarks/BookmarksMenu.py" line="144"/> - <source>Open in New &Tab<byte value="x9"/>Ctrl+LMB</source> - <translation>In neuem &Register öffnen<byte value="x9"/>Strg+LMK</translation> + <source>Open in New &Tab Ctrl+LMB</source> + <translation>In neuem &Register öffnen Strg+LMK</translation> </message> </context> <context> @@ -2185,8 +2194,8 @@ </message> <message> <location filename="../Helpviewer/Bookmarks/BookmarksToolBar.py" line="92"/> - <source>Open in New &Tab<byte value="x9"/>Ctrl+LMB</source> - <translation>In neuem &Register öffnen<byte value="x9"/>Strg+LMK</translation> + <source>Open in New &Tab Ctrl+LMB</source> + <translation>In neuem &Register öffnen Strg+LMK</translation> </message> </context> <context> @@ -3301,47 +3310,47 @@ <translation>Nachricht</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="95"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="54"/> <source>PEP-257</source> <translation>PEP-257</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="96"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="55"/> <source>Eric</source> <translation>Eric</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="98"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="57"/> <source>Statistics...</source> <translation>Statistik...</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="100"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="59"/> <source>Press to show some statistics for the last run</source> <translation>Drücken, um eine Statistik für den letzten Lauf zu zeigen</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="103"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="62"/> <source>Show</source> <translation>Zeige</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="105"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="64"/> <source>Press to show all files containing an issue</source> <translation>Drücken, um alle Dateien mit Problemen anzuzeigen</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="404"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="382"/> <source>Error: {0}</source> <translation>Fehler: {0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="884"/> + <location filename="../Utilities/InternalServices.py" line="174"/> <source>Fix: {0}</source> <translation>Lösung: {0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="547"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="467"/> <source>No issues found.</source> <translation>Keine Probleme gefunden.</translation> </message> @@ -3384,12 +3393,12 @@ <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleChecker.py" line="61"/> <source>Python2 interpreter not configured.</source> - <translation>Kein Python 2-Interpreter konfiguriert.</translation> + <translation type="obsolete">Kein Python 2-Interpreter konfiguriert.</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleChecker.py" line="134"/> <source>Python2 interpreter did not finish within 15s.</source> - <translation>Python 2-Interpreter wurde nicht innerhalb von 15s beendet.</translation> + <translation type="obsolete">Python 2-Interpreter wurde nicht innerhalb von 15s beendet.</translation> </message> </context> <context> @@ -3425,75 +3434,75 @@ <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="187"/> <source>Fix Code Style Issues</source> - <translation>Quelltextstil-Probleme beheben</translation> + <translation type="obsolete">Quelltextstil-Probleme beheben</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="187"/> <source><p>Could not save the file <b>{0}</b>. Skipping it.</p><p>Reason: {1}</p></source> - <translation><p>Die Datei <b>{0}</b> konnte nicht gespeichert werden. Überspringe sie.</p><p>Ursache: {1}</p></translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="514"/> + <translation type="obsolete"><p>Die Datei <b>{0}</b> konnte nicht gespeichert werden. Überspringe sie.</p><p>Ursache: {1}</p></translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="507"/> <source>Triple single quotes converted to triple double quotes.</source> <translation>Dreifache Einfachanführungszeichen in dreifache Doppelanführungszeichen umgewandelt.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="544"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="535"/> <source>Introductory quotes corrected to be {0}"""</source> <translation>Einleitende Anführungszeichen in {0}""" korrigiert</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="582"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="572"/> <source>Single line docstring put on one line.</source> <translation>Einzeiligen Docstring auf eine Zeile gebracht.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="622"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="614"/> <source>Period added to summary line.</source> <translation>Punkt an die Zusammenfassungszeile angefügt.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="836"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="833"/> <source>Blank line before function/method docstring removed.</source> <translation>Leerzeile vor Funktions-/Methodendocstring entfernt.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="674"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="672"/> <source>Blank line inserted before class docstring.</source> <translation>Leerzeile vor Klassendocstring eingefügt.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="702"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="699"/> <source>Blank line inserted after class docstring.</source> <translation>Leerzeile nach Klassendocstring eingefügt.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="734"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="730"/> <source>Blank line inserted after docstring summary.</source> <translation>Leerzeile nach Docstring Zusammenfassung eingefügt.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="762"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="757"/> <source>Blank line inserted after last paragraph of docstring.</source> <translation>Leerzeile nach letztem Abschnitt des Docstring eingefügt.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="805"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="798"/> <source>Leading quotes put on separate line.</source> <translation>Einleitende Anführungszeichen auf separate Zeile gesetzt.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="807"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="801"/> <source>Trailing quotes put on separate line.</source> <translation>Schließende Anführungszeichen auf separate Zeile gesetzt.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="834"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="829"/> <source>Blank line before class docstring removed.</source> <translation>Leerzeile vor Klassendocstring entfernt.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="864"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="862"/> <source>Blank line after class docstring removed.</source> <translation>Leerzeile nach Klassendocstring entfernt.</translation> </message> @@ -3503,7 +3512,7 @@ <translation>Leerzeile nach Funktions-/Methodendocstring entfernt.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="893"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="894"/> <source>Blank line after last paragraph removed.</source> <translation>Leerzeile nach letzten Abschnitt entfernt.</translation> </message> @@ -3513,146 +3522,150 @@ <translation>Tabulator in 4 Leerzeichen gewandelt.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="924"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="925"/> <source>Indentation adjusted to be a multiple of four.</source> <translation>Einrückung auf ein Vielfaches von vier korrigiert.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="953"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="955"/> <source>Indentation of continuation line corrected.</source> <translation>Einrückung der Fortsetzungszeile korrigiert.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="956"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="959"/> <source>Indentation of closing bracket corrected.</source> <translation>Einrückung der schließenden Klammer korrigiert.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="992"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="996"/> <source>Missing indentation of continuation line corrected.</source> <translation>Fehlende Einrückung der Fortsetzungszeile korrigiert.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1033"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1035"/> <source>Closing bracket aligned to opening bracket.</source> <translation>Schließende Klammer an öffnender Klammer ausgerichtet.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1068"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1069"/> <source>Indentation level changed.</source> <translation>Einrückungsebene geändert.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1107"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1109"/> <source>Indentation level of hanging indentation changed.</source> <translation>Einrückungsebene der hängenden Einrückung geändert.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1163"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1166"/> <source>Visual indentation corrected.</source> <translation>Visuelle Einrückung korrigiert.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1281"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1290"/> <source>Extraneous whitespace removed.</source> <translation>Überzählige Leerzeichen gelöscht.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1244"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1252"/> <source>Missing whitespace added.</source> <translation>Fehlende Leerzeichen eingefügt.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1302"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1312"/> <source>Whitespace around comment sign corrected.</source> <translation>Leerzeichen um Kommentarzeichen korrigiert.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1321"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1333"/> <source>One blank line inserted.</source> <translation>Eine Leerzeile eingefügt.</translation> </message> - <message numerus="yes"> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1373"/> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1386"/> <source>%n blank line(s) inserted.</source> - <translation> - <numerusform>%n Leerzeile eingefügt.</numerusform> - <numerusform>%n Leerzeilen eingefügt.</numerusform> - </translation> - </message> - <message numerus="yes"> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1376"/> + <translation type="obsolete">%n Leerzeile eingefügt.</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1390"/> <source>%n superfluous lines removed</source> - <translation> - <numerusform>%n überflüssige Zeile gelöscht</numerusform> - <numerusform>%n überflüssige Zeilen gelöscht</numerusform> - </translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1410"/> + <translation type="obsolete">%n überflüssige Zeile gelöscht</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1426"/> <source>Superfluous blank lines removed.</source> <translation>Überflüssige Leerzeilen gelöscht.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1440"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1457"/> <source>Superfluous blank lines after function decorator removed.</source> <translation>Überflüssige Leerzeilen nach Funktionsdekorator gelöscht.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1478"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1495"/> <source>Imports were put on separate lines.</source> <translation>Imports wurden auf separate Zeilen verteilt.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1525"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1544"/> <source>Long lines have been shortened.</source> <translation>Lange Zeilen wurden gekürzt.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1548"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1569"/> <source>Redundant backslash in brackets removed.</source> <translation>Redundante Backslashes in Klammern entfernt.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1609"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1633"/> <source>Compound statement corrected.</source> <translation>Compund Statement korrigiert.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1650"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1675"/> <source>Comparison to None/True/False corrected.</source> <translation>Vergleich mit None/True/False korrigiert.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1689"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1716"/> <source>'{0}' argument added.</source> <translation>'{0}' Argument hinzugefügt.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1749"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1778"/> <source>'{0}' argument removed.</source> <translation>'{0}' Argument entfernt.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1770"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1801"/> <source>Whitespace stripped from end of line.</source> <translation>Leerzeichen am Zeilenende entfernt.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1786"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1818"/> <source>newline added to end of file.</source> <translation>Zeilenvorschub am Dateiende angefügt.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1808"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1841"/> <source>Superfluous trailing blank lines removed from end of file.</source> <translation>Überflüssige Leerzeilen am Dateiende gelöscht.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1825"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1860"/> <source>'<>' replaced by '!='.</source> <translation>„<>“ durch „!=“ ersetzt.</translation> </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1386"/> + <source>{0} blank line(s) inserted.</source> + <translation>{0} Leerzeile(n) eingefügt.</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py" line="1390"/> + <source>{0} superfluous line(s) removed.</source> + <translation>{0} überflüssige Zeile(n) gelöscht.</translation> + </message> </context> <context> <name>CodeStyleStatisticsDialog</name> @@ -3712,7 +3725,7 @@ <context> <name>CodingError</name> <message> - <location filename="../Utilities/__init__.py" line="117"/> + <location filename="../Utilities/__init__.py" line="120"/> <source>The coding '{0}' is wrong for the given text.</source> <translation>Die Kodierung „{0}“ ist für den übergebenen Text falsch.</translation> </message> @@ -6945,194 +6958,194 @@ <context> <name>DocStyleChecker</name> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="128"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="125"/> <source>module is missing a docstring</source> <translation>Modul hat keinen Docstring</translation> </message> <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="127"/> + <source>public function/method is missing a docstring</source> + <translation>Öffentliche Funktion/Methode hat keinen Docstring</translation> + </message> + <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="130"/> - <source>public function/method is missing a docstring</source> - <translation>Öffentliche Funktion/Methode hat keinen Docstring</translation> + <source>private function/method may be missing a docstring</source> + <translation>Private Funktion/Methode hat keinen Docstring</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="133"/> - <source>private function/method may be missing a docstring</source> - <translation>Private Funktion/Methode hat keinen Docstring</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="136"/> <source>public class is missing a docstring</source> <translation>Öffentliche Klasse hat keinen Docstring</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="138"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="135"/> <source>private class may be missing a docstring</source> <translation>Private Klasse hat keinen Docstring</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="140"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="137"/> <source>docstring not surrounded by """</source> <translation>Docstring nicht durch """ eingeschlossen</translation> </message> <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="139"/> + <source>docstring containing \ not surrounded by r"""</source> + <translation>Docstring, der \ enthält, nicht durch r""" eingeschlossen</translation> + </message> + <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="142"/> - <source>docstring containing \ not surrounded by r"""</source> - <translation>Docstring, der \ enthält, nicht durch r""" eingeschlossen</translation> + <source>docstring containing unicode character not surrounded by u"""</source> + <translation>Docstring, der Unicode Zeichen enthält, nicht durch u""" eingeschlossen</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="145"/> - <source>docstring containing unicode character not surrounded by u"""</source> - <translation>Docstring, der Unicode Zeichen enthält, nicht durch u""" eingeschlossen</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="148"/> <source>one-liner docstring on multiple lines</source> <translation>einzeiliger Docstring über mehrere Zeilen</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="150"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="147"/> <source>docstring has wrong indentation</source> <translation>Docstring hat falsche Einrückung</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="191"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="188"/> <source>docstring summary does not end with a period</source> <translation>Docstring Zusammenfassung endet nicht mit einem Punkt</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="154"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="151"/> <source>docstring summary is not in imperative mood (Does instead of Do)</source> <translation>Docstring Zusammenfassung nicht im Imperativ (Tut anstelle Tue)</translation> </message> <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="155"/> + <source>docstring summary looks like a function's/method's signature</source> + <translation>Docstring Zusammenfassung scheint Funktion-/Methodensignatur zu sein</translation> + </message> + <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="158"/> - <source>docstring summary looks like a function's/method's signature</source> - <translation>Docstring Zusammenfassung scheint Funktion-/Methodensignatur zu sein</translation> + <source>docstring does not mention the return value type</source> + <translation>Docstring erwähnt nicht den Typ des Rückgabewertes</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="161"/> - <source>docstring does not mention the return value type</source> - <translation>Docstring erwähnt nicht den Typ des Rückgabewertes</translation> + <source>function/method docstring is separated by a blank line</source> + <translation>Funktions-/Methodendocstring ist durch eine Leerzeile abgetrennt</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="164"/> - <source>function/method docstring is separated by a blank line</source> - <translation>Funktions-/Methodendocstring ist durch eine Leerzeile abgetrennt</translation> + <source>class docstring is not preceded by a blank line</source> + <translation>Klassendocstring hat keine führende Leerzeile</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="167"/> - <source>class docstring is not preceded by a blank line</source> - <translation>Klassendocstring hat keine führende Leerzeile</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="170"/> <source>class docstring is not followed by a blank line</source> <translation>Klassendocstring hat keine nachfolgende Leerzeile</translation> </message> <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="220"/> + <source>docstring summary is not followed by a blank line</source> + <translation>Docstring Zusammenfassung hat keine folgende Leerzeile</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="173"/> + <source>last paragraph of docstring is not followed by a blank line</source> + <translation>letzter Abschnitt des Docstring hat keine folgende Leerzeile</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="177"/> + <source>private function/method is missing a docstring</source> + <translation>Private Funktion/Methode hat keinen Docstring</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="180"/> + <source>private class is missing a docstring</source> + <translation>Private Klasse hat keinen Docstring</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="182"/> + <source>leading quotes of docstring not on separate line</source> + <translation>einleitende Anführungszeichen nicht auf separater Zeile</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="185"/> + <source>trailing quotes of docstring not on separate line</source> + <translation>schließende Anführungszeichen nicht auf separater Zeile</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="190"/> + <source>docstring does not contain a @return line but function/method returns something</source> + <translation>Docstring enthält keine @return Zeile obwohl die Funktion/Methode etwas zurückgibt</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="194"/> + <source>docstring contains a @return line but function/method doesn't return anything</source> + <translation>Docstring enthält eine @return Zeile obwohl die Funktion/Methode nichts zurückgibt</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="198"/> + <source>docstring does not contain enough @param/@keyparam lines</source> + <translation>Docstring enthält nicht genügend @param/@keyparam Zeilen</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="201"/> + <source>docstring contains too many @param/@keyparam lines</source> + <translation>Docstring enthält zu viele @param/@keyparam Zeilen</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="204"/> + <source>keyword only arguments must be documented with @keyparam lines</source> + <translation>'keyword only' Argumente müssen mit @keyparam Zeilen dokumentiert werden</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="207"/> + <source>order of @param/@keyparam lines does not match the function/method signature</source> + <translation>Reihenfolge der @param/@keyparam Zeilen stimmt nicht mit der Funktions-/Methodensignatur überein</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="210"/> + <source>class docstring is preceded by a blank line</source> + <translation>Klassendocstring hat eine führende Leerzeile</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="212"/> + <source>class docstring is followed by a blank line</source> + <translation>Klassendocstring hat eine nachfolgende Leerzeile</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="214"/> + <source>function/method docstring is preceded by a blank line</source> + <translation>Funktions-/Methodendocstring hat eine führende Leerzeile</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="217"/> + <source>function/method docstring is followed by a blank line</source> + <translation>Funktions-/Methodendocstring hat eine nachfolgende Leerzeile</translation> + </message> + <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="223"/> - <source>docstring summary is not followed by a blank line</source> - <translation>Docstring Zusammenfassung hat keine folgende Leerzeile</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="176"/> - <source>last paragraph of docstring is not followed by a blank line</source> - <translation>letzter Abschnitt des Docstring hat keine folgende Leerzeile</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="180"/> - <source>private function/method is missing a docstring</source> - <translation>Private Funktion/Methode hat keinen Docstring</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="183"/> - <source>private class is missing a docstring</source> - <translation>Private Klasse hat keinen Docstring</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="185"/> - <source>leading quotes of docstring not on separate line</source> - <translation>einleitende Anführungszeichen nicht auf separater Zeile</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="188"/> - <source>trailing quotes of docstring not on separate line</source> - <translation>schließende Anführungszeichen nicht auf separater Zeile</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="193"/> - <source>docstring does not contain a @return line but function/method returns something</source> - <translation>Docstring enthält keine @return Zeile obwohl die Funktion/Methode etwas zurückgibt</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="197"/> - <source>docstring contains a @return line but function/method doesn't return anything</source> - <translation>Docstring enthält eine @return Zeile obwohl die Funktion/Methode nichts zurückgibt</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="201"/> - <source>docstring does not contain enough @param/@keyparam lines</source> - <translation>Docstring enthält nicht genügend @param/@keyparam Zeilen</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="204"/> - <source>docstring contains too many @param/@keyparam lines</source> - <translation>Docstring enthält zu viele @param/@keyparam Zeilen</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="207"/> - <source>keyword only arguments must be documented with @keyparam lines</source> - <translation>'keyword only' Argumente müssen mit @keyparam Zeilen dokumentiert werden</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="210"/> - <source>order of @param/@keyparam lines does not match the function/method signature</source> - <translation>Reihenfolge der @param/@keyparam Zeilen stimmt nicht mit der Funktions-/Methodensignatur überein</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="213"/> - <source>class docstring is preceded by a blank line</source> - <translation>Klassendocstring hat eine führende Leerzeile</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="215"/> - <source>class docstring is followed by a blank line</source> - <translation>Klassendocstring hat eine nachfolgende Leerzeile</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="217"/> - <source>function/method docstring is preceded by a blank line</source> - <translation>Funktions-/Methodendocstring hat eine führende Leerzeile</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="220"/> - <source>function/method docstring is followed by a blank line</source> - <translation>Funktions-/Methodendocstring hat eine nachfolgende Leerzeile</translation> + <source>last paragraph of docstring is followed by a blank line</source> + <translation>letzter Abschnitt des Docstring hat eine folgende Leerzeile</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="226"/> - <source>last paragraph of docstring is followed by a blank line</source> - <translation>letzter Abschnitt des Docstring hat eine folgende Leerzeile</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="229"/> <source>docstring does not contain a @exception line but function/method raises an exception</source> <translation>Docstring enthält keine @exception Zeile obwohl die Funktion/Methode eine Ausnahme erzeugt</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="233"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="230"/> <source>docstring contains a @exception line but function/method doesn't raise an exception</source> <translation>Docstring enthält eine @exception Zeile obwohl die Funktion/Methode keine Ausnahme erzeugt</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="437"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="429"/> <source>no message for this code defined</source> - <translation>kein Schlüssel für diesen Code definiert</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="238"/> + <translation>keine Beschreibung für diesen Code definiert</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py" line="235"/> <source>{0}: {1}</source> - <translation type="unfinished">{0}: {1}</translation> + <translation>{0}: {1}</translation> </message> </context> <context> @@ -8801,342 +8814,342 @@ <context> <name>Editor</name> <message> - <location filename="../QScintilla/Editor.py" line="2743"/> + <location filename="../QScintilla/Editor.py" line="2745"/> <source>Open File</source> <translation>Datei öffnen</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="2913"/> + <location filename="../QScintilla/Editor.py" line="2915"/> <source>Save File</source> <translation>Datei sichern</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="626"/> + <location filename="../QScintilla/Editor.py" line="628"/> <source>Undo</source> <translation>Rückgängig</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="629"/> + <location filename="../QScintilla/Editor.py" line="631"/> <source>Redo</source> <translation>Wiederherstellen</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="636"/> + <location filename="../QScintilla/Editor.py" line="638"/> <source>Cut</source> <translation>Ausschneiden</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="639"/> + <location filename="../QScintilla/Editor.py" line="641"/> <source>Copy</source> <translation>Kopieren</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="642"/> + <location filename="../QScintilla/Editor.py" line="644"/> <source>Paste</source> <translation>Einfügen</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="647"/> + <location filename="../QScintilla/Editor.py" line="649"/> <source>Indent</source> <translation>Einrücken</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="650"/> + <location filename="../QScintilla/Editor.py" line="652"/> <source>Unindent</source> <translation>Einrücken rückgängig</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="653"/> + <location filename="../QScintilla/Editor.py" line="655"/> <source>Comment</source> <translation>Kommentar</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="656"/> + <location filename="../QScintilla/Editor.py" line="658"/> <source>Uncomment</source> <translation>Kommentar entfernen</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="732"/> + <location filename="../QScintilla/Editor.py" line="734"/> <source>Close</source> <translation>Schließen</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="736"/> + <location filename="../QScintilla/Editor.py" line="738"/> <source>Save</source> <translation>Speichern</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="739"/> + <location filename="../QScintilla/Editor.py" line="741"/> <source>Save As...</source> <translation>Speichern unter...</translation> </message> <message> + <location filename="../QScintilla/Editor.py" line="670"/> + <source>Select all</source> + <translation>Alles auswählen</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="671"/> + <source>Deselect all</source> + <translation>Auswahl aufheben</translation> + </message> + <message> <location filename="../QScintilla/Editor.py" line="668"/> - <source>Select all</source> - <translation>Alles auswählen</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="669"/> - <source>Deselect all</source> - <translation>Auswahl aufheben</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="666"/> <source>Select to brace</source> <translation>Zur Klammer auswählen</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="752"/> + <location filename="../QScintilla/Editor.py" line="754"/> <source>Print</source> <translation>Drucken</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="2351"/> + <location filename="../QScintilla/Editor.py" line="2353"/> <source>Printing...</source> <translation>Drucke...</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="2368"/> - <source>Printing completed</source> - <translation>Drucken beendet</translation> - </message> - <message> <location filename="../QScintilla/Editor.py" line="2370"/> + <source>Printing completed</source> + <translation>Drucken beendet</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="2372"/> <source>Error while printing</source> <translation>Fehler beim Drucken</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="2373"/> + <location filename="../QScintilla/Editor.py" line="2375"/> <source>Printing aborted</source> <translation>Drucken abgebrochen</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5926"/> + <location filename="../QScintilla/Editor.py" line="5958"/> <source>File changed</source> <translation>Datei geändert</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="798"/> + <location filename="../QScintilla/Editor.py" line="800"/> <source>Check</source> <translation>Prüfen</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="2694"/> + <location filename="../QScintilla/Editor.py" line="2696"/> <source>File Modified</source> <translation>Datei geändert</translation> </message> <message> + <location filename="../QScintilla/Editor.py" line="812"/> + <source>Code metrics...</source> + <translation>Quelltextmetriken...</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="813"/> + <source>Code coverage...</source> + <translation>Quelltext Abdeckung...</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="821"/> + <source>Profile data...</source> + <translation>Profildaten...</translation> + </message> + <message> <location filename="../QScintilla/Editor.py" line="810"/> - <source>Code metrics...</source> - <translation>Quelltextmetriken...</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="811"/> - <source>Code coverage...</source> - <translation>Quelltext Abdeckung...</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="819"/> - <source>Profile data...</source> - <translation>Profildaten...</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="808"/> <source>Show</source> <translation>Zeige</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="659"/> + <location filename="../QScintilla/Editor.py" line="661"/> <source>Stream Comment</source> <translation>Stream Kommentar</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="662"/> + <location filename="../QScintilla/Editor.py" line="664"/> <source>Box Comment</source> <translation>Box Kommentar</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1655"/> + <location filename="../QScintilla/Editor.py" line="1657"/> <source>Modification of Read Only file</source> <translation>Änderungsversuch für eine schreibgeschützte Datei</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1655"/> + <location filename="../QScintilla/Editor.py" line="1657"/> <source>You are attempting to change a read only file. Please save to a different file first.</source> <translation>Sie versuchen, eine schreibgeschützte Datei zu ändern. Bitte speichern Sie sie zuerst in eine andere Datei.</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="858"/> + <location filename="../QScintilla/Editor.py" line="860"/> <source>Languages</source> <translation>Sprachen</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="632"/> + <location filename="../QScintilla/Editor.py" line="634"/> <source>Revert to last saved state</source> <translation>Zurück zum letzten gesichert Zustand</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5651"/> + <location filename="../QScintilla/Editor.py" line="5681"/> <source>Macro Name</source> <translation>Makro Name</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5651"/> + <location filename="../QScintilla/Editor.py" line="5681"/> <source>Select a macro name:</source> <translation>Wähle einen Makro Namen:</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5722"/> + <location filename="../QScintilla/Editor.py" line="5752"/> <source>Macro files (*.macro)</source> <translation>Makrodateien (*.macro)</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5679"/> + <location filename="../QScintilla/Editor.py" line="5709"/> <source>Load macro file</source> <translation>Lade Makrodatei</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5702"/> + <location filename="../QScintilla/Editor.py" line="5732"/> <source>Error loading macro</source> <translation>Fehler beim Makro Laden</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5722"/> + <location filename="../QScintilla/Editor.py" line="5752"/> <source>Save macro file</source> <translation>Makrodatei schreiben</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5739"/> + <location filename="../QScintilla/Editor.py" line="5769"/> <source>Save macro</source> <translation>Makro speichern</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5755"/> + <location filename="../QScintilla/Editor.py" line="5785"/> <source>Error saving macro</source> <translation>Fehler beim Makro speichern</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5768"/> + <location filename="../QScintilla/Editor.py" line="5798"/> <source>Start Macro Recording</source> <translation>Makroaufzeichnung starten</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5794"/> + <location filename="../QScintilla/Editor.py" line="5824"/> <source>Macro Recording</source> <translation>Makroaufzeichnung</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5794"/> + <location filename="../QScintilla/Editor.py" line="5824"/> <source>Enter name of the macro:</source> <translation>Gib einen Namen für das Makro ein:</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1087"/> - <source>Toggle bookmark</source> - <translation>Lesezeichen setzen/löschen</translation> - </message> - <message> <location filename="../QScintilla/Editor.py" line="1089"/> - <source>Next bookmark</source> - <translation>Nächstes Lesezeichen</translation> + <source>Toggle bookmark</source> + <translation>Lesezeichen setzen/löschen</translation> </message> <message> <location filename="../QScintilla/Editor.py" line="1091"/> - <source>Previous bookmark</source> - <translation>Vorheriges Lesezeichen</translation> + <source>Next bookmark</source> + <translation>Nächstes Lesezeichen</translation> </message> <message> <location filename="../QScintilla/Editor.py" line="1093"/> + <source>Previous bookmark</source> + <translation>Vorheriges Lesezeichen</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="1095"/> <source>Clear all bookmarks</source> <translation>Alle Lesezeichen löschen</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1113"/> + <location filename="../QScintilla/Editor.py" line="1115"/> <source>Toggle breakpoint</source> <translation>Haltepunkt setzen/löschen</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1147"/> + <location filename="../QScintilla/Editor.py" line="1149"/> <source>LMB toggles bookmarks</source> <translation>LMK schaltet Lesezeichen</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1151"/> + <location filename="../QScintilla/Editor.py" line="1153"/> <source>LMB toggles breakpoints</source> <translation>LMK schaltet Haltepunkte</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1123"/> - <source>Next breakpoint</source> - <translation>Nächster Haltepunkt</translation> - </message> - <message> <location filename="../QScintilla/Editor.py" line="1125"/> - <source>Previous breakpoint</source> - <translation>Vorheriger Haltepunkt</translation> + <source>Next breakpoint</source> + <translation>Nächster Haltepunkt</translation> </message> <message> <location filename="../QScintilla/Editor.py" line="1127"/> + <source>Previous breakpoint</source> + <translation>Vorheriger Haltepunkt</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="1129"/> <source>Clear all breakpoints</source> <translation>Alle Haltepunkte löschen</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1118"/> + <location filename="../QScintilla/Editor.py" line="1120"/> <source>Edit breakpoint...</source> <translation>Haltepunkt bearbeiten...</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="4743"/> + <location filename="../QScintilla/Editor.py" line="4745"/> <source>Enable breakpoint</source> <translation>Haltepunkt aktivieren</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="4746"/> + <location filename="../QScintilla/Editor.py" line="4748"/> <source>Disable breakpoint</source> <translation>Haltepunkt deaktivieren</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5056"/> + <location filename="../QScintilla/Editor.py" line="5086"/> <source>Code Coverage</source> <translation>Quelltext Abdeckung</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5056"/> + <location filename="../QScintilla/Editor.py" line="5086"/> <source>Please select a coverage file</source> <translation>Bitte wählen Sie eine Datei mit Abdeckungsdaten</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5217"/> + <location filename="../QScintilla/Editor.py" line="5247"/> <source>Profile Data</source> <translation>Profildaten</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5217"/> + <location filename="../QScintilla/Editor.py" line="5247"/> <source>Please select a profile file</source> <translation>Bitte wählen Sie eine Datei mit Profildaten</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="706"/> + <location filename="../QScintilla/Editor.py" line="708"/> <source>Autocompletion enabled</source> <translation>Automatische Vervollständigung aktiv</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="4219"/> + <location filename="../QScintilla/Editor.py" line="4221"/> <source>Autocompletion</source> <translation>Automatische Vervollständigung</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="4219"/> + <location filename="../QScintilla/Editor.py" line="4221"/> <source>Autocompletion is not available because there is no autocompletion source set.</source> <translation>Die automatische Vervollständigung ist nicht verfügbar, da keine Quelle gesetzt ist.</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="690"/> + <location filename="../QScintilla/Editor.py" line="692"/> <source>Use Monospaced Font</source> <translation>Benutze Monospace Font</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="683"/> + <location filename="../QScintilla/Editor.py" line="685"/> <source>Shorten empty lines</source> <translation>Leere Zeilen verkürzen</translation> </message> @@ -9146,102 +9159,102 @@ <translation type="obsolete">Neue Ansicht</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1096"/> + <location filename="../QScintilla/Editor.py" line="1098"/> <source>Goto syntax error</source> <translation>Zu Syntaxfehler gehen</translation> </message> <message> + <location filename="../QScintilla/Editor.py" line="1102"/> + <source>Clear syntax error</source> + <translation>Syntaxfehler löschen</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="697"/> + <source>Autosave enabled</source> + <translation>Autom. Speicherung aktiv</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="6230"/> + <source>Drop Error</source> + <translation>Drop Fehler</translation> + </message> + <message> <location filename="../QScintilla/Editor.py" line="1100"/> - <source>Clear syntax error</source> - <translation>Syntaxfehler löschen</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="695"/> - <source>Autosave enabled</source> - <translation>Autom. Speicherung aktiv</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="6198"/> - <source>Drop Error</source> - <translation>Drop Fehler</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="1098"/> <source>Show syntax error message</source> <translation>Zeige Syntaxfehlermeldung</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5357"/> + <location filename="../QScintilla/Editor.py" line="5387"/> <source>Syntax Error</source> <translation>Syntaxfehler</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5357"/> + <location filename="../QScintilla/Editor.py" line="5387"/> <source>No syntax error message available.</source> <translation>Keine Syntaxfehlermeldung verfügbar.</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1115"/> + <location filename="../QScintilla/Editor.py" line="1117"/> <source>Toggle temporary breakpoint</source> <translation>Temporären Haltepunkt setzen/löschen</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="813"/> + <location filename="../QScintilla/Editor.py" line="815"/> <source>Show code coverage annotations</source> <translation>Markiere Zeilen ohne Abdeckung</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="816"/> + <location filename="../QScintilla/Editor.py" line="818"/> <source>Hide code coverage annotations</source> <translation>Lösche Abdeckungsmarkierungen</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1130"/> + <location filename="../QScintilla/Editor.py" line="1132"/> <source>Next uncovered line</source> <translation>Nächste nichtabgedeckte Zeile</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1133"/> + <location filename="../QScintilla/Editor.py" line="1135"/> <source>Previous uncovered line</source> <translation>Vorige nichtabgedeckte Zeile</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5119"/> + <location filename="../QScintilla/Editor.py" line="5149"/> <source>Show Code Coverage Annotations</source> <translation>Zeilen ohne Abdeckung Markieren</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5112"/> + <location filename="../QScintilla/Editor.py" line="5142"/> <source>All lines have been covered.</source> <translation>Alle Zeilen sind abgedeckt.</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5119"/> + <location filename="../QScintilla/Editor.py" line="5149"/> <source>There is no coverage file available.</source> <translation>Es gibt keine Datei mit Abdeckungsinformationen.</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="2694"/> + <location filename="../QScintilla/Editor.py" line="2696"/> <source><p>The file <b>{0}</b> has unsaved changes.</p></source> <translation><p>Die Datei <b>{0}</b> enthält ungesicherte Änderungen.</p></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5693"/> + <location filename="../QScintilla/Editor.py" line="5723"/> <source><p>The macro file <b>{0}</b> could not be read.</p></source> <translation><p>Die Makrodatei <b>{0}</b> kann nicht gelesen werden.</p></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5702"/> + <location filename="../QScintilla/Editor.py" line="5732"/> <source><p>The macro file <b>{0}</b> is corrupt.</p></source> <translation><p>Die Makrodatei <b>{0}</b> ist zerstört.</p></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5755"/> + <location filename="../QScintilla/Editor.py" line="5785"/> <source><p>The macro file <b>{0}</b> could not be written.</p></source> <translation><p>Die Makrodatei <b>{0}</b> kann nicht geschrieben werden.</p></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6198"/> + <location filename="../QScintilla/Editor.py" line="6230"/> <source><p><b>{0}</b> is not a file.</p></source> <translation><p><b>{0}</b> ist keine Datei.</p></translation> </message> @@ -9251,412 +9264,412 @@ <translation type="obsolete">Neue Ansicht (in neuem Abschnitt)</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="322"/> + <location filename="../QScintilla/Editor.py" line="324"/> <source><p>The size of the file <b>{0}</b> is <b>{1} KB</b>. Do you really want to load it?</p></source> <translation><p>Die Größe der Datei <b>{0}</b> ist <b>{1} KB<7B>. Soll sie wirklich geladen werden?</p></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="832"/> - <source>Diagrams</source> - <translation>Diagramme</translation> - </message> - <message> <location filename="../QScintilla/Editor.py" line="834"/> - <source>Class Diagram...</source> - <translation>Klassendiagramm...</translation> + <source>Diagrams</source> + <translation>Diagramme</translation> </message> <message> <location filename="../QScintilla/Editor.py" line="836"/> - <source>Package Diagram...</source> - <translation>Package Diagramm...</translation> + <source>Class Diagram...</source> + <translation>Klassendiagramm...</translation> </message> <message> <location filename="../QScintilla/Editor.py" line="838"/> - <source>Imports Diagram...</source> - <translation>Imports-Diagramm...</translation> + <source>Package Diagram...</source> + <translation>Package Diagramm...</translation> </message> <message> <location filename="../QScintilla/Editor.py" line="840"/> + <source>Imports Diagram...</source> + <translation>Imports-Diagramm...</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="842"/> <source>Application Diagram...</source> <translation>Applikations-Diagramm...</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="861"/> + <location filename="../QScintilla/Editor.py" line="863"/> <source>No Language</source> <translation>Keine Sprache</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6065"/> + <location filename="../QScintilla/Editor.py" line="6097"/> <source>{0} (ro)</source> <translation>{0} (ro)</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6219"/> - <source>Resources</source> - <translation>Ressourcen</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="6221"/> - <source>Add file...</source> - <translation>Datei hinzufügen...</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="6223"/> - <source>Add files...</source> - <translation>Dateien hinzufügen...</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="6225"/> - <source>Add aliased file...</source> - <translation>Aliased-Datei hinzufügen...</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="6228"/> - <source>Add localized resource...</source> - <translation>Lokalisierte Ressource hinzufügen...</translation> - </message> - <message> <location filename="../QScintilla/Editor.py" line="6251"/> + <source>Resources</source> + <translation>Ressourcen</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="6253"/> + <source>Add file...</source> + <translation>Datei hinzufügen...</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="6255"/> + <source>Add files...</source> + <translation>Dateien hinzufügen...</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="6257"/> + <source>Add aliased file...</source> + <translation>Aliased-Datei hinzufügen...</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="6260"/> + <source>Add localized resource...</source> + <translation>Lokalisierte Ressource hinzufügen...</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="6283"/> <source>Add file resource</source> <translation>Dateiressource hinzufügen</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6267"/> + <location filename="../QScintilla/Editor.py" line="6299"/> <source>Add file resources</source> <translation>Dateiressourcen hinzufügen</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6294"/> + <location filename="../QScintilla/Editor.py" line="6326"/> <source>Add aliased file resource</source> <translation>Aliased-Dateiressourcen hinzufügen</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6294"/> + <location filename="../QScintilla/Editor.py" line="6326"/> <source>Alias for file <b>{0}</b>:</source> <translation>Alias für Datei <b>{0}</b>:</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6358"/> + <location filename="../QScintilla/Editor.py" line="6390"/> <source>Package Diagram</source> <translation>Package-Diagramm</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6358"/> + <location filename="../QScintilla/Editor.py" line="6390"/> <source>Include class attributes?</source> <translation>Klassenattribute anzeigen?</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6392"/> + <location filename="../QScintilla/Editor.py" line="6424"/> <source>Application Diagram</source> <translation>Applikations-Diagramm</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6392"/> + <location filename="../QScintilla/Editor.py" line="6424"/> <source>Include module names?</source> <translation>Modulnamen anzeigen?</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6232"/> + <location filename="../QScintilla/Editor.py" line="6264"/> <source>Add resource frame</source> <translation>Ressourcenrahmen hinzufügen</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5768"/> + <location filename="../QScintilla/Editor.py" line="5798"/> <source>Macro recording is already active. Start new?</source> <translation>Eine Makroaufzeichnung ist bereits aktiv. Neu starten?</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1136"/> - <source>Next task</source> - <translation>Nächste Aufgabe</translation> - </message> - <message> <location filename="../QScintilla/Editor.py" line="1138"/> + <source>Next task</source> + <translation>Nächste Aufgabe</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="1140"/> <source>Previous task</source> <translation>Vorherige Aufgabe</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="773"/> - <source>Autocomplete</source> - <translation>Vervollständigen</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="778"/> - <source>from Document</source> - <translation>vom Dokument</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="780"/> - <source>from APIs</source> - <translation>von APIs</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="782"/> - <source>from Document and APIs</source> - <translation>vom Dokument und von APIs</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="964"/> - <source>Export as</source> - <translation>Exportieren als</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="1187"/> - <source>Export source</source> - <translation>Quelltext exportieren</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="1179"/> - <source><p>No exporter available for the export format <b>{0}</b>. Aborting...</p></source> - <translation><p>Für das Exportformat <b>{0}</b> steht kein Exporter zur Verfügung. Abbruch...</p></translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="1187"/> - <source>No export format given. Aborting...</source> - <translation>Kein Exportformat angegeben. Abbruch...</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="6378"/> - <source>Imports Diagram</source> - <translation>Imports Diagramm</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="6378"/> - <source>Include imports from external modules?</source> - <translation>Imports externer Module anzeigen?</translation> - </message> - <message> <location filename="../QScintilla/Editor.py" line="775"/> + <source>Autocomplete</source> + <translation>Vervollständigen</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="780"/> + <source>from Document</source> + <translation>vom Dokument</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="782"/> + <source>from APIs</source> + <translation>von APIs</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="784"/> + <source>from Document and APIs</source> + <translation>vom Dokument und von APIs</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="966"/> + <source>Export as</source> + <translation>Exportieren als</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="1189"/> + <source>Export source</source> + <translation>Quelltext exportieren</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="1181"/> + <source><p>No exporter available for the export format <b>{0}</b>. Aborting...</p></source> + <translation><p>Für das Exportformat <b>{0}</b> steht kein Exporter zur Verfügung. Abbruch...</p></translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="1189"/> + <source>No export format given. Aborting...</source> + <translation>Kein Exportformat angegeben. Abbruch...</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="6410"/> + <source>Imports Diagram</source> + <translation>Imports Diagramm</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="6410"/> + <source>Include imports from external modules?</source> + <translation>Imports externer Module anzeigen?</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="777"/> <source>dynamic</source> <translation>dynamisch</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="785"/> + <location filename="../QScintilla/Editor.py" line="787"/> <source>Calltip</source> <translation>Calltip</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="749"/> + <location filename="../QScintilla/Editor.py" line="751"/> <source>Print Preview</source> <translation>Druckvorschau</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="376"/> + <location filename="../QScintilla/Editor.py" line="378"/> <source><b>A Source Editor Window</b><p>This window is used to display and edit a source file. You can open as many of these as you like. The name of the file is displayed in the window's titlebar.</p><p>In order to set breakpoints just click in the space between the line numbers and the fold markers. Via the context menu of the margins they may be edited.</p><p>In order to set bookmarks just Shift click in the space between the line numbers and the fold markers.</p><p>These actions can be reversed via the context menu.</p><p>Ctrl clicking on a syntax error marker shows some info about this error.</p></source> <translation><b>Quelltexteditorfenster</b><p>Dieses Fenster wird zum Bearbeiten von Quelltexten benutzt. Sie können beliebig viele dieser Fenster öffnen. Der Name der Datei wird im Titel des Fensters dargestellt.</p><p>Um Haltepunkte zu setzen, klicken sie in den Raum zwischen den Zeilennummern und der Faltungsspalte. Über das Kontextmenü des Bereiches links des Editors können Haltepunkte bearbeitet werden.</p><p>Um Lesezeichen zu setzen, drücken Sie die Shift-Taste und klicken in den Raum zwischen den Zeilennummern und der Faltungsspalte.</p><p>Diese Aktionen können über das Kontextmenü umgedreht werden.</p><p>Ein Klick auf einen Syntaxfehler-Marker mit gedrückter Strg-Taste zeigt die zugehörige Fehlermeldung an.</p></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="699"/> + <location filename="../QScintilla/Editor.py" line="701"/> <source>Typing aids enabled</source> <translation>Eingabehilfen aktiv</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="928"/> + <location filename="../QScintilla/Editor.py" line="930"/> <source>End-of-Line Type</source> <translation>Zeilenendemarkierung</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="932"/> + <location filename="../QScintilla/Editor.py" line="934"/> <source>Unix</source> <translation>Unix</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="939"/> + <location filename="../QScintilla/Editor.py" line="941"/> <source>Windows</source> <translation>Windows</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="946"/> + <location filename="../QScintilla/Editor.py" line="948"/> <source>Macintosh</source> <translation>Macintosh</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="904"/> + <location filename="../QScintilla/Editor.py" line="906"/> <source>Encodings</source> <translation>Kodierungen</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="884"/> + <location filename="../QScintilla/Editor.py" line="886"/> <source>Guessed</source> <translation>Ermittelt</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1202"/> + <location filename="../QScintilla/Editor.py" line="1204"/> <source>Alternatives</source> <translation>Alternativen</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1198"/> + <location filename="../QScintilla/Editor.py" line="1200"/> <source>Alternatives ({0})</source> <translation>Alternativen ({0})</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1218"/> + <location filename="../QScintilla/Editor.py" line="1220"/> <source>Pygments Lexer</source> <translation>Pygments Lexer</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1218"/> + <location filename="../QScintilla/Editor.py" line="1220"/> <source>Select the Pygments lexer to apply.</source> <translation>Wähle den anzuwendenden Pygments Lexer.</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6680"/> + <location filename="../QScintilla/Editor.py" line="6712"/> <source>Check spelling...</source> <translation>Rechtschreibprüfung...</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="675"/> + <location filename="../QScintilla/Editor.py" line="677"/> <source>Check spelling of selection...</source> <translation>Rechtschreibprüfung für Auswahl...</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6683"/> + <location filename="../QScintilla/Editor.py" line="6715"/> <source>Add to dictionary</source> <translation>Zum Wörterbuch hinzufügen</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6685"/> + <location filename="../QScintilla/Editor.py" line="6717"/> <source>Ignore All</source> <translation>Alle ignorieren</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="679"/> + <location filename="../QScintilla/Editor.py" line="681"/> <source>Remove from dictionary</source> <translation>Aus dem Wörterbuch entfernen</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="2743"/> + <location filename="../QScintilla/Editor.py" line="2745"/> <source><p>The file <b>{0}</b> could not be opened.</p><p>Reason: {1}</p></source> <translation><p>Die Datei <b>{0}</b> konnte nicht geöffnet werden.<br />Ursache: {1}</p></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="2846"/> + <location filename="../QScintilla/Editor.py" line="2848"/> <source><p>The file <b>{0}</b> could not be saved.<br/>Reason: {1}</p></source> <translation><p>Die Datei <b>{0}</b> konnte nicht gesichert werden.<br/>Grund: {1}</p></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5916"/> + <location filename="../QScintilla/Editor.py" line="5948"/> <source><p>The file <b>{0}</b> has been changed while it was opened in eric5. Reread it?</p></source> <translation><p>Die Datei <b>{0}</b> wurde geändert, während sie in eric5 geöffnet war. Neu einlesen?</p></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1103"/> + <location filename="../QScintilla/Editor.py" line="1105"/> <source>Next warning</source> <translation>Nächste Warnung</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1106"/> - <source>Previous warning</source> - <translation>Vorherige Warnung</translation> - </message> - <message> <location filename="../QScintilla/Editor.py" line="1108"/> - <source>Show warning message</source> - <translation>Zeige Warnung</translation> + <source>Previous warning</source> + <translation>Vorherige Warnung</translation> </message> <message> <location filename="../QScintilla/Editor.py" line="1110"/> + <source>Show warning message</source> + <translation>Zeige Warnung</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="1112"/> <source>Clear warnings</source> <translation>Warnungen löschen</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="2913"/> + <location filename="../QScintilla/Editor.py" line="2915"/> <source><p>The file <b>{0}</b> already exists. Overwrite it?</p></source> <translation><p>Die Datei <b>{0}</b> existiert bereits. Überschreiben?</p></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5739"/> + <location filename="../QScintilla/Editor.py" line="5769"/> <source><p>The macro file <b>{0}</b> already exists. Overwrite it?</p></source> <translation><p>Die Makrodatei <b>{0}</b> existiert bereits. Überschreiben?</p></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5590"/> + <location filename="../QScintilla/Editor.py" line="5620"/> <source>Warning: {0}</source> <translation>Warnung: {0}</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5597"/> + <location filename="../QScintilla/Editor.py" line="5627"/> <source>Error: {0}</source> <translation>Fehler: {0}</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5922"/> + <location filename="../QScintilla/Editor.py" line="5954"/> <source><br><b>Warning:</b> You will lose your changes upon reopening it.</source> <translation><br><b>Warnung:</b> Vorgenommenen Änderungen gehen beim neu einlesen verloren.</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="4320"/> + <location filename="../QScintilla/Editor.py" line="4322"/> <source>Activating Auto-Completion Provider</source> <translation>Aktivierung eines Providers für automatische Vervollständigungen</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="4320"/> + <location filename="../QScintilla/Editor.py" line="4322"/> <source>Auto-completion provider cannot be connected because there is already another one active. Please check your configuration.</source> <translation>Ein Provider für automatische Vervollständigungen kann nicht angebunden werden, da bereits ein anderer aktiv ist. Bitte überprüfen Sie Ihre Konfiguration.</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="4510"/> + <location filename="../QScintilla/Editor.py" line="4512"/> <source>Activating Calltip Provider</source> <translation>Aktivierung eines Providers für Calltips</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="4510"/> + <location filename="../QScintilla/Editor.py" line="4512"/> <source>Calltip provider cannot be connected because there is already another one active. Please check your configuration.</source> <translation>Ein Provider für Calltips kann nicht angebunden werden, da bereits ein anderer aktiv ist. Bitte überprüfen Sie Ihre Konfiguration.</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="745"/> + <location filename="../QScintilla/Editor.py" line="747"/> <source>Open 'rejection' file</source> <translation>Öffne „Ablehnungs“-Datei</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="844"/> + <location filename="../QScintilla/Editor.py" line="846"/> <source>Load Diagram...</source> <translation>Diagramm laden...</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1141"/> + <location filename="../QScintilla/Editor.py" line="1143"/> <source>Next change</source> <translation>Nächste Änderung</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1144"/> + <location filename="../QScintilla/Editor.py" line="1146"/> <source>Previous change</source> <translation>Vorherige Änderung</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7094"/> + <location filename="../QScintilla/Editor.py" line="7126"/> <source>Sort Lines</source> <translation>Zeilen sortieren</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7094"/> + <location filename="../QScintilla/Editor.py" line="7126"/> <source>The selection contains illegal data for a numerical sort.</source> <translation>Die Auswahl enthält für eine numerische Sortierung ungültige Daten.</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5526"/> + <location filename="../QScintilla/Editor.py" line="5556"/> <source>Warning</source> <translation>Warnung</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5526"/> + <location filename="../QScintilla/Editor.py" line="5556"/> <source>No warning messages available.</source> <translation>Keine Warnmeldungen verfügbar.</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5587"/> + <location filename="../QScintilla/Editor.py" line="5617"/> <source>Style: {0}</source> <translation>Stil: {0}</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="724"/> + <location filename="../QScintilla/Editor.py" line="726"/> <source>New Document View</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="727"/> + <location filename="../QScintilla/Editor.py" line="729"/> <source>New Document View (with new split)</source> <translation type="unfinished"></translation> </message> @@ -15965,8 +15978,8 @@ </message> <message> <location filename="../Helpviewer/HelpBrowserWV.py" line="1084"/> - <source>Open Link in New Tab<byte value="x9"/>Ctrl+LMB</source> - <translation>Link in neuem Fenster öffnen<byte value="x9"/>Strg+LMK</translation> + <source>Open Link in New Tab Ctrl+LMB</source> + <translation>Link in neuem Fenster öffnen Strg+LMK</translation> </message> <message> <location filename="../Helpviewer/HelpBrowserWV.py" line="1157"/> @@ -31778,7 +31791,7 @@ <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/NamingStyleChecker.py" line="150"/> <source>no message for this code defined</source> - <translation>kein Schlüssel für diesen Code definiert</translation> + <translation type="obsolete">kein Schlüssel für diesen Code definiert</translation> </message> </context> <context> @@ -51193,7 +51206,7 @@ <translation>Quelltext</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.ui" line="108"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.ui" line="121"/> <source>Shows the progress of the syntax check action</source> <translation>Zeigt den Fortschritt der Syntaxprüfung an</translation> </message> @@ -51218,7 +51231,7 @@ <translation>Drücken, um alle Dateien mit Problemen anzuzeigen</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="242"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="284"/> <source>No issues found.</source> <translation>Keine Probleme gefunden.</translation> </message> @@ -51243,12 +51256,12 @@ <translation>Starten</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="187"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="214"/> <source>Error: {0}</source> <translation>Fehler: {0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.ui" line="117"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.ui" line="130"/> <source>%v/%m Files</source> <translation>%v/%m Dateien</translation> </message> @@ -51617,7 +51630,7 @@ <context> <name>TabnannyDialog</name> <message> - <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="183"/> + <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="188"/> <source>No indentation errors found.</source> <translation>Keine Einrückungsfehler gefunden.</translation> </message> @@ -51663,7 +51676,7 @@ <translation>Quelltext</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.ui" line="114"/> + <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.ui" line="127"/> <source>Shows the progress of the tabnanny action</source> <translation>Zeigt den Fortschritt der Tabnanny Prüfung an</translation> </message> @@ -51698,7 +51711,7 @@ <translation type="obsolete">Python 2-Interpreter wurde nicht innerhalb von 15s beendet.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.ui" line="123"/> + <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.ui" line="136"/> <source>%v/%m Files</source> <translation>%v/%m Dateien</translation> </message> @@ -54591,2059 +54604,2059 @@ <context> <name>UserInterface</name> <message> - <location filename="../UI/UserInterface.py" line="1547"/> + <location filename="../UI/UserInterface.py" line="1556"/> <source>What's This?</source> <translation>Was ist das?</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1553"/> + <location filename="../UI/UserInterface.py" line="1562"/> <source>Context sensitive help</source> <translation>Kontextsensitive Hilfe</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1554"/> + <location filename="../UI/UserInterface.py" line="1563"/> <source><b>Display context sensitive help</b><p>In What's This? mode, the mouse cursor shows an arrow with a question mark, and you can click on the interface elements to get a short description of what they do and how to use them. In dialogs, this feature can be accessed using the context help button in the titlebar.</p></source> <translation><b>Zeige kontextsensitive Hilfe an<b></p>Im „Was ist das?“-Modus (der Mauszeiger stellt einen Pfeil mit Fragezeichen dar) wird auf einen Mausklick eine kurze Hilfebeschreibung zu dem ausgewählten MMI-Element angezeigt. In Dialogen kann diese Funktionalität durch den entsprechenden Knopf im Fensterkopf erreicht werden.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1565"/> + <location filename="../UI/UserInterface.py" line="1574"/> <source>Helpviewer</source> <translation>Hilfe</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1565"/> + <location filename="../UI/UserInterface.py" line="1574"/> <source>&Helpviewer...</source> <translation>&Hilfe...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1571"/> + <location filename="../UI/UserInterface.py" line="1580"/> <source>Open the helpviewer window</source> <translation>Öffnet das Hilfe-Fenster</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2566"/> + <location filename="../UI/UserInterface.py" line="2575"/> <source>Unittest</source> <translation>Modultests</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1668"/> + <location filename="../UI/UserInterface.py" line="1677"/> <source>&Unittest...</source> <translation>&Modultests...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1673"/> + <location filename="../UI/UserInterface.py" line="1682"/> <source>Start unittest dialog</source> <translation>Starte den Modultest Dialog</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2444"/> + <location filename="../UI/UserInterface.py" line="2453"/> <source>&Window</source> <translation>&Fenster</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2412"/> + <location filename="../UI/UserInterface.py" line="2421"/> <source>&Tools</source> <translation>&Werkzeuge</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2494"/> + <location filename="../UI/UserInterface.py" line="2503"/> <source>&Help</source> <translation>&Hilfe</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1186"/> + <location filename="../UI/UserInterface.py" line="1195"/> <source>Quit</source> <translation>Beenden</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1918"/> + <location filename="../UI/UserInterface.py" line="1927"/> <source>Preferences</source> <translation>Einstellungen</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1918"/> + <location filename="../UI/UserInterface.py" line="1927"/> <source>&Preferences...</source> <translation>&Einstellungen...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1923"/> + <location filename="../UI/UserInterface.py" line="1932"/> <source>Set the prefered configuration</source> <translation>Konfiguriert die Einstellungen</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1925"/> + <location filename="../UI/UserInterface.py" line="1934"/> <source><b>Preferences</b><p>Set the configuration items of the application with your prefered values.</p></source> <translation><b>Einstellungen</b><p>Konfiguriert die einstellbaren Parameter der Applikation nach Ihren Wünschen.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1192"/> + <location filename="../UI/UserInterface.py" line="1201"/> <source>Quit the IDE</source> <translation>Beenden der Entwicklungsumgebung</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2565"/> + <location filename="../UI/UserInterface.py" line="2574"/> <source>Tools</source> <translation>Werkzeuge</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="4261"/> + <location filename="../UI/UserInterface.py" line="4270"/> <source>Help</source> <translation>Hilfe</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2469"/> + <location filename="../UI/UserInterface.py" line="2478"/> <source>&Toolbars</source> <translation>&Werkzeugleisten</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="4382"/> + <location filename="../UI/UserInterface.py" line="4391"/> <source>Problem</source> <translation>Problem</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1186"/> + <location filename="../UI/UserInterface.py" line="1195"/> <source>&Quit</source> <translation>B&eenden</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1193"/> + <location filename="../UI/UserInterface.py" line="1202"/> <source><b>Quit the IDE</b><p>This quits the IDE. Any unsaved changes may be saved first. Any Python program being debugged will be stopped and the preferences will be written to disc.</p></source> <translation><b>Die Entwicklungsumgebung beenden</b><p>Dies beendet die Entwicklungsumgebung. Ungesicherte Änderungen können zuvor gesichert werden. Ein Python-Programm, das gerade debuggt wird, wird beendet und sämtliche Einstellungen werden gespeichert.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1547"/> + <location filename="../UI/UserInterface.py" line="1556"/> <source>&What's This?</source> <translation>&Was ist das?</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="4551"/> + <location filename="../UI/UserInterface.py" line="4560"/> <source>Process Generation Error</source> <translation>Fehler beim Prozessstart</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1154"/> + <location filename="../UI/UserInterface.py" line="1163"/> <source>{0} - Passive Mode</source> <translation>{0} – Passiver Modus</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1160"/> + <location filename="../UI/UserInterface.py" line="1169"/> <source>{0} - {1} - Passive Mode</source> <translation>{0} – {1} – Passiver Modus</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1342"/> + <location filename="../UI/UserInterface.py" line="1351"/> <source>Log-Viewer</source> <translation>Ausgabefenster</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2567"/> + <location filename="../UI/UserInterface.py" line="2576"/> <source>Settings</source> <translation>Einstellungen</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1590"/> + <location filename="../UI/UserInterface.py" line="1599"/> <source>Show Versions</source> <translation>Zeige Versionen</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1590"/> + <location filename="../UI/UserInterface.py" line="1599"/> <source>Show &Versions</source> <translation>Zeige &Versionen</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1594"/> + <location filename="../UI/UserInterface.py" line="1603"/> <source>Display version information</source> <translation>Zeigt Versionsinformationen</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1596"/> + <location filename="../UI/UserInterface.py" line="1605"/> <source><b>Show Versions</b><p>Display version information.</p></source> <translation><b>Zeige Versionen</b><p>Zeigt Versionsinformationen an.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2023"/> + <location filename="../UI/UserInterface.py" line="2032"/> <source>Keyboard Shortcuts</source> <translation>Tastaturkurzbefehle</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2023"/> + <location filename="../UI/UserInterface.py" line="2032"/> <source>Keyboard &Shortcuts...</source> <translation>&Tastaturkurzbefehle...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2028"/> + <location filename="../UI/UserInterface.py" line="2037"/> <source>Set the keyboard shortcuts</source> <translation>Setze die Tastaturkurzbefehle</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2030"/> + <location filename="../UI/UserInterface.py" line="2039"/> <source><b>Keyboard Shortcuts</b><p>Set the keyboard shortcuts of the application with your prefered values.</p></source> <translation><b>Tastaturkurzbefehle</b><p>Setze die Tastaturkurzbefehle der Applikation mit den bevorzugten Werten.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2399"/> + <location filename="../UI/UserInterface.py" line="2408"/> <source>E&xtras</source> <translation>E&xtras</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2970"/> + <location filename="../UI/UserInterface.py" line="2979"/> <source>Report Bug</source> <translation>Fehler berichten</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1641"/> + <location filename="../UI/UserInterface.py" line="1650"/> <source>Report &Bug...</source> <translation>&Fehler berichten...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1645"/> + <location filename="../UI/UserInterface.py" line="1654"/> <source>Report a bug</source> <translation>Einen Fehler berichten</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1646"/> + <location filename="../UI/UserInterface.py" line="1655"/> <source><b>Report Bug...</b><p>Opens a dialog to report a bug.</p></source> <translation><b>Fehler berichten...</b><p>Öffnet einen Dialog zum Senden eines Fehlerberichtes.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="5258"/> + <location filename="../UI/UserInterface.py" line="5267"/> <source>Export Keyboard Shortcuts</source> <translation>Tastaturkurzbefehle exportieren</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2038"/> + <location filename="../UI/UserInterface.py" line="2047"/> <source>&Export Keyboard Shortcuts...</source> <translation>Tastaturkurzbefehle &exportieren...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2043"/> - <source>Export the keyboard shortcuts</source> - <translation>Exportiert die Tastaturkurzbefehle</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="2045"/> - <source><b>Export Keyboard Shortcuts</b><p>Export the keyboard shortcuts of the application.</p></source> - <translation><b>Tastaturkurzbefehle exportieren</b><p>Exportiert die Tastaturkurzbefehle der Applikation.</p></translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="5282"/> - <source>Import Keyboard Shortcuts</source> - <translation>Tastaturkurzbefehle importieren</translation> - </message> - <message> <location filename="../UI/UserInterface.py" line="2052"/> + <source>Export the keyboard shortcuts</source> + <translation>Exportiert die Tastaturkurzbefehle</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2054"/> + <source><b>Export Keyboard Shortcuts</b><p>Export the keyboard shortcuts of the application.</p></source> + <translation><b>Tastaturkurzbefehle exportieren</b><p>Exportiert die Tastaturkurzbefehle der Applikation.</p></translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="5291"/> + <source>Import Keyboard Shortcuts</source> + <translation>Tastaturkurzbefehle importieren</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2061"/> <source>&Import Keyboard Shortcuts...</source> <translation>Tastaturkurzbefehle &importieren...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2057"/> + <location filename="../UI/UserInterface.py" line="2066"/> <source>Import the keyboard shortcuts</source> <translation>Importiert die Tastaturkurzbefehle</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2059"/> + <location filename="../UI/UserInterface.py" line="2068"/> <source><b>Import Keyboard Shortcuts</b><p>Import the keyboard shortcuts of the application.</p></source> <translation><b>Tastaturkurzbefehle importieren</b><p>Importiert die Tastaturkurzbefehle der Applikation.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="218"/> + <location filename="../UI/UserInterface.py" line="225"/> <source>Generating Main User Interface...</source> <translation>Erzeuge das Hauptfenster...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="250"/> + <location filename="../UI/UserInterface.py" line="257"/> <source>Setting up connections...</source> <translation>Erstelle Verbindungen...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="469"/> + <location filename="../UI/UserInterface.py" line="478"/> <source>Initializing Actions...</source> <translation>Initialisiere Aktionen...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="471"/> + <location filename="../UI/UserInterface.py" line="480"/> <source>Initializing Menus...</source> <translation>Initialisiere Menüs...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="473"/> + <location filename="../UI/UserInterface.py" line="482"/> <source>Initializing Toolbars...</source> <translation>Initialisiere Werkzeugleisten...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="475"/> + <location filename="../UI/UserInterface.py" line="484"/> <source>Initializing Statusbar...</source> <translation>Initialisiere Statuszeile...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="438"/> + <location filename="../UI/UserInterface.py" line="445"/> <source>Initializing Tools...</source> <translation>Initialisiere Werkzeuge...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1674"/> + <location filename="../UI/UserInterface.py" line="1683"/> <source><b>Unittest</b><p>Perform unit tests. The dialog gives you the ability to select and run a unittest suite.</p></source> <translation><b>Modultests</b><p>Führe Modultests durch. Der Dialog bietet die Möglichkeit eine Zusammenstellung von Modultests auszuwählen und auszuführen.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1682"/> + <location filename="../UI/UserInterface.py" line="1691"/> <source>Unittest Restart</source> <translation>Modultest neu starten</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1687"/> + <location filename="../UI/UserInterface.py" line="1696"/> <source>Restart last unittest</source> <translation>Modultest neu starten</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1688"/> + <location filename="../UI/UserInterface.py" line="1697"/> <source><b>Restart Unittest</b><p>Restart the unittest performed last.</p></source> <translation><b>Modultest neu starten</b><p>Den letzten durchgeführten Modultest neu starten.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1712"/> + <location filename="../UI/UserInterface.py" line="1721"/> <source>Unittest Script</source> <translation>Modultest (Skript)</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1717"/> + <location filename="../UI/UserInterface.py" line="1726"/> <source>Run unittest with current script</source> <translation>Modultest für aktuelles Skript ausführen</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1719"/> + <location filename="../UI/UserInterface.py" line="1728"/> <source><b>Unittest Script</b><p>Run unittest with current script.</p></source> <translation><b>Modultest (Skript)</b><p>Modultest für aktuelles Skript ausführen.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="4011"/> + <location filename="../UI/UserInterface.py" line="4020"/> <source>Unittest Project</source> <translation>Modultest (Projekt)</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1732"/> + <location filename="../UI/UserInterface.py" line="1741"/> <source>Run unittest with current project</source> <translation>Modultest für aktuellesProjekt ausführen</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1734"/> + <location filename="../UI/UserInterface.py" line="1743"/> <source><b>Unittest Project</b><p>Run unittest with current project.</p></source> <translation><b>Modultest (Projekt)</b><p>Modultest für aktuelles Projekt ausführen.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2382"/> + <location filename="../UI/UserInterface.py" line="2391"/> <source>&Unittest</source> <translation>&Modultests</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="4011"/> + <location filename="../UI/UserInterface.py" line="4020"/> <source>There is no main script defined for the current project. Aborting</source> <translation>Für das aktuelle Projekt ist kein Hauptskript festgelegt. Abbruch</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1682"/> + <location filename="../UI/UserInterface.py" line="1691"/> <source>&Restart Unittest...</source> <translation>Modultest &neu starten...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1712"/> + <location filename="../UI/UserInterface.py" line="1721"/> <source>Unittest &Script...</source> <translation>Modultest (&Skript)...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1727"/> + <location filename="../UI/UserInterface.py" line="1736"/> <source>Unittest &Project...</source> <translation>Modultest (&Projekt)...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1822"/> + <location filename="../UI/UserInterface.py" line="1831"/> <source>Compare Files</source> <translation>Dateien vergleichen</translation> </message> <message> + <location filename="../UI/UserInterface.py" line="1831"/> + <source>&Compare Files...</source> + <translation>Dateien &vergleichen...</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1849"/> + <source>Compare two files</source> + <translation>Zwei Dateien vergleichen</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1837"/> + <source><b>Compare Files</b><p>Open a dialog to compare two files.</p></source> + <translation><b>Dateien vergleichen</b><p>Öffnet einen Dialog zum Vergleich zweier Dateien.</p></translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1844"/> + <source>Compare Files side by side</source> + <translation>Dateien Seite an Seite vergleichen</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1850"/> + <source><b>Compare Files side by side</b><p>Open a dialog to compare two files and show the result side by side.</p></source> + <translation><b>Dateien Seite an Seite vergleichen</b><p>Öffnet einen Dialog zum Vergleich zweier Dateien und zur Anzeige des Ergebnisse Seite an Seite.</p></translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="5687"/> + <source>Drop Error</source> + <translation>Drop-Fehler</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="511"/> + <source>Initializing Single Application Server...</source> + <translation>Initialisiere Applikationsserver...</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1172"/> + <source>{0} - {1} - {2} - Passive Mode</source> + <translation>{0} . {1} – {2} – Passiver Modus</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1334"/> + <source>File-Browser</source> + <translation>Dateibrowser</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1231"/> + <source>Edit Profile</source> + <translation>Editieren-Profil</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1237"/> + <source>Activate the edit view profile</source> + <translation>Aktiviert das Editieren-Ansichtsprofil </translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1239"/> + <source><b>Edit Profile</b><p>Activate the "Edit View Profile". Windows being shown, if this profile is active, may be configured with the "View Profile Configuration" dialog.</p></source> + <translation><b>Editieren-Profil</b><p>Aktiviert das „Editieren-Ansichtsprofil“. Fenster, die in diesem Profil angezeigt werden sollen, können im „Ansichtenprofile konfigurieren“-Dialog ausgewählt werden.</p></translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1248"/> + <source>Debug Profile</source> + <translation>Debuggen-Profil</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1254"/> + <source>Activate the debug view profile</source> + <translation>Aktiviert das Debuggen-Ansichtsprofil</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1256"/> + <source><b>Debug Profile</b><p>Activate the "Debug View Profile". Windows being shown, if this profile is active, may be configured with the "View Profile Configuration" dialog.</p></source> + <translation><b>Debuggen-Profil</b><p>Aktiviert das „Debuggen Ansichtsprofil“. Fenster, die in diesem Profil angezeigt werden sollen, können im „Ansichtenprofile konfigurieren“-Dialog ausgewählt werden.</p></translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2000"/> + <source>View Profiles</source> + <translation>Ansichtenprofile</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2000"/> + <source>&View Profiles...</source> + <translation>&Ansichtenprofile...</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2005"/> + <source>Configure view profiles</source> + <translation>Ansichtenprofile konfigurieren</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2007"/> + <source><b>View Profiles</b><p>Configure the view profiles. With this dialog you may set the visibility of the various windows for the predetermined view profiles.</p></source> + <translation><b>Ansichtenprofile</b><p>Ansichtenprofile konfigurieren. Mit diesem Dialog kann die Sichtbarkeit der verschiedenen Fenster für die vorbestimmten Ansichtenprofile eingestellt werden.</p></translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="4391"/> + <source><p>The file <b>{0}</b> does not exist or is zero length.</p></source> + <translation><p>Die Datei <b>{0}</b> existiert nicht oder hat die Größe Null.</p></translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="4126"/> + <source><p>Could not start Qt-Designer.<br>Ensure that it is available as <b>{0}</b>.</p></source> + <translation><p>Qt-Designer konnte nicht gestartet werden.<br>Stellen Sie sicher, dass es als <b>{0}</b> verfügbar ist.</p></translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="4193"/> + <source><p>Could not start Qt-Linguist.<br>Ensure that it is available as <b>{0}</b>.</p></source> + <translation><p>Qt-Linguist konnte nicht gestartet werden.<br>Stellen Sie sicher, dass es als <b>{0}</b> verfügbar ist.</p></translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="4242"/> + <source><p>Could not start Qt-Assistant.<br>Ensure that it is available as <b>{0}</b>.</p></source> + <translation><p>Qt-Assistant konnte nicht gestartet werden.<br>Stellen Sie sicher, dass es als <b>{0}</b> verfügbar ist.</p></translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="4560"/> + <source><p>Could not start the tool entry <b>{0}</b>.<br>Ensure that it is available as <b>{1}</b>.</p></source> + <translation><p>Der Werkzeugeeintrag <b>{0}</b> konnte nicht gestartet werden.<br>Stellen Sie sicher, dass er als <b>{1}</b> verfügbar ist.</p></translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="5687"/> + <source><p><b>{0}</b> is not a file.</p></source> + <translation><p><b>{0}</b> ist keine Datei.</p></translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1804"/> + <source>UI Previewer</source> + <translation>UI-Vorschau</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1804"/> + <source>&UI Previewer...</source> + <translation>&UI-Vorschau...</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1809"/> + <source>Start the UI Previewer</source> + <translation>Starte die UI-Vorschau</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1810"/> + <source><b>UI Previewer</b><p>Start the UI Previewer.</p></source> + <translation><b>UI-Vorschau</b><p>Starte die UI-Vorschau.</p></translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="4350"/> + <source><p>Could not start UI Previewer.<br>Ensure that it is available as <b>{0}</b>.</p></source> + <translation><p>Die UI-Vorschau konnte nicht gestartet werden.<br>Stellen Sie sicher, dass sie als <b>{0}</b> verfügbar ist.</p></translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1817"/> + <source>Translations Previewer</source> + <translation>Übersetzungsvorschau</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1817"/> + <source>&Translations Previewer...</source> + <translation>&Übersetzungsvorschau...</translation> + </message> + <message> <location filename="../UI/UserInterface.py" line="1822"/> - <source>&Compare Files...</source> - <translation>Dateien &vergleichen...</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1840"/> - <source>Compare two files</source> - <translation>Zwei Dateien vergleichen</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1828"/> - <source><b>Compare Files</b><p>Open a dialog to compare two files.</p></source> - <translation><b>Dateien vergleichen</b><p>Öffnet einen Dialog zum Vergleich zweier Dateien.</p></translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1835"/> - <source>Compare Files side by side</source> - <translation>Dateien Seite an Seite vergleichen</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1841"/> - <source><b>Compare Files side by side</b><p>Open a dialog to compare two files and show the result side by side.</p></source> - <translation><b>Dateien Seite an Seite vergleichen</b><p>Öffnet einen Dialog zum Vergleich zweier Dateien und zur Anzeige des Ergebnisse Seite an Seite.</p></translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="5678"/> - <source>Drop Error</source> - <translation>Drop-Fehler</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="502"/> - <source>Initializing Single Application Server...</source> - <translation>Initialisiere Applikationsserver...</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1163"/> - <source>{0} - {1} - {2} - Passive Mode</source> - <translation>{0} . {1} – {2} – Passiver Modus</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1325"/> - <source>File-Browser</source> - <translation>Dateibrowser</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1222"/> - <source>Edit Profile</source> - <translation>Editieren-Profil</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1228"/> - <source>Activate the edit view profile</source> - <translation>Aktiviert das Editieren-Ansichtsprofil </translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1230"/> - <source><b>Edit Profile</b><p>Activate the "Edit View Profile". Windows being shown, if this profile is active, may be configured with the "View Profile Configuration" dialog.</p></source> - <translation><b>Editieren-Profil</b><p>Aktiviert das „Editieren-Ansichtsprofil“. Fenster, die in diesem Profil angezeigt werden sollen, können im „Ansichtenprofile konfigurieren“-Dialog ausgewählt werden.</p></translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1239"/> - <source>Debug Profile</source> - <translation>Debuggen-Profil</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1245"/> - <source>Activate the debug view profile</source> - <translation>Aktiviert das Debuggen-Ansichtsprofil</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1247"/> - <source><b>Debug Profile</b><p>Activate the "Debug View Profile". Windows being shown, if this profile is active, may be configured with the "View Profile Configuration" dialog.</p></source> - <translation><b>Debuggen-Profil</b><p>Aktiviert das „Debuggen Ansichtsprofil“. Fenster, die in diesem Profil angezeigt werden sollen, können im „Ansichtenprofile konfigurieren“-Dialog ausgewählt werden.</p></translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1991"/> - <source>View Profiles</source> - <translation>Ansichtenprofile</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1991"/> - <source>&View Profiles...</source> - <translation>&Ansichtenprofile...</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1996"/> - <source>Configure view profiles</source> - <translation>Ansichtenprofile konfigurieren</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1998"/> - <source><b>View Profiles</b><p>Configure the view profiles. With this dialog you may set the visibility of the various windows for the predetermined view profiles.</p></source> - <translation><b>Ansichtenprofile</b><p>Ansichtenprofile konfigurieren. Mit diesem Dialog kann die Sichtbarkeit der verschiedenen Fenster für die vorbestimmten Ansichtenprofile eingestellt werden.</p></translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="4382"/> - <source><p>The file <b>{0}</b> does not exist or is zero length.</p></source> - <translation><p>Die Datei <b>{0}</b> existiert nicht oder hat die Größe Null.</p></translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="4117"/> - <source><p>Could not start Qt-Designer.<br>Ensure that it is available as <b>{0}</b>.</p></source> - <translation><p>Qt-Designer konnte nicht gestartet werden.<br>Stellen Sie sicher, dass es als <b>{0}</b> verfügbar ist.</p></translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="4184"/> - <source><p>Could not start Qt-Linguist.<br>Ensure that it is available as <b>{0}</b>.</p></source> - <translation><p>Qt-Linguist konnte nicht gestartet werden.<br>Stellen Sie sicher, dass es als <b>{0}</b> verfügbar ist.</p></translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="4233"/> - <source><p>Could not start Qt-Assistant.<br>Ensure that it is available as <b>{0}</b>.</p></source> - <translation><p>Qt-Assistant konnte nicht gestartet werden.<br>Stellen Sie sicher, dass es als <b>{0}</b> verfügbar ist.</p></translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="4551"/> - <source><p>Could not start the tool entry <b>{0}</b>.<br>Ensure that it is available as <b>{1}</b>.</p></source> - <translation><p>Der Werkzeugeeintrag <b>{0}</b> konnte nicht gestartet werden.<br>Stellen Sie sicher, dass er als <b>{1}</b> verfügbar ist.</p></translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="5678"/> - <source><p><b>{0}</b> is not a file.</p></source> - <translation><p><b>{0}</b> ist keine Datei.</p></translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1795"/> - <source>UI Previewer</source> - <translation>UI-Vorschau</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1795"/> - <source>&UI Previewer...</source> - <translation>&UI-Vorschau...</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1800"/> - <source>Start the UI Previewer</source> - <translation>Starte die UI-Vorschau</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1801"/> - <source><b>UI Previewer</b><p>Start the UI Previewer.</p></source> - <translation><b>UI-Vorschau</b><p>Starte die UI-Vorschau.</p></translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="4341"/> - <source><p>Could not start UI Previewer.<br>Ensure that it is available as <b>{0}</b>.</p></source> - <translation><p>Die UI-Vorschau konnte nicht gestartet werden.<br>Stellen Sie sicher, dass sie als <b>{0}</b> verfügbar ist.</p></translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1808"/> - <source>Translations Previewer</source> - <translation>Übersetzungsvorschau</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1808"/> - <source>&Translations Previewer...</source> - <translation>&Übersetzungsvorschau...</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1813"/> <source>Start the Translations Previewer</source> <translation>Die Übersetzungsvorschau starten</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1815"/> + <location filename="../UI/UserInterface.py" line="1824"/> <source><b>Translations Previewer</b><p>Start the Translations Previewer.</p></source> <translation><b>Übersetzungsvorschau</b><p>Dies startet das Programm zur Vorschau von Übersetzungen.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="4393"/> + <location filename="../UI/UserInterface.py" line="4402"/> <source><p>Could not start Translation Previewer.<br>Ensure that it is available as <b>{0}</b>.</p></source> <translation><p>Die Übersetzungsvorschau konnte nicht gestartet werden.<br>Stellen Sie sicher, dass sie als <b>{0}</b> verfügbar ist.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1309"/> + <location filename="../UI/UserInterface.py" line="1318"/> <source>Shell</source> <translation>Shell</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1309"/> + <location filename="../UI/UserInterface.py" line="1318"/> <source>&Shell</source> <translation>&Shell</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1962"/> + <location filename="../UI/UserInterface.py" line="1971"/> <source>Reload APIs</source> <translation>APIs neu laden</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1962"/> + <location filename="../UI/UserInterface.py" line="1971"/> <source>Reload &APIs</source> <translation>APIs &neu laden</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1966"/> + <location filename="../UI/UserInterface.py" line="1975"/> <source>Reload the API information</source> <translation>Die API-Informationen neu laden</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1968"/> + <location filename="../UI/UserInterface.py" line="1977"/> <source><b>Reload APIs</b><p>Reload the API information.</p></source> <translation><b>APIs neu laden</b><p>Lädt die API-Informationen neu.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1360"/> + <location filename="../UI/UserInterface.py" line="1369"/> <source>Task-Viewer</source> <translation>Aufgabenanzeige</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="5417"/> + <location filename="../UI/UserInterface.py" line="5426"/> <source>Save tasks</source> <translation>Aufgaben speichern</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="5417"/> + <location filename="../UI/UserInterface.py" line="5426"/> <source><p>The tasks file <b>{0}</b> could not be written.</p></source> <translation><p>Die Aufgabendatei <b>{0}</b> konnte nicht geschrieben werden.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="5443"/> + <location filename="../UI/UserInterface.py" line="5452"/> <source>Read tasks</source> <translation>Aufgaben lesen</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="5443"/> + <location filename="../UI/UserInterface.py" line="5452"/> <source><p>The tasks file <b>{0}</b> could not be read.</p></source> <translation><p>Die Aufgabendatei <b>{0}</b> konnte nicht gelesen werden.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="4261"/> + <location filename="../UI/UserInterface.py" line="4270"/> <source>Currently no custom viewer is selected. Please use the preferences dialog to specify one.</source> <translation>Momentan ist kein Betrachter angegeben. Bitte benutzen Sie den Einstellungsdialog, um einen festzulegen.</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="4275"/> + <location filename="../UI/UserInterface.py" line="4284"/> <source><p>Could not start custom viewer.<br>Ensure that it is available as <b>{0}</b>.</p></source> <translation><p>Der Betrachter konnte nicht gestartet werden.<br>Stellen Sie sicher, dass er als <b>{0}</b> verfügbar ist.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="4991"/> + <location filename="../UI/UserInterface.py" line="5000"/> <source>Documentation Missing</source> <translation>Dokumentation fehlt</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="4991"/> + <location filename="../UI/UserInterface.py" line="5000"/> <source><p>The documentation starting point "<b>{0}</b>" could not be found.</p></source> <translation><p>Der Dokumentationsstartpunkt „<b>{0}</b>“ konnte nicht gefunden werden.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2970"/> + <location filename="../UI/UserInterface.py" line="2979"/> <source>Email address or mail server address is empty. Please configure your Email settings in the Preferences Dialog.</source> <translation>E-Mail-Adresse oder Mailserver-Adresse sind leer. Bitte konfiguriere die E-Mail-Einstellungen im Einstellungsdialog.</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1378"/> + <location filename="../UI/UserInterface.py" line="1387"/> <source>Template-Viewer</source> <translation>Vorlagen</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1256"/> + <location filename="../UI/UserInterface.py" line="1265"/> <source>Alt+Shift+P</source> <translation>Alt+Shift+P</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1291"/> + <location filename="../UI/UserInterface.py" line="1300"/> <source>Alt+Shift+D</source> <translation>Alt+Shift+D</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1309"/> + <location filename="../UI/UserInterface.py" line="1318"/> <source>Alt+Shift+S</source> <translation>Alt+Shift+S</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1325"/> + <location filename="../UI/UserInterface.py" line="1334"/> <source>Alt+Shift+F</source> <translation>Alt+Shift+F</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1360"/> + <location filename="../UI/UserInterface.py" line="1369"/> <source>Alt+Shift+T</source> <translation>Alt+Shift+T</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1273"/> + <location filename="../UI/UserInterface.py" line="1282"/> <source>Alt+Shift+M</source> <translation>Alt+Shift+M</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2100"/> + <location filename="../UI/UserInterface.py" line="2109"/> <source>Activate current editor</source> <translation>Aktiviere aktuellen Editor</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2100"/> + <location filename="../UI/UserInterface.py" line="2109"/> <source>Alt+Shift+E</source> <translation>Alt+Shift+E</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2110"/> - <source>Ctrl+Alt+Tab</source> - <translation>Ctrl+Alt+Tab</translation> - </message> - <message> <location filename="../UI/UserInterface.py" line="2119"/> + <source>Ctrl+Alt+Tab</source> + <translation>Ctrl+Alt+Tab</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2128"/> <source>Shift+Ctrl+Alt+Tab</source> <translation>Shift+Ctrl+Alt+Tab</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1342"/> + <location filename="../UI/UserInterface.py" line="1351"/> <source>Alt+Shift+G</source> <translation>Alt+Shift+G</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2207"/> + <location filename="../UI/UserInterface.py" line="2216"/> <source>Qt4 Documentation</source> <translation>Qt4-Dokumentation</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2207"/> + <location filename="../UI/UserInterface.py" line="2216"/> <source>Qt&4 Documentation</source> <translation>Qt&4-Dokumentation</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2211"/> + <location filename="../UI/UserInterface.py" line="2220"/> <source>Open Qt4 Documentation</source> <translation>Öffne die Qt4-Dokumentation</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2316"/> + <location filename="../UI/UserInterface.py" line="2325"/> <source>Eric API Documentation</source> <translation>Eric-API-Dokumentation</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2316"/> + <location filename="../UI/UserInterface.py" line="2325"/> <source>&Eric API Documentation</source> <translation>&Eric-API-Dokumentation</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2320"/> + <location filename="../UI/UserInterface.py" line="2329"/> <source>Open Eric API Documentation</source> <translation>Öffne die Eric-API-Dokumentation</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="4295"/> + <location filename="../UI/UserInterface.py" line="4304"/> <source><p>Could not start the help viewer.<br>Ensure that it is available as <b>hh</b>.</p></source> <translation><p>Die Hilfeanzeige konnte nicht gestartet werden.<br>Stellen Sie sicher, dass sie als <b>hh</b> verfügbar ist.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="449"/> + <location filename="../UI/UserInterface.py" line="456"/> <source>Registering Objects...</source> <translation>Registriere Objekte...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1256"/> + <location filename="../UI/UserInterface.py" line="1265"/> <source>Project-Viewer</source> <translation>Projektanzeige</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1291"/> + <location filename="../UI/UserInterface.py" line="1300"/> <source>Debug-Viewer</source> <translation>Debuganzeige</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1186"/> + <location filename="../UI/UserInterface.py" line="1195"/> <source>Ctrl+Q</source> <comment>File|Quit</comment> <translation>Ctrl+Q</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1256"/> + <location filename="../UI/UserInterface.py" line="1265"/> <source>&Project-Viewer</source> <translation>&Projektanzeige</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1547"/> + <location filename="../UI/UserInterface.py" line="1556"/> <source>Shift+F1</source> <translation>Shift+F1</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1565"/> + <location filename="../UI/UserInterface.py" line="1574"/> <source>F1</source> <translation>F1</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1606"/> + <location filename="../UI/UserInterface.py" line="1615"/> <source>Check for Updates</source> <translation>Auf Aktualisierungen prüfen</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1603"/> + <location filename="../UI/UserInterface.py" line="1612"/> <source>Check for &Updates...</source> <translation>Auf &Aktualisierungen prüfen...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2235"/> + <location filename="../UI/UserInterface.py" line="2244"/> <source>PyQt4 Documentation</source> <translation>PyQt4-Dokumentation</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2239"/> + <location filename="../UI/UserInterface.py" line="2248"/> <source>Open PyQt4 Documentation</source> <translation>Öffne die PyQt4-Dokumentation</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2415"/> + <location filename="../UI/UserInterface.py" line="2424"/> <source>Select Tool Group</source> <translation>Werkzeuggruppe wählen</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2421"/> + <location filename="../UI/UserInterface.py" line="2430"/> <source>Se&ttings</source> <translation>&Einstellungen</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2569"/> + <location filename="../UI/UserInterface.py" line="2578"/> <source>Profiles</source> <translation>Profile</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="3331"/> + <location filename="../UI/UserInterface.py" line="3340"/> <source>&Builtin Tools</source> <translation>&Eingebaute Werkzeuge</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="4535"/> + <location filename="../UI/UserInterface.py" line="4544"/> <source>Starting process '{0} {1}'. </source> <translation>Starte Prozess „{0} {1}“. </translation> </message> <message> - <location filename="../UI/UserInterface.py" line="4627"/> + <location filename="../UI/UserInterface.py" line="4636"/> <source>Process '{0}' has exited. </source> <translation>Prozess „{0}“ ist beendet. </translation> </message> <message> - <location filename="../UI/UserInterface.py" line="4975"/> + <location filename="../UI/UserInterface.py" line="4984"/> <source>Documentation</source> <translation>Dokumentation</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="4819"/> + <location filename="../UI/UserInterface.py" line="4828"/> <source><p>The PyQt4 documentation starting point has not been configured.</p></source> <translation><p>Der PyQt4-Dokumentations-Startpunkt ist nicht konfiguriert.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="5984"/> + <location filename="../UI/UserInterface.py" line="5995"/> <source>Error during updates check</source> <translation>Fehler während der Aktualisierungsprüfung</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="5965"/> + <location filename="../UI/UserInterface.py" line="5976"/> <source>Update available</source> <translation>Aktualisierung verfügbar</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2919"/> + <location filename="../UI/UserInterface.py" line="2928"/> <source><h3>Version Numbers</h3><table></source> <translation><h3>Versionsnummern</h3><table></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="6021"/> + <location filename="../UI/UserInterface.py" line="6032"/> <source></table></source> <translation></table></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="3277"/> + <location filename="../UI/UserInterface.py" line="3286"/> <source>Configure Tool Groups ...</source> <translation>Konfiguriere Werkzeuggruppen...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="3281"/> + <location filename="../UI/UserInterface.py" line="3290"/> <source>Configure current Tool Group ...</source> <translation>Konfiguriere aktuelle Werkzeuggruppe...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1980"/> + <location filename="../UI/UserInterface.py" line="1989"/> <source>Show external tools</source> <translation>Zeige externe Werkzeuge</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1975"/> + <location filename="../UI/UserInterface.py" line="1984"/> <source>Show external &tools</source> <translation>Zeige externe &Werkzeuge</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="5984"/> + <location filename="../UI/UserInterface.py" line="5995"/> <source>Could not perform updates check.</source> <translation>Konnte keine Aktualisierungsprüfung durchführen.</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="5820"/> + <location filename="../UI/UserInterface.py" line="5831"/> <source>&Cancel</source> <translation>&Abbrechen</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="5827"/> + <location filename="../UI/UserInterface.py" line="5838"/> <source>Trying host {0}</source> <translation>Prüfe Host {0}</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="6048"/> + <location filename="../UI/UserInterface.py" line="6059"/> <source>First time usage</source> <translation>Erstmalige Nutzung</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="212"/> + <location filename="../UI/UserInterface.py" line="219"/> <source>Initializing Plugin Manager...</source> <translation>Initialisiere Plugin-Manager...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2480"/> + <location filename="../UI/UserInterface.py" line="2489"/> <source>P&lugins</source> <translation>Plugi&ns</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2570"/> + <location filename="../UI/UserInterface.py" line="2579"/> <source>Plugins</source> <translation>Plugins</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2137"/> + <location filename="../UI/UserInterface.py" line="2146"/> <source>Plugin Infos</source> <translation>Plugininformationen</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2141"/> - <source>Show Plugin Infos</source> - <translation>Zeigt Plugininformationen</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="2142"/> - <source><b>Plugin Infos...</b><p>This opens a dialog, that show some information about loaded plugins.</p></source> - <translation><b>Plugininformationen...</b><p>Dies öffnet einen Dialog, der einige Informationen über die geladenen Plugins anzeigt.</p></translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="2137"/> - <source>&Plugin Infos...</source> - <translation>&Plugininformationen...</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="3339"/> - <source>&Plugin Tools</source> - <translation>&Pluginwerkzeuge</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="2168"/> - <source>Uninstall Plugin</source> - <translation>Plugin deinstallieren</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="2163"/> - <source>&Uninstall Plugin...</source> - <translation>Plugin &deinstallieren...</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="2169"/> - <source><b>Uninstall Plugin...</b><p>This opens a dialog to uninstall a plugin.</p></source> - <translation><b>Plugin deinstallieren...</b><p>Dies öffnet einen Dialog zur Deinstallation eines Plugins.</p></translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="3429"/> - <source>&Show all</source> - <translation>Alle an&zeigen</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="3431"/> - <source>&Hide all</source> - <translation>Alle &ausblenden</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="511"/> - <source>Activating Plugins...</source> - <translation>Aktiviere Plugins...</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="2404"/> - <source>Wi&zards</source> - <translation>&Assistenten</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1614"/> - <source>Show downloadable versions</source> - <translation>Zeige verfügbare Versionen</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1614"/> - <source>Show &downloadable versions...</source> - <translation>&Zeige verfügbare Versionen...</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1618"/> - <source>Show the versions available for download</source> - <translation>Zeige die verfügbaren eric4-Versionen</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="6007"/> - <source><h3>Available versions</h3><table></source> - <translation><h3>Verfügbare Versionen</h3><table></translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="2176"/> - <source>Plugin Repository</source> - <translation>Plugin-Repository</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="2176"/> - <source>Plugin &Repository...</source> - <translation>Plugin-&Repository...</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="2181"/> - <source>Show Plugins available for download</source> - <translation>Zeige zum Download verfügbare Plugins an</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="2183"/> - <source><b>Plugin Repository...</b><p>This opens a dialog, that shows a list of plugins available on the Internet.</p></source> - <translation><b>Plugin-Repository...</b><p>Dies öffnet einen Dialog, der eine Liste der im Internet verfügbaren Plugins anzeigt.</p></translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="2155"/> - <source>Install Plugins</source> - <translation>Plugins installieren</translation> - </message> - <message> <location filename="../UI/UserInterface.py" line="2150"/> + <source>Show Plugin Infos</source> + <translation>Zeigt Plugininformationen</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2151"/> + <source><b>Plugin Infos...</b><p>This opens a dialog, that show some information about loaded plugins.</p></source> + <translation><b>Plugininformationen...</b><p>Dies öffnet einen Dialog, der einige Informationen über die geladenen Plugins anzeigt.</p></translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2146"/> + <source>&Plugin Infos...</source> + <translation>&Plugininformationen...</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="3348"/> + <source>&Plugin Tools</source> + <translation>&Pluginwerkzeuge</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2177"/> + <source>Uninstall Plugin</source> + <translation>Plugin deinstallieren</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2172"/> + <source>&Uninstall Plugin...</source> + <translation>Plugin &deinstallieren...</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2178"/> + <source><b>Uninstall Plugin...</b><p>This opens a dialog to uninstall a plugin.</p></source> + <translation><b>Plugin deinstallieren...</b><p>Dies öffnet einen Dialog zur Deinstallation eines Plugins.</p></translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="3438"/> + <source>&Show all</source> + <translation>Alle an&zeigen</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="3440"/> + <source>&Hide all</source> + <translation>Alle &ausblenden</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="520"/> + <source>Activating Plugins...</source> + <translation>Aktiviere Plugins...</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2413"/> + <source>Wi&zards</source> + <translation>&Assistenten</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1623"/> + <source>Show downloadable versions</source> + <translation>Zeige verfügbare Versionen</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1623"/> + <source>Show &downloadable versions...</source> + <translation>&Zeige verfügbare Versionen...</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1627"/> + <source>Show the versions available for download</source> + <translation>Zeige die verfügbaren eric4-Versionen</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="6018"/> + <source><h3>Available versions</h3><table></source> + <translation><h3>Verfügbare Versionen</h3><table></translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2185"/> + <source>Plugin Repository</source> + <translation>Plugin-Repository</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2185"/> + <source>Plugin &Repository...</source> + <translation>Plugin-&Repository...</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2190"/> + <source>Show Plugins available for download</source> + <translation>Zeige zum Download verfügbare Plugins an</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2192"/> + <source><b>Plugin Repository...</b><p>This opens a dialog, that shows a list of plugins available on the Internet.</p></source> + <translation><b>Plugin-Repository...</b><p>Dies öffnet einen Dialog, der eine Liste der im Internet verfügbaren Plugins anzeigt.</p></translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2164"/> + <source>Install Plugins</source> + <translation>Plugins installieren</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2159"/> <source>&Install Plugins...</source> <translation>Plugins &installieren...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2156"/> + <location filename="../UI/UserInterface.py" line="2165"/> <source><b>Install Plugins...</b><p>This opens a dialog to install or update plugins.</p></source> <translation><b>Plugins installieren...</b><p>Dies öffnet einen Dialog zur Installation oder Update von Plugins.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1867"/> + <location filename="../UI/UserInterface.py" line="1876"/> <source>Mini Editor</source> <translation>Mini-Editor</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1862"/> + <location filename="../UI/UserInterface.py" line="1871"/> <source>Mini &Editor...</source> <translation>Mini-&Editor...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1868"/> + <location filename="../UI/UserInterface.py" line="1877"/> <source><b>Mini Editor</b><p>Open a dialog with a simplified editor.</p></source> <translation><b>Mini-Editor</b><p>Öffnet einen Dialog mit einem vereinfachten Editor.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2008"/> + <location filename="../UI/UserInterface.py" line="2017"/> <source>Toolbars</source> <translation>Werkzeugleisten</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2008"/> + <location filename="../UI/UserInterface.py" line="2017"/> <source>Tool&bars...</source> <translation>Werkzeug&leisten...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2013"/> + <location filename="../UI/UserInterface.py" line="2022"/> <source>Configure toolbars</source> <translation>Werkzeugleisten einrichten</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2014"/> + <location filename="../UI/UserInterface.py" line="2023"/> <source><b>Toolbars</b><p>Configure the toolbars. With this dialog you may change the actions shown on the various toolbars and define your own toolbars.</p></source> <translation><b>Werkzeugleisten</b><p>Werkzeugleisten konfigurieren. Mit diesem Dialog können die auf den Werkzeugleisten gezeigten Aktionen geändert und neue Werkzeugleisten definiert werden.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="519"/> + <location filename="../UI/UserInterface.py" line="528"/> <source>Restoring Toolbarmanager...</source> <translation>Lade Toolbarmanager...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2822"/> + <location filename="../UI/UserInterface.py" line="2831"/> <source>External Tools/{0}</source> <translation>Externe Werkzeuge/{0}</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="4496"/> + <location filename="../UI/UserInterface.py" line="4505"/> <source>External Tools</source> <translation>Externe Werkzeuge</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="4487"/> - <source>No tool entry found for external tool '{0}' in tool group '{1}'.</source> - <translation>Kein Eintrag für das externe Werkzeug „{0}“ in der Gruppe „{1}“ gefunden.</translation> - </message> - <message> <location filename="../UI/UserInterface.py" line="4496"/> + <source>No tool entry found for external tool '{0}' in tool group '{1}'.</source> + <translation>Kein Eintrag für das externe Werkzeug „{0}“ in der Gruppe „{1}“ gefunden.</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="4505"/> <source>No toolgroup entry '{0}' found.</source> <translation>Kein Werkzeuggruppeneintrag „{0}“ gefunden.</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1273"/> + <location filename="../UI/UserInterface.py" line="1282"/> <source>Multiproject-Viewer</source> <translation>Mehrfachprojektanzeige</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1273"/> + <location filename="../UI/UserInterface.py" line="1282"/> <source>&Multiproject-Viewer</source> <translation>&Mehrfachprojektanzeige</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="5461"/> + <location filename="../UI/UserInterface.py" line="5470"/> <source>Save session</source> <translation>Session speichern</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="5461"/> + <location filename="../UI/UserInterface.py" line="5470"/> <source><p>The session file <b>{0}</b> could not be written.</p></source> <translation><p>Die Sessiondatei <b>{0}</b> konnte nicht geschrieben werden.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="5489"/> + <location filename="../UI/UserInterface.py" line="5498"/> <source>Read session</source> <translation>Session lesen</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="5489"/> + <location filename="../UI/UserInterface.py" line="5498"/> <source><p>The session file <b>{0}</b> could not be read.</p></source> <translation><p>Die Sessiondatei <b>{0}</b> konnte nicht gelesen werden.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2724"/> + <location filename="../UI/UserInterface.py" line="2733"/> <source><p>This part of the status bar displays the current editors encoding.</p></source> <translation><p>Dieser Teil der Statusleiste zeigt die Zeichenkodierung des aktuellen Editors an.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2738"/> + <location filename="../UI/UserInterface.py" line="2747"/> <source><p>This part of the status bar displays an indication of the current editors files writability.</p></source> <translation><p>Dieser Teil der Statusleiste zeigt an, ob die aktuelle Datei geschrieben werden kann.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1653"/> + <location filename="../UI/UserInterface.py" line="1662"/> <source>Request Feature</source> <translation>Neue Funktion anfragen</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1653"/> + <location filename="../UI/UserInterface.py" line="1662"/> <source>Request &Feature...</source> <translation>Neue &Funktion anfragen...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1657"/> + <location filename="../UI/UserInterface.py" line="1666"/> <source>Send a feature request</source> <translation>Sende eine Anfrage für eine neue Funktion</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1659"/> + <location filename="../UI/UserInterface.py" line="1668"/> <source><b>Request Feature...</b><p>Opens a dialog to send a feature request.</p></source> <translation><b>Neue Funktion anfragen...</b><p>Öffnet einen Dialog, um eine Anfrage für eine neue Funktion zu senden.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2717"/> + <location filename="../UI/UserInterface.py" line="2726"/> <source><p>This part of the status bar displays the current editors language.</p></source> <translation><p>Dieser Teil der Statusleiste zeigt die Sprache des aktuellen Editors an.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2745"/> + <location filename="../UI/UserInterface.py" line="2754"/> <source><p>This part of the status bar displays the line number of the current editor.</p></source> <translation><p>Dieser Teil der Statusleiste zeigt die Zeilennummer des aktuellen Editors an.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2752"/> + <location filename="../UI/UserInterface.py" line="2761"/> <source><p>This part of the status bar displays the cursor position of the current editor.</p></source> <translation><p>Dieser Teil der Statusleiste zeigt die Cursorposition des aktuellen Editors an.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1421"/> + <location filename="../UI/UserInterface.py" line="1430"/> <source>Horizontal Toolbox</source> <translation>Horizontale Werkzeugbox</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1421"/> + <location filename="../UI/UserInterface.py" line="1430"/> <source>&Horizontal Toolbox</source> <translation>&Horizontale Werkzeugbox</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1425"/> + <location filename="../UI/UserInterface.py" line="1434"/> <source>Toggle the Horizontal Toolbox window</source> <translation>Schalte das Fenster der Horizontalen Werkzeugbox um</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1427"/> + <location filename="../UI/UserInterface.py" line="1436"/> <source><b>Toggle the Horizontal Toolbox window</b><p>If the Horizontal Toolbox window is hidden then display it. If it is displayed then close it.</p></source> <translation><b>Schalte das Fenster der Horizontalen Werkzeugbox um</b><p>Falls das Fenster der Horizontalen Werkzeugbox nicht sichtbar ist, wird es dargestellt. Ist es sichtbar, so wird es versteckt.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="3243"/> + <location filename="../UI/UserInterface.py" line="3252"/> <source>Restart application</source> <translation>Anwendung neu starten</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="3243"/> + <location filename="../UI/UserInterface.py" line="3252"/> <source>The application needs to be restarted. Do it now?</source> <translation>Die Anwendung muss neu gestartet werden. Jetzt durchführen?</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1378"/> + <location filename="../UI/UserInterface.py" line="1387"/> <source>Alt+Shift+A</source> <translation>Alt+Shift+A</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2489"/> + <location filename="../UI/UserInterface.py" line="2498"/> <source>Configure...</source> <translation>Einstellungen...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2731"/> + <location filename="../UI/UserInterface.py" line="2740"/> <source><p>This part of the status bar displays the current editors eol setting.</p></source> <translation><p>Dieser Teil der Statusleiste zeigt die Zeilenendekodierung des aktuellen Editors an.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2128"/> + <location filename="../UI/UserInterface.py" line="2137"/> <source>Switch between tabs</source> <translation>Zwischen Tabs umschalten</translation> </message> <message> + <location filename="../UI/UserInterface.py" line="2137"/> + <source>Ctrl+1</source> + <translation>Ctrl+1</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1943"/> + <source>Export Preferences</source> + <translation>Einstellungen exportieren</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1943"/> + <source>E&xport Preferences...</source> + <translation>Einstellungen e&xportieren...</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1948"/> + <source>Export the current configuration</source> + <translation>Exportiert die aktuelle Konfiguration</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1950"/> + <source><b>Export Preferences</b><p>Export the current configuration to a file.</p></source> + <translation><b>Einstellungen exportieren</b><p>Exportiert die aktuelle Konfiguration in eine Datei.</p></translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1957"/> + <source>Import Preferences</source> + <translation>Einstellungen importieren</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1957"/> + <source>I&mport Preferences...</source> + <translation>Einstellungen i&mportieren...</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1962"/> + <source>Import a previously exported configuration</source> + <translation>Importiert eine zuvor exportierte Konfiguration</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1964"/> + <source><b>Import Preferences</b><p>Import a previously exported configuration.</p></source> + <translation><b>Einstellungen importieren</b><p>Importiert eine zuvor exportierte Konfiguration.</p></translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2119"/> + <source>Show next</source> + <translation>Zeige nächste</translation> + </message> + <message> <location filename="../UI/UserInterface.py" line="2128"/> - <source>Ctrl+1</source> - <translation>Ctrl+1</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1934"/> - <source>Export Preferences</source> - <translation>Einstellungen exportieren</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1934"/> - <source>E&xport Preferences...</source> - <translation>Einstellungen e&xportieren...</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1939"/> - <source>Export the current configuration</source> - <translation>Exportiert die aktuelle Konfiguration</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1941"/> - <source><b>Export Preferences</b><p>Export the current configuration to a file.</p></source> - <translation><b>Einstellungen exportieren</b><p>Exportiert die aktuelle Konfiguration in eine Datei.</p></translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1948"/> - <source>Import Preferences</source> - <translation>Einstellungen importieren</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1948"/> - <source>I&mport Preferences...</source> - <translation>Einstellungen i&mportieren...</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1953"/> - <source>Import a previously exported configuration</source> - <translation>Importiert eine zuvor exportierte Konfiguration</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1955"/> - <source><b>Import Preferences</b><p>Import a previously exported configuration.</p></source> - <translation><b>Einstellungen importieren</b><p>Importiert eine zuvor exportierte Konfiguration.</p></translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="2110"/> - <source>Show next</source> - <translation>Zeige nächste</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="2119"/> <source>Show previous</source> <translation>Zeige vorherige</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1435"/> + <location filename="../UI/UserInterface.py" line="1444"/> <source>Left Sidebar</source> <translation>Linke Seitenleiste</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1435"/> + <location filename="../UI/UserInterface.py" line="1444"/> <source>&Left Sidebar</source> <translation>&Linke Seitenleiste</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1439"/> + <location filename="../UI/UserInterface.py" line="1448"/> <source>Toggle the left sidebar window</source> <translation>Schalte das Fenster der linken Seitenleiste um</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1440"/> + <location filename="../UI/UserInterface.py" line="1449"/> <source><b>Toggle the left sidebar window</b><p>If the left sidebar window is hidden then display it. If it is displayed then close it.</p></source> <translation><b>Schalte das Fenster der linken Seitenleiste um</b><p>Falls das Fenster der linken Seitenleiste nicht sichtbar ist, wird es dargestellt. Ist es sichtbar, so wird es versteckt.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1462"/> + <location filename="../UI/UserInterface.py" line="1471"/> <source>Bottom Sidebar</source> <translation>Untere Seitenleiste</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1462"/> + <location filename="../UI/UserInterface.py" line="1471"/> <source>&Bottom Sidebar</source> <translation>&Untere Seitenleiste</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1466"/> + <location filename="../UI/UserInterface.py" line="1475"/> <source>Toggle the bottom sidebar window</source> <translation>Schalte das Fenster der unteren Seitenleiste um</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1468"/> + <location filename="../UI/UserInterface.py" line="1477"/> <source><b>Toggle the bottom sidebar window</b><p>If the bottom sidebar window is hidden then display it. If it is displayed then close it.</p></source> <translation><b>Schalte das Fenster der unteren Seitenleiste um</b><p>Falls das Fenster der unteren Seitenleiste nicht sichtbar ist, wird es dargestellt. Ist es sichtbar, so wird es versteckt.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1291"/> + <location filename="../UI/UserInterface.py" line="1300"/> <source>&Debug-Viewer</source> <translation>&Debuganzeige</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1849"/> + <location filename="../UI/UserInterface.py" line="1858"/> <source>SQL Browser</source> <translation>SQL-Browser</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1849"/> + <location filename="../UI/UserInterface.py" line="1858"/> <source>SQL &Browser...</source> <translation>SQL-&Browser...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1854"/> + <location filename="../UI/UserInterface.py" line="1863"/> <source>Browse a SQL database</source> <translation>Erforsche eine SQL-Datenbank</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1855"/> + <location filename="../UI/UserInterface.py" line="1864"/> <source><b>SQL Browser</b><p>Browse a SQL database.</p></source> <translation><b>SQL-Browser</b><p>Erforsche eine SQL-Datenbank.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="4414"/> + <location filename="../UI/UserInterface.py" line="4423"/> <source><p>Could not start SQL Browser.<br>Ensure that it is available as <b>{0}</b>.</p></source> <translation><p>Der SQL-Browser konnte nicht gestartet werden.<br>Stellen Sie sicher, dass er als <b>{0}</b> verfügbar ist.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1889"/> + <location filename="../UI/UserInterface.py" line="1898"/> <source>Icon Editor</source> <translation>Icon-Editor</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1889"/> + <location filename="../UI/UserInterface.py" line="1898"/> <source>&Icon Editor...</source> <translation>&Icon-Editor...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="4208"/> + <location filename="../UI/UserInterface.py" line="4217"/> <source>Qt 3 support</source> <translation>Qt3-Unterstützung</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="4975"/> + <location filename="../UI/UserInterface.py" line="4984"/> <source><p>The PySide documentation starting point has not been configured.</p></source> <translation><p>Der PySide-Dokumentations-Startpunkt ist nicht konfiguriert.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2337"/> + <location filename="../UI/UserInterface.py" line="2346"/> <source>PySide Documentation</source> <translation>PySide-Dokumentation</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2337"/> + <location filename="../UI/UserInterface.py" line="2346"/> <source>Py&Side Documentation</source> <translation>Py&Side-Dokumentation</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2341"/> + <location filename="../UI/UserInterface.py" line="2350"/> <source>Open PySide Documentation</source> <translation>Öffne die PySide-Dokumentation</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1573"/> + <location filename="../UI/UserInterface.py" line="1582"/> <source><b>Helpviewer</b><p>Display the eric5 web browser. This window will show HTML help files and help from Qt help collections. It has the capability to navigate to links, set bookmarks, print the displayed help and some more features. You may use it to browse the internet as well</p><p>If called with a word selected, this word is search in the Qt help collection.</p></source> <translation><b>Hilfe-Fenster</b><p>Zeige den eric5-Webbrowser an. Dieses Fenster zeigt Hilfedateien im HTML-Format und Qt-Hilfesammlungen an. In ihm kann über Hyperlinks navigiert, Lesezeichen gesetzt und neben anderen Funktionen die dargestellte Seite ausgedruckt werden. Er kann auch zum Surfen im Internet benutzt werden.</p><p>Wenn es mit einem selektierten Wort aufgerufen wird, so wird dieses Wort in der Qt-Hilfesammlung gesucht.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1607"/> + <location filename="../UI/UserInterface.py" line="1616"/> <source><b>Check for Updates...</b><p>Checks the internet for updates of eric5.</p></source> <translation><b>Auf Aktualisierungen prüfen...</b> <p>Dies prüft im Internet auf Updates von eric5.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1620"/> + <location filename="../UI/UserInterface.py" line="1629"/> <source><b>Show downloadable versions...</b><p>Shows the eric5 versions available for download from the internet.</p></source> <translation><b>Zeige verfügbare Versionen...</b><p>Zeigt die eric5-Versionen, die vom Internet heruntergeladen werden können.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1880"/> + <location filename="../UI/UserInterface.py" line="1889"/> <source>Start the eric5 Web Browser</source> <translation>Startet den eric5-Webbrowser</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1894"/> + <location filename="../UI/UserInterface.py" line="1903"/> <source>Start the eric5 Icon Editor</source> <translation>Starte den eric5-Icon-Editor</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1896"/> + <location filename="../UI/UserInterface.py" line="1905"/> <source><b>Icon Editor</b><p>Starts the eric5 Icon Editor for editing simple icons.</p></source> <translation><b>Icon-Editor</b><p>Startet den eric5-Icon-Editor zum Editieren einfacher Icons.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1982"/> + <location filename="../UI/UserInterface.py" line="1991"/> <source><b>Show external tools</b><p>Opens a dialog to show the path and versions of all extenal tools used by eric5.</p></source> <translation><b>Zeige externe Werkzeuge</b><p>Öffnet einen Dialog, der die Pfade und Versionen der von eric5 genutzten externen Werkzeuge anzeigt.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2322"/> + <location filename="../UI/UserInterface.py" line="2331"/> <source><b>Eric API Documentation</b><p>Display the Eric API documentation. The location for the documentation is the Documentation/Source subdirectory of the eric5 installation directory.</p></source> <translation><b>Eric-API-Dokumentation</b><p>Zeige die Eric-API-Dokumentation an. Der Pfad für die Dokumentation ist das Unterverzeichnis Documentation/Source im eric5-Installationverzeichnis.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="4208"/> + <location filename="../UI/UserInterface.py" line="4217"/> <source>Qt v.3 is not supported by eric5.</source> <translation>Qt v.3 wird von eric5 nicht unterstützt.</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="5965"/> + <location filename="../UI/UserInterface.py" line="5976"/> <source>The update to <b>{0}</b> of eric5 is available at <b>{1}</b>. Would you like to get it?</source> <translation>Eine Aktualisierung auf <b>{0}</b> von Eric5 ist unter <b>{1}</b> verfügbar. Wollen Sie sie laden?</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="5977"/> + <location filename="../UI/UserInterface.py" line="5988"/> <source>Eric5 is up to date</source> <translation>Eric5 ist aktuell</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="5977"/> + <location filename="../UI/UserInterface.py" line="5988"/> <source>You are using the latest version of eric5</source> <translation>Sie verwenden die aktuellste Version von eric5</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="6048"/> + <location filename="../UI/UserInterface.py" line="6059"/> <source>eric5 has not been configured yet. The configuration dialog will be started.</source> <translation>eric5 wurde noch nicht konfiguriert. Der Konfigurationsdialog wird nun gestartet.</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="806"/> + <location filename="../UI/UserInterface.py" line="815"/> <source>Cooperation</source> <translation>Zusammenarbeit</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1476"/> + <location filename="../UI/UserInterface.py" line="1485"/> <source>Alt+Shift+O</source> <translation>Alt+Shift+O</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="863"/> + <location filename="../UI/UserInterface.py" line="872"/> <source>Symbols</source> <translation>Symbole</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1511"/> + <location filename="../UI/UserInterface.py" line="1520"/> <source>Alt+Shift+Y</source> <translation>Alt+Shift+Y</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="871"/> + <location filename="../UI/UserInterface.py" line="880"/> <source>Numbers</source> <translation>Zahlen</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1529"/> + <location filename="../UI/UserInterface.py" line="1538"/> <source>Alt+Shift+B</source> <translation>Alt+Shift+B</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="5282"/> + <location filename="../UI/UserInterface.py" line="5291"/> <source>Keyboard shortcut file (*.e4k)</source> <translation>Tastaturkurzbefehlsdatei (*.e4k)</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2274"/> + <location filename="../UI/UserInterface.py" line="2283"/> <source>Python 3 Documentation</source> <translation>Python 3-Dokumentation</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2274"/> + <location filename="../UI/UserInterface.py" line="2283"/> <source>Python &3 Documentation</source> <translation>Python &3-Dokumentation</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2278"/> + <location filename="../UI/UserInterface.py" line="2287"/> <source>Open Python 3 Documentation</source> <translation>Öffne die Python 3-Dokumentation</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2292"/> + <location filename="../UI/UserInterface.py" line="2301"/> <source>Python 2 Documentation</source> <translation>Python 2-Dokumentation</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2292"/> + <location filename="../UI/UserInterface.py" line="2301"/> <source>Python &2 Documentation</source> <translation>Python &2-Dokumentation</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2296"/> + <location filename="../UI/UserInterface.py" line="2305"/> <source>Open Python 2 Documentation</source> <translation>Öffne die Python 2-Dokumentation</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2298"/> + <location filename="../UI/UserInterface.py" line="2307"/> <source><b>Python 2 Documentation</b><p>Display the Python 2 documentation. If no documentation directory is configured, the location of the Python 2 documentation is assumed to be the doc directory underneath the location of the configured Python 2 executable on Windows and <i>/usr/share/doc/packages/python/html/python-docs-html</i> on Unix. Set PYTHON2DOCDIR in your environment to override this. </p></source> <translation><b>Python 2-Dokumentation</b><p>Zeigt die Python 2-Dokumentation an. Ist kein Dokumentationsverzeichnis konfiguriert, so ist der Ort, an dem die Python 2-Dokumentation gesucht wird, unter Windows das Verzeichnis <i>doc</i> unter dem Verzeichnis, in dem der konfigurierte Python 2-Interpreter installiert ist, und unter Unix das Verzeichnis <i>/usr/share/doc/packages/python/html/python-docs-html</i>. Um dies zu überschreiben, können Sie die Umgebungsvariable PYTHON2DOCDIR setzen.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="5878"/> + <location filename="../UI/UserInterface.py" line="5889"/> <source>Error getting versions information</source> <translation>Fehler beim Herunterladen der Versionsinformationen</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="5871"/> + <location filename="../UI/UserInterface.py" line="5882"/> <source>The versions information could not be downloaded. Please go online and try again.</source> <translation>Die Versionsinformationen konnten nicht heruntergeladen werden. Bitte gehen Sie online und versuchen Sie es erneut.</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="5084"/> + <location filename="../UI/UserInterface.py" line="5093"/> <source>Open Browser</source> <translation>Browser starten</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="5084"/> + <location filename="../UI/UserInterface.py" line="5093"/> <source>Could not start a web browser</source> <translation>Der Systemwebbrowser konnte nicht gestartet werden</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="5878"/> + <location filename="../UI/UserInterface.py" line="5889"/> <source>The versions information could not be downloaded for the last 7 days. Please go online and try again.</source> <translation>Die Versionsinformationen konnten seit 7 Tagen nicht heruntergeladen werden. Bitte gehen Sie online und versuchen Sie es erneut.</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1875"/> + <location filename="../UI/UserInterface.py" line="1884"/> <source>eric5 Web Browser</source> <translation>eric5-Webbrowser</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1875"/> + <location filename="../UI/UserInterface.py" line="1884"/> <source>eric5 &Web Browser...</source> <translation>eric5-&Webbrowser...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1882"/> + <location filename="../UI/UserInterface.py" line="1891"/> <source><b>eric5 Web Browser</b><p>Browse the Internet with the eric5 Web Browser.</p></source> <translation><b>eric5-Webbrowser</b><p>Durchforste das Internet mit dem eric5-Webbrowser.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="524"/> + <location filename="../UI/UserInterface.py" line="533"/> <source>Setting View Profile...</source> <translation>Stelle Ansichtenprofil ein...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="528"/> + <location filename="../UI/UserInterface.py" line="537"/> <source>Reading Tasks...</source> <translation>Lese Aufgaben...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="532"/> + <location filename="../UI/UserInterface.py" line="541"/> <source>Reading Templates...</source> <translation>Lese Vorlagen...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="536"/> + <location filename="../UI/UserInterface.py" line="545"/> <source>Starting Debugger...</source> <translation>Starte Debugger...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1203"/> + <location filename="../UI/UserInterface.py" line="1212"/> <source>New Window</source> <translation>Neues Fenster</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1203"/> + <location filename="../UI/UserInterface.py" line="1212"/> <source>New &Window</source> <translation>Neues &Fenster</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1203"/> + <location filename="../UI/UserInterface.py" line="1212"/> <source>Ctrl+Shift+N</source> <comment>File|New Window</comment> <translation>Ctrl+Shift+N</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1209"/> + <location filename="../UI/UserInterface.py" line="1218"/> <source>Open a new eric5 instance</source> <translation>Öffnet eine neue eric5-Instanz</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1211"/> + <location filename="../UI/UserInterface.py" line="1220"/> <source><b>New Window</b><p>This opens a new instance of the eric5 IDE.</p></source> <translation><b>Neues Fenster</b><p>Dies öffnet eine neue Instanz der eric5-IDE.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1696"/> + <location filename="../UI/UserInterface.py" line="1705"/> <source>Unittest Rerun Failed</source> <translation>Fehlerhafte Modultests wiederholen</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1696"/> + <location filename="../UI/UserInterface.py" line="1705"/> <source>Rerun Failed Tests...</source> <translation>Fehlerhafte Tests wiederholen...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1701"/> + <location filename="../UI/UserInterface.py" line="1710"/> <source>Rerun failed tests of the last run</source> <translation>Fehlerhafte Tests des letzten Laufes wiederholen</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1703"/> + <location filename="../UI/UserInterface.py" line="1712"/> <source><b>Rerun Failed Tests</b><p>Rerun all tests that failed during the last unittest run.</p></source> <translation><b>Fehlerhafte Tests wiederholen</b><p>Alle Tests wiederholen, die während des letzten Modultestlaufes fehlgeschlagen sind.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1835"/> + <location filename="../UI/UserInterface.py" line="1844"/> <source>Compare &Files side by side...</source> <translation>Dateien &Seite an Seite vergleichen...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1903"/> + <location filename="../UI/UserInterface.py" line="1912"/> <source>Snapshot</source> <translation>Bildschirmfoto</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1903"/> + <location filename="../UI/UserInterface.py" line="1912"/> <source>&Snapshot...</source> <translation>&Bildschirmfoto...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1908"/> + <location filename="../UI/UserInterface.py" line="1917"/> <source>Take snapshots of a screen region</source> <translation>Bildschirmfoto aufnehmen</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1910"/> + <location filename="../UI/UserInterface.py" line="1919"/> <source><b>Snapshot</b><p>This opens a dialog to take snapshots of a screen region.</p></source> <translation><b>Bildschirmfoto</b><p>Dies öffnet einen Dialog, um ein Bildschirmfoto aufzunehmen.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="4466"/> + <location filename="../UI/UserInterface.py" line="4475"/> <source><p>Could not start Snapshot tool.<br>Ensure that it is available as <b>{0}</b>.</p></source> <translation><p>Die Bildschirmfotoanwendung konnte nicht gestartet werden.<br>Stellen Sie sicher, dass sie als <b>{0}</b> verfügbar ist.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="6067"/> + <location filename="../UI/UserInterface.py" line="6078"/> <source>Select Workspace Directory</source> <translation>Wähle Arbeitsverzeichnis</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1396"/> + <location filename="../UI/UserInterface.py" line="1405"/> <source>Left Toolbox</source> <translation>Linke Werkzeugbox</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1408"/> + <location filename="../UI/UserInterface.py" line="1417"/> <source>Right Toolbox</source> <translation>Rechte Werkzeugbox</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1262"/> + <location filename="../UI/UserInterface.py" line="1271"/> <source>Switch the input focus to the Project-Viewer window.</source> <translation>Schalte den Eingabefokus auf das Projektanzeigerfenster um.</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1264"/> + <location filename="../UI/UserInterface.py" line="1273"/> <source><b>Activate Project-Viewer</b><p>This switches the input focus to the Project-Viewer window.</p></source> <translation><b>Projektanzeiger aktivieren</b><p>Dies schaltet den Eingabefokus auf das Projektanzeigerfenster um.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1279"/> + <location filename="../UI/UserInterface.py" line="1288"/> <source>Switch the input focus to the Multiproject-Viewer window.</source> <translation>Schalte den Eingabefokus auf das Mehrfachprojektanzeigerfenster um.</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1281"/> + <location filename="../UI/UserInterface.py" line="1290"/> <source><b>Activate Multiproject-Viewer</b><p>This switches the input focus to the Multiproject-Viewer window.</p></source> <translation><b>Mehrfachprojektanzeiger aktivieren</b><p>Dies schaltet den Eingabefokus auf das Mehrfachprojektanzeigerfenster um.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1297"/> + <location filename="../UI/UserInterface.py" line="1306"/> <source>Switch the input focus to the Debug-Viewer window.</source> <translation>Schalte den Eingabefokus auf das Debuganzeigefenster um.</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1299"/> + <location filename="../UI/UserInterface.py" line="1308"/> <source><b>Activate Debug-Viewer</b><p>This switches the input focus to the Debug-Viewer window.</p></source> <translation><b>Debuganzeige aktivieren</b><p>Dies schaltet den Eingabefokus auf das Debuganzeigefenster um.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1315"/> + <location filename="../UI/UserInterface.py" line="1324"/> <source>Switch the input focus to the Shell window.</source> <translation>Schalte den Eingabefokus auf das Shell-Fenster um.</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1317"/> + <location filename="../UI/UserInterface.py" line="1326"/> <source><b>Activate Shell</b><p>This switches the input focus to the Shell window.</p></source> <translation><b>Shell aktivieren</b><p>Dies schaltet den Eingabefokus auf das Shell-Fenster um.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1325"/> + <location filename="../UI/UserInterface.py" line="1334"/> <source>&File-Browser</source> <translation>Datei&browser</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1331"/> + <location filename="../UI/UserInterface.py" line="1340"/> <source>Switch the input focus to the File-Browser window.</source> <translation>Schalte den Eingabefokus auf das Dateibrowserfenster um.</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1333"/> - <source><b>Activate File-Browser</b><p>This switches the input focus to the File-Browser window.</p></source> - <translation><b>Dateibrowser aktivieren</b><p>Dies schaltet den Eingabefokus auf das Dateibrowserfenster um.</p></translation> - </message> - <message> <location filename="../UI/UserInterface.py" line="1342"/> + <source><b>Activate File-Browser</b><p>This switches the input focus to the File-Browser window.</p></source> + <translation><b>Dateibrowser aktivieren</b><p>Dies schaltet den Eingabefokus auf das Dateibrowserfenster um.</p></translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1351"/> <source>Lo&g-Viewer</source> <translation>&Ausgabefenster</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1348"/> + <location filename="../UI/UserInterface.py" line="1357"/> <source>Switch the input focus to the Log-Viewer window.</source> <translation>Schalte den Eingabefokus auf das Ausgabefenster um.</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1350"/> + <location filename="../UI/UserInterface.py" line="1359"/> <source><b>Activate Log-Viewer</b><p>This switches the input focus to the Log-Viewer window.</p></source> <translation><b>Ausgabefenster aktivieren</b><p>Dies schaltet den Eingabefokus auf das Ausgabefenster um.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1360"/> + <location filename="../UI/UserInterface.py" line="1369"/> <source>&Task-Viewer</source> <translation>&Aufgabenanzeige</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1366"/> + <location filename="../UI/UserInterface.py" line="1375"/> <source>Switch the input focus to the Task-Viewer window.</source> <translation>Schalte den Eingabefokus auf das Aufgabenanzeigefenster um.</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1378"/> + <location filename="../UI/UserInterface.py" line="1387"/> <source>Templ&ate-Viewer</source> <translation>&Vorlagen</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1384"/> + <location filename="../UI/UserInterface.py" line="1393"/> <source>Switch the input focus to the Template-Viewer window.</source> <translation>Schalte den Eingabefokus auf das Vorlagenfenster um.</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1386"/> + <location filename="../UI/UserInterface.py" line="1395"/> <source><b>Activate Template-Viewer</b><p>This switches the input focus to the Template-Viewer window.</p></source> <translation><b>Vorlagen aktivieren</b><p>Dies schaltet den Eingabefokus auf das Vorlagenfenster um.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1396"/> + <location filename="../UI/UserInterface.py" line="1405"/> <source>&Left Toolbox</source> <translation>&Linke Werkzeugbox</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1399"/> - <source>Toggle the Left Toolbox window</source> - <translation>Schalte das Fenster der linken Werkzeugbox um</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1400"/> - <source><b>Toggle the Left Toolbox window</b><p>If the Left Toolbox window is hidden then display it. If it is displayed then close it.</p></source> - <translation><b>Schalte das Fenster der linken Werkzeugbox um</b><p>Falls das Fenster der linken Werkzeugbox nicht sichtbar ist, wird es dargestellt. Ist es sichtbar, so wird es versteckt.</p></translation> - </message> - <message> <location filename="../UI/UserInterface.py" line="1408"/> + <source>Toggle the Left Toolbox window</source> + <translation>Schalte das Fenster der linken Werkzeugbox um</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1409"/> + <source><b>Toggle the Left Toolbox window</b><p>If the Left Toolbox window is hidden then display it. If it is displayed then close it.</p></source> + <translation><b>Schalte das Fenster der linken Werkzeugbox um</b><p>Falls das Fenster der linken Werkzeugbox nicht sichtbar ist, wird es dargestellt. Ist es sichtbar, so wird es versteckt.</p></translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1417"/> <source>&Right Toolbox</source> <translation>&Rechte Werkzeugbox</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1412"/> + <location filename="../UI/UserInterface.py" line="1421"/> <source>Toggle the Right Toolbox window</source> <translation>Schalte das Fenster der rechten Werkzeugbox um</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1413"/> + <location filename="../UI/UserInterface.py" line="1422"/> <source><b>Toggle the Right Toolbox window</b><p>If the Right Toolbox window is hidden then display it. If it is displayed then close it.</p></source> <translation><b>Schalte das Fenster der rechten Werkzeugbox um</b><p>Falls das Fenster der rechten Werkzeugbox nicht sichtbar ist, wird es dargestellt. Ist es sichtbar, so wird es versteckt.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1448"/> + <location filename="../UI/UserInterface.py" line="1457"/> <source>Right Sidebar</source> <translation>Rechte Seitenleiste</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1448"/> + <location filename="../UI/UserInterface.py" line="1457"/> <source>&Right Sidebar</source> <translation>&Rechte Seitenleiste</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1452"/> + <location filename="../UI/UserInterface.py" line="1461"/> <source>Toggle the right sidebar window</source> <translation>Schalte das Fenster der rechten Seitenleiste um</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1454"/> + <location filename="../UI/UserInterface.py" line="1463"/> <source><b>Toggle the right sidebar window</b><p>If the right sidebar window is hidden then display it. If it is displayed then close it.</p></source> <translation><b>Schalte das Fenster der rechten Seitenleiste um</b><p>Falls das Fenster der rechten Seitenleiste nicht sichtbar ist, wird es dargestellt. Ist es sichtbar, so wird es versteckt.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1476"/> + <location filename="../UI/UserInterface.py" line="1485"/> <source>Cooperation-Viewer</source> <translation>Zusammenarbeit</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1476"/> + <location filename="../UI/UserInterface.py" line="1485"/> <source>Co&operation-Viewer</source> <translation>&Zusammenarbeit</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1482"/> + <location filename="../UI/UserInterface.py" line="1491"/> <source>Switch the input focus to the Cooperation-Viewer window.</source> <translation>Schalte den Eingabefokus auf das Fenster zur Zusammenarbeit um.</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1484"/> + <location filename="../UI/UserInterface.py" line="1493"/> <source><b>Activate Cooperation-Viewer</b><p>This switches the input focus to the Cooperation-Viewer window.</p></source> <translation><b>Zusammenarbeitsfenster aktivieren</b><p>Dies schaltet den Eingabefokus auf das Fenster zur Zusammenarbeit um.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1511"/> + <location filename="../UI/UserInterface.py" line="1520"/> <source>Symbols-Viewer</source> <translation>Symbolanzeiger</translation> </message> <message> + <location filename="../UI/UserInterface.py" line="1520"/> + <source>S&ymbols-Viewer</source> + <translation>S&ymbolanzeiger</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1526"/> + <source>Switch the input focus to the Symbols-Viewer window.</source> + <translation>Schalte den Eingabefokus auf das Symbolanzeigerfenster um.</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1528"/> + <source><b>Activate Symbols-Viewer</b><p>This switches the input focus to the Symbols-Viewer window.</p></source> + <translation><b>Symbolanzeiger aktivieren</b><p>Dies schaltet den Eingabefokus auf das Symbolanzeigerfenster um.</p></translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1538"/> + <source>Numbers-Viewer</source> + <translation>Zahlenanzeiger</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1538"/> + <source>Num&bers-Viewer</source> + <translation>Za&hlenanzeiger</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1544"/> + <source>Switch the input focus to the Numbers-Viewer window.</source> + <translation>Schalte den Eingabefokus auf das Zahlenanzeigerfenster um.</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1546"/> + <source><b>Activate Numbers-Viewer</b><p>This switches the input focus to the Numbers-Viewer window.</p></source> + <translation><b>Zahlenanzeiger aktivieren</b><p>Dies schaltet den Eingabefokus auf das Zahlenanzeigerfenster um.</p></translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2458"/> + <source>&Windows</source> + <translation>&Fenster</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1377"/> + <source><b>Activate Task-Viewer</b><p>This switches the input focus to the Task-Viewer window.</p></source> + <translation><b>Aufgabenanzeige aktivieren</b><p>Dies schaltet den Eingabefokus auf das Aufgabenanzeigefenster um.</p></translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1503"/> + <source>IRC</source> + <translation>IRC</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1503"/> + <source>&IRC</source> + <translation>&IRC</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1503"/> + <source>Meta+Shift+I</source> + <translation>Meta+Shift+I</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="1509"/> + <source>Switch the input focus to the IRC window.</source> + <translation>Schalte den Eingabefokus auf das IRC-Fenster um.</translation> + </message> + <message> <location filename="../UI/UserInterface.py" line="1511"/> - <source>S&ymbols-Viewer</source> - <translation>S&ymbolanzeiger</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1517"/> - <source>Switch the input focus to the Symbols-Viewer window.</source> - <translation>Schalte den Eingabefokus auf das Symbolanzeigerfenster um.</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1519"/> - <source><b>Activate Symbols-Viewer</b><p>This switches the input focus to the Symbols-Viewer window.</p></source> - <translation><b>Symbolanzeiger aktivieren</b><p>Dies schaltet den Eingabefokus auf das Symbolanzeigerfenster um.</p></translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1529"/> - <source>Numbers-Viewer</source> - <translation>Zahlenanzeiger</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1529"/> - <source>Num&bers-Viewer</source> - <translation>Za&hlenanzeiger</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1535"/> - <source>Switch the input focus to the Numbers-Viewer window.</source> - <translation>Schalte den Eingabefokus auf das Zahlenanzeigerfenster um.</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1537"/> - <source><b>Activate Numbers-Viewer</b><p>This switches the input focus to the Numbers-Viewer window.</p></source> - <translation><b>Zahlenanzeiger aktivieren</b><p>Dies schaltet den Eingabefokus auf das Zahlenanzeigerfenster um.</p></translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="2449"/> - <source>&Windows</source> - <translation>&Fenster</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1368"/> - <source><b>Activate Task-Viewer</b><p>This switches the input focus to the Task-Viewer window.</p></source> - <translation><b>Aufgabenanzeige aktivieren</b><p>Dies schaltet den Eingabefokus auf das Aufgabenanzeigefenster um.</p></translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1494"/> - <source>IRC</source> - <translation>IRC</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1494"/> - <source>&IRC</source> - <translation>&IRC</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1494"/> - <source>Meta+Shift+I</source> - <translation>Meta+Shift+I</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1500"/> - <source>Switch the input focus to the IRC window.</source> - <translation>Schalte den Eingabefokus auf das IRC-Fenster um.</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="1502"/> <source><b>Activate IRC</b><p>This switches the input focus to the IRC window.</p></source> <translation><b>IRC aktivieren</b><p>Dies schaltet den Eingabefokus auf das IRC-Fenster um.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1754"/> + <location filename="../UI/UserInterface.py" line="1763"/> <source>Qt-Designer</source> <translation>Qt Designer</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1754"/> + <location filename="../UI/UserInterface.py" line="1763"/> <source>Qt-&Designer...</source> <translation>Qt &Designer...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1759"/> + <location filename="../UI/UserInterface.py" line="1768"/> <source>Start Qt-Designer</source> <translation>Starte Qt Designer</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1760"/> + <location filename="../UI/UserInterface.py" line="1769"/> <source><b>Qt-Designer</b><p>Start Qt-Designer.</p></source> <translation><b>Qt Designer</b><p>Starte Qt Designer.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1780"/> + <location filename="../UI/UserInterface.py" line="1789"/> <source>Qt-Linguist</source> <translation>Qt Linguist</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1780"/> + <location filename="../UI/UserInterface.py" line="1789"/> <source>Qt-&Linguist...</source> <translation>Qt &Linguist...</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1785"/> + <location filename="../UI/UserInterface.py" line="1794"/> <source>Start Qt-Linguist</source> <translation>Starte Qt Linguist</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1786"/> + <location filename="../UI/UserInterface.py" line="1795"/> <source><b>Qt-Linguist</b><p>Start Qt-Linguist.</p></source> <translation><b>Qt Linguist</b><p>Starte Qt Linguist (Übersetzungsprogramm).</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2221"/> + <location filename="../UI/UserInterface.py" line="2230"/> <source>Qt5 Documentation</source> <translation>Qt5 Dokumentation</translation> </message> <message> + <location filename="../UI/UserInterface.py" line="2230"/> + <source>Qt&5 Documentation</source> + <translation>Qt&5 Dokumentation</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2234"/> + <source>Open Qt5 Documentation</source> + <translation>Öffne die Qt5 Dokumentation</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2772"/> + <source><p>This part of the status bar allows zooming the current editor, shell or terminal.</p></source> + <translation><p>Dieser Teil der Statusleiste ermöglicht das Zoomen des aktuellen Editors, der Shell oder des Terminals.</p></translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2076"/> + <source>Manage SSL Certificates</source> + <translation>SSL-Zertifikate verwalten</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2076"/> + <source>Manage SSL Certificates...</source> + <translation>SSL-Zertifikate verwalten...</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2081"/> + <source>Manage the saved SSL certificates</source> + <translation>Verwalten der gespeicherten SSL-Zertifikate</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2083"/> + <source><b>Manage SSL Certificates...</b><p>Opens a dialog to manage the saved SSL certificates.</p></source> + <translation><b>SSL-Zertifikate verwalten...</b><p>Öffnet einen Dialog zur Verwaltung gespeicherter SSL-Zertifikate.</p></translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2092"/> + <source>Edit Message Filters</source> + <translation>Meldungsfilter bearbeiten</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2092"/> + <source>Edit Message Filters...</source> + <translation>Meldungsfilter bearbeiten...</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2097"/> + <source>Edit the message filters used to suppress unwanted messages</source> + <translation>Bearbeite die Meldungsfilter, die zur Unterdrückung ungewünschter Meldungen verwendet werden</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2099"/> + <source><b>Edit Message Filters</b><p>Opens a dialog to edit the message filters used to suppress unwanted messages been shown in an error window.</p></source> + <translation><b>Meldungsfilter bearbeiten</b><p>Dies öffnet einen Dialog zur Bearbeitung der Meldungsfilter, die zur Unterdrückung ungewünschter Meldungen verwendet werden.</p></translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2244"/> + <source>PyQt&4 Documentation</source> + <translation>PyQt&4-Dokumentation</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2260"/> + <source>PyQt5 Documentation</source> + <translation>PyQt5-Dokumentation</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2260"/> + <source>PyQt&5 Documentation</source> + <translation>PyQt&5-Dokumentation</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="2264"/> + <source>Open PyQt5 Documentation</source> + <translation>Öffne die PyQt5-Dokumentation</translation> + </message> + <message> + <location filename="../UI/UserInterface.py" line="4888"/> + <source><p>The PyQt5 documentation starting point has not been configured.</p></source> + <translation><p>Der PyQt5-Dokumentations-Startpunkt ist nicht konfiguriert.</p></translation> + </message> + <message> <location filename="../UI/UserInterface.py" line="2221"/> - <source>Qt&5 Documentation</source> - <translation>Qt&5 Dokumentation</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="2225"/> - <source>Open Qt5 Documentation</source> - <translation>Öffne die Qt5 Dokumentation</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="2763"/> - <source><p>This part of the status bar allows zooming the current editor, shell or terminal.</p></source> - <translation><p>Dieser Teil der Statusleiste ermöglicht das Zoomen des aktuellen Editors, der Shell oder des Terminals.</p></translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="2067"/> - <source>Manage SSL Certificates</source> - <translation>SSL-Zertifikate verwalten</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="2067"/> - <source>Manage SSL Certificates...</source> - <translation>SSL-Zertifikate verwalten...</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="2072"/> - <source>Manage the saved SSL certificates</source> - <translation>Verwalten der gespeicherten SSL-Zertifikate</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="2074"/> - <source><b>Manage SSL Certificates...</b><p>Opens a dialog to manage the saved SSL certificates.</p></source> - <translation><b>SSL-Zertifikate verwalten...</b><p>Öffnet einen Dialog zur Verwaltung gespeicherter SSL-Zertifikate.</p></translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="2083"/> - <source>Edit Message Filters</source> - <translation>Meldungsfilter bearbeiten</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="2083"/> - <source>Edit Message Filters...</source> - <translation>Meldungsfilter bearbeiten...</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="2088"/> - <source>Edit the message filters used to suppress unwanted messages</source> - <translation>Bearbeite die Meldungsfilter, die zur Unterdrückung ungewünschter Meldungen verwendet werden</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="2090"/> - <source><b>Edit Message Filters</b><p>Opens a dialog to edit the message filters used to suppress unwanted messages been shown in an error window.</p></source> - <translation><b>Meldungsfilter bearbeiten</b><p>Dies öffnet einen Dialog zur Bearbeitung der Meldungsfilter, die zur Unterdrückung ungewünschter Meldungen verwendet werden.</p></translation> + <source><b>Qt4 Documentation</b><p>Display the Qt4 Documentation. Dependent upon your settings, this will either show the help in Eric's internal help viewer, or execute a web browser or Qt Assistant. </p></source> + <translation><b>Qt4-Dokumentation</b><p>Zeige die Qt4-Dokumentation an. Abhängig von den Einstellungen wird Erics interner Hilfeanzeiger, ein Webbrowser oder Qt Assistant verwendet.</p></translation> </message> <message> <location filename="../UI/UserInterface.py" line="2235"/> - <source>PyQt&4 Documentation</source> - <translation>PyQt&4-Dokumentation</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="2251"/> - <source>PyQt5 Documentation</source> - <translation>PyQt5-Dokumentation</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="2251"/> - <source>PyQt&5 Documentation</source> - <translation>PyQt&5-Dokumentation</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="2255"/> - <source>Open PyQt5 Documentation</source> - <translation>Öffne die PyQt5-Dokumentation</translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="4879"/> - <source><p>The PyQt5 documentation starting point has not been configured.</p></source> - <translation><p>Der PyQt5-Dokumentations-Startpunkt ist nicht konfiguriert.</p></translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="2212"/> - <source><b>Qt4 Documentation</b><p>Display the Qt4 Documentation. Dependent upon your settings, this will either show the help in Eric's internal help viewer, or execute a web browser or Qt Assistant. </p></source> - <translation><b>Qt4-Dokumentation</b><p>Zeige die Qt4-Dokumentation an. Abhängig von den Einstellungen wird Erics interner Hilfeanzeiger, ein Webbrowser oder Qt Assistant verwendet.</p></translation> - </message> - <message> - <location filename="../UI/UserInterface.py" line="2226"/> <source><b>Qt5 Documentation</b><p>Display the Qt5 Documentation. Dependent upon your settings, this will either show the help in Eric's internal help viewer, or execute a web browser or Qt Assistant. </p></source> <translation><b>Qt5-Dokumentation</b><p>Zeige die Qt5-Dokumentation an. Abhängig von den Einstellungen wird Erics interner Hilfeanzeiger, ein Webbrowser oder Qt Assistant verwendet.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2240"/> + <location filename="../UI/UserInterface.py" line="2249"/> <source><b>PyQt4 Documentation</b><p>Display the PyQt4 Documentation. Dependent upon your settings, this will either show the help in Eric's internal help viewer, or execute a web browser or Qt Assistant. </p></source> <translation><b>PyQt4-Dokumentation</b><p>Zeige die PyQt4-Dokumentation an. Abhängig von den Einstellungen wird Erics interner Hilfeanzeiger, ein Webbrowser oder Qt Assistant verwendet.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2257"/> + <location filename="../UI/UserInterface.py" line="2266"/> <source><b>PyQt5 Documentation</b><p>Display the PyQt5 Documentation. Dependent upon your settings, this will either show the help in Eric's internal help viewer, or execute a web browser or Qt Assistant. </p></source> <translation><b>PyQt5-Dokumentation</b><p>Zeige die PyQt5-Dokumentation an. Abhängig von den Einstellungen wird Erics interner Hilfeanzeiger, ein Webbrowser oder Qt Assistant verwendet.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2280"/> + <location filename="../UI/UserInterface.py" line="2289"/> <source><b>Python 3 Documentation</b><p>Display the Python 3 documentation. If no documentation directory is configured, the location of the Python 3 documentation is assumed to be the doc directory underneath the location of the Python 3 executable on Windows and <i>/usr/share/doc/packages/python/html</i> on Unix. Set PYTHON3DOCDIR in your environment to override this.</p></source> <translation><b>Python 3-Dokumentation</b><p>Zeigt die Python 3-Dokumentation an. Ist kein Dokumentationsverzeichnis konfiguriert, so ist der Ort, an dem die Python 3-Dokumentation gesucht wird, unter Windows das Verzeichnis <i>doc</i> unter dem Verzeichnis, in dem der Python 3-Interpreter installiert ist, und unter Unix das Verzeichnis <i>/usr/share/doc/packages/python/html</i>. Um dies zu überschreiben, können Sie die Umgebungsvariable PYTHON3DOCDIR setzen.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="2343"/> + <location filename="../UI/UserInterface.py" line="2352"/> <source><b>PySide Documentation</b><p>Display the PySide Documentation. Dependent upon your settings, this will either show the help in Eric's internal help viewer, or execute a web browser or Qt Assistant. </p></source> <translation><b>PySide-Dokumentation</b><p>Zeige die PySide-Dokumentation an. Abhängig von den Einstellungen wird Erics interner Hilfeanzeiger, ein Webbrowser oder Qt Assistant verwendet.</p></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="5820"/> + <location filename="../UI/UserInterface.py" line="5831"/> <source>%v/%m</source> <translation>%v/%m</translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1633"/> + <location filename="../UI/UserInterface.py" line="1642"/> <source>Show Error Log</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1629"/> + <location filename="../UI/UserInterface.py" line="1638"/> <source>Show Error &Log...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../UI/UserInterface.py" line="1634"/> + <location filename="../UI/UserInterface.py" line="1643"/> <source><b>Show Error Log...</b><p>Opens a dialog showing the most recent error log.</p></source> <translation type="unfinished"></translation> </message> @@ -56701,7 +56714,7 @@ <context> <name>Utilities</name> <message> - <location filename="../Utilities/__init__.py" line="1087"/> + <location filename="../Utilities/__init__.py" line="1207"/> <source><p>You may use %-codes as placeholders in the string. Supported codes are:<table><tr><td>%C</td><td>column of the cursor of the current editor</td></tr><tr><td>%D</td><td>directory of the current editor</td></tr><tr><td>%F</td><td>filename of the current editor</td></tr><tr><td>%H</td><td>home directory of the current user</td></tr><tr><td>%L</td><td>line of the cursor of the current editor</td></tr><tr><td>%P</td><td>path of the current project</td></tr><tr><td>%S</td><td>selected text of the current editor</td></tr><tr><td>%U</td><td>username of the current user</td></tr><tr><td>%%</td><td>the percent sign</td></tr></table></p></source> <translation><p>Sie können %-Codes als Platzhalter in der Eingabe verwenden. Unterstützte Codes sind:<table><tr><td>%C</td><td>Spalte des Cursor des aktuellen Editors</td></tr><tr><td>%D</td><td>Verzeichnis des aktuellen Editors</td></tr><tr><td>%F</td><td>Dateiname des aktuellen Editors</td></tr><tr><td>%H</td><td>Home-Verzeichnis des aktullen Nutzers</td></tr><tr><td>%L</td><td>Zeile des Cursor des aktuellen Editors</td></tr><tr><td>%P</td><td>Pfad des aktuellen Projektes</td></tr><tr><td>%S</td><td>selektierter Text des aktuellen Editors</td></tr><tr><td>%U</td><td>Nutzername des aktuellen Nutzers</td></tr><tr><td>%%</td><td>das Prozentzeichen</td></tr></table></p></translation> </message> @@ -56718,12 +56731,12 @@ <message> <location filename="../Utilities/__init__.py" line="1241"/> <source>{0} interpreter not configured.</source> - <translation>Kein {0}-Interpreter konfiguriert.</translation> + <translation type="obsolete">Kein {0}-Interpreter konfiguriert.</translation> </message> <message> <location filename="../Utilities/__init__.py" line="1293"/> <source>{0} interpreter did not finish within 30s.</source> - <translation>{0}-Interpreter wurde nicht innerhalb von 30s beendet.</translation> + <translation type="obsolete">{0}-Interpreter wurde nicht innerhalb von 30s beendet.</translation> </message> </context> <context> @@ -61412,282 +61425,282 @@ <context> <name>pep8</name> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="138"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="137"/> <source>indentation contains mixed spaces and tabs</source> <translation>Einrückung enthält einen Mix aus Leerzeichen und Tabulatoren</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="140"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="139"/> <source>indentation is not a multiple of four</source> <translation>Einrückung ist kein Mehrfaches von Vier</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="142"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="141"/> <source>expected an indented block</source> <translation>ein eingerückter Block wurde erwartet</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="144"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="143"/> <source>unexpected indentation</source> <translation>unerwartete Einrückung</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="166"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="165"/> <source>indentation contains tabs</source> <translation>Einrückung enthält Tabulatoren</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="168"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="167"/> <source>whitespace after '{0}'</source> <translation>Leerzeichen nach „{0}“</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="174"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="173"/> <source>whitespace before '{0}'</source> <translation>Leerzeichen vor „{0}“</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="176"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="175"/> <source>multiple spaces before operator</source> <translation>mehrfache Leerzeichen vor Operator</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="178"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="177"/> <source>multiple spaces after operator</source> <translation>mehrfache Leerzeichen nach Operator</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="180"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="179"/> <source>tab before operator</source> <translation>Tabulator vor Operator</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="182"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="181"/> <source>tab after operator</source> <translation>Tabulator nach Operator</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="184"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="183"/> <source>missing whitespace around operator</source> <translation>fehlende Leerzeichen um Operator</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="192"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="191"/> <source>missing whitespace after '{0}'</source> <translation>fehlende Leerzeichen nach „{0}“</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="194"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="193"/> <source>multiple spaces after '{0}'</source> <translation>mehrfache Leerzeichen nach „{0}“</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="196"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="195"/> <source>tab after '{0}'</source> <translation>Tabulator nach „{0}“</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="200"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="199"/> <source>at least two spaces before inline comment</source> <translation>mindestens zwei Leerzeichen vor einem Inline-Kommentar</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="202"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="201"/> <source>inline comment should start with '# '</source> <translation>Inline-Kommentar sollte mit „# “ beginnen</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="212"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="211"/> <source>trailing whitespace</source> <translation>abschließende Leerzeichen</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="214"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="213"/> <source>no newline at end of file</source> <translation>kein Zeilenumbruch am Dateiende</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="216"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="215"/> <source>blank line contains whitespace</source> <translation>leere Zeile enthält Leerzeichen</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="218"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="217"/> <source>expected 1 blank line, found 0</source> <translation>erwartete 1 leere Zeile, 0 gefunden</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="220"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="219"/> <source>expected 2 blank lines, found {0}</source> <translation>erwartete 2 leere Zeilen, {0} gefunden</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="222"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="221"/> <source>too many blank lines ({0})</source> <translation>zu viele leere Zeilen ({0})</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="224"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="223"/> <source>blank lines found after function decorator</source> <translation>leere Zeilen nach Funktionen Dekorator gefunden</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="226"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="225"/> <source>blank line at end of file</source> <translation>leere Zeile am Dateiende</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="228"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="227"/> <source>multiple imports on one line</source> <translation>mehrfache Importe in einer Zeile</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="234"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="233"/> <source>.has_key() is deprecated, use 'in'</source> <translation>.has_key() ist ungültig, verwende „in“</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="236"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="235"/> <source>deprecated form of raising exception</source> <translation>ungültige Art Ausnahmen zu werfen</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="238"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="237"/> <source>'<>' is deprecated, use '!='</source> <translation>„<>“ is ungültig, verwende „!=“</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="240"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="239"/> <source>backticks are deprecated, use 'repr()'</source> <translation>Backticks sind ungültig, verwende „repr()“</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="242"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="241"/> <source>multiple statements on one line (colon)</source> <translation>mehrere Anweisungen in einer Zeile (Doppelpunkt)</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="244"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="243"/> <source>multiple statements on one line (semicolon)</source> <translation>mehrere Anweisungen in einer Zeile (Semikolon)</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="287"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="286"/> <source>no message for this code defined</source> - <translation>kein Schlüssel für diesen Code definiert</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="146"/> + <translation>keine Beschreibung für diesen Code definiert</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="145"/> <source>continuation line indentation is not a multiple of four</source> <translation>Einrückung der Fortsetzungszeile ist kein Vielfaches von Vier</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="148"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="147"/> <source>continuation line missing indentation or outdented</source> <translation>fehlende Einrückung der Fortsetzungzeile oder sie wurde ausgerückt</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="150"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="149"/> <source>closing bracket does not match indentation of opening bracket's line</source> <translation>Einrückung der schließenden Klammer ungleich der Zeile der öffnenden Klammer</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="153"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="152"/> <source>closing bracket does not match visual indentation</source> <translation>schließende Klammer passt nicht zur visuellen Einrückung</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="155"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="154"/> <source>continuation line does not distinguish itself from next logical line</source> <translation>Fortsetzungszeile unterscheidet sich nicht von der nächsten logischen Zeile</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="158"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="157"/> <source>continuation line over-indented for hanging indent</source> <translation>Fortsetzungszeile zu weit eingerückt für hängende Einrückung</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="160"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="159"/> <source>continuation line over-indented for visual indent</source> <translation>Fortsetzungszeile zu weit eingerückt für visuelle Einrückung</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="162"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="161"/> <source>continuation line under-indented for visual indent</source> <translation>Fortsetzungszeile zu wenig eingerückt für visuelle Einrückung</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="164"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="163"/> <source>closing bracket is missing indentation</source> <translation>Einrückung bei schließender Klammer fehlt</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="186"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="185"/> <source>missing whitespace around arithmetic operator</source> <translation>fehlende Leerzeichen um Arithmetikoperator</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="188"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="187"/> <source>missing whitespace around bitwise or shift operator</source> <translation>fehlende Leerzeichen um Bit- oder Shiftoperator</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="190"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="189"/> <source>missing whitespace around modulo operator</source> <translation>fehlende Leerzeichen um Modulooperator</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="198"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="197"/> <source>unexpected spaces around keyword / parameter equals</source> <translation>unerwartete Leerzeichen um Schlüsselwort- / Parameter-Gleichheitszeichen</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="204"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="203"/> <source>multiple spaces after keyword</source> <translation>mehrfache Leerzeichen nach Schlüsselwort</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="206"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="205"/> <source>multiple spaces before keyword</source> <translation>mehrfache Leerzeichen vor Schlüsselwort</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="208"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="207"/> <source>tab after keyword</source> <translation>Tabulator nach Schlüsselwort</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="210"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="209"/> <source>tab before keyword</source> <translation>Tabulator vor Schlüsselwort</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="230"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="229"/> <source>line too long ({0} > {1} characters)</source> <translation>Zeile zu lang ({0} > {1} Zeichen)</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="232"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="231"/> <source>the backslash is redundant between brackets</source> <translation>Backslash ist redundant innerhalb von Klammern</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="246"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="245"/> <source>statement ends with a semicolon</source> <translation>Anweisung endet mit einem Semikolon</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="250"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="249"/> <source>comparison to {0} should be {1}</source> <translation>Vergleich mit {0} sollte {1} sein</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="252"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="251"/> <source>do not compare types, use 'isinstance()'</source> <translation>vergleiche keine Typen, verwende 'isinstance()'</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="254"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/pep8.py" line="253"/> <source>{0}: {1}</source> <translation>{0}: {1}</translation> </message> @@ -61695,70 +61708,75 @@ <context> <name>py3Flakes</name> <message> - <location filename="../Utilities/py2flakes/messages.py" line="66"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/messages.py" line="60"/> <source>{0!r} imported but unused.</source> <translation>{0!r} importiert aber nicht benutzt.</translation> </message> <message> - <location filename="../Utilities/py2flakes/messages.py" line="86"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/messages.py" line="80"/> <source>Redefinition of unused {0!r} from line {1!r}.</source> <translation>Redefinition von nicht benutztem {0!r} aus Zeile {1!r}.</translation> </message> <message> - <location filename="../Utilities/py2flakes/messages.py" line="128"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/messages.py" line="122"/> <source>Import {0!r} from line {1!r} shadowed by loop variable.</source> <translation>Import {0!r} aus Zeile {1!r} durch lokale Variable verdeckt.</translation> </message> <message> - <location filename="../Utilities/py2flakes/messages.py" line="149"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/messages.py" line="143"/> <source>'from {0} import *' used; unable to detect undefined names.</source> <translation>„from {0} import *“ verwendet; nicht definierte Namen können nicht entdeckt werden.</translation> </message> <message> - <location filename="../Utilities/py2flakes/messages.py" line="169"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/messages.py" line="163"/> <source>Undefined name {0!r}.</source> <translation>Nicht definierter Name {0!r}.</translation> </message> <message> - <location filename="../Utilities/py2flakes/messages.py" line="187"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/messages.py" line="201"/> <source>Undefined name {0!r} in __all__.</source> <translation>Nicht definierter Name {0!r} in __all__.</translation> </message> <message> - <location filename="../Utilities/py2flakes/messages.py" line="207"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/messages.py" line="221"/> <source>Local variable {0!r} (defined in enclosing scope on line {1!r}) referenced before assignment.</source> <translation>Lokale Variable {0!r} (definiert im Sichtbarkeitsbereich in Zeile {1!r}) wird vor einer Zuweisung verwendet.</translation> </message> <message> - <location filename="../Utilities/py2flakes/messages.py" line="229"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/messages.py" line="243"/> <source>Duplicate argument {0!r} in function definition.</source> <translation>Doppeltes Argument {0!r} in Funktionsdefinition.</translation> </message> <message> <location filename="../Utilities/py3flakes/messages.py" line="230"/> <source>Redefinition of function {0!r} from line {1!r}.</source> - <translation>Redefinition der Funktion {0!r} aus Zeile {1!r}.</translation> - </message> - <message> - <location filename="../Utilities/py2flakes/messages.py" line="270"/> + <translation type="obsolete">Redefinition der Funktion {0!r} aus Zeile {1!r}.</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/messages.py" line="284"/> <source>Future import(s) {0!r} after other statements.</source> <translation>Future Import(s) {0!r} nach anderen Statements.</translation> </message> <message> - <location filename="../Utilities/py2flakes/messages.py" line="293"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/messages.py" line="307"/> <source>Local variable {0!r} is assigned to but never used.</source> <translation>Lokale Variable {0!r} wurde zugewiesen aber nicht verwendet.</translation> </message> <message> - <location filename="../Utilities/py2flakes/messages.py" line="107"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/messages.py" line="101"/> <source>List comprehension redefines {0!r} from line {1!r}.</source> <translation>List comprehension redefiniert {0!r} aus Zeile {1!r}.</translation> </message> <message> - <location filename="../Utilities/py2flakes/messages.py" line="249"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/messages.py" line="263"/> <source>Redefinition of {0!r} from line {1!r}.</source> <translation>Redefinition von {0!r} aus Zeile {1!r}.</translation> </message> + <message> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/messages.py" line="181"/> + <source>Syntax error in doctest.</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>subversion</name>