跳转到主要内容

导出buildout 2选定的版本。

项目描述

buildout.dumppickedversions2

buildout.dumppickedversions2 是一个简单的buildout扩展,模仿了 buildout.dumppickedversions 的功能,适用于buildout版本2.0.1或更高版本。

问题和解决方案

在将buildout升级到版本2后,您会注意到 buildout.dumppickedversions 的使用已被禁用。这样做是因为 buildout.dumppickedversions 的一部分功能已被集成到buildout中。

然而,buildout.dumppickedversions 的覆盖行为尚未集成。此扩展通过猴子补丁内置版本导出,使其更类似于 buildout.dumppickedversions

一个额外的优点是配置选项没有改变。这意味着升级您的buildout文件只需要将数字“2”添加到 extensions = buildout.dumppickedversions

buildout.dumppickedversions2 需要 zc.buildout 2.0.1 或更高版本。

buildout.dumppickedversions2 选项

dump-picked-versions-file

您希望 buildout.dumppickedversions 写入的文件名。如果没有给出,buildout.dumppickedversions 将将版本输出到屏幕。这种行为现在已内置到buildout中,可以通过将 show-picked-versions 设置为 true 而无需扩展来启用。

overwrite-picked-versions-file

如果设置为 truebuildout.dumppickedversions 将会覆盖在 dump-picked-versions-file 中定义的文件(如果存在)。默认值为 True。

详细文档

让我们创建一个 egg,以便在我们的测试中使用它

>>> 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'))

运行 buildout 将会打印关于选择版本的信息

>>> 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

下次运行 buildout 时,文件将被覆盖

>>> 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

让我们创建一个新的 egg,以便在我们的测试中使用,它将需要另一个 egg

>>> 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 的 buildout

>>> 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')))

运行 buildout 将会打印关于选择版本和谁需要它们的信息

>>> 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)

  • 现在包含“由谁依赖”的数据

1.0.2 (2013-02-22)

  • 明确要求使用 buildout 2.0.1

1.0.1 (2013-02-19)

  • 修复了命名空间问题

1.0 (2013-02-19)

  • 初始版本

作者

  • Jaap Roes

感谢

  • Mustapha Benali,buildout.dumppickedversions 的原始作者

项目详情


下载文件

根据您的平台下载文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源代码分发

buildout.dumppickedversions2-1.1.zip (15.7 kB 查看哈希)

上传时间 源代码

由以下机构支持

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF赞助商 PingdomPingdom 监控 SentrySentry 错误日志 StatusPageStatusPage 状态页面