Skip to content

Commit 6859e25

Browse files
authored
Add link to TRANSLATORS files (#37)
1 parent f97dffd commit 6859e25

File tree

4 files changed

+36
-10
lines changed

4 files changed

+36
-10
lines changed

completion.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from functools import cache
33
from pathlib import Path
44
from tempfile import TemporaryDirectory
5+
from typing import Literal
56

67
import git
78
from potodo import potodo
@@ -18,7 +19,9 @@ def branches_from_devguide(devguide_dir: Path) -> list[str]:
1819
]
1920

2021

21-
def get_completion(clones_dir: str, repo: str) -> tuple[float, int]:
22+
def get_completion(
23+
clones_dir: str, repo: str
24+
) -> tuple[float, int, str | Literal[False]]:
2225
clone_path = Path(clones_dir, repo)
2326
for branch in branches_from_devguide(Path(clones_dir, 'devguide')) + ['master']:
2427
try:
@@ -28,9 +31,11 @@ def get_completion(clones_dir: str, repo: str) -> tuple[float, int]:
2831
except git.GitCommandError:
2932
print(f'failed to clone {repo} {branch}')
3033
translators_number = 0
34+
translators_link: str | Literal[False] = False
3135
continue
3236
else:
3337
translators_number = translators.get_number(clone_path)
38+
translators_link = translators.get_link(clone_path, repo, branch)
3439
break
3540
with TemporaryDirectory() as tmpdir:
3641
completion = potodo.merge_and_scan_path(
@@ -40,4 +45,4 @@ def get_completion(clones_dir: str, repo: str) -> tuple[float, int]:
4045
hide_reserved=False,
4146
api_url='',
4247
).completion
43-
return completion, translators_number
48+
return completion, translators_number, translators_link

generate.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from datetime import datetime, timezone
1414
from pathlib import Path
1515
from tempfile import TemporaryDirectory
16-
from typing import cast
16+
from typing import Literal, cast
1717

1818
from git import Repo
1919
from jinja2 import Template
@@ -27,7 +27,7 @@
2727

2828

2929
def get_completion_progress() -> (
30-
Iterator[tuple[str, str, float, int, int, bool, bool | None]]
30+
Iterator[tuple[str, str, float, int, str | Literal[False], int, bool, bool | None]]
3131
):
3232
with TemporaryDirectory() as clones_dir:
3333
Repo.clone_from(
@@ -53,11 +53,20 @@ def get_completion_progress() -> (
5353
built = lang in languages_built
5454
in_switcher = languages_built.get(lang)
5555
if not repo:
56-
yield lang, cast(str, repo), 0.0, 0, 0, built, in_switcher
56+
yield lang, cast(str, repo), 0.0, 0, False, 0, built, in_switcher
5757
continue
58-
completion, translators = get_completion(clones_dir, repo)
58+
completion, translators, translators_link = get_completion(clones_dir, repo)
5959
visitors_num = visitors.get_number_of_visitors(lang) if built else 0
60-
yield lang, repo, completion, translators, visitors_num, built, in_switcher
60+
yield (
61+
lang,
62+
repo,
63+
completion,
64+
translators,
65+
translators_link,
66+
visitors_num,
67+
built,
68+
in_switcher,
69+
)
6170

6271

6372
if __name__ == '__main__':

template.html.jinja

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
</tr>
1717
</thead>
1818
<tbody>
19-
{% for language, repo, completion, translators, visitors, build, in_switcher in completion_progress | sort(attribute='2,3') | reverse %}
19+
{% for language, repo, completion, translators, translators_link, visitors, build, in_switcher in completion_progress | sort(attribute='2,3') | reverse %}
2020
<tr>
2121
{% if repo %}
2222
<td data-label="language">
@@ -40,10 +40,14 @@
4040
{{ '{:,}'.format(visitors) }}
4141
</a>
4242
{% else %}
43-
0
43+
{{ '{:,}'.format(visitors) }}
4444
{% endif %}
4545
</td>
46-
<td data-label="translators">{{ translators }}</td>
46+
<td data-label="translators">
47+
{% if translators_link %}<a href="{{ translators_link }}" target="_blank">{% endif %}
48+
{{ translators }}
49+
{% if translators_link %}</a>{% endif %}
50+
</td>
4751
<td data-label="completion">
4852
<div class="progress-bar" style="width: {{ completion | round(2) }}%;">{{ completion | round(2) }}%</div>
4953
</td>

translators.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from collections.abc import Iterator
22
from pathlib import Path
3+
from typing import Literal
34

45
from git import Repo
56
from polib import pofile
@@ -30,3 +31,10 @@ def yield_from_headers(path: Path) -> Iterator[str]:
3031
yield translator_record
3132
else:
3233
yield translator
34+
35+
36+
def get_link(clone_path: Path, repo: str, branch: str) -> str | Literal[False]:
37+
return (
38+
clone_path.joinpath('TRANSLATORS').exists()
39+
and f'https://github.com/{repo}/blob/{branch}/TRANSLATORS'
40+
)

0 commit comments

Comments
 (0)