Commits

Peter Teichman committed 7eb8a10

add Flake8Command, a setuptools command

This runs flake8 with the default options on all Python files
referenced by a package's setup.py. It works with both
package-based and py_modules-based file lists.

  • Participants
  • Parent commits 63b4585

Comments (0)

Files changed (2)

 
     return 0
 
+
+try:
+    from setuptools import Command
+except ImportError:
+    Flake8Command = None
+else:
+    class Flake8Command(Command):
+        description = "Run flake8 on modules registered in setuptools"
+        user_options = []
+
+        def initialize_options(self):
+            pass
+
+        def finalize_options(self):
+            pass
+
+        def distribution_files(self):
+            if self.distribution.packages:
+                for package in self.distribution.packages:
+                    yield package
+
+            if self.distribution.py_modules:
+                for filename in self.distribution.py_modules:
+                    yield "%s.py" % filename
+
+        def run(self):
+            _initpep8()
+
+            warnings = 0
+            for path in _get_python_files(self.distribution_files()):
+                warnings += check_file(path)
+
+            raise SystemExit(warnings > 0)
+
+
 if __name__ == '__main__':
     main()
     url="http://bitbucket.org/tarek/flake8",
     packages=["flake8", "flake8.tests"],
     scripts=["flake8/flake8"],
+    entry_points = {
+        "distutils.commands": [
+            "flake8 = flake8.run:Flake8Command",
+        ],
+    },
     long_description=README,
     classifiers=[
         "Environment :: Console",