From 906bc214a6cd4eaf94c1fd53ce0d4569f2fcb54a Mon Sep 17 00:00:00 2001 From: "Jules Lasne (jlasne)" Date: Fri, 21 Dec 2018 09:50:38 +0100 Subject: [PATCH] Implementing potodo command as a replacement for make todo (#500) * Removed script folder and replaced todo.py with potodo * Added make fuzzy with potodo --- Makefile | 5 ++-- scripts/todo.py | 61 ------------------------------------------------- 2 files changed, 2 insertions(+), 64 deletions(-) delete mode 100644 scripts/todo.py diff --git a/Makefile b/Makefile index 30725089..c060f022 100644 --- a/Makefile +++ b/Makefile @@ -57,8 +57,7 @@ progress: .PHONY: todo todo: - python3 scripts/todo.py - + potodo --github python/python-docs-fr .PHONY: merge merge: upgrade_venv @@ -86,4 +85,4 @@ endif .PHONY: fuzzy fuzzy: - for file in *.po */*.po; do echo $$(msgattrib --only-fuzzy --no-obsolete "$$file" | grep -c '#, fuzzy') $$file; done | grep -v ^0 | sort -gr + potodo --github python/python-docs-fr -f diff --git a/scripts/todo.py b/scripts/todo.py deleted file mode 100644 index 62181255..00000000 --- a/scripts/todo.py +++ /dev/null @@ -1,61 +0,0 @@ -#!/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].lower(): issue["user"]["login"] for issue in issues - } - - po_files = [file for file in Path(".").glob("**/*.po") if ".git/" not in str(file)] - - 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()): - buffer = [] - 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 - buffer.append( - 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).lower() in reservations - else "" - ) - ) - folder_stats.append(po_file_stat) - print(f"\n\n# {directory} ({statistics.mean(folder_stats):.2f}% done)\n") - print("\n".join(buffer)) - - -if __name__ == "__main__": - # TODO: Add PR handling - # TODO: Add total from all folders - main()