跳转到主要内容

将未使用的egg移动到指定目录的buildout扩展

项目描述

Buildout Eggscleaner

简介

buildout.eggscleaner扩展可用于确保您的egg目录仅包含‘已使用’的egg。该扩展可以报告,也可以将未使用的egg移动到指定的目录。

安装

Eggscleaner是一个buildout扩展,可以像这样添加

[buildout]
extensions =
        buildout.eggscleaner

选项

old-eggs-directory

您希望buildout.eggscleaner将未使用的egg移动到的目录。如果已存在确切的egg,我们将删除‘已使用’egg目录中的那个。

示例

[buildout]
extensions =
        buildout.eggscleaner
old-eggs-directory = ${buildout:directory}/old-eggs/

测试与

zc.buildout: 1.4.3, 1.5.1, 1.5.2, 1.6.0, 2.2.1 python: 2.4.6, 2.6.8

与其他扩展一起工作

我研究了buildout.dumppickedversions的工作方式,并使这个扩展以类似的方式工作。这个扩展可以与那个扩展完美地一起运行。

示例输出

无操作

*************** BUILDOUT EGGSCLEANER ****************
No unused eggs in eggs directory
*************** /BUILDOUT EGGSCLEANER ****************

移动egg

*************** BUILDOUT EGGSCLEANER ****************
Moved unused egg: webcouturier.dropdownmenu-2.3-py2.6.egg
Moved unused egg: collective.uploadify-1.0-py2.6.egg
Moved unused egg: collective.simplesocial-1.6-py2.6.egg
Moved unused egg: collective.autopermission-1.0b2-py2.6.egg
*************** /BUILDOUT EGGSCLEANER ****************

报告

*************** BUILDOUT EGGSCLEANER ****************
Don't have a 'old-eggs-directory' set, only reporting
Can add it by adding 'old-eggs-directory = ${buildout:directory}/old-eggs' to your [buildout]
Found unused egg: webcouturier.dropdownmenu-2.3-py2.6.egg
Found unused egg: plone.recipe.command-1.1-py2.6.egg
Found unused egg: collective.uploadify-1.0-py2.6.egg
Found unused egg: Products.DocFinderTab-1.0.5-py2.6.egg
Found unused egg: collective.simplesocial-1.6-py2.6.egg
Found unused egg: collective.autopermission-1.0b2-py2.6.egg
Found unused egg: Products.Clouseau-1.0-py2.6.egg
*************** /BUILDOUT EGGSCLEANER ****************

详细文档

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

>>> mkdir('myegg')
>>> write('myegg', 'setup.py',
... '''
... from setuptools import setup
... setup(name='myegg', version='1.0',)
... ''')
>>> write('myegg', 'README', '')
>>> print system(buildout+' setup myegg bdist_egg'), # doctest: +ELLIPSIS
Running setup script 'myegg/setup.py'.
...

>>> mkdir('baregg')
>>> write('baregg', 'setup.py',
... '''
... from setuptools import setup
... setup(name='baregg', version='1.0',)
... ''')
>>> write('baregg', 'README', '')
>>> print system(buildout+' setup baregg bdist_egg'), # doctest: +ELLIPSIS
Running setup script 'baregg/setup.py'.
...

现在让我们创建一个buildout来安装egg并使用buildout.eggscleaner

>>> write('buildout.cfg',
... '''
... [buildout]
... index = http://pypi.python.org/simple
... extensions = buildout.eggscleaner
... eggs-directory = ${buildout:directory}/eggs
... parts = foo
... find-links += %s
... [foo]
... recipe = zc.recipe.egg
... eggs = myegg
... ''' % join('myegg', 'dist'))

运行buildout将打印关于未使用egg的信息

>>> print system(buildout), # doctest: +ELLIPSIS
Getting distribution for 'buildout.eggscleaner'.
...

如果我们只想报告未使用的egg,我们将省略‘old-eggs-directory’选项。

>>> write('buildout.cfg',
... '''
... [buildout]
... index = http://pypi.python.org/simple
... extensions = buildout.eggscleaner
... eggs-directory = ${buildout:directory}/eggs
... parts = foo
... find-links += %s
... [foo]
... recipe = zc.recipe.egg
... eggs = baregg
... ''' % join('baregg', 'dist'))
>>> print system(buildout) # doctest:+ELLIPSIS
Uninstalling foo.
Installing foo.
Getting distribution for 'baregg'.
Got baregg 1.0.
*************** BUILDOUT EGGSCLEANER ****************
Don't have a 'old-eggs-directory' set, only reporting
Can add it by adding 'old-eggs-directory = ${buildout:directory}/old-eggs' to your [buildout]
...
Found unused egg: myegg...
*************** /BUILDOUT EGGSCLEANER ****************
<BLANKLINE>

检查确实没有移动或删除任何内容

>>> assert 'myegg' in  ''.join(os.listdir('eggs'))

如果我们想移动未使用的鸡蛋,我们只需添加一个old-eggs-directory选项并指定一个目录目标

>>> write('buildout.cfg',
... '''
... [buildout]
... index = http://pypi.python.org/simple
... extensions = buildout.eggscleaner
... eggs-directory = ${buildout:directory}/eggs
... old-eggs-directory = ${buildout:directory}/old-eggs
... parts = foo
... find-links += %s
... [foo]
... recipe = zc.recipe.egg
... eggs = baregg
... ''' % join('baregg', 'dist'))

>>> print system(buildout) # doctest:+ELLIPSIS
Updating foo.
*************** BUILDOUT EGGSCLEANER ****************
...
Moved unused egg: myegg...
*************** /BUILDOUT EGGSCLEANER ****************
<BLANKLINE>

检查是否确实已将‘myegg’移动

>>> assert 'myegg' not in  ''.join(os.listdir('eggs')), 'myegg has not been moved out of egg dir'
>>> assert 'myegg' in  ''.join(os.listdir('old-eggs')), 'myegg has not been moved to old-egg dir'

并且baregg仍然存在

>>> assert 'baregg' in  ''.join(os.listdir('eggs')), 'baregg is not present in egg dir'

贡献者

  • Peter Uittenbroek,作者

变更历史

0.1.7 (2014-07-18)

  • 提升版本以修复先前发布时的混乱

0.1.6(错误发布)

  • 使eggscleaner在windows下运行 [anton-tagunov]

  • 使eggscleaner与最新的buildout(2.2.1)兼容 [anton-tagunov]

  • 只有当eggs-directory是本地时才运行eggscleaner [thepjot]

0.1.5 (2012-08-17)

  • 重新编写文档 [thepjot]

  • 添加doctest [thepjot]

0.1(内部发布)

  • 创建 [thepjot]

项目详情


下载文件

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

源分发

buildout.eggscleaner-0.1.7.zip (15.8 kB 查看哈希值)

上传时间

支持者