确保一个软件包在PyPI的bus因子高于一定阈值。
项目描述
“拥有巨大的力量,就要承担巨大的责任” - 本叔叔
bus因子
在2009年的Plone会议上,有人听到这样的话:“我们通常认为公交车是杀死程序员的东西”。几天后,在冲刺活动中,人们注意到Plone 4.0的一些核心包只能由一个人发布。这个包的设计目的是通过确保一个给定的包在PyPI上有超过一定数量的授权管理员来解决这个问题。
语法
如下创建一个名为parker的控制台脚本:
parker [--factor=2] [--versions-cfg <configfile>] [--repository=http://pypi.python.org/pypi] [packagename(s)]
- –factor:
(也称为 -f) 这确定在引发错误之前可以访问的最小人数。默认为2。
- –versions-cfg:
(也称为 -c) 如果提供此选项,将解析一个zc.buildout版本文件以获取包名
- –repository:
(也称为 -r) 一个遵循巴洛克查找逻辑假设的存储库URL
- packagename(s):
如果未指定–versions-cfg,则为必需。包含一个或多个要检查的包,以空格分隔。
巴洛克查找逻辑
不幸的是,API不允许我们找到可以访问包的用户,因此我们需要抓取屏幕。我们期望以下格式的HTML:
<li> <strong>Package Index Owner:</strong> <span>deo, smcmahon, MatthewWilkes</span> </li> <li> <strong>Package Index Maintainer:</strong> <span>JoeBob</span> </li>
也就是说,一个包含“包索引 <rolename>:”和一个逗号分隔列表的列表元素,一旦删除了标签。
首先,提取li标签
(?<=li\>)[\S\s]*?(?=\<\/li\>)
然后,提取角色名称
"Package Index ([a-zA-Z]*)"
并找到这些名称
set(a[0] for a in re.compile("([a-zA-Z]+,?)+?").findall(li) if a[0] not in ['Package','Index',rolename,'span','strong'])
是的,这很丑。我知道。我希望有一个API来做这件事,或者标记可以被轻松抓取。现在,这样就可以了。
项目详情
关闭
mr.parker-1.0.zip的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8c24d9b81ae4aa5b64d4dece1ae28d3f1a104cc728c15b876363db0ff2d95b69 |
|
MD5 | 6cbc8cbf8db2f802aa1f1013544f028a |
|
BLAKE2b-256 | bec0a59ac031546ec19a694f858ebab319aebb5884618aeb631fb716b7971474 |