补全:仓库里有哪些能用
(每道题开头都有同一段:parse_ver 把「1.4.0」变成能比大小的元组,satisfies(版本, 约束) 判一个版本满不满足「>=1.4,<2」这种约束,split_req 把「httpkit>=1.4」切成名字和约束;REPO 是上面那个小仓库。)
贯穿全条的小仓库(五个假包):
urlkit 1.9.0 2.0.0 2.1.0
charkit 4.0.0 5.1.0
httpkit 1.3.0 (要 urlkit<2, charkit<5) 1.4.0 (要 urlkit<2, charkit>=4) 1.5.0 (要 urlkit>=2, charkit>=5)
templ 3.0.0 3.1.0
webapp 2.3.0 (要 httpkit>=1.3,<1.5, templ>=3) 3.0.0 (要 httpkit>=1.5, templ>=3.1)补全 candidates(name, spec):从 REPO 里挑出满足约束的版本,按版本号从低到高排;仓库里没有这个包就交回空列表。
全部评论