Its primary advantage over PyChecker is that it is fast. You don’t have to sit around for minutes waiting for the checker to run; it runs on most large projects in only a few seconds.
The two primary categories of defects reported by PyFlakes are:
- Names which are used but not defined or used before they are defined
- Names which are redefined without having been used
These can each take many forms. For example, PyFlakes will tell you when you have forgotten an import, mistyped a variable name, defined two functions with the same name, shadowed a variable from another scope, imported a module twice, or two different modules with the same name, and so on.