| 1234567891011121314151617181920212223242526 |
- #!/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()
|