mirror of
https://github.com/home-assistant/core.git
synced 2025-08-01 03:35:09 +02:00
Enable Ruff PTH for the script directory (#124441)
* Enable Ruff PTH for the script directory * Address review comments * Fix translations script * Update script/hassfest/config_flow.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> --------- Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
This commit is contained in:
@@ -4,8 +4,7 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import os
|
||||
import pathlib
|
||||
from pathlib import Path
|
||||
import re
|
||||
import subprocess
|
||||
|
||||
@@ -14,7 +13,7 @@ from .error import ExitApp
|
||||
from .util import get_lokalise_token, load_json_from_path
|
||||
|
||||
FILENAME_FORMAT = re.compile(r"strings\.(?P<suffix>\w+)\.json")
|
||||
DOWNLOAD_DIR = pathlib.Path("build/translations-download").absolute()
|
||||
DOWNLOAD_DIR = Path("build/translations-download").absolute()
|
||||
|
||||
|
||||
def run_download_docker():
|
||||
@@ -56,35 +55,32 @@ def run_download_docker():
|
||||
raise ExitApp("Failed to download translations")
|
||||
|
||||
|
||||
def save_json(filename: str, data: list | dict):
|
||||
"""Save JSON data to a file.
|
||||
|
||||
Returns True on success.
|
||||
"""
|
||||
data = json.dumps(data, sort_keys=True, indent=4)
|
||||
with open(filename, "w", encoding="utf-8") as fdesc:
|
||||
fdesc.write(data)
|
||||
return True
|
||||
return False
|
||||
def save_json(filename: Path, data: list | dict) -> None:
|
||||
"""Save JSON data to a file."""
|
||||
filename.write_text(json.dumps(data, sort_keys=True, indent=4), encoding="utf-8")
|
||||
|
||||
|
||||
def get_component_path(lang, component):
|
||||
def get_component_path(lang, component) -> Path | None:
|
||||
"""Get the component translation path."""
|
||||
if os.path.isdir(os.path.join("homeassistant", "components", component)):
|
||||
return os.path.join(
|
||||
"homeassistant", "components", component, "translations", f"{lang}.json"
|
||||
if (Path("homeassistant") / "components" / component).is_dir():
|
||||
return (
|
||||
Path("homeassistant")
|
||||
/ "components"
|
||||
/ component
|
||||
/ "translations"
|
||||
/ f"{lang}.json"
|
||||
)
|
||||
return None
|
||||
|
||||
|
||||
def get_platform_path(lang, component, platform):
|
||||
def get_platform_path(lang, component, platform) -> Path:
|
||||
"""Get the platform translation path."""
|
||||
return os.path.join(
|
||||
"homeassistant",
|
||||
"components",
|
||||
component,
|
||||
"translations",
|
||||
f"{platform}.{lang}.json",
|
||||
return (
|
||||
Path("homeassistant")
|
||||
/ "components"
|
||||
/ component
|
||||
/ "translations"
|
||||
/ f"{platform}.{lang}.json"
|
||||
)
|
||||
|
||||
|
||||
@@ -107,7 +103,7 @@ def save_language_translations(lang, translations):
|
||||
f"Skipping {lang} for {component}, as the integration doesn't seem to exist."
|
||||
)
|
||||
continue
|
||||
os.makedirs(os.path.dirname(path), exist_ok=True)
|
||||
path.parent.mkdir(parents=True, exist_ok=True)
|
||||
save_json(path, base_translations)
|
||||
|
||||
if "platform" not in component_translations:
|
||||
@@ -117,7 +113,7 @@ def save_language_translations(lang, translations):
|
||||
"platform"
|
||||
].items():
|
||||
path = get_platform_path(lang, component, platform)
|
||||
os.makedirs(os.path.dirname(path), exist_ok=True)
|
||||
path.parent.mkdir(parents=True, exist_ok=True)
|
||||
save_json(path, platform_translations)
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user