Skip to content

Commit 15c239b

Browse files
authored
feat(summary): show string count
1 parent a7e006c commit 15c239b

File tree

1 file changed

+41
-45
lines changed

1 file changed

+41
-45
lines changed

.scripts/summarize_progress/main.py

Lines changed: 41 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,6 @@
66
from pathlib import Path
77

88

9-
def get_progress(pofile: polib.POFile) -> float:
10-
'''
11-
Check the po file with how many entries are translated or not.
12-
'''
13-
14-
lines_tranlated = len(pofile.translated_entries())
15-
lines_untranlated = len(pofile.untranslated_entries())
16-
17-
# if lines_tranlated == 0:
18-
# result = "❌"
19-
# elif lines_untranlated == 0:
20-
# result = "✅"
21-
# else:
22-
lines_all = lines_tranlated + lines_untranlated
23-
progress = lines_tranlated / lines_all
24-
progress_percentage = round(progress * 100, 2)
25-
return progress_percentage
26-
27-
289
def get_open_issues_count() -> int:
2910
'''
3011
Fetch GitHub API to get the number of OPEN ISSUES.
@@ -87,7 +68,7 @@ def get_github_issues() -> list:
8768

8869

8970
def format_line_table_header() -> list:
90-
return [f"|Filename|Progress|Issue|Assignee|\r\n",
71+
return [f"|Filename|Progress (#string)|Issue|Assignee|\r\n",
9172
f"|-------:|:-------|:----|:-------|\r\n"]
9273

9374

@@ -99,17 +80,11 @@ def format_line_po_issue_display(issue_link: str, issue_number: str, progress: f
9980
return ""
10081

10182

102-
def format_line_po(filename: str, po_link: str, progress: str, issue_display: str, assignee: str) -> str:
83+
def format_line_po(filename: str, po_link: str, progress: str, num_entries: str, issue_display: str, assignee: str) -> str:
10384
progress_display = f"{progress} %"
104-
if progress == 0:
105-
progress_display = "❌"
106-
elif progress == 100:
85+
if progress == 100:
10786
progress_display = "✅"
108-
return f"|[`{filename}`]({po_link})|{progress_display}|{issue_display}|{assignee}|\r\n"
109-
110-
111-
def format_line_directory(dirname: str) -> str:
112-
return f"## {dirname}\r\n"
87+
return f"|[`{filename}`]({po_link})|{progress_display} ({num_entries:,})|{issue_display}|{assignee}|\r\n"
11388

11489

11590
if __name__ == "__main__":
@@ -124,11 +99,17 @@ def format_line_directory(dirname: str) -> str:
12499
for filepath in glob.glob(str(BASE_DIR / "**/*.po"), recursive=True):
125100
path = Path(filepath)
126101
filename = path.name
127-
dirname = path.parent.name if path.parent.name != BASE_DIR.name else '/'
102+
dirname = path.parent.name if path.parent.name != BASE_DIR.name else 'root'
128103
po = polib.pofile(filepath)
129104

105+
num_entries = len(list(filter(lambda e: not e.obsolete(), po)))
106+
num_translated = len(po.translated_entries())
130107
summary.setdefault(dirname, {})[filename] = {
131-
'progress': get_progress(po),
108+
'po_info': {
109+
'num_entries': num_entries,
110+
'num_translated': num_translated,
111+
'progress': round(num_translated / num_entries * 100, 2),
112+
},
132113
'issue': '',
133114
'assignee': '',
134115
}
@@ -144,19 +125,15 @@ def format_line_directory(dirname: str) -> str:
144125
pass
145126

146127
'''
147-
Adding Space for Formatting Markdown Link
148-
'''
149-
150-
'''
151-
Format the lines that will write into the markdown file,
128+
Format the lines that will be written into the markdown file,
152129
also sort the directory name and file name.
153130
'''
154131
writeliner = []
155132
summary_sorted = dict(sorted(summary.items()))
133+
total_entries, total_translated = 0, 0
156134
for dirname, filedict in summary_sorted.items():
157-
writeliner.append(format_line_directory(dirname))
158-
writeliner.extend(format_line_table_header())
159-
135+
dir_total_entries, dir_total_translated = 0, 0
136+
lines = []
160137
filedict_sorted = dict(sorted(filedict.items()))
161138
for filename, filedata in filedict_sorted.items():
162139
file_path = f"{dirname}/{filename}" if dirname else filename
@@ -165,11 +142,30 @@ def format_line_directory(dirname: str) -> str:
165142
issue_number = f"#{issue_link.split('/')[-1]}"
166143
create_issue_link = f"https://github.com/python/python-docs-zh-tw/issues/new?title=Translate%20`{file_path}`"
167144
issue_display = format_line_po_issue_display(issue_link, issue_number, filedata['progress'], create_issue_link)
168-
line_po = format_line_po(filename, po_link, filedata['progress'], issue_display, filedata['assignee'])
169-
writeliner.append(line_po)
145+
line_po = format_line_po(
146+
filename,
147+
po_link,
148+
filedata['po_info']['progress'],
149+
filedata['po_info']['num_entries'],
150+
issue_display,
151+
filedata['assignee'],
152+
)
153+
lines.append(line_po)
154+
155+
dir_total_entries += filedata['po_info']['num_entries']
156+
dir_total_translated += filedata['po_info']['num_translated']
157+
158+
dir_progress = round(dir_total_translated / dir_total_entries * 100, 2)
159+
writeliner.append(f"## {dirname} ({dir_progress}%)\r\n")
160+
writeliner.extend(format_line_table_header())
161+
writeliner.extend(lines)
162+
163+
total_entries += dir_total_entries
164+
total_translated += dir_total_translated
165+
166+
overall_progress = round(total_translated / total_entries * 100, 2)
167+
title = f"## Overall Progress: {overall_progress}% ({total_translated:,} / {total_entries:,})\r\n"
168+
writeliner = [title] + writeliner
170169

171-
with open(
172-
f"summarize_progress/result.md",
173-
"w",
174-
) as file:
170+
with open(f"summarize_progress/result.md", "w") as file:
175171
file.writelines(writeliner)

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy