88# "docutils",
99# ]
1010# ///
11+ import json
12+ import logging
1113import subprocess
1214from collections .abc import Iterator
13- from dataclasses import dataclass
15+ from dataclasses import dataclass , asdict
1416from datetime import datetime , timezone
15- from logging import info
1617from pathlib import Path
1718from tempfile import TemporaryDirectory
1819
@@ -49,7 +50,7 @@ def get_completion_progress() -> Iterator['LanguageProjectData']:
4950 for language , repo in get_languages_and_repos (devguide_dir ):
5051 built = language .code in languages_built
5152 if repo :
52- completion , translators_data = get_completion (clones_dir , repo )
53+ completion , translators_data , branch = get_completion (clones_dir , repo )
5354 visitors_num = (
5455 get_number_of_visitors (language .code , session ) if built else 0
5556 )
@@ -60,6 +61,7 @@ def get_completion_progress() -> Iterator['LanguageProjectData']:
6061 yield LanguageProjectData (
6162 language ,
6263 repo ,
64+ branch ,
6365 completion ,
6466 translators_data ,
6567 visitors_num ,
@@ -74,6 +76,7 @@ def get_completion_progress() -> Iterator['LanguageProjectData']:
7476class LanguageProjectData :
7577 language : Language
7678 repository : str | None
79+ branch : str
7780 completion : float
7881 translators : TranslatorsData
7982 visitors : int
@@ -84,13 +87,17 @@ class LanguageProjectData:
8487
8588
8689if __name__ == '__main__' :
87- info (f'starting at { generation_time } ' )
90+ logging .basicConfig (level = logging .INFO )
91+ logging .info (f'starting at { generation_time } ' )
8892 template = Template (Path ('template.html.jinja' ).read_text ())
8993
9094 output = template .render (
91- completion_progress = list (get_completion_progress ()),
95+ completion_progress = ( completion_progress := list (get_completion_progress () )),
9296 generation_time = generation_time ,
9397 duration = (datetime .now (timezone .utc ) - generation_time ).seconds ,
9498 )
9599
96100 Path ('index.html' ).write_text (output )
101+ Path ('index.json' ).write_text (
102+ json .dumps (completion_progress , indent = 2 , default = asdict )
103+ )
0 commit comments