确保包的PYPI总线因子高于某个阈值。
mr.parker的Python项目详细描述
“有权必有责”-本叔叔
总线因子
在2009年的plone大会上,有句名言“我们通常认为公共汽车是 “杀死程序员”被偷听到。几天后,在短跑比赛中,人们注意到了 plone 4.0的几个核心包只能由一个人发布。 此程序包旨在通过确保给定的程序包 超过一定数量的pypi授权管理员。
语法
这将创建一个名为parker的控制台脚本,如下所示:
parker [--factor=2] [--versions-cfg <configfile>] [--repository=http://pypi.python.org/pypi] [packagename(s)]
–factor: | (also -f) This determines the minimum number of people that have access before an error is raised. The default is 2. |
---|---|
–versions-cfg: | (also -c) If this option is provided a ^{tt2}$ versions file will be parsed for the package names |
–repository: | (also -r) A repository URL that follows the baroque lookup logic assumptions |
packagename(s): | Required if –versions-cfg isn’t specified. Contains one or more packages to check, space separated. |
巴洛克查找逻辑
不幸的是,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,或者 很容易擦伤。现在,这就行了。