Rule Description KPI URL
E0001-syntaxErrorForModule The code has syntax erros Understandability
R0801-duplicateLinesInFiles Similar lines Maintainability
R0901-tooManyAncestors Class has too many parent classes, try to reduce this to get a more simple (and so easier to use) class. Maintainability
R0902-tooManyInstanceAttributes Class has too many instance attributes, try to reduce this to get a more simple (and so easier to use) class. Maintainability
R0903-tooFewPublicMethods Classes aren’t meant to just store data, as you’re basically treating the class as a dictionary Maintainability
R0904-tooManyPublicMethods Class has too many public methods, try to reduce this to get a more simple (and so easier to use) class. Maintainability
R0911-tooManyReturnStatement Too many return statements Maintainability
R0912-tooManyBranches Too many branches Maintainability
R0913-tooManyArguments Too many arguments Maintainability
R0914-tooManyLocalVariables A method or function uses more than 15 variables in the namespace. Maintainability
R0915-tooManyStatements A function or method has too many statements. You should then split it in smaller functions / methods. Maintainability
R0921-abstractClassNotReferenced An abstract class is not used as ancestor anywhere. Maintainability
R0922-abstractClassNotUsedFrequently An abstract class is used less than X times as ancestor. Maintainability
R0923-interfaceNotImplemented An interface class has not been implemented. Understandability
R1703-ifStatementCanBeSimplified Suggest simplification of an if statement, which can be easier to understand after refactoring. Understandability
W0105-stringStatementHasNotEffect String statements which don’t form a docstring can be transformed into comments. Understandability
W0121-incorrectRaiseError Use raise ErrorClass(args) instead of raise ErrorClass, args. Understandability
W0301-uselessSemicolon A statement is endend by a semi-colon (‘;’), which isn’t necessary (that’s python, not C ;). Understandability
W0311-badIndentation An unexpected number of indentation’s tabulations or spaces has been found. Understandability
W0331-usedInvalidOpt Use of the <> operator. Use ‘!=’ instead. Understandability
W0332-longVarDeclaration A lower case ‘l’ is used to mark a long integer. You should use an upper case ‘L’ since the letter ‘l’ looks too much like the digit ‘1’. Understandability
W0333-useStrFunction The deprecated ‘“’ (backtick) operator is used instead of the str() function Understandability
W0402-useOfDeprecatedModule Uses of a deprecated module Accuracy
W0403-relativeImportFound An import relative to the package directory is detected. Understandability
W0404-reimportNotRequired Don’t import modules more than once. Resource Utilization
W0406-moduleImportItself Module imports itself Understandability
W0511-taskMarkerFound Task marker found Maintainability
W0512-cannotDecodeUsingEncoding Source line cannot be decoded using the specified source file encoding Understandability
W0603-usingGlobalStatement Using the global statement Understandability
W0611-unusedImport Do not leave unused imports lying around, they are dead code. Understandability
W0613-unusedArgument An argument is not used in the body of its function or method. Understandability
W0614-unusedImportFromWildcardImport Unused import from wildcard import Understandability
W0621-nameRedefinedFromOuterScope Redefining name from outer scope Understandability
W0632-possibleUnbalancedTuple Possible unbalanced tuple unpacking Understandability
W0633-unpackingNonSequence Attempting to unpack a non-sequence Understandability
W0704-exceptDoNothing Except doesn’t do anything Robustness
W0712-implicitExceptionsNotSupported Implicit unpacking of exceptions is not supported in Python 3 Understandability
W1001-propertyUsedOnOldStyleClass Use of ‘property’ on an old style class Understandability
W1111-functionCallOnlyReturnNone An assignment is done on a function call but the inferred function returns nothing but None. Understandability
W1201-formatStringInsteadOfConcat When using python’s built-in logging module you shouldn’t concatenate strings with values, and instead format the string. As if string.format() Understandability
W1301-unusedKeyInDictionary Don’t pass extra keys when doing string formatting with a dictionary. Accuracy
W1401-anomalousBacksEscape Anomalous backslash escape Maintainability
W1402-anomalousEscapeString Anomalous Unicode escape in byte string Maintainability
W1501-notAValidModeForOpen Make sure that the open builtin receives a correct mode. Accuracy
C0113-unneededNegation Used when a boolean expression contains an unneeded negation. Understandability
C0122-useConstantOnLeftSideOfComparision Used when the constant is placed on the left side of a comparison. It is usually clearer in intent to place it in the right hand side of the comparison. Understandability
C0201-avoidCallingKeysMethod Emitted when the keys of a dictionary are iterated through the .keys() method. It is enough to just iterate through the dictionary itself, as in ‘for key in dictionary’. Understandability
C0205-slotsShouldBeNonStringIterable Used when a class __slots__ is a simple string, rather than an iterable. Accuracy
R0123-possibleIncorrectComparision Used when comparing an object to a literal, which is usually what you do not want to do, since you can compare to a different literal than what was expected altogether. Accuracy
R0916-tooManyBooleanExpressionsInIfStatement Used when an if statement contains too many boolean expressions Understandability
R1701-mergeIsInstanceCalls Used when multiple consecutive isinstance calls can be merged into one. Understandability
R1702-tooManyNestedBlocks Used when a function or a method has too many nested blocks. This makes the code less understandable and maintainable. Understandability
R1704-localNameIsRedefiningArg Used when a local name is redefining an argument, which might suggest a potential error. This is taken in account only for a handful of name binding operations, such as for iteration, with statement assignment and exception handler assignment. Understandability
R1705-unnecessaryElseAfterReturn Used in order to highlight an unnecessary block of code following an if containing a return statement. As such, it will warn when it encounters an else following a chain of ifs, all of them containing a return statement. Understandability
R1706-oldTernarySyntax Used when one of known pre-python 2.5 ternary syntax is used. Maintainability
R1707-avoidTrailingCommaTuple In Python, a tuple is actually created by the comma symbol, not by the parentheses. Unfortunately, one can actually create a tuple by misplacing a trailing comma, which can lead to potential weird bugs in your code. You should always use parentheses explicitly for creating a tuple. Understandability
R1709-booleanExpressionMayBeSimplified Emitted when redundant pre-python 2.5 ternary syntax is used. Portability
R1710-incorrectReturnExpression According to PEP8, if any return statement returns an expression, any return statements where no value is returned should explicitly state this as return None, and an explicit return statement should be present at the end of the function (if reachable) Maintainability
R1711-uselessReturn Emitted when a single ‘return’ or ‘return None’ statement is found at the end of function or method definition. This statement can safely be removed because Python will implicitly return None Maintainability
R1712-useTupleForSwappingVariables You do not have to use a temporary variable in order to swap variables. Using ‘tuple unpacking’ to directly swap variables makes the intention more clear. Maintainability
C0123-avoidExplicitTypeChecking Do not check explicitly the type of an object, use isinstance or feature checking instead. Efficiency
C0330-wrongIndentation Continued lines are badly indented. Understandability
R0202-useDecoratorInsteadOfClassMethod Use the decorator syntax (@) for creating a classmethod, do not call it explicitly. Understandability
R0203-useDecoratorInsteadOfStaticMethod A static method can easily be written by using the decorator syntax, which is cleaner and more obvious than calling static method directly. Understandability
W0125-avoidCondStmtWithConstantVal Prohibit a conditional statement with a constant value Understandability
W1302-invalidFormatString Make sure that the format strings are syntactically correct. Understandability
W1303-missingKeywordArgumentForFormatString Pass all defined keyword arguments into a string formatting operation. Understandability
W1304-unusedFormatArgument Prohibit formatting extra arguments, which are not used by the string format. Understandability
W1305-avoidCombiningWhileStringFormatting Avoid combining automatic field numbering ({}) with manual field specification ({i}). Understandability
W1306-missingFormatAttributeInFormatSpecifier Avoid accessing a missing attribute in a string formatting field. Accuracy
R0204-redefinedVariableType Used when the type of a variable changes inside a method or a function. Understandability
C0102-blackListedName Used when the name is listed in the ‘bad-names’ black list. Understandability
C0103-invalidName The name doesn’t fit the naming convention associated to its type (constant, variable, class…). Understandability
C0111-missingDocstring Module, function, class or method has no docstring. Some special methods like __init__() don’t require a docstring. Understandability
C0112-emptyDocstring Module, function, class or method has an empty docstring. Understandability
C0121-missingAttribute An attribute required for modules is missing Understandability
C0200-useEnumerateInsteadOfRange Consider using enumerate instead of iterating with range and len Emitted when code that iterates with range and len is encountered. Such code can be simplified by using the enumerate builtin. Understandability
C0202-useClsAsFirstArgumentInClass Used when a class method has a first argument named differently than the value specified in valid-classmethod-first-arg option (default to “cls”), recommended to easily differentiate them from regular instance methods. Understandability
C0203-useMcsAsFirstArgumentInMethod Metaclass method should have ‘mcs’ as first argument Understandability
C0204-useMcsAsFirstArgumentInClass A metaclass class method has a first argument named differently than the value specified in the valid-metaclass-classmethod-first-arg option (defaults to mcs). Specifying the value mcs is recommended to easily differentiate such methods from regular instance methods. Understandability
C0301-lineTooLong A line is longer than the limit specified in the max-line-length option in Pylint Understandability
C0302-tooManyLinesInModule Too many lines in module, reducing its readability. Understandability
C0303-trailingWhitespace Prohibit whitespace on any line directly before the line end character(s). Understandability
C0304-newLineMissing A Python source file has no line end character(s) on its last line. Understandability
C0321-tooManyStmtOnSingleLine More than one statement is found on the same line. Understandability
C0322-OptNotPrecededBySpace Operator not preceded by a space Understandability
C0323-OptNotFollowedBySpace Operator not followed by a space Understandability
C0324-commaNotFollowedBySpace Comma not followed by a space Understandability
C0325-unnecessaryParensAfterKeyword Prohibit the use of unnecessary parenthesis to enforce Python conventions. Understandability
C0326-extraSpaces Prohibit use of extraneous whitespace in expressions and statements. Understandability
C1001-oldStyleClassDefined A class is defined using the old style. Understandability
I0001-builtInModuleNotChecked Used to inform that a built-in module has not been checked using the raw checkers. Maintainability
I0010-inlineOptionNotConsidered Used when an inline option is either badly formatted or can’t be used inside modules. Maintainability
I0011-locallyDisabling Used when an inline option disables a message or a messages category. Maintainability
I0012-locallyEnabling Used when an inline option enables a message or a messages category. Maintainability
I0013-ignoringEntireFile Used to inform that the file will not be checked. Maintainability
I0014-deprecatedDirectiveUsed Used to inform that a deprecated directive has been used. Maintainability
I0022-deprecatePragmaUsed Used to inform that a deprecated pragma has been used. Maintainability
C0305-trailingNewlines Used when there are trailing blank lines in a file. Understandability
C0327-mixedLinesError Used when there are mixed (LF and CRLF) newline signs in a file. Understandability
C0328-unexpectedLineEndingFmt Used when there is different newline than expected. Maintainability
C0401-incorrectSpellingInComment Used when a word in comment is not spelled correctly. Understandability
C0402-incorrectSpellingInDocstring Used when a word in docstring is not spelled correctly. Understandability
C0403-invalidCharsInDocstring Used when a word in docstring cannot be checked by enchant. Maintainability
C0410-cyclicImport2 Used when a cyclic import between two or more modules is detected. Maintainability
C0411-incorrectImportOrder Used when PEP8 import order is not respected (standard imports first, then third-party libraries, then local imports) Understandability
C0412-importsNotGrouped Used when imports are not grouped by packages Understandability
C0413-importsShouldBeAtTop Used when code and imports are mixed Understandability
C1801-lenUsedIncorrectly Used when Pylint detects that len(sequence) is being used inside a condition to determine if a sequence is empty. Instead of comparing the length to 0, rely on the fact that empty sequences are false. Efficiency
I0023-useSymbolicMessaage Used when a message is enabled or disabled by id. Maintainability