A recipe to simulate eggs for non eggs modules installed at python level
Project description
Support
Documentation: http://pypi.python.org/pypi/collective.recipe.mockedeggs
Code repository: https://svn.plone.org/svn/collective/collective.recipe.mockedeggs/trunk
Questions and comments to thomas.desvenain at gmail.com
Detailed Documentation
Usage
Sometimes you can’t add eggs through your buildout engine or easy_install, for example if some dev libraries are lacking on your system, or are too old, etc.
But you can install module directly on your system using your system’s packaging utility (port install python-xxx, apt-get install python-xxx or with .msi installers for Windows. In example python-ldap or lxml are somehow difficult to install on Windows using source eggs, and are usually available as binary installers.
Then, though you get all you need in your python environment, your buildout may fail because an egg is missing.
This recipe will make buildout believe that such missing eggs are available and installed, when your app will use the system wide Pyhton packages you installed by your way.
Yes, I know you should usually not do this but sometimes there’s no other (easy) way to have your buildout completed.
How-to
You have to add ON TOP OF YOUR PARTS a collective.recipe.mockedeggs recipe part:
[buildout] parts = mocked-eggs other parts... [mocked-eggs] recipe=collective.recipe.mockedeggs
The recipe supports the following options:
- mocked-eggs
The list of eggs you want to mock, with their version number, as for example:
mocked-eggs = python-ldap=2.3.10 Markdown = 1.7
Example usage
We’ll start by creating a buildout that uses the recipe:
>>> write('buildout.cfg', ... """ ... [buildout] ... parts = mocked-eggs-test ... zopepy ... ... eggs = mocked1 ... mocked2 ... ... [mocked-eggs-test] ... recipe = collective.recipe.mockedeggs ... mocked-eggs = ... mocked1=1.0 ... mocked2= 2.0 ... ... [zopepy] ... recipe = zc.recipe.egg ... interpreter = zopepy ... eggs = mocked1 ... mocked2 ... ... """)
Running the buildout gives us
>>> print 'start...\n', system(buildout) start... Installing mocked-eggs-test. mocked-eggs-test: Mocked eggs mocked1, mocked2. ... >>> import os >>> os.path.exists('mocked-eggs-test') True >>> os.path.exists('mocked-eggs-test/fake-mocked1') True >>> os.path.exists('mocked-eggs-test/fake-mocked2') True >>> setup1 = open('mocked-eggs-test/fake-mocked1/setup.py').read() >>> '1.0' in setup1 True >>> "'mocked1'" in setup1 True >>> binary = open('bin/zopepy', 'r').read() >>> 'mocked-eggs-test/fake-mocked1' in binary True
Contributors
“Thomas Desvenain”, Author
“Gilles Lenfant”, Contributor
Change history
1.0rc1 23/03/2010
we can have spaces in mocked eggs declaration (myegg = 2.0 is allowed)
better documentation [glenfant,tdesvenain]
1.0a1 10/03/2010
Initial release [tdesvenain]
Created recipe with ZopeSkel
Download
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for collective.recipe.mockedeggs-1.0rc1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | c03c85408059a69bf712e0fbfd6d151a8aef4960fdfbe9dcc021b1ac85877ef0 |
|
MD5 | 3aa5b5d4b4d258e80ba78934f15e877b |
|
BLAKE2b-256 | a447470f72c66bddcb68e02413f1c79bea5faf7770bc1504b7c389d8f439bc4b |