Skip to content

Commit f2fbac0

Browse files
authored
Merge branch 'main' into build-warnings
2 parents c35c4b0 + 6bc689e commit f2fbac0

File tree

4 files changed

+26
-24
lines changed

4 files changed

+26
-24
lines changed

.github/workflows/update.yml

+1-1
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

+8-9
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

+8-7
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,19 @@
1010
# "python-docs-theme",
1111
# ]
1212
# ///
13+
import logging
1314
import subprocess
1415
from collections.abc import Iterator
1516
from concurrent.futures import ProcessPoolExecutor
1617
from dataclasses import dataclass
1718
from datetime import datetime, timezone
1819
from itertools import repeat
19-
from logging import info
2020
from pathlib import Path
2121
from tempfile import TemporaryDirectory
2222

23-
from requests import Session
2423
from git import Repo
2524
from jinja2 import Template
25+
from urllib3 import PoolManager
2626

2727
import build_warnings
2828
import build_status
@@ -50,14 +50,14 @@ def get_completion_progress() -> Iterator['LanguageProjectData']:
5050
)
5151
subprocess.run(['make', '-C', cpython_dir / 'Doc', 'venv'], check=True)
5252
subprocess.run(['make', '-C', cpython_dir / 'Doc', 'gettext'], check=True)
53-
languages_built = dict(build_status.get_languages(session := Session()))
53+
languages_built = dict(build_status.get_languages(http := PoolManager()))
5454
with ProcessPoolExecutor() as executor:
5555
return executor.map(
5656
get_data,
5757
*zip(*get_languages_and_repos(devguide_dir)),
5858
repeat(languages_built),
5959
repeat(clones_dir),
60-
repeat(session),
60+
repeat(http),
6161
)
6262

6363

@@ -66,12 +66,12 @@ def get_data(
6666
repo: str,
6767
languages_built: dict[str, bool],
6868
clones_dir: str,
69-
session: Session,
69+
http: PoolManager,
7070
) -> 'LanguageProjectData':
7171
built = language.code in languages_built
7272
if repo:
7373
completion, translators_data = get_completion(clones_dir, repo)
74-
visitors_num = get_number_of_visitors(language.code, session) if built else 0
74+
visitors_num = get_number_of_visitors(language.code, http) if built else 0
7575
warnings = (
7676
build_warnings.number(clones_dir, repo, language.code) if completion else 0
7777
)
@@ -109,7 +109,8 @@ class LanguageProjectData:
109109

110110

111111
if __name__ == '__main__':
112-
info(f'starting at {generation_time}')
112+
logging.basicConfig(level=logging.INFO)
113+
logging.info(f'starting at {generation_time}')
113114
template = Template(Path('template.html.jinja').read_text())
114115

115116
output = template.render(

visitors.py

+9-7
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)