Skip to content

Commit

Permalink
[stats] Show warnings when definitions in languages.yaml are missing …
Browse files Browse the repository at this point in the history
…or incomplete
  • Loading branch information
mpsijm committed Jan 11, 2025
1 parent f157bb3 commit 1d97caa
Showing 1 changed file with 19 additions and 6 deletions.
25 changes: 19 additions & 6 deletions bin/stats.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
import config
import generate
import program
from util import error, glob, exec_command
from util import error, exec_command, glob, warn

Selector = str | Callable | list[str] | list[Callable]

Expand Down Expand Up @@ -87,14 +87,27 @@ def problem_stats(problems):
'java': ['Java'],
'kt': ['Kotlin'],
}
for column, names in languages.items():
for column, lang_names in languages.items():
paths = []
for config in program.languages().values():
if config['name'] in names:
globs = config['files'].split() or []
paths += [f'submissions/accepted/{glob}' for glob in globs]
lang_defined = False
for lang_id, lang_definition in program.languages().items():
if lang_definition['name'] in lang_names:
lang_defined = True
# dict.get() returns None if key 'files' is not declared
lang_globs = lang_definition.get('files')
if lang_globs:
paths += [f'submissions/accepted/{glob}' for glob in lang_globs.split()]
else:
warn(
f"Language {lang_id} ('{lang_definition['name']}') "
"does not define `files:` in languages.yaml"
)
if paths:
stats.append((column, list(set(paths)), 1))
if not lang_defined:
warn(
f'Language {column.strip()} ({str(lang_names)[1:-1]}) not defined in languages.yaml'
)

headers = ['problem', *(h[0] for h in stats), ' comment']
cumulative = [0] * (len(stats))
Expand Down

0 comments on commit 1d97caa

Please sign in to comment.