buildout recipe解析pip配置文件并在buildout中使用解析的信息。
collective.recipe.pip的Python项目详细描述
概述
这个配方允许将pip配置文件(通常命名为requirements.txt)解析为要使用的鸡蛋列表 在建筑的其他部分。
菜谱将经过解析的鸡蛋列表映射到它的部分中,例如。 ${pip:eggs}将给出已分析鸡蛋的列表。
来自url(例如来自github)的鸡蛋列表也导出到url参数: ${pip:urls}将给出解析的egg url列表。
目前配方的唯一选项是configs-要解析的配置文件列表。
配置文件在初始化Recipe实例时被解析, 即在读取buildout.cfg之后,但在安装或更新任何配方之前。
示例用法:使用环境变量
让我们创建测试配置文件
>>> write('requirements.txt', ... """ ... some.egg ... -e http://some.package.git.url#egg=develop.egg ... --use-wheel ... http://sourceforge.net/projects/pychecker/files/latest/download?source=files#egg=pychecker==0.8.19 ... fabric>=0.9b1 ... # some comment ... xlrd # reading excel worksheets ... html5lib==0.95 ... """)>>> write('requirements-included.txt', ... """ ... some.included.egg ... """)>>> write('requirements-included2.txt', ... """ ... some.included.egg2 ... """)>>> mkdir('file.package') >>> write('file.package/setup.py', ... """ ... from setuptools import setup ... setup(name='file.package') ... """)>>> write('requirements2.txt', ... """ ... -r requirements-included.txt ... --requirement requirements-included2.txt ... some2.egg ... django>=1.3,<1.4 ... django-extensions #django extension requirements (not mandatory, but useful on dev) ... -e http://some2.package.git.url#egg=develop2.egg ... -e file.package ... --extra-index-url=http://some.index.url ... -f http://git.fabfile.org ... """)
我们将从创建使用配方的构建开始:
>>> write('buildout.cfg', ... r""" ... [buildout] ... parts = pip print ... ... [some-section] ... eggs = ${pip:eggs} ... ... [pip] ... recipe = collective.recipe.pip ... configs = requirements.txt ... requirements2.txt ... versions = versions ... ... [versions] ... ... [print] ... recipe = mr.scripty ... install = ... ... print(self.buildout['some-section']['eggs']) ... ... print('\n[versions]') ... ... print('\n'.join(i + ' = ' + k for i, k in sorted(self.buildout['versions'].items()))) ... ... print('\n[urls]') ... ... print(self.buildout['pip']['urls']) ... ... print('# done') ... ... return [] ... """)
scripty先生的配方用于打印${some section:some option}的值。 选择。
运行构建会给我们带来:
>>> import sys >>> sys.stdout.write('start\n' + system(buildout)) start... Installing pip. Installing print. develop.egg develop2.egg django-extensions django>=1.3,<1.4 fabric>=0.9b1 html5lib==0.95 pychecker==0.8.19 some.egg some.included.egg some.included.egg2 some2.egg xlrd [versions] django = >=1.3,<1.4 fabric = >=0.9b1 html5lib = 0.95 pychecker = 0.8.19 zc.buildout = ... zc.recipe.egg = ... [urls] /sample-buildout/file.package git+http://some.package.git.url#egg=develop.egg git+http://some2.package.git.url#egg=develop2.egg http://sourceforge.net/projects/pychecker/files/latest/download?source=files#egg=pychecker==0.8.19 ...
接触
如果您有问题、错误报告、建议等,请在 那张GitHub project page。
贡献者
- 阿纳托利·布本科夫,bubenkoff@gmail.com>;,作者
- Abdul Kader Maliyakkal,ridha@github.com>;,撰稿人
- Christophe Combelles,ccomb@github.com>;,撰稿人
更改日志
0.3.4(2016-05-25)
- 支持最新的PIP 8.1.2(RIDHA)
0.3.2(2015-07-19)
- 旧PIP(CCOMB)的向后兼容性
0.3.1(2015-05-27)
- 支持最近的pip(7.x.x)(ridha)
0.3.0(2015-03-17)
- 支持最近的pip(6.x.x)(ridha)
0.2.0(2014-02-06)
- 正确解析–使用控制盘
0.1.9(2013-12-05)
- 支持本地可编辑的鸡蛋
0.1.7(2013-06-27)
- 支持在url参数中看到的自定义url鸡蛋
0.1.6(2013-03-11)
- 不可预测的需求分析案例已修复
0.1.5(2013-02-18)
- 增加了Buildout 2.0.1支持
0.1.4(2013-01-29)
- 修复了主页URL,删除了不必要的readme.txt
0.1.3(2013-01-25)
- 重构解析以使用本机pip配置解析器,因此现在可以通过-r嵌套配置,就像使用pip一样
0.1.2(2013-01-05)
- 添加了带有解析版本的填充版本部分
0.1.1(2012年12月22日)
- 改进的版本解析
0.1.0(2012年12月22日)
- 第一次释放。