补全:锁过期了吗
(每道题开头都有同一段:parse_ver 把「1.4.0」变成能比大小的元组,satisfies(版本, 约束) 判一个版本满不满足「>=1.4,<2」这种约束,split_req 把「httpkit>=1.4」切成名字和约束;REPO 是上面那个小仓库。)
(candidates 列出仓库里满足约束的版本(从低到高);resolve(清单) 逐个选最高可用版本、把它的依赖加进队列、约束越收越紧,交回 {包: 版本},无解交回 None。它不回溯——pip 会。)
(这一节多了:parse_requirements 读清单文本(跳过空行和 # 注释),freeze 把选好的版本写成锁文件文本,parse_lock 读回来,diff_lock 比两份锁。)
补全 lock_ok(reqs, lock):清单里每一条,锁里都得有这个包、而且锁住的版本满足清单的约束;交回不满足的包名列表(按清单顺序)。
全部评论