转储BuildOut 2选择的版本。
buildout.dumppickedversions2的Python项目详细描述
buildout.dumppickedversions2
buildout.dumppickedversions2是一个简单的构建扩展 它模仿了 构建版本2.0.1或更高版本。
问题及其解决办法
在将buildout升级到版本2之后,您将注意到 buildout.dumppickedversions已被禁用。这一直是 因为^{tt2}的部分功能$ 已集成到BuildOut中。
但是^{tt2}的重写行为$ 尚未集成。这个扩展猴子修补了内置的 版本转储使其行为更像buildout.dumppickedversions。
另一个好处是配置选项没有 改变。这意味着升级构建文件很简单 将数字2添加到extensions = buildout.dumppickedversions。
buildout.dumppickedversions2需要zc.buildout 2.0.1或更高版本。
buildout.dumppickedversions2选项
- 转储选择的版本文件
- 要写入的文件名buildout.dumppickedversions。 如果未给定buildout.dumppickedversions,则会将版本转储到 屏幕。后一种行为现在内置到buildout中,可以启用 通过将show-picked-versions设置为true,没有扩展名。
- 覆盖选定的版本文件
- 如果设置为true,则buildout.dumppickedversions将覆盖文件 如果存在,则在{tt15}$中定义。这个值 默认为真。
详细文档
让我们创建一个鸡蛋用于我们的测试:
>>> mkdir('myegg') >>> write('myegg', 'setup.py', ... ''' ... from distutils.core import setup ... setup(name='myegg', version='1.0') ... ''') >>> write('myegg', 'README', '') >>> print system(buildout + ' setup myegg bdist_egg') Running setup script 'myegg/setup.py'. ...
创建一个buildout并使用buildout.dumppickedversions2:
>>> write('buildout.cfg', ... ''' ... [buildout] ... extensions = buildout.dumppickedversions2 ... parts = myegg ... find-links = https://pypi.python.org/simple/zc.recipe.egg/ ... %s ... [myegg] ... recipe = zc.recipe.egg ... eggs = myegg ... ''' % join('myegg', 'dist'))
运行构建将打印有关所选版本的信息:
>>> print system(join('bin', 'buildout')) Develop distribution: buildout.dumppickedversions2 N.N ... Versions had to be automatically picked. The following part definition lists the versions picked: [versions] myegg = N.N setuptools = N.N zc.recipe.egg = N.N ...
要将选择的版本转储到文件中,只需添加一个dump-picked-versions-file 选项并提供文件名:
>>> write('buildout.cfg', ... ''' ... [buildout] ... extensions = buildout.dumppickedversions2 ... dump-picked-versions-file = versions.cfg ... parts = myegg ... find-links = https://pypi.python.org/simple/zc.recipe.egg/ ... %s ... [myegg] ... recipe = zc.recipe.egg ... eggs = myegg ... ''' % join('myegg', 'dist')) >>> print system(buildout) Develop distribution: buildout.dumppickedversions2 N.N ... Updating myegg. Picked versions have been written to versions.cfg ...
这里是versions.cfg文件的内容:
>>> cat('versions.cfg') [versions] myegg = N.N setuptools = N.N zc.recipe.egg = N.N
下次运行构建时,文件将被覆盖:
>>> print system(buildout) Develop distribution: buildout.dumppickedversions2 N.N ... Picked versions have been written to versions.cfg ... >>> cat('versions.cfg') [versions] myegg = N.N setuptools = N.N zc.recipe.egg = N.N
让我们创造一个新的蛋来用于我们的测试,它需要 另一个鸡蛋:
>>> mkdir('theiregg') >>> write('theiregg', 'setup.py', ... ''' ... from distutils.core import setup ... setup(name='theiregg', version='1.0', install_requires='myegg') ... ''') >>> write('theiregg', 'README', '') >>> print system(buildout + ' setup theiregg bdist_egg') Running setup script 'theiregg/setup.py'. ...
创建一个使用此新egg的构建:
>>> write('buildout.cfg', ... ''' ... [buildout] ... extensions = buildout.dumppickedversions2 ... parts = theiregg ... find-links = https://pypi.python.org/simple/zc.recipe.egg/ ... %s ... %s ... [theiregg] ... recipe = zc.recipe.egg ... eggs = theiregg ... ''' % (join('theiregg', 'dist'), join('myegg', 'dist')))
运行构建将打印有关所选版本的信息 谁需要他们:
>>> print system(join('bin', 'buildout')) Develop distribution: buildout.dumppickedversions2 N.N ... Versions had to be automatically picked. The following part definition lists the versions picked: [versions] setuptools = N.N theiregg = N.N zc.recipe.egg = N.N <BLANKLINE> # Required by: # theiregg==N.N myegg = N.N ...
这在写入文件时也有效:
>>> write('buildout.cfg', ... ''' ... [buildout] ... extensions = buildout.dumppickedversions2 ... dump-picked-versions-file = versions.cfg ... parts = theiregg ... find-links = https://pypi.python.org/simple/zc.recipe.egg/ ... %s ... %s ... [theiregg] ... recipe = zc.recipe.egg ... eggs = theiregg ... ''' % (join('theiregg', 'dist'), join('myegg', 'dist'))) >>> print system(buildout) Develop distribution: buildout.dumppickedversions2 N.N ... Updating theiregg. Picked versions have been written to versions.cfg ...
这里是versions.cfg文件的内容:
>>> cat('versions.cfg') [versions] setuptools = N.N theiregg = N.N zc.recipe.egg = N.N <BLANKLINE> # Required by: # theiregg==N.N myegg = N.N
当我们不想覆盖文件时,只需添加 overwrite-picked-versions-file并将其设置为false:
>>> write('buildout.cfg', ... ''' ... [buildout] ... extensions = buildout.dumppickedversions2 ... dump-picked-versions-file = versions.cfg ... overwrite-picked-versions-file = false ... parts = myegg ... find-links = https://pypi.python.org/simple/zc.recipe.egg/ ... %s ... [myegg] ... recipe = zc.recipe.egg ... eggs = myegg ... ''' % join('myegg', 'dist')) >>> print system(buildout) Develop distribution: buildout.dumppickedversions2 N.N ... Skipped: File versions.cfg already exists. ...
1.1(2013-06-14)
- 当新的pickedversions插件api可用时使用它
1.0.3(2013-02-26)
- 现在包括“Required by”数据
1.0.2(2013-02-22)
- 明确要求构建2.0.1
1.0.1(2013-02-19)
- 修复了命名空间的问题
1.0(2013-02-19)
- 初始版本
谢谢
- mustapha benali,buildout.dumppickedversions的原始作者