Skip to content

Commit cb1ab28

Browse files
committed
Add language names
1 parent f97dffd commit cb1ab28

File tree

3 files changed

+31
-10
lines changed

3 files changed

+31
-10
lines changed

generate.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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, str, float, int, int, bool, bool | None]]
3131
):
3232
with TemporaryDirectory() as clones_dir:
3333
Repo.clone_from(
@@ -49,15 +49,24 @@ def get_completion_progress() -> (
4949
['make', '-C', Path(clones_dir, 'cpython/Doc'), 'gettext'], check=True
5050
)
5151
languages_built = dict(build_status.get_languages())
52-
for lang, repo in repositories.get_languages_and_repos(devguide_dir):
52+
for lang, lang_name, repo in repositories.get_languages_and_repos(devguide_dir):
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, lang_name, cast(str, repo), 0.0, 0, 0, built, in_switcher
5757
continue
5858
completion, translators = 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+
lang_name,
63+
repo,
64+
completion,
65+
translators,
66+
visitors_num,
67+
built,
68+
in_switcher,
69+
)
6170

6271

6372
if __name__ == '__main__':

repositories.py

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,36 @@
11
import re
22
from collections.abc import Iterator
33
from pathlib import Path
4+
from tempfile import TemporaryDirectory
45

56
from docutils import core
67
from docutils.nodes import table, row
8+
from git import Repo
79

810

9-
def get_languages_and_repos(devguide_dir: Path) -> Iterator[tuple[str, str | None]]:
11+
def get_languages_and_repos(
12+
devguide_dir: Path,
13+
) -> Iterator[tuple[str, str, str | None]]:
1014
translating = devguide_dir.joinpath('documentation/translating.rst').read_text()
1115
doctree = core.publish_doctree(translating)
1216

1317
for node in doctree.traverse(table):
1418
for row_node in node.traverse(row)[1:]:
1519
language = row_node[0].astext()
1620
repo = row_node[2].astext()
17-
language_match = re.match(r'.* \((.*)\)', language)
21+
language_match = re.match(r'(.*) \((.*)\)', language)
1822
if not language_match:
1923
raise ValueError(
2024
f'Expected a language code in brackets in devguide table, found {language}'
2125
)
22-
language_code = language_match.group(1).lower().replace('_', '-')
26+
language_name = language_match.group(1)
27+
language_code = language_match.group(2).lower().replace('_', '-')
2328
repo_match = re.match(':github:`GitHub <(.*)>`', repo)
24-
yield language_code, repo_match and repo_match.group(1)
29+
yield language_code, language_name, repo_match and repo_match.group(1)
30+
31+
32+
if __name__ == '__main__':
33+
with TemporaryDirectory() as directory:
34+
Repo.clone_from('https://github.com/python/devguide.git', directory, depth=1)
35+
for item in get_languages_and_repos(Path(directory)):
36+
print(item)

template.html.jinja

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@
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, language_name, repo, completion, translators, visitors, build, in_switcher in completion_progress | sort(attribute='2,3') | reverse %}
2020
<tr>
2121
{% if repo %}
2222
<td data-label="language">
2323
<a href="https://github.com/{{ repo }}" target="_blank">
24-
{{ language }}
24+
{{ language_name }} ({{ language }})
2525
</a>
2626
</td>
2727
{% else %}

0 commit comments

Comments
 (0)