Goal of the repo is to prepare and present README with list of messages.
Prepared with pylint --list-msgs
for pylint v2.2.2
Used when the name is listed in the black list (unauthorized names).
Used when the name doesn't conform to naming rules associated to its type (constant, variable, class...).
Used when a module, function, class or method has no docstring.Some special methods like init doesn't necessary require a docstring.
Used when a module, function, class or method has an empty docstring (it would be too easy ;).
Used when a boolean expression contains an unneeded negation.
Used when an expression is compared to singleton values like True, False or None.
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.
The idiomatic way to perform an explicit typecheck in Python is to use isinstance(x, Y) rather than type(x) == Y, type(x) is Y. Though there are unusual situations where these give different results.
Emitted when code that iterates with range and len is encountered. Such code can be simplified by using the enumerate builtin.
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".
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.
Used when a metaclass 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.
Used when a metaclass class method has a first argument named differently than the value specified in valid-metaclass-classmethod-first-arg option (default to "mcs"), recommended to easily differentiate them from regular instance methods.
Used when a class slots is a simple string, rather than an iterable.
Used when a line is longer than a given number of characters.
Used when a module has too many lines, reducing its readability.
Used when there is whitespace between the end of a line and the newline.
Used when the last line in a file is missing a newline.
Used when there are trailing blank lines in a file.
Used when more than on statement are found on the same line.
Used when a single item in parentheses follows an if, for, or other keyword.
Used when a wrong number of spaces is used around an operator, bracket or block opener.
Used when there are mixed (LF and CRLF) newline signs in a file.
Used when there is different newline than expected.
TODO
Used when a word in comment is not spelled correctly.
Used when a word in docstring is not spelled correctly.
Used when a word in docstring cannot be checked by enchant.
Used when import statement importing multiple modules is detected.
Used when PEP8 import order is not respected (standard imports first, then third-party libraries, then local imports)
Used when imports are not grouped by packages
Used when code and imports are mixed
Used when an import alias is same as original package.e.g using import numpy as numpy instead of import numpy as np
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.
Used when a syntax error is raised for a module.
Used when an unknown inline option is encountered.
Used when a bad value for an inline option is encountered.
Used when the special class method init is turned into a generator by a yield in its body.
Used when the special class method init has an explicit return value.
Used when a function / class / method is redefined.
Used when break or continue keywords are used outside a loop.
Used when a "return" statement is found outside a function or method.
Used when a "yield" statement is found outside a function or method.
Used when you attempt to use the C-style pre-increment or pre-decrement operator -- and ++, which doesn't exist in Python.
Duplicate argument names in function definitions are syntax errors.
Used when an abstract class with abc.ABCMeta
as metaclass has abstract
methods and is instantiated.
Used when the first argument to reversed() builtin isn't a sequence (does not implement reversed, nor getitem and len
Emitted when there are more than one starred expressions (*x
) in an
assignment. This is a SyntaxError.
Emitted when a star expression is used as a starred assignment target.
Emitted when a star expression is not used in an assignment target.
Emitted when a name is both nonlocal and global.
Emitted when the continue
keyword is found inside a finally clause,
which is a SyntaxError.
Emitted when a nonlocal variable does not have an attached name somewhere in the parent scopes
Emitted when a name is used prior a global declaration, which results in an error since Python 3.6. This message can't be emitted when using Python < 3.6.
Emitted when format function is not called on str object. e.g doing print("value: {}").format(123) instead of print("value: {}".format(123)). This might not be what the user intended to do.
method-hidden
Used when a class defines a method which is hidden by an instance attribute from an ancestor class or set by some client code.
Used when an instance member is accessed before it's actually assigned.
Used when a method which should have the bound instance as first argument has no argument defined.
Used when a method has an attribute different the "self" as first argument. This is considered as an error since this is a so common convention that you shouldn't break it!
Used when an invalid (non-string) object occurs in slots.
Used when assigning to an attribute not defined in the class slots.
Used when an invalid slots is found in class. Only a string, an iterable or a sequence is permitted.
Used when a class inherits from something which is not a class.
Used when a class has an inconsistent method resolution order.
Used when a class has duplicate bases.
Used when an iter method returns something which is not an iterable
(i.e. has no __next__
method)
Emitted when a special method was defined with an invalid number of parameters. If it has too few or too many, it might not work at all.
Used when a len method returns something which is not a non-negative integer
Used when pylint has been unable to import a module.
Used when a relative import tries to access too many levels in the current package.
Used when a local variable is accessed before its assignment.
Used when an undefined variable is accessed.
Used when an undefined variable name is referenced in all.
Used when an invalid (non-string) object occurs in all.
Used when a name cannot be found in a module.
Used when something which is not a sequence is used in an unpack assignment
Used when except clauses are not in the correct order (from the more specific to the more generic). If you don't fix the order, some exceptions may not be caught by the most specific handler.
Used when something which is neither a class, an instance or a string is
raised (i.e. a TypeError
will be
raised).
Used when using the syntax "raise ... from ...", where the exception context is not an exception, nor None.
Used when a bare raise is not used inside an except clause. This generates an error, since there are no active exceptions to be reraised. An exception to this rule is represented by a bare raise inside a finally clause, which might work, as long as an exception is raised inside the try block, but it is nevertheless a code smell that must not be relied upon.
Used when a new style class which doesn't inherit from BaseException is raised.
Used when NotImplemented is raised instead of NotImplementedError
Used when a class which doesn't inherit from Exception is used as an exception in an except clause.
Used when another argument than the current class is given as first argument of the super builtin.
Used when a variable is accessed for an unexistent member.
Used when an object being called has been inferred to a non callable object.
Used when an assignment is done on a function call but the inferred function doesn't return anything.
Used when a function call passes too few arguments.
Used when a function call passes too many positional arguments.
Used when a function call passes a keyword argument that doesn't correspond to one of the function's parameter names.
Used when a function call would result in assigning multiple values to a function parameter, one value from a positional argument and one from a keyword argument.
Used when a function call does not pass a mandatory keyword-only argument.
Used when a sequence type is indexed with an invalid type. Valid types are ints, slices, and objects with an index method.
Used when a slice index is not an integer, None, or an object with an index method.
Used when an assignment is done on a function call but the inferred function returns nothing but None.
Used when an instance in a with statement doesn't implement the context manager protocol(enter/exit).
Emitted when a unary operand is used on an object which does not support this type of operation.
Emitted when a binary arithmetic operation between two operands is not supported.
Emitted when a function call got multiple values for a keyword.
Used when a non-iterable value is used in place where iterable is expected
Used when a non-mapping value is used in place where mapping is expected
Emitted when an instance in membership test expression doesn't implement membership protocol (contains/iter/getitem).
Emitted when a subscripted value doesn't support subscription (i.e. doesn't define getitem method).
Emitted when an object does not support item assignment (i.e. doesn't define setitem method).
Emitted when an object does not support item deletion (i.e. doesn't define delitem method).
Emitted whenever we can detect that a class is using, as a metaclass, something which might be invalid for using as a metaclass.
Emitted when a dict key is not hashable (i.e. doesn't define hash method).
Used when an unsupported format character is used in a logging statement format string.
Used when a logging statement format string terminates before the end of a conversion specifier.
Used when a logging format string is given too many arguments.
Used when a logging format string is given too few arguments.
Used when an unsupported format character is used in a format string.
Used when a format string terminates before the end of a conversion specifier.
Used when a format string contains both named (e.g. '%(foo)d') and unnamed (e.g. '%d') conversion specifiers. This is also used when a named conversion specifier contains * for the minimum field width and/or precision.
Used when a format string that uses named conversion specifiers is used with an argument that is not a mapping.
Used when a format string that uses named conversion specifiers is used with a dictionary that doesn't contain all the keys required by the format string.
Used when a format string that uses unnamed conversion specifiers is given too many arguments.
Used when a format string that uses unnamed conversion specifiers is given too few arguments
Used when a type required by format string is not suitable for actual argument type
The argument to a str.{l,r,}strip call contains a duplicate character,
Env manipulation functions support only string type arguments. See https://docs.python.org/3/library/os.html#os.getenv.
Used when a print statement is used (print
is a function in Python 3)
Used when parameter unpacking is specified for a function(Python 3 doesn't allow it)
Python3 will not allow implicit unpacking of exceptions in except clauses. See http://www.python.org/dev/peps/pep-3110/
Used when the alternate raise syntax 'raise foo, bar' is used instead of 'raise foo(bar)'.
Used when the deprecated "``" (backtick) operator is used instead of the str() function.
Used when an yield
or yield from
statement is found inside an async
function. This message can't be emitted when using Python <
3.5.
Used when an async context manager is used with an object that does not implement the async context management protocol. This message can't be emitted when using Python < 3.5.
Used when an error occurred preventing the analysis of a module (unable to find it for instance).
Used when an unexpected error occurred while building the Astroid representation. This is usually accompanied by a traceback. Please report such errors !
Used when an exception occurred while building the Astroid representation which could be handled by astroid.
Used when Pylint has been unable to check methods signature compatibility for an unexpected reason. Please report this kind if you don't make sense of it.
Used to inform that a built-in module has not been checked using the raw checkers.
Used when an inline option is either badly formatted or can't be used inside modules.
Used when an inline option disables a message or a messages category.
Used to inform that the file will not be checked
A message was triggered on a line, but suppressed explicitly by a disable= comment in the file. This message is not generated for messages that are ignored due to configuration settings.
Reported when a message is explicitly disabled for a line or a block of code, but never triggered.
Some inline pylint options have been renamed or reworked, only the most recent form should be used. NOTE:skip-all is only available with pylint >= 0.26
Used when a message is enabled or disabled by id.
I1101 - %s %r has no %r member%s, but source is unavailable. Consider adding this module to extension-pkg-whitelist if you want to perform analysis based on run-time introspection of living objects.
Used when a variable is accessed for non-existent member of C extension. Due to unavailability of source static analysis is impossible, but it may be performed by introspecting living objects in run-time.
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.
Used when something is compared against itself.
Used when a method doesn't use its bound instance, and so could be written as a function.
Used when a class method is defined without using the decorator syntax.
Used when a static method is defined without using the decorator syntax.
Used when a class inherit from object, which under python3 is implicit, hence can be safely removed from bases.
Used when a cyclic import between two or more modules is detected.
Indicates that a set of similar lines has been detected among multiple file. This usually means that the code should be refactored to avoid this duplication.
Used when class has too many parent classes, try to reduce this to get a simpler (and so easier to use) class.
Used when class has too many instance attributes, try to reduce this to get a simpler (and so easier to use) class.
Used when class has too few public methods, so be sure it's really worth it.
Used when class has too many public methods, try to reduce this to get a simpler (and so easier to use) class.
Used when a function or method has too many return statement, making it hard to follow.
Used when a function or method has too many branches, making it hard to follow.
Used when a function or method takes too many arguments.
Used when a function or method has too many local variables.
Used when a function or method has too many statements. You should then split it in smaller functions / methods.
Used when an if statement contains too many boolean expressions.
Used when multiple consecutive isinstance calls can be merged into one.
Used when a function or a method has too many nested blocks. This makes the code less understandable and maintainable.
Used when an if statement can be replaced with 'bool(test)'.
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.
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.
Used when one of known pre-python 2.5 ternary syntax is used.
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.
According to PEP479, the raise of StopIteration to end the loop of a generator may lead to hard to find bugs. This PEP specify that raise StopIteration has to be replaced by a simple return statement
Emitted when redundant pre-python 2.5 ternary syntax is used.
R1710 - Either all return statements in a function should return an expression, or none of them should.
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)
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
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.
Using str.join(sequence) is faster, uses less memory and increases readability compared to for-loop iteration.
To check if a variable is equal to one of many values,combine the values into a tuple and check if the variable is contained "in" it instead of checking for equality against each of the values.This is faster and less verbose.
R1715 - Consider using dict.get for getting values from a dict if a key is present or a default if not
Using the builtin dict.get for getting a value from a dictionary if a key is present or a default if not, is simpler and considered more idiomatic, although sometimes a bit slower
This message is emitted when pylint encounters boolean operation like"a < b and b < c", suggesting instead to refactor it to "a < b < c"
Although there is nothing syntactically wrong with this code, it is hard to read and can be simplified to a dict comprehension.Also it is faster since you don't need to create another transient list
Although there is nothing syntactically wrong with this code, it is hard to read and can be simplified to a set comprehension.Also it is faster since you don't need to create another transient list
Used when an if expression can be replaced with 'bool(test)'.
Used when there is some code behind a "return" or "raise" statement, which will never be accessed.
Used when a mutable value as list or dictionary is detected in a default value for an argument.
Used when a statement doesn't have (or at least seems to) any effect.
Used when a string is used as a statement (which of course has no effect). This is a particular case of W0104 with its own message so you can easily disable it if you're using those strings as documentation, instead of comments.
Used when an expression that is not a function call is assigned to nothing. Probably something else was intended.
Used when a "pass" statement that can be avoided is encountered.
Used when the body of a lambda expression is a function call on the same argument list as the lambda itself; such lambda expressions are in all but a few cases replaceable with the function being called in the body of the lambda.
Used when a dictionary expression binds the same key multiple times.
Used when assignment will become invalid in future Python release due to introducing new keyword.
Loops should only have an else clause if they can exit early with a break statement, otherwise the statements under else should be on the same scope as the loop itself.
Used when you use the "exec" statement (function for Python 3), to discourage its usage. That doesn't mean you cannot use it !
Used when you use the "eval" function, to discourage its usage. Consider
using ast.literal_eval
for safely evaluating strings containing Python
expressions from untrusted
sources.
Emitted when a with
statement component returns multiple values and
uses name binding with as
only for a part of those values, as in with
ctx() as a, b. This can be misleading, since it's not clear if the
context manager returns a tuple or if the node without a name binding is
another context manager.
Emitted when a conditional statement (If or ternary if) uses a constant value for its test. This might not be what the user intended to do.
This message is emitted when pylint detects that a comparison with a callable was made, which might suggest that some parenthesis were omitted, resulting in potential unwanted behaviour.
Used when a break or a return statement is found inside the finally clause of a try...finally block: the exceptions raised in the try clause will be silently swallowed instead of being re-raised.
A call of assert on a tuple will always evaluate to true if the tuple is not empty, and will always evaluate to false if it is.
Used when an instance attribute is defined outside the init method.
Used when a static method has "self" or a value specified in valid- classmethod-first-arg option or valid-metaclass-classmethod-first-arg option as first argument.
Used when a protected member (i.e. class member with a name beginning with an underscore) is access outside the class or a descendant of the class where it's defined.
Used when a method has a different number of arguments than in the implemented interface or in an overridden method.
Used when a method signature is different than in the implemented interface or in an overridden method.
Used when an abstract method (i.e. raise NotImplementedError) is not overridden in concrete class.
Used when an ancestor class method has an init method which is not called by a derived class.
Used when a class has no init method, neither its parent classes.
Used when an init method is called on a class which is not in the direct ancestors for the analysed class.
Used whenever we can detect that an overridden method is useless, relying on super() delegation to do the same thing as another method from the MRO.
Used when a statement is ended by a semi-colon (";"), which isn't necessary (that's python, not C ;).
Used when an unexpected number of indentation's tabulations or spaces has been found.
Used when there are some mixed tabs and spaces in a module.
Used when from module import *
is detected.
Used a module marked as deprecated is imported.
Used when a module is reimported multiple times.
Used when a module is importing itself.
Python 2.5 and greater require future import to be the first non docstring statement in the module.
Used when a warning note as FIXME or XXX is detected.
Used when a variable is defined through the "global" statement but the variable is not defined in the module scope.
Used when a variable is defined through the "global" statement but no assignment to this variable is done.
Used when you use the "global" statement to update a global variable. Pylint just try to discourage this usage. That doesn't mean you cannot use it !
Used when you use the "global" statement at the module level since it has no effect
Used when an imported module or variable is not used.
Used when a variable is defined but not used.
Used when a function or method argument is not used.
Used when an imported module or variable is not used from a 'from X import *'
style import.
Used when a variable's name hides a name defined in the outer scope.
Used when a variable or function override a built-in.
Used when an exception handler assigns the exception to an existing name
Used when a loop variable (i.e. defined by a for loop or a list comprehension or a generator expression) is used outside the loop.
W0632 - Possible unbalanced tuple unpacking with sequence%s: left side has %d label(s), right side has %d value(s)
Used when there is an unbalanced tuple unpacking in assignment
A variable used in a closure is defined in a loop. This will result in all closures using the same value for the closed-over variable.
Used when a variable is defined but might not be used. The possibility comes from the fact that locals() might be used, which could consume or not the said variable
Invalid assignment to self or cls in instance or class method respectively.
Used when an except clause doesn't specify exceptions type to catch.
Used when an except catches a too general exception, possibly burying unrelated errors.
Used when an except catches a type that was already caught by a previous handler.
Used when an except handler uses raise as its first or only operator. This is useless because it raises back the exception immediately. Remove the raise operator or the entire try-except-raise block!
Used when the exception to catch is of the form "except A or B:". If intending to catch multiple, rewrite as "except (A, B):"
Used when passing multiple arguments to an exception constructor, the first of them a string literal containing what appears to be placeholders intended for formatting
When defining a keyword argument before variable positional arguments, one can end up in having multiple values passed for the aforementioned parameter in case the method is called with keyword arguments.
Used when a logging statement has a call form of "logging.(format_string % (format_args...))". Such calls should leave string interpolation to the logging method itself and be written "logging.(format_string, format_args...)" so that the program may avoid incurring the cost of the interpolation in those cases in which no message will be logged. For more, see http://www.python.org/dev/peps/pep-0282/.
Used when a logging statement has a call form of "logging.(format_string.format(format_args...))". Such calls should use % formatting instead, but leave interpolation to the logging function by passing the parameters as arguments.
Used when a logging statement has a call form of "logging.method(f"..."))". Such calls should use % formatting instead, but leave interpolation to the logging function by passing the parameters as arguments.
Used when a format string that uses named conversion specifiers is used with a dictionary whose keys are not all strings.
Used when a format string that uses named conversion specifiers is used with a dictionary that contains keys not required by the format string.
Used when a PEP 3101 format string is invalid.
Used when a PEP 3101 format string that uses named fields doesn't receive one or more required keywords.
Used when a PEP 3101 format string that uses named fields is used with an argument that is not required by the format string.
Used when a PEP 3101 format string contains both automatic field numbering (e.g. '{}') and manual field specification (e.g. '{0}').
Used when a PEP 3101 format string uses an attribute specifier ({0.length}), but the argument passed for formatting doesn't have that attribute.
Used when a PEP 3101 format string uses a lookup specifier ({a[1]}), but the argument passed for formatting doesn't contain or doesn't have that key as an attribute.
Used when we detect that a string formatting is repeating an argument instead of using named string arguments
Used when a backslash is in a literal string but not as an escape.
W1402 - Anomalous Unicode escape in byte string: '%s'. String constant might be missing an r or u prefix.
Used when an escape like \u is encountered in a byte string where it has no effect.
String literals are implicitly concatenated in a literal iterable definition : maybe a comma is missing ?
Python supports: r, w, a[, x] modes with b, +, and U (only with r) options. See http://docs.python.org/2/library/functions.html#open
The first argument of assertTrue and assertFalse is a condition. If a constant is passed as parameter, that condition will be always true. In this case a warning should be emitted.
The method is marked as deprecated and will be removed in a future version of Python. Consider looking for an alternative in the documentation.
The warning is emitted when a threading.Thread class is instantiated without the target function being passed. By default, the first parameter is the group param, not the target param.
os.environ is not a dict object but proxy object, so shallow copy has still effects on original object. See https://bugs.python.org/issue15373 for reference.
Env manipulation functions return None or str values. Supplying anything different as a default may cause bugs. See https://docs.python.org/3/library/os.html#os.getenv.
The preexec_fn parameter is not safe to use in the presence of threads in your application. The child process could deadlock before exec is called. If you must use it, keep it trivial! Minimize the number of libraries you call into.https://docs.python.org/3/library/subprocess.html#popen-constructor
Used when the apply built-in function is referenced (missing from Python 3)
Used when the basestring built-in function is referenced (missing from Python 3)
Used when the buffer built-in function is referenced (missing from Python 3)
Used when the cmp built-in function is referenced (missing from Python 3)
Used when the coerce built-in function is referenced (missing from Python 3)
Used when the execfile built-in function is referenced (missing from Python 3)
Used when the file built-in function is referenced (missing from Python 3)
Used when the long built-in function is referenced (missing from Python 3)
Used when the raw_input built-in function is referenced (missing from Python 3)
Used when the reduce built-in function is referenced (missing from Python 3)
Used when the StandardError built-in function is referenced (missing from Python 3)
Used when the unicode built-in function is referenced (missing from Python 3)
Used when the xrange built-in function is referenced (missing from Python 3)
Used when a coerce method is defined (method is not used by Python 3)
Used when a delslice method is defined (method is not used by Python 3)
Used when a getslice method is defined (method is not used by Python 3)
Used when a setslice method is defined (method is not used by Python 3)
Used when an import is not accompanied by from __future__ import absolute_import
(default behaviour in Python 3)
Used for non-floor division w/o a float literal or from __future__ import division
(Python 3 returns a float for int division
unconditionally)
Used for calls to dict.iterkeys(), itervalues() or iteritems() (Python 3 lacks these methods)
Used for calls to dict.viewkeys(), viewvalues() or viewitems() (Python 3 lacks these methods)
Used when an object's next() method is called (Python 3 uses the next() built- in function)
Used when a metaclass is specified by assigning to metaclass (Python 3 specifies the metaclass as a class statement argument)
Indexing exceptions will not work on Python 3. Use
exception.args[index]
instead.
Used when a string exception is raised. This will not work on Python 3.
Used when the reload built-in function is referenced (missing from Python 3). You can use instead imp.reload or importlib.reload.
Used when an oct method is defined (method is not used by Python 3)
Used when a hex method is defined (method is not used by Python 3)
Used when a nonzero method is defined (method is not used by Python 3)
Used when a cmp method is defined (method is not used by Python 3)
Used when the input built-in is referenced (backwards-incompatible semantics in Python 3)
Used when the round built-in is referenced (backwards-incompatible semantics in Python 3)
Used when the intern built-in is referenced (Moved to sys.intern in Python 3)
Used when the unichr built-in is referenced (Use chr in Python 3)
Used when the map built-in is referenced in a non-iterating context (returns an iterator in Python 3)
Used when the zip built-in is referenced in a non-iterating context (returns an iterator in Python 3)
Used when the range built-in is referenced in a non-iterating context (returns an iterator in Python 3)
Used when the filter built-in is referenced in a non-iterating context (returns an iterator in Python 3)
Using the cmp argument for list.sort or the sorted builtin should be
avoided, since it was removed in Python 3. Using either key
or
functools.cmp_to_key
should be preferred.
Used when a class implements eq but not hash. In Python 2, objects get object.hash as the default implementation, in Python 3 objects get None as their default hash implementation if they also implement eq.
Used when a div method is defined. Using __truediv__
and
setting__div__ = truediv should be preferred.(method is not used
by Python 3)
Used when an idiv method is defined. Using __itruediv__
and
setting__idiv__ = itruediv should be preferred.(method is not
used by Python 3)
Used when a rdiv method is defined. Using __rtruediv__
and
setting__rdiv__ = rtruediv should be preferred.(method is not
used by Python 3)
Used when the message attribute is accessed on an Exception. Use str(exception) instead.
Used when using str.encode or str.decode with a non-text encoding. Use codecs module to handle arbitrary codecs.
Used when accessing sys.maxint. Use sys.maxsize instead.
Used when importing a module that no longer exists in Python 3.
Used when accessing a string function that has been deprecated in Python 3.
Used when using the deprecated deletechars parameters from str.translate. Use re.sub to remove the desired characters
Used when accessing a function on itertools that has been removed in Python 3.
Used when accessing a field on types that has been removed in Python 3.
Used when a next method is defined that would be an iterator in Python 2 but is treated as a normal function in Python 3.
Used when dict.items is referenced in a non-iterating context (returns an iterator in Python 3)
Used when dict.keys is referenced in a non-iterating context (returns an iterator in Python 3)
Used when dict.values is referenced in a non-iterating context (returns an iterator in Python 3)
Used when accessing a field on operator module that has been removed in Python 3.
Used when accessing a field on urllib module that has been removed or moved in Python 3.
Used when accessing the xreadlines() function on a file stream, removed in Python 3.
Used when accessing a field on sys module that has been removed in Python 3.
Emitted when using an exception, that was bound in an except handler, outside of the except handler. On Python 3 these exceptions will be deleted once they get out of the except handler.
Emitted when using a variable, that was bound in a comprehension handler, outside of the comprehension itself. On Python 3 these variables will be deleted outside of the comprehension.