Py2exe-GUI/dev_scripts/pyside6_tools_script.py
muzing 0edbed1fa5 Update dev scripts
添加 `__all__`,模块级提供的函数列表呈现更清晰;
更新 docstrings;
其他微小改动优化;
2024-01-06 12:00:00 +08:00

92 lines
2.4 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""开发脚本,便于调用 PySide6 提供的各种工具程序
"""
__all__ = [
"compile_resources",
"gen_ts",
"gen_qm",
]
import subprocess
from dev_scripts.path_constants import (
COMPILED_RESOURCES,
PROJECT_ROOT,
RESOURCES_PATH,
SRC_PKG_PATH,
WIDGETS_PATH,
)
def compile_resources() -> int:
"""调用 RCC 工具编译静态资源
:return: rcc 进程返回码
"""
compiled_file_path = COMPILED_RESOURCES
qrc_file_path = RESOURCES_PATH / "resources.qrc"
cmd = [
"pyside6-rcc",
"-o",
compiled_file_path,
qrc_file_path,
]
try:
result = subprocess.run(cmd, cwd=PROJECT_ROOT, check=True)
except subprocess.SubprocessError as e:
print(f"RCC 编译进程错误:{e}")
raise e
else:
print(f"已完成静态资源文件编译RCC 返回码:{result.returncode}")
return result.returncode
def gen_ts(lang: str = "zh_CN") -> int:
"""调用 lupdate 工具分析源码,生成 .ts 文本翻译文件
:param lang: 目标翻译语言代码
:return: lupdate 返回码
"""
source = [*list(WIDGETS_PATH.glob("**/*.py")), SRC_PKG_PATH / "__main__.py"]
target = RESOURCES_PATH / "i18n" / f"{lang.replace('-', '_')}.ts"
cmd = ["pyside6-lupdate", *source, "-ts", target]
try:
result = subprocess.run(cmd, cwd=PROJECT_ROOT, check=True)
except subprocess.SubprocessError as e:
print(f"lupdate 进程错误:{e}")
raise
else:
print(f"已完成文本翻译文件生成lupdate 返回码:{result.returncode}")
return result.returncode
def gen_qm(lang: str = "zh_CN") -> int:
"""调用 lrelease 工具编译.ts 文本翻译文件
:param lang: 目标翻译语言代码
:return: lrelease 返回码
"""
source = RESOURCES_PATH / "i18n" / f"{lang.replace('-', '_')}.ts"
target = RESOURCES_PATH / "i18n" / f"{lang.replace('-', '_')}.qm"
cmd = ["pyside6-lrelease", source, "-qm", target]
try:
result = subprocess.run(cmd, cwd=PROJECT_ROOT, check=True)
except subprocess.SubprocessError as e:
print(f"lrelease 进程错误:{e}")
raise
else:
print(f"已完成文本翻译文件编译lrelease 返回码:{result.returncode}")
return result.returncode
if __name__ == "__main__":
# compile_resources()
gen_ts("zh_CN")
# gen_qm("zh_CN")