Skip to content

Order list of files linted in tidy.py by frequency #22029

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Mar 6, 2015
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 42 additions & 38 deletions src/etc/tidy.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
import subprocess
import re
import os
from licenseck import *
from licenseck import check_license
import snapshot

err = 0
Expand All @@ -22,13 +22,8 @@
tab_flag = "ignore-tidy-tab"
linelength_flag = "ignore-tidy-linelength"

# Be careful to support Python 2.4, 2.6, and 3.x here!
config_proc = subprocess.Popen(["git", "config", "core.autocrlf"],
stdout=subprocess.PIPE)
result = config_proc.communicate()[0]

true = "true".encode('utf8')
autocrlf = result.strip() == true if result is not None else False
interesting_files = ['.rs', '.py', '.js', '.sh', '.c', '.h']
uninteresting_files = ['miniz.c', 'jquery', 'rust_android_dummy']


def report_error_name_no(name, no, s):
Expand All @@ -51,6 +46,34 @@ def do_license_check(name, contents):
if not check_license(name, contents):
report_error_name_no(name, 1, "incorrect license")


def update_counts(current_name):
global file_counts
global count_other_linted_files

_, ext = os.path.splitext(current_name)

if ext in interesting_files:
file_counts[ext] += 1
else:
count_other_linted_files += 1


def interesting_file(f):
if any(x in f for x in uninteresting_files):
return False

return any(os.path.splitext(f)[1] == ext for ext in interesting_files)


# Be careful to support Python 2.4, 2.6, and 3.x here!
config_proc = subprocess.Popen(["git", "config", "core.autocrlf"],
stdout=subprocess.PIPE)
result = config_proc.communicate()[0]

true = "true".encode('utf8')
autocrlf = result.strip() == true if result is not None else False

current_name = ""
current_contents = ""
check_tab = True
Expand All @@ -63,28 +86,16 @@ def do_license_check(name, contents):

src_dir = sys.argv[1]

try:
count_lines = 0
count_non_blank_lines = 0
count_lines = 0
count_non_blank_lines = 0
count_other_linted_files = 0

interesting_files = ['.rs', '.py', '.js', '.sh', '.c', '.h']
file_counts = {ext: 0 for ext in interesting_files}

file_counts = {ext: 0 for ext in interesting_files}
file_counts['other'] = 0

def update_counts(current_name):
global file_counts
_, ext = os.path.splitext(current_name)

if ext in file_counts:
file_counts[ext] += 1
else:
file_counts['other'] += 1

all_paths = set()
all_paths = set()

try:
for (dirpath, dirnames, filenames) in os.walk(src_dir):

# Skip some third-party directories
skippable_dirs = {
'src/jemalloc',
Expand All @@ -103,14 +114,6 @@ def update_counts(current_name):
if any(d in dirpath for d in skippable_dirs):
continue

def interesting_file(f):
if "miniz.c" in f \
or "jquery" in f \
or "rust_android_dummy" in f:
return False

return any(os.path.splitext(f)[1] == ext for ext in interesting_files)

file_names = [os.path.join(dirpath, f) for f in filenames
if interesting_file(f)
and not f.endswith("_gen.rs")
Expand Down Expand Up @@ -196,10 +199,11 @@ def interesting_file(f):
report_err("UTF-8 decoding error " + str(e))

print
for ext in file_counts:
print "* linted " + str(file_counts[ext]) + " " + ext + " files"
print "* total lines of code: " + str(count_lines)
print "* total non-blank lines of code: " + str(count_non_blank_lines)
for ext in sorted(file_counts, key=file_counts.get, reverse=True):
print "* linted {} {} files".format(file_counts[ext], ext)
print "* linted {} other files".format(count_other_linted_files)
print "* total lines of code: {}".format(count_lines)
print "* total non-blank lines of code: {}".format(count_non_blank_lines)
print

sys.exit(err)