将未使用的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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e88a5929afd22d7b8b6ae932f12bfbe3c23294431c18cd7015e5c6200aef024d |
|
MD5 | 09faef8c498742bdeacac9d83f887e75 |
|
BLAKE2b-256 | 1b4a82df40613c58d939d8bf7c3e25aefc6ca5b8ce9c6fa87f5b771c29af5d6d |