Modified count.py
This commit is contained in:
parent
cb8c08951b
commit
914cdbc323
1 changed files with 11 additions and 3 deletions
14
count.py
14
count.py
|
@ -8,17 +8,20 @@ from collections import Counter
|
||||||
problem_names = os.listdir(os.path.dirname(os.path.abspath(__file__)))
|
problem_names = os.listdir(os.path.dirname(os.path.abspath(__file__)))
|
||||||
problems = []
|
problems = []
|
||||||
|
|
||||||
|
failed = []
|
||||||
|
|
||||||
for problem_name in problem_names:
|
for problem_name in problem_names:
|
||||||
|
folder = os.path.dirname(os.path.abspath(__file__)) + os.sep + problem_name
|
||||||
|
if not (os.path.exists(folder) and os.path.isdir(folder)): continue
|
||||||
try:
|
try:
|
||||||
metadata_file = os.path.dirname(os.path.abspath(__file__)) + os.sep + problem_name + os.sep + "problem.yml"
|
metadata_file = folder + os.sep + "problem.yml"
|
||||||
with open(metadata_file, "r") as f:
|
with open(metadata_file, "r") as f:
|
||||||
metadata_raw = f.read()
|
metadata_raw = f.read()
|
||||||
metadata = yaml.load(metadata_raw)
|
metadata = yaml.load(metadata_raw)
|
||||||
if "category" in metadata:
|
if "category" in metadata:
|
||||||
problems.append(metadata)
|
problems.append(metadata)
|
||||||
except:
|
except:
|
||||||
pass
|
failed.append(problem_name)
|
||||||
# print traceback.format_exc()
|
|
||||||
|
|
||||||
problems.sort(key=lambda p: p.get("value"), reverse=True)
|
problems.sort(key=lambda p: p.get("value"), reverse=True)
|
||||||
print("Grand Total: %d" % len(problems))
|
print("Grand Total: %d" % len(problems))
|
||||||
|
@ -34,3 +37,8 @@ for category, count in categories:
|
||||||
for problem in problems:
|
for problem in problems:
|
||||||
if problem.get("category") != category: continue
|
if problem.get("category") != category: continue
|
||||||
print(" %s %s %sp" % (problem.get("title") + " " * (maxtitle - len(problem.get("title"))), problem.get("author") + " " * (maxauthor - len(problem.get("author"))), problem.get("value")))
|
print(" %s %s %sp" % (problem.get("title") + " " * (maxtitle - len(problem.get("title"))), problem.get("author") + " " * (maxauthor - len(problem.get("author"))), problem.get("value")))
|
||||||
|
|
||||||
|
print("\nThe following problems failed to parse.")
|
||||||
|
for title in failed:
|
||||||
|
if title in [".git"]: continue
|
||||||
|
print(" %s" % title)
|
Loading…
Reference in a new issue