diff --git a/build_status.py b/build_status.py index 14fad56d9..8bd615d2a 100644 --- a/build_status.py +++ b/build_status.py @@ -8,10 +8,10 @@ import tomllib from collections.abc import Iterator -import requests +from requests import Session -def get_languages() -> Iterator[tuple[str, bool]]: +def get_languages(requests: Session) -> Iterator[tuple[str, bool]]: data = requests.get( 'https://raw.githubusercontent.com/' 'python/docsbuild-scripts/refs/heads/main/config.toml', @@ -25,7 +25,9 @@ def get_languages() -> Iterator[tuple[str, bool]]: def main() -> None: - languages = {language: in_switcher for language, in_switcher in get_languages()} + languages = { + language: in_switcher for language, in_switcher in get_languages(Session()) + } print(languages) for code in ('en', 'pl', 'ar', 'zh-cn', 'id'): print(f'{code}: {code in languages} {languages.get(code)}') diff --git a/generate.py b/generate.py index 237e12f7e..22758cb77 100644 --- a/generate.py +++ b/generate.py @@ -16,6 +16,7 @@ from pathlib import Path from tempfile import TemporaryDirectory +from requests import Session from git import Repo from jinja2 import Template @@ -44,12 +45,14 @@ def get_completion_progress() -> Iterator['LanguageProjectData']: ) subprocess.run(['make', '-C', cpython_dir / 'Doc', 'venv'], check=True) subprocess.run(['make', '-C', cpython_dir / 'Doc', 'gettext'], check=True) - languages_built = dict(build_status.get_languages()) + languages_built = dict(build_status.get_languages(session := Session())) for language, repo in get_languages_and_repos(devguide_dir): built = language.code in languages_built if repo: completion, translators_data = get_completion(clones_dir, repo) - visitors_num = get_number_of_visitors(language.code) if built else 0 + visitors_num = ( + get_number_of_visitors(language.code, session) if built else 0 + ) else: completion = 0.0 translators_data = TranslatorsData(0, False) diff --git a/visitors.py b/visitors.py index e69e8184f..c55e7419e 100644 --- a/visitors.py +++ b/visitors.py @@ -3,10 +3,10 @@ import urllib import zipfile -import requests +from requests import Session -def get_number_of_visitors(language: str) -> int: +def get_number_of_visitors(language: str, requests: Session) -> int: params = urllib.parse.urlencode( {'filters': f'[["contains","event:page",["/{language}/"]]]', 'period': 'all'} )