跳转到主要内容

"devpi-constrained:为devpi-server提供从其基础库中提供的受限包列表的索引"

项目描述

devpi-constrained: devpi-server的发布过滤器

此插件向devpi-server添加了一个受限索引。受限索引为只读,并从其基础库中过滤发布版本,类似于约束文件pip中。

安装

devpi-constrained需要与devpi-server一起安装,以启用受限索引。

您可以使用以下命令进行安装

pip install devpi-constrained

无需配置,因为devpi-server将通过使用setuptools入口点机制调用钩子自动发现该插件。

动机

通常需要过滤可用于安装的Python包。例如

  • 过滤已知存在安全问题的包版本

  • 提供经过测试的“已知良好集”的包

  • 防止安装具有不兼容许可的包

  • 仅允许经过审查的包

  • 阻止带有破坏性变更的块包版本

使用 devpi-constrained,可以提供一个索引包,它能够实现上述所有功能,甚至更多。

用法

使用 root/pypi 作为基础创建一个 受限 的索引

$ devpi index -c prod/devpi type=constrained bases=root/pypi
https://example.com/prod/devpi:
  type=constrained
  bases=root/pypi
  volatile=True
  acl_upload=root
  acl_toxresult_upload=:ANONYMOUS:
  constraints=
  mirror_whitelist=

$ devpi use prod/devpi

如果没有设置限制,所有版本都将从 root/pypi 中可用。

让我们为 pip 添加一个限制

$ devpi index constraints+="pip==6.0"
/prod/devpi constraints+=pip==6.0
https://example.com/prod/devpi?no_projects=:
  type=constrained
  bases=root/pypi
  volatile=True
  acl_upload=root
  acl_toxresult_upload=:ANONYMOUS:
  constraints=pip==6.0
  mirror_whitelist=

现在在查找 pip 的版本时,只会列出 pip 6.0

$ devpi list --all pip
http://localhost:3141/root/pypi/+f/610/3897f1bb68d3f/pip-6.0.tar.gz
http://localhost:3141/root/pypi/+f/5ec/6732505bd8be4/pip-6.0-py2.py3-none-any.whl

其他所有包仍然是未受限的。

要阻止所有其他内容,我们添加 * 限制

$ devpi index constraints+="*"
/prod/devpi constraints+=*
https://example.com/prod/devpi?no_projects=:
  type=constrained
  bases=root/pypi
  volatile=True
  acl_upload=root
  acl_toxresult_upload=:ANONYMOUS:
  constraints=pip==6.0,*
  mirror_whitelist=

这与 pip 限制不同,在 pip 中这是不可能的。

$ devpi list --all devpi-server
GET https://example.com/prod/devpi/devpi-server/
404 Not Found: no project 'devpi-server'

可以从文件中批量设置 constraints 选项。创建一个名为 constraints.txt 的文件,每行一个限制

pip<8,>4
# a comment
devpi-server>=4

从文件中设置索引的 constraints 选项

$ devpi index constraints="$(cat constraints.txt)"

变更日志

2.0.1 - 2023-03-18

  • 修复简单链接页面过滤。 [EvaSDK (Gilles Dartiguelongue)]

2.0.0 - 2023-02-21

  • 移除对 Python <= 3.6 的支持。

  • 添加对 Python 3.8、3.9、3.10、3.11 和 PyPy-3.7 的测试。

  • 要求 devpi-server >= 6.2.0。

1.0.0 - 2019-08-05

  • 初始发布。 [fschulze (Florian Schulze)]

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

devpi-constrained-2.0.1.tar.gz (9.1 kB 查看哈希)

上传时间

构建分布

devpi_constrained-2.0.1-py3-none-any.whl (5.6 kB 查看哈希)

上传时间 Python 3

支持者

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