Commits

Tarek Ziadé committed e582c3e

added a mercurial hook

Comments (0)

Files changed (2)

 
 - lines that contains a "# NOQA" comment at the end will not issue a warning
 - merging pep8 and pyflakes options
+- a Mercurial hook
 - more things to come..
 
 Original projects:
 - pep8: http://github.com/jcrocholl/pep8/
 - PyFlakes: http://divmod.org/trac/wiki/DivmodPyflakes
 
+
+Mercurial hook
+==============
+
+To use the Mercurial hook on any *commit* or *qrefresh*, change your .hg/rc file
+like this::
+
+    [hooks]
+    commit = python:flake8.hg_hook
+    qrefresh = python:flake8.hg_hook
+
+    [flake8]
+    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.

flake8/__init__.py

         warnings += check(stdin, '<stdin>')
 
     raise SystemExit(warnings > 0)
+
+def hg_hook(ui, repo, **kwargs):
+    pep8.process_options()
+    warnings = 0
+    files = []
+    for rev in xrange(repo[kwargs['node']], len(repo)):
+        for file_ in repo[rev].files():
+            if file_ not in files:
+                files.append(file_)
+
+    for file_ in files:
+        warnings += checkPath(file_)
+        warnings += pep8.input_file(file_)
+
+    strict = ui.config('flake8', 'strict')
+    if strict is None:
+        strict = True
+
+    if strict.lower() in ('1', 'true'):
+        return warnings
+
+    return 0