From b39ef84f0c48b4d6cbed762be162d77df3fe5a67 Mon Sep 17 00:00:00 2001 From: Branimir Georgiev <66906831+braboj@users.noreply.github.com> Date: Mon, 16 Jun 2025 20:23:39 +0300 Subject: [PATCH] Load acronyms once --- .scripts/gen_markdown_chapters.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.scripts/gen_markdown_chapters.py b/.scripts/gen_markdown_chapters.py index 5b76ce6..fac7c5a 100644 --- a/.scripts/gen_markdown_chapters.py +++ b/.scripts/gen_markdown_chapters.py @@ -18,6 +18,11 @@ import re from pathlib import Path +# Load user-defined acronyms once when the module is imported +ACRONYMS_PATH = Path(__file__).resolve().parent / "acronyms.json" +with ACRONYMS_PATH.open("r", encoding="utf-8") as json_data: + USER_ACRONYMS = json.load(json_data) + def to_title(name: str) -> str: """Return *name* in title format with spaces and preserved acronyms.""" @@ -27,10 +32,6 @@ def to_title(name: str) -> str: # Split on underscores, dashes, or spaces parts = re.split(r"[_\-\s]+", name) - # Import JSON file containing user-defined acronyms - with open('acronyms.json') as json_data: - user_acronyms = json.load(json_data) - # Capitalize each part, preserving all-uppercase acronyms words = [] for part in parts: @@ -41,8 +42,8 @@ def to_title(name: str) -> str: if not part: continue - # Check user-defined acronyms from `docs/acronyms.txt` - if part.upper() in user_acronyms: + # Check user-defined acronyms loaded from ``acronyms.json`` + if part.upper() in USER_ACRONYMS: words.append(part.upper()) # If the part is all uppercase and contains only alphanumeric characters,