简单仓库(PEP-503)的核心接口,包括适用于仓库客户端和服务器使用的强大组件实现
项目描述
simple-repository
简单仓库核心库提供了一个基础的SimpleRepository
类,为PEP-503简单仓库的每个端点提供接口,即get_project_list
和get_project_page
。此外,它暴露了资源检索接口(get_resource
),允许从工具如pip
等动态控制整个仓库交互。
关于
simple-repository
核心库提供了一个基础SimpleRepository
类,为PEP-503简单仓库的每个端点提供接口,即get_project_list
和get_project_page
。此外,它还公开了一个资源检索接口(get_resource
),允许从工具如pip
等动态控制整个仓库交互。
SimpleRepository
的子类,通常称为仓库“组件”,可以根据其功能自由特殊化仓库行为。组件可以包含其他组件,这样就可以构建一个仓库的有向无环图。
生成的SimpleRepository
允许仓库消费者(客户端或服务器)查询“虚拟仓库”定义,就像它是传统文件或基于HTTP的仓库一样。
该仓库中实现的组件包括
HTTPRepository
:代表一个基于HTTP的、符合PEP-503协议的简单仓库LocalRepository
:代表一个包含许多项目目录的目录,每个目录都有自己的文件/发行版PrioritySelectedProjectsRepository
:表示一组按顺序排列的仓库的组合,合并后,当选择一个项目时,将使用包含该项目的第一个仓库。该组件旨在减轻依赖混淆攻击。MetadataInjectorRepository
:随着PEP-658的出现,安装程序不再需要下载整个发行版来确定项目的元数据(例如其依赖项)。该仓库将通过检查发行版(例如一个wheel)来实时计算元数据。该组件允许下游消费者(客户端和服务器)假定元数据的存在,即使原始仓库本身可能没有提供任何。AllowListedRepository
:代表一个只允许从定义的允许项目列表中访问项目的仓库。
在这个库中有很多这样的组件。如果所需的组件尚未存在,实现一个新的组件只需实现少量方法。生成的实现是可重用的、简洁的,并且易于验证和测试。
已知用途
以下是已知的一些simple-repository
核心库的用途
simple-repository-server
:一个运行PEP-503简单Python包仓库的工具,包括dist元数据(PEP-658)和JSON API(PEP-691)等功能simple-repository-browser
:一个用于浏览和搜索任何简单包仓库(PEP-503)的Web界面,灵感来自PyPI / warehouse
如果您知道simple-repository
的其他用途,请提交PR以将它们添加到列表中。
许可证和支持
此代码已在MIT许可证下发布。这是一个内部开发的初始原型,目前没有公开开发。
希望发布此原型能够引起有类似需求的其他方面的兴趣。在足够协作的兴趣下,该项目有可能公开开发,并支持许多领域的Python包仓库。
请在https://github.com/orgs/simple-repository/discussions上与我们联系,分享该项目如何对您有用。这有助于我们评估兴趣水平,并在决定是否将未来资源投入项目时提供宝贵的见解。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源发行版
构建发行版
simple_repository-0.8.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 42ecf4415f4d54a8610fd2d26f5d432151b26c3ef7fb10b9265a125c1fde5669 |
|
MD5 | 41dff97c1bb8bf72b92b0f60c1ab9b11 |
|
BLAKE2b-256 | ccf58412abca655d20cb8f40c9b8fe2b8b58773e8ab3e53e900584b2b5ed56c7 |
simple_repository-0.8.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 75ad77d45ce660398c0383e7342263fad8e6e5c597fe763f829a9ae4cbab3046 |
|
MD5 | bd01a687271956740df636c7f8d3c335 |
|
BLAKE2b-256 | d9e1cd177ae5b24ec639cbb02dcf0e2539e8f7336437f9e71310cb3196a1551c |