Skip to content

Commit 6632f8a

Browse files
authored
Merge branch 'main' into parallelize
2 parents e4d6cbd + 6bc689e commit 6632f8a

File tree

4 files changed

+25
-24
lines changed

4 files changed

+25
-24
lines changed

.github/workflows/update.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
uses: JamesIves/github-pages-deploy-action@v4
2626
with:
2727
folder: build
28-
clean: true
28+
clean: false
2929
git-config-name: github-actions[bot]
3030
git-config-email: 41898282+github-actions[bot]@users.noreply.github.com
3131
- name: Debug index.html if pull request

build_status.py

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,15 @@
88
import tomllib
99
from collections.abc import Iterator
1010

11-
from requests import Session
11+
from urllib3 import PoolManager
1212

1313

14-
def get_languages(requests: Session) -> Iterator[tuple[str, bool]]:
15-
data = requests.get(
16-
'https://raw.githubusercontent.com/'
17-
'python/docsbuild-scripts/refs/heads/main/config.toml',
18-
timeout=10,
19-
).text
20-
config = tomllib.loads(data)
14+
def get_languages(http: PoolManager) -> Iterator[tuple[str, bool]]:
15+
data = http.request(
16+
'GET',
17+
'https://raw.githubusercontent.com/python/docsbuild-scripts/refs/heads/main/config.toml',
18+
).data
19+
config = tomllib.loads(data.decode())
2120
for code, language in config['languages'].items():
2221
language_code = code.lower().replace('_', '-')
2322
in_switcher = language.get('in_prod', config['defaults']['in_prod'])
@@ -26,7 +25,7 @@ def get_languages(requests: Session) -> Iterator[tuple[str, bool]]:
2625

2726
def main() -> None:
2827
languages = {
29-
language: in_switcher for language, in_switcher in get_languages(Session())
28+
language: in_switcher for language, in_switcher in get_languages(PoolManager())
3029
}
3130
print(languages)
3231
for code in ('en', 'pl', 'ar', 'zh-cn', 'id'):

generate.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,12 @@
1414
from collections.abc import Iterator
1515
from dataclasses import dataclass
1616
from datetime import datetime, timezone
17-
from logging import info
1817
from pathlib import Path
1918
from tempfile import TemporaryDirectory
2019

21-
from requests import Session
2220
from git import Repo
2321
from jinja2 import Template
22+
from urllib3 import PoolManager
2423

2524
import contribute
2625
import build_status
@@ -47,14 +46,14 @@ def get_completion_progress() -> Iterator['LanguageProjectData']:
4746
)
4847
subprocess.run(['make', '-C', cpython_dir / 'Doc', 'venv'], check=True)
4948
subprocess.run(['make', '-C', cpython_dir / 'Doc', 'gettext'], check=True)
50-
languages_built = dict(build_status.get_languages(session := Session()))
49+
languages_built = dict(build_status.get_languages(http := PoolManager()))
5150
with concurrent.futures.ThreadPoolExecutor() as executor:
5251
return executor.map(
5352
get_project_data,
5453
*zip(*get_languages_and_repos(devguide_dir)),
5554
itertools.repeat(languages_built),
5655
itertools.repeat(clones_dir),
57-
itertools.repeat(session),
56+
itertools.repeat(http),
5857
)
5958

6059

@@ -63,12 +62,12 @@ def get_project_data(
6362
repo: str,
6463
languages_built: dict[str, bool],
6564
clones_dir: str,
66-
session: Session,
65+
http: PoolManager,
6766
) -> 'LanguageProjectData':
6867
built = language.code in languages_built
6968
if repo:
7069
completion, translators_data = get_completion(clones_dir, repo)
71-
visitors_num = get_number_of_visitors(language.code, session) if built else 0
70+
visitors_num = get_number_of_visitors(language.code, http) if built else 0
7271
else:
7372
completion = 0.0
7473
translators_data = TranslatorsData(0, False)
@@ -100,7 +99,8 @@ class LanguageProjectData:
10099

101100

102101
if __name__ == '__main__':
103-
info(f'starting at {generation_time}')
102+
logging.basicConfig(level=logging.INFO)
103+
logging.info(f'starting at {generation_time}')
104104
template = Template(Path('template.html.jinja').read_text())
105105

106106
output = template.render(

visitors.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,23 @@
11
import csv
22
import io
3-
import urllib
3+
import urllib.parse
44
import zipfile
55

6-
from requests import Session
6+
from urllib3 import PoolManager
77

88

9-
def get_number_of_visitors(language: str, requests: Session) -> int:
9+
def get_number_of_visitors(language: str, http: PoolManager) -> int:
1010
params = urllib.parse.urlencode(
1111
{'filters': f'[["contains","event:page",["/{language}/"]]]', 'period': 'all'}
1212
)
13-
r = requests.get(
14-
f'https://plausible.io/docs.python.org/export?{params}', timeout=20
15-
)
13+
r = http.request('GET', f'https://plausible.io/docs.python.org/export?{params}')
1614
with (
17-
zipfile.ZipFile(io.BytesIO(r.content), 'r') as z,
15+
zipfile.ZipFile(io.BytesIO(r.data), 'r') as z,
1816
z.open('visitors.csv') as csv_file,
1917
):
2018
csv_reader = csv.DictReader(io.TextIOWrapper(csv_file))
2119
return sum(int(row['visitors']) for row in csv_reader)
20+
21+
22+
if __name__ == '__main__':
23+
print(get_number_of_visitors('pl', PoolManager()))

0 commit comments

Comments
 (0)