Files
my-v0-server/app/datafiles/worker.py
T

28 lines
871 B
Python

"""解析子进程:python -m app.datafiles.worker <原文件> <输出目录>
结果以一行 JSON 写到 stdout:成功是 {"file": ParsedFile},文件本身的问题是 {"error": {"status", "message"}}
其他异常让进程以非零状态退出,堆栈留在 stderr,由上传流程记日志
"""
import json
import sys
from pathlib import Path
from app.datafiles.base import DataFileError
from app.datafiles.parse import parse_file
def main(source: str, out_dir: str) -> None:
try:
result = {
"file": parse_file(Path(source), Path(out_dir)).model_dump(mode="json")
}
except DataFileError as error:
result = {"error": {"status": error.status, "message": error.message}}
# 只输出 ASCII,不受控制台编码影响
sys.stdout.write(json.dumps(result))
if __name__ == "__main__":
main(*sys.argv[1:])