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

  • 初始版本

作者

  • jaap roes

谢谢

  • mustapha benali,buildout.dumppickedversions的原始作者

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java基于条件如何创建StringBuffers并向其添加数据   java如何用UNC路径解决“不表示可正确访问的目录”异常?   在执行提取方法重构后,java代码的速度降低了6倍   java如何修改LDAPCertStore中用于X509证书链验证的LDAP连接属性   awt如何在Java中捕获鼠标光标?   字符串如何设置Java输出流   java NumberFormatException:用于输入字符串:“8:00”   unix/linux“tail f”的Java IO文件实现   java打印输出。带有JOptionPane的txt文件   java解组总是显示0和null   使用MySQL的windows java JavaFX自包含应用程序打包   JavaSpring:方法getBean(String…)是如何实现的根据输入字符串查找bean?   java高效地更新RecyclerView网格或以其他方式显示复杂网格   java向ArrayList添加对象(String、String、int、int)   java在一组文档上使用ForkJoinPool