Skip to content

Instantly share code, notes, and snippets.

@jonadem
Forked from gregorynicholas/pylint-recursive.py
Last active November 9, 2017 20:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jonadem/c283e5fe48b174e214cea0338f2f5775 to your computer and use it in GitHub Desktop.
Save jonadem/c283e5fe48b174e214cea0338f2f5775 to your computer and use it in GitHub Desktop.
Module that runs pylint on all python scripts found in a directory tree..
#! /usr/bin/env python
'''
Module that runs pylint on all python scripts found in a directory tree..
'''
from __future__ import print_function
import os
import re
import sys
total = 0.0
count = 0
def check(module):
'''
apply pylint to the file specified if it is a *.py file
'''
global total, count
if module[-3:] == ".py":
print("CHECKING ", module)
pout = os.popen('pylint %s'% module, 'r')
for line in pout:
if re.match("E....:.", line):
print(line)
if "Your code has been rated at" in line:
print(line)
score = re.findall("\d.\d\d", line)[0]
total += float(score)
count += 1
if __name__ == "__main__":
try:
print(sys.argv)
BASE_DIRECTORY = sys.argv[1]
except IndexError:
print("no directory specified, defaulting to current working directory")
BASE_DIRECTORY = os.getcwd()
print("looking for *.py scripts in subdirectories of ", BASE_DIRECTORY)
for root, dirs, files in os.walk(BASE_DIRECTORY):
for name in files:
filepath = os.path.join(root, name)
check(filepath)
print("==" * 50)
print("%d modules found"% count)
print("AVERAGE SCORE = %.02f"% (total / count))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment