#!/usr/bin/env python3 """使用 uv 为 Python 3.12 解析跨平台依赖锁,并记录输入摘要。""" import json from pathlib import Path import subprocess import sys sys.dont_write_bytecode = True from common import sha256 ROOT = Path(__file__).resolve().parents[1] def main(): subprocess.run(["uv", "pip", "compile", "requirements.txt", "--constraints", "release/baseline.constraints", "--python-version", "3.12", "--universal", "--generate-hashes", "--only-binary", ":all:", "--no-annotate", "--no-header", "--output-file", "release/requirements.lock"], cwd=ROOT, stdout=subprocess.DEVNULL, check=True) meta = {"python": "3.12", "resolver": subprocess.check_output(["uv", "--version"], text=True).strip(), "sha256": {name: sha256(ROOT / name) for name in ("requirements.txt", "release/baseline.constraints", "release/requirements.lock")}} (ROOT / "release/lock.meta.json").write_text(json.dumps(meta, indent=2) + "\n") print("已更新 release/requirements.lock 和 lock.meta.json") if __name__ == "__main__": main()