[zc.buildout] borrowing another part's eggs

Is there a way for a recipe to pick another part's dependencies so that it can do the sys.path[0:0] = [...] magic that zc.buildout.easy_install.scripts does. I'm trying to add functionality to a zc.recipe.egg buildout by writing a recipe but I'm finding I want to use the working_set configured in the zc.recipe.egg part. E.g. """ [buildout] develop-eggs = recipes parts = foo bar [foo] recipe = zc.recipe.egg eggs = ... [bar] recipe = recipes:myrecipe # I want to create scripts that include the eggs installed in foo eggs_from = foo ... """ At the moment the only option I can see is: 1. Grab config options from the [foo] section and re-parse all options relating to egg configuration (eggs/dependency-links/etc.) 2. Call zc.recipe.easy_install.install() to get a working set. 3. Write sys.path[0:0] = [...] into my scripts based on the new working set. It seems a little redundant but the zc.buildout.easy_install.scripts API doesn't quite do what I want. Thanks, Stephen. --- Stephen Pascoe +44 (0)1235 445980 British Atmospheric Data Centre Rutherford Appleton Laboratory -- Scanned by iCritical.

On Jan 20, 2009, at 11:37 AM, Pascoe, S (Stephen) wrote:
Is there a way for a recipe to pick another part's dependencies so that it can do the sys.path[0:0] = [...] magic that zc.buildout.easy_install.scripts does. I'm trying to add functionality to a zc.recipe.egg buildout by writing a recipe but I'm finding I want to use the working_set configured in the zc.recipe.egg part. E.g.
""" [buildout] develop-eggs = recipes parts = foo bar
[foo] recipe = zc.recipe.egg eggs = ...
[bar] recipe = recipes:myrecipe # I want to create scripts that include the eggs installed in foo eggs_from = foo ... """
At the moment the only option I can see is:
1. Grab config options from the [foo] section and re-parse all options relating to egg configuration (eggs/dependency-links/etc.) 2. Call zc.recipe.easy_install.install() to get a working set. 3. Write sys.path[0:0] = [...] into my scripts based on the new working set.
It seems a little redundant but the zc.buildout.easy_install.scripts API doesn't quite do what I want.
You can have your recipe extend the zc.recipe.egg:scripts recipe. See http://pypi.python.org/pypi/zc.recipe.egg#egg-recipe-api-for-other-recipes zc.recipe.testrunner is one of several examples of of doing this. Then, you'd have: [bar] recipe = recipes:myrecipe eggs = ${foo:eggs} ... Jim -- Jim Fulton Zope Corporation
participants (2)
-
Jim Fulton
-
Pascoe, S (Stephen)