Error / Violation CodesΒΆ
Flake8 and its plugins assign a code to each message that we refer to as a error code (or violation). Most plugins will list their error codes in their documentation or README.
Flake8 installs pycodestyle, pyflakes, and mccabe by default and
generates its own error codes for pyflakes:
| Code | Example Message |
|---|---|
| F401 | module imported but unused |
| F402 | import module from line N shadowed by loop variable |
| F403 | ‘from module import *’ used; unable to detect undefined names |
| F404 | future import(s) name after other statements |
| F405 | name may be undefined, or defined from star imports: module |
| F406 | ‘from module import *’ only allowed at module level |
| F407 | an undefined __future__ feature name was imported |
| F601 | dictionary key name repeated with different values |
| F602 | dictionary key variable name repeated with different values |
| F621 | too many expressions in an assignment with star-unpacking |
| F622 | two or more starred expressions in an assignment (a, *b, *c = d) |
| F631 | assertion test is a tuple, which are always True |
| F701 | a break statement outside of a while or for loop |
| F702 | a continue statement outside of a while or for loop |
| F703 | a continue statement in a finally block in a loop |
| F704 | a yield or yield from statement outside of a function |
| F705 | a return statement with arguments inside a generator |
| F706 | a return statement outside of a function/method |
| F707 | an except: block as not the last exception handler |
| F811 | redefinition of unused name from line N |
| F812 | list comprehension redefines name from line N |
| F821 | undefined name name |
| F822 | undefined name name in __all__ |
| F823 | local variable name ... referenced before assignment |
| F831 | duplicate argument name in function definition |
| F841 | local variable name is assigned to but never used |
Note that some of these entries behave differently on Python 2 and Python 3, for example F812 is specific to Python 2 only.
We also report one extra error: E999. We report E999 when we fail to
compile a file into an Abstract Syntax Tree for the plugins that require it.
mccabe only ever reports one violation - C901 based on the
complexity value provided by the user.
Users should also reference pycodestyle’s list of error codes.