跳转到主要内容

将抽象依赖解析为具体依赖

项目描述

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 查看哈希)

上传时间 Python 2 Python 3

支持者:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面