Skip to content

Commit d1f0418

Browse files
authored
Add more helper properties in the Language class (#293)
1 parent fe84a0b commit d1f0418

File tree

1 file changed

+21
-17
lines changed

1 file changed

+21
-17
lines changed

build_docs.py

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,14 @@ class Language:
280280
def tag(self) -> str:
281281
return self.iso639_tag.replace("_", "-").lower()
282282

283+
@property
284+
def is_translation(self) -> bool:
285+
return self.tag != "en"
286+
287+
@property
288+
def locale_repo_url(self) -> str:
289+
return f"https://github.com/python/python-docs-{self.tag}.git"
290+
283291
@property
284292
def switcher_label(self) -> str:
285293
if self.translated_name:
@@ -549,7 +557,7 @@ def run(self, http: urllib3.PoolManager, force_build: bool) -> bool | None:
549557
logging.info("Skipping non-HTML build (language is HTML-only).")
550558
return None # skipped
551559
self.cpython_repo.switch(self.version.branch_or_tag)
552-
if self.language.tag != "en":
560+
if self.language.is_translation:
553561
self.clone_translation()
554562
if trigger_reason := self.should_rebuild(force_build):
555563
self.build_venv()
@@ -569,6 +577,10 @@ def run(self, http: urllib3.PoolManager, force_build: bool) -> bool | None:
569577
return False
570578
return True
571579

580+
@property
581+
def locale_dir(self) -> Path:
582+
return self.build_root / self.version.name / "locale"
583+
572584
@property
573585
def checkout(self) -> Path:
574586
"""Path to CPython git clone."""
@@ -582,15 +594,8 @@ def clone_translation(self) -> None:
582594
def translation_repo(self) -> Repository:
583595
"""See PEP 545 for translations repository naming convention."""
584596

585-
locale_repo = f"https://github.com/python/python-docs-{self.language.tag}.git"
586-
locale_clone_dir = (
587-
self.build_root
588-
/ self.version.name
589-
/ "locale"
590-
/ self.language.iso639_tag
591-
/ "LC_MESSAGES"
592-
)
593-
return Repository(locale_repo, locale_clone_dir)
597+
locale_clone_dir = self.locale_dir / self.language.iso639_tag / "LC_MESSAGES"
598+
return Repository(self.language.locale_repo_url, locale_clone_dir)
594599

595600
@property
596601
def translation_branch(self) -> str:
@@ -611,10 +616,9 @@ def build(self) -> None:
611616
logging.info("Build start.")
612617
start_time = perf_counter()
613618
sphinxopts = list(self.language.sphinxopts)
614-
if self.language.tag != "en":
615-
locale_dirs = self.build_root / self.version.name / "locale"
619+
if self.language.is_translation:
616620
sphinxopts.extend((
617-
f"-D locale_dirs={locale_dirs}",
621+
f"-D locale_dirs={self.locale_dir}",
618622
f"-D language={self.language.iso639_tag}",
619623
"-D gettext_compact=0",
620624
"-D translation_progress_classes=1",
@@ -636,7 +640,7 @@ def build(self) -> None:
636640

637641
if self.includes_html:
638642
site_url = self.version.url
639-
if self.language.tag != "en":
643+
if self.language.is_translation:
640644
site_url += f"{self.language.tag}/"
641645
# Define a tag to enable opengraph socialcards previews
642646
# (used in Doc/conf.py and requires matplotlib)
@@ -718,7 +722,7 @@ def copy_build_to_webroot(self, http: urllib3.PoolManager) -> None:
718722
logging.info("Publishing start.")
719723
start_time = perf_counter()
720724
self.www_root.mkdir(parents=True, exist_ok=True)
721-
if self.language.tag == "en":
725+
if not self.language.is_translation:
722726
target = self.www_root / self.version.name
723727
else:
724728
language_dir = self.www_root / self.language.tag
@@ -786,7 +790,7 @@ def should_rebuild(self, force: bool) -> str | Literal[False]:
786790
logging.info("Should rebuild: no previous state found.")
787791
return "no previous state"
788792
cpython_sha = self.cpython_repo.run("rev-parse", "HEAD").stdout.strip()
789-
if self.language.tag != "en":
793+
if self.language.is_translation:
790794
translation_sha = self.translation_repo.run(
791795
"rev-parse", "HEAD"
792796
).stdout.strip()
@@ -849,7 +853,7 @@ def save_state(
849853
"triggered_by": trigger,
850854
"cpython_sha": self.cpython_repo.run("rev-parse", "HEAD").stdout.strip(),
851855
}
852-
if self.language.tag != "en":
856+
if self.language.is_translation:
853857
state["translation_sha"] = self.translation_repo.run(
854858
"rev-parse", "HEAD"
855859
).stdout.strip()

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy