GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — python-docs-tr/scripts/progress.py at 3.12 · python/python-docs-tr Expand file tree/ Copy pathprogress.pyMore file actions 100 lines (82 loc) · 2.67 KB / Copy pathprogress.pyFile metadata and controls100 lines (82 loc) · 2.67 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 import os from argparse import ArgumentParser from functools import lru_cache from subprocess import check_output import polib parser = ArgumentParser() parser.add_argument( "path", nargs="?", default=None, help="Path to the .po file or directory containing .po files", ) parser.add_argument( "--no-cache", action="store_true", default=False, help="Don't use cache" ) args = parser.parse_args() def main(): global git_root total_progress = False git_root = get_git_root() if args.no_cache: progress.cache_clear() get_git_root.cache_clear() if args.path is None: print("No path specified, showing total progress...") args.path = os.path.abspath(git_root).replace("\\", "/") total_progress = True else: args.path = os.path.abspath(args.path).replace("\\", "/") if os.path.isfile(args.path): paths = [args.path] elif os.path.isdir(args.path): paths = [] for root, _, files in os.walk(args.path): paths.extend( os.path.join(root, file) for file in files if file.endswith(".po") ) paths = map(lambda x: x.replace("\\", "/"), paths) else: print("Invalid path") return -1 try: progress(tuple(paths), total_progress) return 0 except Exception as e: print(f"Error: {e}") return -1 @lru_cache(maxsize=512) def progress(paths, total_progress=False): total = 0 translated = 0 previous = "/" is_root = True for path in paths: pofile = polib.pofile(path) total += len(pofile) - len(pofile.obsolete_entries()) translated += len(pofile.translated_entries()) path = path.replace(f"{git_root}", "") if is_root and len(path.split("/")) == 2: print() print("PYTHON-DOCS-TR") print("-" * 14) is_root = False if (previous.split("/")[1] != path.split("/")[1]) and len(path.split("/")) > 2: print() print(path.split("/")[1].upper()) print("-" * len(path.split("/")[1].upper())) previous = path print(f"{path}: {pofile.percent_translated()}%") dir_path = args.path.replace(f"{git_root}", "/").replace("//", "/") total_progress_of = "/" if total_progress else dir_path print() print( f"Total progress of {total_progress_of}: {round(translated / total * 100, 2)}%" ) if len(paths) > 1 else None @lru_cache(maxsize=1) def get_git_root(): return os.path.abspath( check_output(["git", "rev-parse", "--show-toplevel"]).decode("utf-8").strip() ).replace("\\", "/") if __name__ == "__main__": main() |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |