将抽象依赖解析为具体依赖
项目描述
ResolveLib在最高级别提供了一个包含依赖解析逻辑的Resolver类。你给它一些东西,以及一些关于如何与它们交互的信息,然后它将输出一个解析结果。
预期使用
import resolvelib # Things I want to resolve. requirements = [...] # Implement logic so the resolver understands the requirement format. class MyProvider: ... provider = MyProvider() reporter = resolvelib.BaseReporter() # Create the (reusable) resolver. resolver = resolvelib.Resolver(provider, reporter) # Kick off the resolution process, and get the final result. result = resolver.resolve(requirements)
提供者接口定义在resolvelib.providers中。你不需要继承任何东西,只需实现正确的方法即可。
术语
本节的目的在于统一我们讨论此代码库和打包时使用的术语,以避免混淆。代码库中的类和变量名应尽量遵循此处定义的术语。
传递给 Resolver.resolve() 并由提供者提供的所有内容都视为不透明。它们不需要遵循这组术语。只要提供者实现者能够保持清晰,就不会出错。
包
可以安装的事物。一个包可以有一个或多个版本可供安装。
版本
通常以数字形式描述包快照的字符串。当包发布新的快照时,此数字应增加,即数字越大表示快照越新。
指定符
一组一个或多个版本。这可能是一个通配符,表示任何版本都可以接受。
候选
包和版本的组合,即“具体要求”。Python 人员有时称此为“锁定”或“固定”依赖项。但是,在描述候选时,不应使用“要求”和“依赖”这两个术语,以避免混淆。
一些解析器架构将其称为“规范”,但此处不使用以避免与指定符混淆。
要求
获取所需包的意图,即“抽象要求”。如果没有明确说明,则“依赖”也指此概念。
要求应指定两件事:包和指定符。
贡献
请参阅开发者文档。
项目详情
下载文件
下载您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
resolvelib-1.0.1.tar.gz (21.1 kB 查看哈希)
构建分布
resolvelib-1.0.1-py2.py3-none-any.whl (17.2 kB 查看哈希)
关闭
resolvelib-1.0.1.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 04ce76cbd63fded2078ce224785da6ecd42b9564b1390793f64ddecbe997b309 |
|
MD5 | 97b6aff7ef23de266b1da3cf336b1082 |
|
BLAKE2b-256 | ce10f699366ce577423cbc3df3280063099054c23df70856465080798c6ebad6 |
关闭
resolvelib-1.0.1-py2.py3-none-any.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d2da45d1a8dfee81bdd591647783e340ef3bcb104b54c383f70d422ef5cc7dbf |
|
MD5 | d17ab70959a6cb2ec82d054a443afc64 |
|
BLAKE2b-256 | d2fce9ccf0521607bcd244aa0b3fbd574f71b65e9ce6a112c83af988bbbe2e23 |