“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在获取数据时忽略模型类中的forign键映射   java为什么Microsoft JDBC驱动程序忽略failoverPartner主机名   java可以下载mozswing文件   java等价于ObjectOutputStream,不仅保存其状态,还保存整个对象?   Java Android LiveData根据其他LiveData调用房间查询   java如何使用jackson jsonNode实现这一点并获得所需的输出   在web服务器上作为web应用程序运行java应用程序?   groovy中java类的元类属性   返回空指针的java图形对象   标头中包含用户名和密码的java SOAP客户端请求   具有堆栈实现和递归的Hanoi算法塔(Java)   java当我运行这两个类时,我的老鼠不会移动   使用图像进行java相似图像搜索   Java8并行流机制   使用单例对象作为枚举元素的java Scala枚举,是否有可能对它们进行迭代?   java Webview更改高度大小   不可序列化对象和函数的java Spark Scala编程   java my app在eclipse中运行良好,而不是在jar中