Sorted the todo entries (#423)

This commit is contained in:
Jules Lasne (jlasne) 2018-11-15 13:54:07 +01:00 committed by Julien Palard
parent bfca5ed6ae
commit 3cb3ca3dd8
3 changed files with 58 additions and 1 deletions

2
.gitignore vendored
View File

@ -1,2 +1,4 @@
*.mo
.tx/**/*.po
venv/
.idea/

View File

@ -57,7 +57,7 @@ progress:
.PHONY: todo
todo:
for file in *.po */*.po; do echo $$(msgattrib --untranslated $$file | grep ^msgid | sed 1d | wc -l ) $$file; done | grep -v ^0 | sort -gr
python3 scripts/todo.py
.PHONY: merge

55
scripts/todo.py Normal file
View File

@ -0,0 +1,55 @@
#!/bin/python3
import statistics
from pathlib import Path
try:
import polib
import requests
except ImportError:
print("You need to install polib and requests to be able to run make todo.")
exit(1)
def main():
issues = requests.get(
"https://api.github.com/repos/python/python-docs-fr/issues"
).json()
reservations = {
issue["title"].split()[-1]: issue["user"]["login"] for issue in issues
}
po_files = list(Path(".").glob("**/*.po"))
po_files_per_directory = {
path.parent.name: set(path.parent.glob("*.po")) for path in po_files
}
for directory, po_files in sorted(po_files_per_directory.items()):
print("\n\n# " + directory)
folder_stats = []
for po_file in sorted(po_files):
stats = polib.pofile(po_file)
po_file_stat = stats.percent_translated()
if po_file_stat == 100:
folder_stats.append(po_file_stat)
continue
print(
f"{po_file.name:<30}",
f"{len(stats.translated_entries()):3d} / {len(stats):3d}",
f"({po_file_stat:5.1f}% translated)",
f"{len(stats.fuzzy_entries())} fuzzy" if stats.fuzzy_entries() else "",
f"Réservé par {reservations[str(po_file)]}"
if str(po_file) in reservations
else "",
)
folder_stats.append(po_file_stat)
# TODO: Have the percentage printed next to the folder name
print("\n{}% done.".format(round(statistics.mean(folder_stats), 2)))
if __name__ == '__main__':
# TODO: Add PR handling
# TODO: Add total from all folders
main()