Flake8 is a wrapper around these tools:

  • PyFlakes
  • pep8
  • Ned's MacCabe script

Flake8 runs all tools by launching the single 'flake8' script, but ignores pep8 and PyFlakes extended options and just uses defaults. It displays the warnings in a per-file, merged output.

It also adds a few features:

  • files that starts with this header are skipped:

    # flake8: noqa
  • lines that contains a "# NOQA" comment at the end will not issue a warning

  • a Mercurial hook

  • more things to come..

Original projects:

Mercurial hook

To use the Mercurial hook on any commit or qrefresh, change your .hg/rc file like this:

commit = python:flake8.run.hg_hook
qrefresh = python:flake8.run.hg_hook

strict = 0

If strict option is set to 1, any warning will block the commit. When strict is set to 0, warnings are just displayed in the standard output.


0.7 - 2010-02-18

  • Fix pep8 intialization when run through Hg
  • Make pep8 short options work when run throug the command line
  • skip duplicates when controlling files via Hg

0.6 - 2010-02-15

  • Fix the McCabe metric on some loops