22from collections .abc import Iterator
33from dataclasses import dataclass
44from pathlib import Path
5- from tempfile import TemporaryDirectory
65
76from docutils import core
87from docutils .nodes import table , row
9- from git import Repo
108
119
1210def get_languages_and_repos (
@@ -15,10 +13,14 @@ def get_languages_and_repos(
1513 translating = devguide_dir .joinpath (
1614 'documentation/translations/translating.rst'
1715 ).read_text ()
18- doctree = core .publish_doctree (translating )
19-
20- for node in doctree .traverse (table ):
21- for row_node in node .traverse (row )[1 :]:
16+ doctree = core .publish_doctree (
17+ translating ,
18+ settings_overrides = {'report_level' : 5 },
19+ # docutils errors on Sphinx directives, but this does not matter for us
20+ )
21+
22+ for node in doctree .findall (table ):
23+ for row_node in list (node .findall (row ))[1 :]:
2224 language = row_node [0 ].astext ()
2325 repo = row_node [2 ].astext ()
2426 language_match = re .match (r'(.*) \((.*)\)' , language )
@@ -39,10 +41,3 @@ def get_languages_and_repos(
3941class Language :
4042 code : str
4143 name : str
42-
43-
44- if __name__ == '__main__' :
45- with TemporaryDirectory () as directory :
46- Repo .clone_from ('https://github.com/python/devguide.git' , directory , depth = 1 )
47- for item in get_languages_and_repos (Path (directory )):
48- print (item )
0 commit comments