;-*-Doctest-*- ====================== Editable Distributions ====================== The grouparchy.recipe.egg.Editable recipe use the easy_install --editable and --build-directory options to download a source distribution. If no build-directory is specified the part directory will be used. >>> write(sample_buildout, 'buildout.cfg', ... """ ... [buildout] ... parts = demoneeded ... ... [demoneeded] ... recipe = grouparchy.recipe.egg:editable ... find-links = %(server)s ... """ % dict(server=link_server)) >>> print system(buildout), Installing demoneeded. >>> ls(sample_buildout, 'parts', 'demoneeded') d demoneeded If the develop option is true then the distributions will be installed in develop mode. >>> write(sample_buildout, 'buildout.cfg', ... """ ... [buildout] ... parts = demoneeded ... ... [demoneeded] ... recipe = grouparchy.recipe.egg:editable ... find-links = %(server)s ... eggs = demoneeded ... develop = true ... """ % dict(server=link_server)) >>> print system(buildout), Uninstalling demoneeded. Installing demoneeded. Develop: '/sample-buildout/parts/demoneeded/demoneeded' >>> ls(sample_buildout, 'develop-eggs') - demoneeded.egg-link - grouparchy.recipe.egg.egg-link - zc.recipe.egg.egg-link Multiple distributions can be specified. >>> write(sample_buildout, 'buildout.cfg', ... """ ... [buildout] ... parts = demoneeded ... ... [demoneeded] ... recipe = grouparchy.recipe.egg:editable ... find-links = %(server)s ... eggs = demoneeded ... extdemo ... """ % dict(server=link_server)) >>> print system(buildout), Uninstalling demoneeded. Installing demoneeded. >>> ls(sample_buildout, 'parts', 'demoneeded') d demoneeded d extdemo If a new qualifying version is available then the part will be reinstalled. >>> write( ... sample_buildout, 'parts', 'demoneeded', 'demoneeded', ... 'setup.py', """ ... from setuptools import setup ... setup(name='demoneeded', py_modules=['eggrecipedemobeeded'], ... zip_safe=True, version='1.3', author='bob', ... url='bob', author_email='bob') ... """) >>> import os >>> sdist(os.path.join( ... sample_buildout, 'parts', 'demoneeded', 'demoneeded'), ... sample_eggs) >>> print system(buildout), Uninstalling demoneeded. Installing demoneeded. >>> ls(sample_buildout, 'parts', 'demoneeded') d demoneeded d extdemo >>> cat( ... sample_buildout, 'parts', 'demoneeded', 'demoneeded', ... 'setup.py') from setuptools import setup setup(name='demoneeded', py_modules=['eggrecipedemobeeded'], zip_safe=True, version='1.3', author='bob', url='bob', author_email='bob') If the part is not to be reinstalled, running buildout in offline or non-newest mode, the recipe preserves the existing installation. >>> print system(buildout+' -No'), Updating demoneeded. >>> ls(sample_buildout, 'parts', 'demoneeded') d demoneeded d extdemo If the part is to be reinstalled and buildout is run in offline or non-newest mode, the recipe does nothing. >>> write(sample_buildout, 'buildout.cfg', ... """ ... [buildout] ... parts = demoneeded ... ... [demoneeded] ... recipe = grouparchy.recipe.egg:editable ... find-links = %(server)s ... eggs = demoneeded ... """ % dict(server=link_server)) >>> print system(buildout+' -N'), Uninstalling demoneeded. Installing demoneeded. >>> ls(sample_buildout, 'parts') >>> write(sample_buildout, 'buildout.cfg', ... """ ... [buildout] ... parts = demoneeded ... ... [demoneeded] ... recipe = grouparchy.recipe.egg:editable ... find-links = %(server)s ... eggs = demoneeded ... extdemo ... """ % dict(server=link_server)) >>> print system(buildout+' -o'), Uninstalling demoneeded. Installing demoneeded. >>> ls(sample_buildout, 'parts') If build-directory is specified, the source distributions will be extracted there. >>> mkdir(sample_buildout, 'src') >>> write(sample_buildout, 'buildout.cfg', ... """ ... [buildout] ... parts = demoneeded ... ... [demoneeded] ... recipe = grouparchy.recipe.egg:editable ... find-links = %(server)s ... eggs = demoneeded ... extdemo ... build-directory = src ... """ % dict(server=link_server)) >>> print system(buildout), Uninstalling demoneeded. Installing demoneeded. >>> ls(sample_buildout, 'parts') >>> ls(sample_buildout, 'src') d demoneeded d extdemo If the build directory is present, it will not be removed when the part is installed preserving any changes. >>> write( ... sample_buildout, 'src', 'demoneeded', 'setup.py', """ ... from setuptools import setup ... setup(name='demoneeded', py_modules=['eggrecipedemobeeded'], ... zip_safe=True, version='1.4', author='bob', ... url='bob', author_email='bob') ... """) >>> write(sample_buildout, 'buildout.cfg', ... """ ... [buildout] ... parts = demo ... ... [demo] ... recipe = grouparchy.recipe.egg:editable ... find-links = %(server)s ... eggs = demoneeded ... extdemo ... build-directory = src ... """ % dict(server=link_server)) >>> print system(buildout), Uninstalling demoneeded. Installing demo. >>> ls(sample_buildout, 'src') d demoneeded d extdemo >>> cat( ... sample_buildout, 'src', 'demoneeded', 'setup.py') from setuptools import setup setup(name='demoneeded', py_modules=['eggrecipedemobeeded'], zip_safe=True, version='1.4', author='bob', url='bob', author_email='bob')