Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Added initial version of 'setup.py audit'

  • Loading branch information...
commit f52f4fd31b9858f8b42be3fbb2818440e58978b4 1 parent 549af62
@plaes plaes authored mitsuhiko committed
Showing with 39 additions and 2 deletions.
  1. +39 −2 setup.py
View
41 setup.py
@@ -38,8 +38,44 @@ def hello():
<http://github.com/mitsuhiko/flask/zipball/master#egg=Flask-dev>`_
"""
-from setuptools import setup
-
+from setuptools import Command, setup
+
+class run_audit(Command):
+ """Audits source code using PyFlakes for following issues:
+ - Names which are used but not defined or used before they are defined.
+ - Names which are redefined without having been used.
+ """
+ description = "Audit source code with PyFlakes"
+ user_options = []
+
+ def initialize_options(self):
+ all = None
+
+ def finalize_options(self):
+ pass
+
+ def run(self):
+ import os, sys
+ try:
+ import pyflakes.scripts.pyflakes as flakes
+ except ImportError:
+ print "Audit requires PyFlakes installed in your system."""
+ sys.exit(-1)
+
+ dirs = ['flask', 'tests']
+ # Add example directories
+ for dir in ['flaskr', 'jqueryexample', 'minitwit']:
+ dirs.append(os.path.join('examples', dir))
+ # TODO: Add test subdirectories
+ warns = 0
+ for dir in dirs:
+ for filename in os.listdir(dir):
+ if filename.endswith('.py') and filename != '__init__.py':
+ warns += flakes.checkPath(os.path.join(dir, filename))
+ if warns > 0:
+ print ("Audit finished with total %d warnings." % warns)
+ else:
+ print ("No problems found in sourcecode.")
def run_tests():
import os, sys
@@ -75,5 +111,6 @@ def run_tests():
'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
'Topic :: Software Development :: Libraries :: Python Modules'
],
+ cmdclass={'audit': run_audit},
test_suite='__main__.run_tests'
)
Please sign in to comment.
Something went wrong with that request. Please try again.