“devpi constrained:devpi服务器的一个索引,它提供来自其基础的受约束包列表”

devpi-constrained的Python项目详细描述


devpi constrained:为devpi服务器释放筛选器

此插件向devpi-server添加一个受约束的索引。 受约束的索引是只读的,并且从其基础中筛选释放的内容类似于pip中的Constraints Files

安装

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约束的区别,在这里这是不可能的。

$ 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)"

更改日志

1.0.0-2019-08-05

  • 初次发布。 [弗斯丘尔泽(弗洛里安·舒尔泽)]

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
字符串Java字母替换无效   java Spring Roo JPA MS SQL Server无法打开JPA EntityManager组织。冬眠例外GenericJDBCException:无法打开连接   在scala中使用JavaWS对大型数据文件进行java流式处理   Java编译器是否将字节和短字符识别为文本?   java无法查找符号错误,空指针   mongodb在Java中重用数据库连接   java将多个StringArray从字符串文件获取到活动中   java是一个变量,它只保存最后一次鼠标单击的坐标   c#尺寸有限;添加、删除和洗牌   java如何在Android中显示来自资产文件夹的文本文件中的文本   Android应用程序中的java Tensorflow Lite自定义对象检测模型错误   java如何在foreachloop中使用scanner将来自命令行的输入存储到数组中   java如何定义一个好的存储库接口   Android中的java解析动态json对象