summaryrefslogtreecommitdiff
path: root/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe
diff options
context:
space:
mode:
Diffstat (limited to 'eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe')
-rw-r--r--eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/__init__.py1
-rw-r--r--eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/__init__.pyobin0 -> 268 bytes
-rw-r--r--eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/README.txt645
-rw-r--r--eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/__init__.py2
-rw-r--r--eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/__init__.pyobin0 -> 376 bytes
-rw-r--r--eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/api.txt152
-rw-r--r--eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/custom.py170
-rw-r--r--eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/custom.pyobin0 -> 5902 bytes
-rw-r--r--eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/custom.txt579
-rw-r--r--eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/egg.py230
-rw-r--r--eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/egg.pyobin0 -> 7900 bytes
-rw-r--r--eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/selecting-python.txt140
-rw-r--r--eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/tests.py169
-rw-r--r--eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/tests.pyobin0 -> 5797 bytes
14 files changed, 2088 insertions, 0 deletions
diff --git a/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/__init__.py b/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/__init__.py
new file mode 100644
index 0000000..de40ea7
--- /dev/null
+++ b/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/__init__.py
@@ -0,0 +1 @@
+__import__('pkg_resources').declare_namespace(__name__)
diff --git a/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/__init__.pyo b/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/__init__.pyo
new file mode 100644
index 0000000..b3c3c15
--- /dev/null
+++ b/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/__init__.pyo
Binary files differ
diff --git a/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/README.txt b/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/README.txt
new file mode 100644
index 0000000..1a43f9e
--- /dev/null
+++ b/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/README.txt
@@ -0,0 +1,645 @@
+Installation of distributions as eggs
+=====================================
+
+The zc.recipe.egg:eggs recipe can be used to install various types if
+distutils distributions as eggs. It takes a number of options:
+
+eggs
+ A list of eggs to install given as one or more setuptools
+ requirement strings. Each string must be given on a separate
+ line.
+
+find-links
+ A list of URLs, files, or directories to search for distributions.
+
+index
+ The URL of an index server, or almost any other valid URL. :)
+
+ If not specified, the Python Package Index,
+ http://cheeseshop.python.org/pypi, is used. You can specify an
+ alternate index with this option. If you use the links option and
+ if the links point to the needed distributions, then the index can
+ be anything and will be largely ignored. In the examples, here,
+ we'll just point to an empty directory on our link server. This
+ will make our examples run a little bit faster.
+
+python
+ The name of a section to get the Python executable from.
+ If not specified, then the buildout python option is used. The
+ Python executable is found in the executable option of the named
+ section.
+
+We have a link server that has a number of distributions:
+
+ >>> print get(link_server),
+ <html><body>
+ <a href="bigdemo-0.1-py2.3.egg">bigdemo-0.1-py2.3.egg</a><br>
+ <a href="demo-0.1-py2.3.egg">demo-0.1-py2.3.egg</a><br>
+ <a href="demo-0.2-py2.3.egg">demo-0.2-py2.3.egg</a><br>
+ <a href="demo-0.3-py2.3.egg">demo-0.3-py2.3.egg</a><br>
+ <a href="demo-0.4c1-py2.3.egg">demo-0.4c1-py2.3.egg</a><br>
+ <a href="demoneeded-1.0.zip">demoneeded-1.0.zip</a><br>
+ <a href="demoneeded-1.1.zip">demoneeded-1.1.zip</a><br>
+ <a href="demoneeded-1.2c1.zip">demoneeded-1.2c1.zip</a><br>
+ <a href="extdemo-1.4.zip">extdemo-1.4.zip</a><br>
+ <a href="index/">index/</a><br>
+ <a href="other-1.0-py2.3.egg">other-1.0-py2.3.egg</a><br>
+ </body></html>
+
+We have a sample buildout. Let's update its configuration file to
+install the demo package.
+
+ >>> write(sample_buildout, 'buildout.cfg',
+ ... """
+ ... [buildout]
+ ... parts = demo
+ ...
+ ... [demo]
+ ... recipe = zc.recipe.egg:eggs
+ ... eggs = demo<0.3
+ ... find-links = %(server)s
+ ... index = %(server)s/index
+ ... """ % dict(server=link_server))
+
+In this example, we limited ourselves to revisions before 0.3. We also
+specified where to find distributions using the find-links option.
+
+Let's run the buildout:
+
+ >>> import os
+ >>> print system(buildout),
+ Installing demo.
+ Getting distribution for 'demo<0.3'.
+ Got demo 0.2.
+ Getting distribution for 'demoneeded'.
+ Got demoneeded 1.2c1.
+
+Now, if we look at the buildout eggs directory:
+
+ >>> ls(sample_buildout, 'eggs')
+ - demo-0.2-py2.3.egg
+ - demoneeded-1.2c1-py2.3.egg
+ - setuptools-0.6-py2.3.egg
+ - zc.buildout-1.0-py2.3.egg
+
+We see that we got an egg for demo that met the requirement, as well
+as the egg for demoneeded, which demo requires. (We also see an egg
+link for the recipe in the develop-eggs directory. This egg link was
+actually created as part of the sample buildout setup. Normally, when
+using the recipe, you'll get a regular egg installation.)
+
+Script generation
+-----------------
+
+The demo egg defined a script, but we didn't get one installed:
+
+ >>> ls(sample_buildout, 'bin')
+ - buildout
+
+If we want scripts provided by eggs to be installed, we should use the
+scripts recipe:
+
+ >>> write(sample_buildout, 'buildout.cfg',
+ ... """
+ ... [buildout]
+ ... parts = demo
+ ...
+ ... [demo]
+ ... recipe = zc.recipe.egg:scripts
+ ... eggs = demo<0.3
+ ... find-links = %(server)s
+ ... index = %(server)s/index
+ ... """ % dict(server=link_server))
+
+ >>> print system(buildout),
+ Uninstalling demo.
+ Installing demo.
+ Generated script '/sample-buildout/bin/demo'.
+
+Now we also see the script defined by the demo script:
+
+ >>> ls(sample_buildout, 'bin')
+ - buildout
+ - demo
+
+The scripts recipe defines some additional options:
+
+entry-points
+ A list of entry-point identifiers of the form:
+
+ name=module:attrs
+
+ where name is a script name, module is a dotted name resolving to a
+ module name, and attrs is a dotted name resolving to a callable
+ object within a module.
+
+ This option is useful when working with distributions that don't
+ declare entry points, such as distributions not written to work
+ with setuptools.
+
+ Examples can be seen in the section "Specifying entry points" below.
+
+scripts
+ Control which scripts are generated. The value should be a list of
+ zero or more tokens. Each token is either a name, or a name
+ followed by an '=' and a new name. Only the named scripts are
+ generated. If no tokens are given, then script generation is
+ disabled. If the option isn't given at all, then all scripts
+ defined by the named eggs will be generated.
+
+dependent-scripts
+ If set to the string "true", scripts will be generated for all
+ required eggs in addition to the eggs specifically named.
+
+interpreter
+ The name of a script to generate that allows access to a Python
+ interpreter that has the path set based on the eggs installed.
+ (See the ``z3c.recipe.scripts`` recipe for a more full-featured
+ interpreter.)
+
+extra-paths
+ Extra paths to include in a generated script.
+
+initialization
+ Specify some Python initialization code. This is very limited. In
+ particular, be aware that leading whitespace is stripped from the
+ code given.
+
+arguments
+ Specify some arguments to be passed to entry points as Python source.
+
+relative-paths
+ If set to true, then egg paths will be generated relative to the
+ script path. This allows a buildout to be moved without breaking
+ egg paths. This option can be set in either the script section or
+ in the buildout section.
+
+Let's add an interpreter option:
+
+ >>> write(sample_buildout, 'buildout.cfg',
+ ... """
+ ... [buildout]
+ ... parts = demo
+ ...
+ ... [demo]
+ ... recipe = zc.recipe.egg
+ ... eggs = demo<0.3
+ ... find-links = %(server)s
+ ... index = %(server)s/index
+ ... interpreter = py-demo
+ ... """ % dict(server=link_server))
+
+Note that we omitted the entry point name from the recipe
+specification. We were able to do this because the scripts recipe is
+the default entry point for the zc.recipe.egg egg.
+
+ >>> print system(buildout),
+ Uninstalling demo.
+ Installing demo.
+ Generated script '/sample-buildout/bin/demo'.
+ Generated interpreter '/sample-buildout/bin/py-demo'.
+
+Now we also get a py-demo script for giving us a Python prompt with
+the path for demo and any eggs it depends on included in sys.path.
+This is useful for debugging and testing.
+
+ >>> ls(sample_buildout, 'bin')
+ - buildout
+ - demo
+ - py-demo
+
+If we run the demo script, it prints out some minimal data:
+
+ >>> print system(join(sample_buildout, 'bin', 'demo')),
+ 2 2
+
+The value it prints out happens to be some values defined in the
+modules installed.
+
+We can also run the py-demo script. Here we'll just print out
+the bits if the path added to reflect the eggs:
+
+ >>> print system(join(sample_buildout, 'bin', 'py-demo'),
+ ... """import os, sys
+ ... for p in sys.path:
+ ... if 'demo' in p:
+ ... print os.path.basename(p)
+ ...
+ ... """).replace('>>> ', '').replace('... ', ''),
+ ... # doctest: +ELLIPSIS +NORMALIZE_WHITESPACE
+ demo-0.2-py2.4.egg
+ demoneeded-1.2c1-py2.4.egg
+
+Egg updating
+------------
+
+The recipe normally gets the most recent distribution that satisfies the
+specification. It won't do this is the buildout is either in
+non-newest mode or in offline mode. To see how this works, we'll
+remove the restriction on demo:
+
+ >>> write(sample_buildout, 'buildout.cfg',
+ ... """
+ ... [buildout]
+ ... parts = demo
+ ...
+ ... [demo]
+ ... recipe = zc.recipe.egg
+ ... find-links = %(server)s
+ ... index = %(server)s/index
+ ... """ % dict(server=link_server))
+
+and run the buildout in non-newest mode:
+
+ >>> print system(buildout+' -N'),
+ Uninstalling demo.
+ Installing demo.
+ Generated script '/sample-buildout/bin/demo'.
+
+Note that we removed the eggs option, and the eggs defaulted to the
+part name. Because we removed the eggs option, the demo was
+reinstalled.
+
+We'll also run the buildout in off-line mode:
+
+ >>> print system(buildout+' -o'),
+ Updating demo.
+
+We didn't get an update for demo:
+
+ >>> ls(sample_buildout, 'eggs')
+ - demo-0.2-py2.3.egg
+ - demoneeded-1.2c1-py2.3.egg
+ - setuptools-0.6-py2.3.egg
+ - zc.buildout-1.0-py2.3.egg
+
+If we run the buildout on the default online and newest modes,
+we'll get an update for demo:
+
+ >>> print system(buildout),
+ Updating demo.
+ Getting distribution for 'demo'.
+ Got demo 0.4c1.
+ Generated script '/sample-buildout/bin/demo'.
+
+Then we'll get a new demo egg:
+
+ >>> ls(sample_buildout, 'eggs')
+ - demo-0.2-py2.3.egg
+ - demo-0.4c1-py2.3.egg
+ - demoneeded-1.2c1-py2.3.egg
+ - setuptools-0.6-py2.4.egg
+ - zc.buildout-1.0-py2.4.egg
+
+The script is updated too:
+
+ >>> print system(join(sample_buildout, 'bin', 'demo')),
+ 4 2
+
+Controlling script generation
+-----------------------------
+
+You can control which scripts get generated using the scripts option.
+For example, to suppress scripts, use the scripts option without any
+arguments:
+
+ >>> write(sample_buildout, 'buildout.cfg',
+ ... """
+ ... [buildout]
+ ... parts = demo
+ ...
+ ... [demo]
+ ... recipe = zc.recipe.egg
+ ... find-links = %(server)s
+ ... index = %(server)s/index
+ ... scripts =
+ ... """ % dict(server=link_server))
+
+
+ >>> print system(buildout),
+ Uninstalling demo.
+ Installing demo.
+
+ >>> ls(sample_buildout, 'bin')
+ - buildout
+
+You can also control the name used for scripts:
+
+ >>> write(sample_buildout, 'buildout.cfg',
+ ... """
+ ... [buildout]
+ ... parts = demo
+ ...
+ ... [demo]
+ ... recipe = zc.recipe.egg
+ ... find-links = %(server)s
+ ... index = %(server)s/index
+ ... scripts = demo=foo
+ ... """ % dict(server=link_server))
+
+ >>> print system(buildout),
+ Uninstalling demo.
+ Installing demo.
+ Generated script '/sample-buildout/bin/foo'.
+
+ >>> ls(sample_buildout, 'bin')
+ - buildout
+ - foo
+
+Specifying extra script paths
+-----------------------------
+
+If we need to include extra paths in a script, we can use the
+extra-paths option:
+
+ >>> write(sample_buildout, 'buildout.cfg',
+ ... """
+ ... [buildout]
+ ... parts = demo
+ ...
+ ... [demo]
+ ... recipe = zc.recipe.egg
+ ... find-links = %(server)s
+ ... index = %(server)s/index
+ ... scripts = demo=foo
+ ... extra-paths =
+ ... /foo/bar
+ ... ${buildout:directory}/spam
+ ... """ % dict(server=link_server))
+
+ >>> print system(buildout),
+ Uninstalling demo.
+ Installing demo.
+ Generated script '/sample-buildout/bin/foo'.
+
+Let's look at the script that was generated:
+
+ >>> cat(sample_buildout, 'bin', 'foo') # doctest: +NORMALIZE_WHITESPACE
+ #!/usr/local/bin/python2.4
+ <BLANKLINE>
+ import sys
+ sys.path[0:0] = [
+ '/sample-buildout/eggs/demo-0.4c1-py2.4.egg',
+ '/sample-buildout/eggs/demoneeded-1.2c1-py2.4.egg',
+ '/foo/bar',
+ '/sample-buildout/spam',
+ ]
+ <BLANKLINE>
+ import eggrecipedemo
+ <BLANKLINE>
+ if __name__ == '__main__':
+ eggrecipedemo.main()
+
+Relative egg paths
+------------------
+
+If the relative-paths option is specified with a true value, then
+paths will be generated relative to the script. This is useful when
+you want to be able to move a buildout directory around without
+breaking scripts.
+
+ >>> write(sample_buildout, 'buildout.cfg',
+ ... """
+ ... [buildout]
+ ... parts = demo
+ ...
+ ... [demo]
+ ... recipe = zc.recipe.egg
+ ... find-links = %(server)s
+ ... index = %(server)s/index
+ ... scripts = demo=foo
+ ... relative-paths = true
+ ... extra-paths =
+ ... /foo/bar
+ ... ${buildout:directory}/spam
+ ... """ % dict(server=link_server))
+
+ >>> print system(buildout),
+ Uninstalling demo.
+ Installing demo.
+ Generated script '/sample-buildout/bin/foo'.
+
+Let's look at the script that was generated:
+
+ >>> cat(sample_buildout, 'bin', 'foo') # doctest: +NORMALIZE_WHITESPACE
+ #!/usr/local/bin/python2.4
+ <BLANKLINE>
+ import os
+ <BLANKLINE>
+ join = os.path.join
+ base = os.path.dirname(os.path.abspath(os.path.realpath(__file__)))
+ base = os.path.dirname(base)
+ <BLANKLINE>
+ import sys
+ sys.path[0:0] = [
+ join(base, 'eggs/demo-0.4c1-pyN.N.egg'),
+ join(base, 'eggs/demoneeded-1.2c1-pyN.N.egg'),
+ '/foo/bar',
+ join(base, 'spam'),
+ ]
+ <BLANKLINE>
+ import eggrecipedemo
+ <BLANKLINE>
+ if __name__ == '__main__':
+ eggrecipedemo.main()
+
+You can specify relative paths in the buildout section, rather than in
+each individual script section:
+
+
+ >>> write(sample_buildout, 'buildout.cfg',
+ ... """
+ ... [buildout]
+ ... parts = demo
+ ... relative-paths = true
+ ...
+ ... [demo]
+ ... recipe = zc.recipe.egg
+ ... find-links = %(server)s
+ ... index = %(server)s/index
+ ... scripts = demo=foo
+ ... extra-paths =
+ ... /foo/bar
+ ... ${buildout:directory}/spam
+ ... """ % dict(server=link_server))
+
+ >>> print system(buildout),
+ Uninstalling demo.
+ Installing demo.
+ Generated script '/sample-buildout/bin/foo'.
+
+ >>> cat(sample_buildout, 'bin', 'foo') # doctest: +NORMALIZE_WHITESPACE
+ #!/usr/local/bin/python2.4
+ <BLANKLINE>
+ import os
+ <BLANKLINE>
+ join = os.path.join
+ base = os.path.dirname(os.path.abspath(os.path.realpath(__file__)))
+ base = os.path.dirname(base)
+ <BLANKLINE>
+ import sys
+ sys.path[0:0] = [
+ join(base, 'eggs/demo-0.4c1-pyN.N.egg'),
+ join(base, 'eggs/demoneeded-1.2c1-pyN.N.egg'),
+ '/foo/bar',
+ join(base, 'spam'),
+ ]
+ <BLANKLINE>
+ import eggrecipedemo
+ <BLANKLINE>
+ if __name__ == '__main__':
+ eggrecipedemo.main()
+
+Specifying initialialization code and arguments
+-----------------------------------------------
+
+Sometimes, we need to do more than just calling entry points. We can
+use the initialialization and arguments options to specify extra code
+to be included in generated scripts:
+
+
+ >>> write(sample_buildout, 'buildout.cfg',
+ ... """
+ ... [buildout]
+ ... parts = demo
+ ...
+ ... [demo]
+ ... recipe = zc.recipe.egg
+ ... find-links = %(server)s
+ ... index = %(server)s/index
+ ... scripts = demo=foo
+ ... extra-paths =
+ ... /foo/bar
+ ... ${buildout:directory}/spam
+ ... initialization = a = (1, 2
+ ... 3, 4)
+ ... arguments = a, 2
+ ... """ % dict(server=link_server))
+
+ >>> print system(buildout),
+ Uninstalling demo.
+ Installing demo.
+ Generated script '/sample-buildout/bin/foo'.
+
+ >>> cat(sample_buildout, 'bin', 'foo') # doctest: +NORMALIZE_WHITESPACE
+ #!/usr/local/bin/python2.4
+ <BLANKLINE>
+ import sys
+ sys.path[0:0] = [
+ '/sample-buildout/eggs/demo-0.4c1-py2.4.egg',
+ '/sample-buildout/eggs/demoneeded-1.2c1-py2.4.egg',
+ '/foo/bar',
+ '/sample-buildout/spam',
+ ]
+ <BLANKLINE>
+ a = (1, 2
+ 3, 4)
+ <BLANKLINE>
+ import eggrecipedemo
+ <BLANKLINE>
+ if __name__ == '__main__':
+ eggrecipedemo.main(a, 2)
+
+Here we see that the initialization code we specified was added after
+setting the path. Note, as mentioned above, that leading whitespace
+has been stripped. Similarly, the argument code we specified was
+added in the entry point call (to main).
+
+Specifying entry points
+-----------------------
+
+Scripts can be generated for entry points declared explicitly. We can
+declare entry points using the entry-points option:
+
+ >>> write(sample_buildout, 'buildout.cfg',
+ ... """
+ ... [buildout]
+ ... parts = demo
+ ...
+ ... [demo]
+ ... recipe = zc.recipe.egg
+ ... find-links = %(server)s
+ ... index = %(server)s/index
+ ... extra-paths =
+ ... /foo/bar
+ ... ${buildout:directory}/spam
+ ... entry-points = alt=eggrecipedemo:alt other=foo.bar:a.b.c
+ ... """ % dict(server=link_server))
+
+ >>> print system(buildout),
+ Uninstalling demo.
+ Installing demo.
+ Generated script '/sample-buildout/bin/demo'.
+ Generated script '/sample-buildout/bin/alt'.
+ Generated script '/sample-buildout/bin/other'.
+
+ >>> ls(sample_buildout, 'bin')
+ - alt
+ - buildout
+ - demo
+ - other
+
+ >>> cat(sample_buildout, 'bin', 'other') # doctest: +NORMALIZE_WHITESPACE
+ #!/usr/local/bin/python2.4
+ <BLANKLINE>
+ import sys
+ sys.path[0:0] = [
+ '/sample-buildout/eggs/demo-0.4c1-py2.4.egg',
+ '/sample-buildout/eggs/demoneeded-1.2c1-py2.4.egg',
+ '/foo/bar',
+ '/sample-buildout/spam',
+ ]
+ <BLANKLINE>
+ import foo.bar
+ <BLANKLINE>
+ if __name__ == '__main__':
+ foo.bar.a.b.c()
+
+Generating all scripts
+----------------------
+
+The `bigdemo` package doesn't have any scripts, but it requires the `demo`
+package, which does have a script. Specify `dependent-scripts = true` to
+generate all scripts in required packages:
+
+ >>> write(sample_buildout, 'buildout.cfg',
+ ... """
+ ... [buildout]
+ ... parts = bigdemo
+ ...
+ ... [bigdemo]
+ ... recipe = zc.recipe.egg
+ ... find-links = %(server)s
+ ... index = %(server)s/index
+ ... dependent-scripts = true
+ ... """ % dict(server=link_server))
+ >>> print system(buildout+' -N'),
+ Uninstalling demo.
+ Installing bigdemo.
+ Getting distribution for 'bigdemo'.
+ Got bigdemo 0.1.
+ Generated script '/sample-buildout/bin/demo'.
+
+Offline mode
+------------
+
+If the buildout offline option is set to "true", then no attempt will
+be made to contact an index server:
+
+ >>> write(sample_buildout, 'buildout.cfg',
+ ... """
+ ... [buildout]
+ ... parts = demo
+ ... offline = true
+ ...
+ ... [demo]
+ ... recipe = zc.recipe.egg
+ ... index = eek!
+ ... scripts = demo=foo
+ ... """ % dict(server=link_server))
+
+ >>> print system(buildout),
+ Uninstalling bigdemo.
+ Installing demo.
+ Generated script '/sample-buildout/bin/foo'.
+
diff --git a/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/__init__.py b/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/__init__.py
new file mode 100644
index 0000000..b63fb85
--- /dev/null
+++ b/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/__init__.py
@@ -0,0 +1,2 @@
+from zc.recipe.egg.egg import Egg, Scripts, Eggs
+from zc.recipe.egg.custom import Custom, Develop
diff --git a/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/__init__.pyo b/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/__init__.pyo
new file mode 100644
index 0000000..73c3321
--- /dev/null
+++ b/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/__init__.pyo
Binary files differ
diff --git a/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/api.txt b/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/api.txt
new file mode 100644
index 0000000..d3da306
--- /dev/null
+++ b/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/api.txt
@@ -0,0 +1,152 @@
+Egg Recipe API for other Recipes
+================================
+
+It is common for recipes to accept a collection of egg specifications
+and generate scripts based on the resulting working sets. The egg
+recipe provides an API that other recipes can use.
+
+A recipe can reuse the egg recipe, supporting the eggs, find-links,
+index, extra-paths, and python options. This is done by creating an
+egg recipe instance in a recipes's contructor. In the recipe's
+install script, the egg-recipe instance's working_set method is used
+to collect the requested eggs and working set.
+
+To illustrate, we create a sample recipe that is a very thin layer
+around the egg recipe:
+
+ >>> mkdir(sample_buildout, 'sample')
+ >>> write(sample_buildout, 'sample', 'sample.py',
+ ... """
+ ... import logging, os
+ ... import zc.recipe.egg
+ ...
+ ... class Sample:
+ ...
+ ... def __init__(self, buildout, name, options):
+ ... self.egg = zc.recipe.egg.Scripts(buildout, name, options)
+ ... self.name = name
+ ... self.options = options
+ ...
+ ... def install(self):
+ ... extras = self.options['extras'].split()
+ ... requirements, ws = self.egg.working_set(extras)
+ ... print 'Part:', self.name
+ ... print 'Egg requirements:'
+ ... for r in requirements:
+ ... print r
+ ... print 'Working set:'
+ ... for d in ws:
+ ... print d
+ ... print 'extra paths:', self.egg.extra_paths
+ ... return ()
+ ...
+ ... update = install
+ ... """)
+
+Here we instantiated the egg recipe in the constructor, saving it in
+an attribute. This also initialized the options dictionary.
+
+In our install method, we called the working_set method on the
+instance we saved. The working_set method takes an optional sequence
+of extra requirements to be included in the working set.
+
+ >>> write(sample_buildout, 'sample', 'setup.py',
+ ... """
+ ... from setuptools import setup
+ ...
+ ... setup(
+ ... name = "sample",
+ ... entry_points = {'zc.buildout': ['default = sample:Sample']},
+ ... install_requires = 'zc.recipe.egg',
+ ... )
+ ... """)
+
+
+ >>> write(sample_buildout, 'sample', 'README.txt', " ")
+
+ >>> write(sample_buildout, 'buildout.cfg',
+ ... """
+ ... [buildout]
+ ... develop = sample
+ ... parts = sample-part
+ ...
+ ... [sample-part]
+ ... recipe = sample
+ ... eggs = demo<0.3
+ ... find-links = %(server)s
+ ... index = %(server)sindex
+ ... extras = other
+ ... """ % dict(server=link_server))
+
+ >>> import os
+ >>> os.chdir(sample_buildout)
+ >>> buildout = os.path.join(sample_buildout, 'bin', 'buildout')
+ >>> print system(buildout + ' -q'),
+ Part: sample-part
+ Egg requirements:
+ demo<0.3
+ Working set:
+ demo 0.2
+ other 1.0
+ demoneeded 1.2c1
+ extra paths: []
+
+We can see that the options were augmented with additional data
+computed by the egg recipe by looking at .installed.cfg:
+
+ >>> cat(sample_buildout, '.installed.cfg')
+ ... # doctest: +NORMALIZE_WHITESPACE
+ [buildout]
+ installed_develop_eggs = /sample-buildout/develop-eggs/sample.egg-link
+ parts = sample-part
+ <BLANKLINE>
+ [sample-part]
+ __buildout_installed__ =
+ __buildout_signature__ = sample-6aWMvV2EJ9Ijq+bR8ugArQ==
+ zc.recipe.egg-cAsnudgkduAa/Fd+WJIM6Q==
+ setuptools-0.6-py2.4.egg
+ zc.buildout-+rYeCcmFuD1K/aB77XTj5A==
+ _b = /sample-buildout/bin
+ _d = /sample-buildout/develop-eggs
+ _e = /sample-buildout/eggs
+ bin-directory = /sample-buildout/bin
+ develop-eggs-directory = /sample-buildout/develop-eggs
+ eggs = demo<0.3
+ eggs-directory = /sample-buildout/eggs
+ executable = /usr/local/bin/python2.3
+ extras = other
+ find-links = http://localhost:27071/
+ index = http://localhost:27071/index
+ python = buildout
+ recipe = sample
+
+If we use the extra-paths option:
+
+ >>> write(sample_buildout, 'buildout.cfg',
+ ... """
+ ... [buildout]
+ ... develop = sample
+ ... parts = sample-part
+ ...
+ ... [sample-part]
+ ... recipe = sample
+ ... eggs = demo<0.3
+ ... find-links = %(server)s
+ ... index = %(server)sindex
+ ... extras = other
+ ... extra-paths = /foo/bar
+ ... /spam/eggs
+ ... """ % dict(server=link_server))
+
+Then we'll see that reflected in the extra_paths attribute in the egg
+recipe instance:
+
+ >>> print system(buildout + ' -q'),
+ Part: sample-part
+ Egg requirements:
+ demo<0.3
+ Working set:
+ demo 0.2
+ other 1.0
+ demoneeded 1.2c1
+ extra paths: ['/foo/bar', '/spam/eggs']
diff --git a/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/custom.py b/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/custom.py
new file mode 100644
index 0000000..6616ed1
--- /dev/null
+++ b/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/custom.py
@@ -0,0 +1,170 @@
+##############################################################################
+#
+# Copyright (c) 2006 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Install packages as eggs
+
+$Id: custom.py 84019 2008-02-18 12:41:04Z zagy $
+"""
+
+import logging, os, re, zipfile
+import zc.buildout.easy_install
+
+logger = logging.getLogger(__name__)
+
+
+class Base:
+
+ def __init__(self, buildout, name, options):
+ self.name, self.options = name, options
+
+ options['_d'] = buildout['buildout']['develop-eggs-directory']
+
+ python = options.get('python', buildout['buildout']['python'])
+ options['executable'] = buildout[python]['executable']
+
+ self.build_ext = build_ext(buildout, options)
+
+ def update(self):
+ return self.install()
+
+
+class Custom(Base):
+
+ def __init__(self, buildout, name, options):
+ Base.__init__(self, buildout, name, options)
+
+ links = options.get('find-links',
+ buildout['buildout'].get('find-links'))
+ if links:
+ links = links.split()
+ options['find-links'] = '\n'.join(links)
+ else:
+ links = ()
+ self.links = links
+
+ index = options.get('index', buildout['buildout'].get('index'))
+ if index is not None:
+ options['index'] = index
+ self.index = index
+
+ environment_section = options.get('environment')
+ if environment_section:
+ self.environment = buildout[environment_section]
+ else:
+ self.environment = {}
+ environment_data = self.environment.items()
+ environment_data.sort()
+ options['_environment-data'] = repr(environment_data)
+
+ options['_e'] = buildout['buildout']['eggs-directory']
+
+ assert options.get('unzip') in ('true', 'false', None)
+
+ if buildout['buildout'].get('offline') == 'true':
+ self.install = lambda: ()
+
+ self.newest = buildout['buildout'].get('newest') == 'true'
+
+ def install(self):
+ options = self.options
+ distribution = options.get('egg')
+ if distribution is None:
+ distribution = options.get('eggs')
+ if distribution is None:
+ distribution = self.name
+ else:
+ logger.warn("The eggs option is deprecated. Use egg instead")
+
+
+ distribution = options.get('egg', options.get('eggs', self.name)
+ ).strip()
+ self._set_environment()
+ try:
+ return zc.buildout.easy_install.build(
+ distribution, options['_d'], self.build_ext,
+ self.links, self.index, options['executable'], [options['_e']],
+ newest=self.newest,
+ )
+ finally:
+ self._restore_environment()
+
+
+ def _set_environment(self):
+ self._saved_environment = {}
+ for key, value in self.environment.items():
+ if key in os.environ:
+ self._saved_environment[key] = os.environ[key]
+ # Interpolate value with variables from environment. Maybe there
+ # should be a general way of doing this in buildout with something
+ # like ${environ:foo}:
+ os.environ[key] = value % os.environ
+
+ def _restore_environment(self):
+ for key in self.environment:
+ if key in self._saved_environment:
+ os.environ[key] = self._saved_environment[key]
+ else:
+ try:
+ del os.environ[key]
+ except KeyError:
+ pass
+
+
+class Develop(Base):
+
+ def __init__(self, buildout, name, options):
+ Base.__init__(self, buildout, name, options)
+ options['setup'] = os.path.join(buildout['buildout']['directory'],
+ options['setup'])
+
+ def install(self):
+ options = self.options
+ return zc.buildout.easy_install.develop(
+ options['setup'], options['_d'], self.build_ext,
+ options['executable'],
+ )
+
+
+def build_ext(buildout, options):
+ result = {}
+ for be_option in ('include-dirs', 'library-dirs', 'rpath'):
+ value = options.get(be_option)
+ if value is None:
+ continue
+ value = [
+ os.path.join(
+ buildout['buildout']['directory'],
+ v.strip()
+ )
+ for v in value.strip().split('\n')
+ if v.strip()
+ ]
+ result[be_option] = os.pathsep.join(value)
+ options[be_option] = os.pathsep.join(value)
+
+ swig = options.get('swig')
+ if swig:
+ options['swig'] = result['swig'] = os.path.join(
+ buildout['buildout']['directory'],
+ swig,
+ )
+
+ for be_option in ('define', 'undef', 'libraries', 'link-objects',
+ 'debug', 'force', 'compiler', 'swig-cpp', 'swig-opts',
+ ):
+ value = options.get(be_option)
+ if value is None:
+ continue
+ result[be_option] = value
+
+ return result
diff --git a/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/custom.pyo b/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/custom.pyo
new file mode 100644
index 0000000..4b4e883
--- /dev/null
+++ b/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/custom.pyo
Binary files differ
diff --git a/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/custom.txt b/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/custom.txt
new file mode 100644
index 0000000..0cf88e6
--- /dev/null
+++ b/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/custom.txt
@@ -0,0 +1,579 @@
+Creating eggs with extensions needing custom build settings
+=============================================================
+
+Sometimes, It's necessary to provide extra control over how an egg is
+created. This is commonly true for eggs with extension modules that
+need to access libraries or include files.
+
+The zc.recipe.egg:custom recipe can be used to define an egg with
+custom build parameters. The currently defined parameters are:
+
+include-dirs
+ A new-line separated list of directories to search for include
+ files.
+
+library-dirs
+ A new-line separated list of directories to search for libraries
+ to link with.
+
+rpath
+ A new-line separated list of directories to search for dynamic libraries
+ at run time.
+
+define
+ A comma-separated list of names of C preprocessor variables to
+ define.
+
+undef
+ A comman separated list of names of C preprocessor variables to
+ undefine.
+
+libraries
+ The name of an additional library to link with. Due to limitations
+ in distutils and desprite the option name, only a single library
+ can be specified.
+
+link-objects
+ The name of an link object to link against. Due to limitations
+ in distutils and desprite the option name, only a single link object
+ can be specified.
+
+debug
+ Compile/link with debugging information
+
+force
+ Forcibly build everything (ignore file timestamps)
+
+compiler
+ Specify the compiler type
+
+swig
+ The path to the swig executable
+
+swig-cpp
+ Make SWIG create C++ files (default is C)
+
+swig-opts
+ List of SWIG command line options
+
+In addition, the following options can be used to specify the egg:
+
+egg
+ An specification for the egg to be created, to install given as a
+ setuptools requirement string. This defaults to the part name.
+
+find-links
+ A list of URLs, files, or directories to search for distributions.
+
+index
+ The URL of an index server, or almost any other valid URL. :)
+
+ If not specified, the Python Package Index,
+ http://cheeseshop.python.org/pypi, is used. You can specify an
+ alternate index with this option. If you use the links option and
+ if the links point to the needed distributions, then the index can
+ be anything and will be largely ignored. In the examples, here,
+ we'll just point to an empty directory on our link server. This
+ will make our examples run a little bit faster.
+
+python
+ The name of a section to get the Python executable from.
+ If not specified, then the buildout python option is used. The
+ Python executable is found in the executable option of the named
+ section.
+
+environment
+ The name of a section with additional environment variables. The
+ environment variables are set before the egg is built.
+
+To illustrate this, we'll define a buildout that builds an egg for a
+package that has a simple extension module::
+
+ #include <Python.h>
+ #include <extdemo.h>
+
+ static PyMethodDef methods[] = {};
+
+ PyMODINIT_FUNC
+ initextdemo(void)
+ {
+ PyObject *m;
+ m = Py_InitModule3("extdemo", methods, "");
+ #ifdef TWO
+ PyModule_AddObject(m, "val", PyInt_FromLong(2));
+ #else
+ PyModule_AddObject(m, "val", PyInt_FromLong(EXTDEMO));
+ #endif
+ }
+
+The extension depends on a system-dependent include file, extdemo.h,
+that defines a constant, EXTDEMO, that is exposed by the extension.
+
+The extension module is available as a source distribution,
+extdemo-1.4.tar.gz, on a distribution server.
+
+We have a sample buildout that we'll add an include directory to with
+the necessary include file:
+
+ >>> mkdir('include')
+ >>> write('include', 'extdemo.h',
+ ... """
+ ... #define EXTDEMO 42
+ ... """)
+
+We'll also update the buildout configuration file to define a part for
+the egg:
+
+ >>> write(sample_buildout, 'buildout.cfg',
+ ... """
+ ... [buildout]
+ ... parts = extdemo
+ ...
+ ... [extdemo]
+ ... recipe = zc.recipe.egg:custom
+ ... find-links = %(server)s
+ ... index = %(server)s/index
+ ... include-dirs = include
+ ...
+ ... """ % dict(server=link_server))
+
+ >>> print system(buildout),
+ Installing extdemo.
+ zip_safe flag not set; analyzing archive contents...
+
+We got the zip_safe warning because the source distribution we used
+wasn't setuptools based and thus didn't set the option.
+
+The egg is created in the develop-eggs directory *not* the eggs
+directory because it depends on buildout-specific parameters and the
+eggs directory can be shared across multiple buildouts.
+
+ >>> ls(sample_buildout, 'develop-eggs')
+ d extdemo-1.4-py2.4-unix-i686.egg
+ - z3c.recipe.scripts.egg-link
+ - zc.recipe.egg.egg-link
+
+Note that no scripts or dependencies are installed. To install
+dependencies or scripts for a custom egg, define another part and use
+the zc.recipe.egg recipe, listing the custom egg as one of the eggs to
+be installed. The zc.recipe.egg recipe will use the installed egg.
+
+Let's define a script that uses out ext demo:
+
+ >>> mkdir('demo')
+ >>> write('demo', 'demo.py',
+ ... """
+ ... import extdemo
+ ... def main():
+ ... print extdemo.val
+ ... """)
+
+ >>> write('demo', 'setup.py',
+ ... """
+ ... from setuptools import setup
+ ... setup(name='demo')
+ ... """)
+
+
+ >>> write('buildout.cfg',
+ ... """
+ ... [buildout]
+ ... develop = demo
+ ... parts = extdemo demo
+ ...
+ ... [extdemo]
+ ... recipe = zc.recipe.egg:custom
+ ... find-links = %(server)s
+ ... index = %(server)s/index
+ ... include-dirs = include
+ ...
+ ... [demo]
+ ... recipe = zc.recipe.egg
+ ... eggs = demo
+ ... extdemo
+ ... entry-points = demo=demo:main
+ ... """ % dict(server=link_server))
+
+ >>> print system(buildout),
+ Develop: '/sample-buildout/demo'
+ Updating extdemo.
+ Installing demo.
+ Generated script '/sample-buildout/bin/demo'.
+
+When we run the script, we'll 42 printed:
+
+ >>> print system(join('bin', 'demo')),
+ 42
+
+Updating
+--------
+
+The custom recipe will normally check for new source distributions
+that meet the given specification. This can be suppressed using the
+buildout non-newest and offline modes. We'll generate a new source
+distribution for extdemo:
+
+ >>> update_extdemo()
+
+If we run the buildout in non-newest or offline modes:
+
+ >>> print system(buildout+' -N'),
+ Develop: '/sample-buildout/demo'
+ Updating extdemo.
+ Updating demo.
+
+ >>> print system(buildout+' -o'),
+ Develop: '/sample-buildout/demo'
+ Updating extdemo.
+ Updating demo.
+
+We won't get an update.
+
+ >>> ls(sample_buildout, 'develop-eggs')
+ - demo.egg-link
+ d extdemo-1.4-py2.4-unix-i686.egg
+ - z3c.recipe.scripts.egg-link
+ - zc.recipe.egg.egg-link
+
+But if we run the buildout in the default on-line and newest modes, we
+will. This time we also get the test-variable message again, because the new
+version is imported:
+
+ >>> print system(buildout),
+ Develop: '/sample-buildout/demo'
+ Updating extdemo.
+ zip_safe flag not set; analyzing archive contents...
+ Updating demo.
+ Generated script '/sample-buildout/bin/demo'.
+
+ >>> ls(sample_buildout, 'develop-eggs')
+ - demo.egg-link
+ d extdemo-1.4-py2.4-linux-i686.egg
+ d extdemo-1.5-py2.4-linux-i686.egg
+ - z3c.recipe.scripts.egg-link
+ - zc.recipe.egg.egg-link
+
+Controlling the version used
+----------------------------
+
+We can specify a specific version using the egg option:
+
+ >>> write('buildout.cfg',
+ ... """
+ ... [buildout]
+ ... develop = demo
+ ... parts = extdemo demo
+ ...
+ ... [extdemo]
+ ... recipe = zc.recipe.egg:custom
+ ... egg = extdemo ==1.4
+ ... find-links = %(server)s
+ ... index = %(server)s/index
+ ... include-dirs = include
+ ...
+ ... [demo]
+ ... recipe = zc.recipe.egg
+ ... eggs = demo
+ ... extdemo ==1.4
+ ... entry-points = demo=demo:main
+ ... """ % dict(server=link_server))
+
+ >>> print system(buildout+' -D'),
+ Develop: '/sample-buildout/demo'
+ Uninstalling demo.
+ Uninstalling extdemo.
+ Installing extdemo.
+ zip_safe flag not set; analyzing archive contents...
+ Installing demo.
+ Generated script '/sample-buildout/bin/demo'.
+
+ >>> ls(sample_buildout, 'develop-eggs')
+ - demo.egg-link
+ d extdemo-1.4-py2.4-linux-i686.egg
+ - z3c.recipe.scripts.egg-link
+ - zc.recipe.egg.egg-link
+
+
+Controlling environment variables
++++++++++++++++++++++++++++++++++
+
+To set additional environment variables, the `environment` option is used.
+
+Let's create a recipe which prints out environment variables. We need this to
+make sure the set envirionment variables are removed after the egg:custom
+recipe was run.
+
+ >>> mkdir(sample_buildout, 'recipes')
+ >>> write(sample_buildout, 'recipes', 'environ.py',
+ ... """
+ ... import logging, os, zc.buildout
+ ...
+ ... class Environ:
+ ...
+ ... def __init__(self, buildout, name, options):
+ ... self.name = name
+ ...
+ ... def install(self):
+ ... logging.getLogger(self.name).info(
+ ... 'test-variable left over: %s' % (
+ ... 'test-variable' in os.environ))
+ ... return []
+ ...
+ ... def update(self):
+ ... self.install()
+ ... """)
+ >>> write(sample_buildout, 'recipes', 'setup.py',
+ ... """
+ ... from setuptools import setup
+ ...
+ ... setup(
+ ... name = "recipes",
+ ... entry_points = {'zc.buildout': ['environ = environ:Environ']},
+ ... )
+ ... """)
+
+
+Create our buildout:
+
+ >>> write(sample_buildout, 'buildout.cfg',
+ ... """
+ ... [buildout]
+ ... develop = recipes
+ ... parts = extdemo checkenv
+ ...
+ ... [extdemo-env]
+ ... test-variable = foo
+ ...
+ ... [extdemo]
+ ... recipe = zc.recipe.egg:custom
+ ... find-links = %(server)s
+ ... index = %(server)s/index
+ ... include-dirs = include
+ ... environment = extdemo-env
+ ...
+ ... [checkenv]
+ ... recipe = recipes:environ
+ ...
+ ... """ % dict(server=link_server))
+ >>> print system(buildout),
+ Develop: '/sample-buildout/recipes'
+ Uninstalling demo.
+ Uninstalling extdemo.
+ Installing extdemo.
+ Have environment test-variable: foo
+ zip_safe flag not set; analyzing archive contents...
+ Installing checkenv.
+ checkenv: test-variable left over: False
+
+
+The setup.py also printed out that we have set the environment `test-variable`
+to foo. After the buildout the variable is reset to its original value (i.e.
+removed).
+
+When an environment variable has a value before zc.recipe.egg:custom is run,
+the original value will be restored:
+
+ >>> import os
+ >>> os.environ['test-variable'] = 'bar'
+ >>> print system(buildout),
+ Develop: '/sample-buildout/recipes'
+ Updating extdemo.
+ Updating checkenv.
+ checkenv: test-variable left over: True
+
+ >>> os.environ['test-variable']
+ 'bar'
+
+
+Sometimes it is required to prepend or append to an existing environment
+variable, for instance for adding something to the PATH. Therefor all variables
+are interpolated with os.environ before the're set:
+
+ >>> write(sample_buildout, 'buildout.cfg',
+ ... """
+ ... [buildout]
+ ... develop = recipes
+ ... parts = extdemo checkenv
+ ...
+ ... [extdemo-env]
+ ... test-variable = foo:%%(test-variable)s
+ ...
+ ... [extdemo]
+ ... recipe = zc.recipe.egg:custom
+ ... find-links = %(server)s
+ ... index = %(server)s/index
+ ... include-dirs = include
+ ... environment = extdemo-env
+ ...
+ ... [checkenv]
+ ... recipe = recipes:environ
+ ...
+ ... """ % dict(server=link_server))
+ >>> print system(buildout),
+ Develop: '/sample-buildout/recipes'
+ Uninstalling extdemo.
+ Installing extdemo.
+ Have environment test-variable: foo:bar
+ zip_safe flag not set; analyzing archive contents...
+ Updating checkenv.
+ checkenv: test-variable left over: True
+
+ >>> os.environ['test-variable']
+ 'bar'
+ >>> del os.environ['test-variable']
+
+
+Create a clean buildout.cfg w/o the checkenv recipe, and delete the recipe:
+
+ >>> write(sample_buildout, 'buildout.cfg',
+ ... """
+ ... [buildout]
+ ... develop = recipes
+ ... parts = extdemo
+ ...
+ ... [extdemo]
+ ... recipe = zc.recipe.egg:custom
+ ... find-links = %(server)s
+ ... index = %(server)s/index
+ ... include-dirs = include
+ ...
+ ... """ % dict(server=link_server))
+ >>> print system(buildout),
+ Develop: '/sample-buildout/recipes'
+ Uninstalling checkenv.
+ Uninstalling extdemo.
+ Installing extdemo.
+ zip_safe flag not set; analyzing archive contents...
+
+ >>> rmdir(sample_buildout, 'recipes')
+
+
+Controlling develop-egg generation
+==================================
+
+If you want to provide custom build options for a develop egg, you can
+use the develop recipe. The recipe has the following options:
+
+path
+ The path to a setup script or directory containing a startup
+ script. This is required.
+
+include-dirs
+ A new-line separated list of directories to search for include
+ files.
+
+library-dirs
+ A new-line separated list of directories to search for libraries
+ to link with.
+
+rpath
+ A new-line separated list of directories to search for dynamic libraries
+ at run time.
+
+define
+ A comma-separated list of names of C preprocessor variables to
+ define.
+
+undef
+ A comman separated list of names of C preprocessor variables to
+ undefine.
+
+libraries
+ The name of an additional library to link with. Due to limitations
+ in distutils and desprite the option name, only a single library
+ can be specified.
+
+link-objects
+ The name of an link object to link against. Due to limitations
+ in distutils and desprite the option name, only a single link object
+ can be specified.
+
+debug
+ Compile/link with debugging information
+
+force
+ Forcibly build everything (ignore file timestamps)
+
+compiler
+ Specify the compiler type
+
+swig
+ The path to the swig executable
+
+swig-cpp
+ Make SWIG create C++ files (default is C)
+
+swig-opts
+ List of SWIG command line options
+
+python
+ The name of a section to get the Python executable from.
+ If not specified, then the buildout python option is used. The
+ Python executable is found in the executable option of the named
+ section.
+
+To illustrate this, we'll use a directory containing the extdemo
+example from the earlier section:
+
+ >>> ls(extdemo)
+ - MANIFEST
+ - MANIFEST.in
+ - README
+ - extdemo.c
+ - setup.py
+
+ >>> write('buildout.cfg',
+ ... """
+ ... [buildout]
+ ... develop = demo
+ ... parts = extdemo demo
+ ...
+ ... [extdemo]
+ ... setup = %(extdemo)s
+ ... recipe = zc.recipe.egg:develop
+ ... include-dirs = include
+ ... define = TWO
+ ...
+ ... [demo]
+ ... recipe = zc.recipe.egg
+ ... eggs = demo
+ ... extdemo
+ ... entry-points = demo=demo:main
+ ... """ % dict(extdemo=extdemo))
+
+Note that we added a define option to cause the preprocessor variable
+TWO to be defined. This will cause the module-variable, 'val', to be
+set with a value of 2.
+
+ >>> print system(buildout),
+ Develop: '/sample-buildout/demo'
+ Uninstalling extdemo.
+ Installing extdemo.
+ Installing demo.
+ Generated script '/sample-buildout/bin/demo'.
+
+Our develop-eggs now includes an egg link for extdemo:
+
+ >>> ls('develop-eggs')
+ - demo.egg-link
+ - extdemo.egg-link
+ - z3c.recipe.scripts.egg-link
+ - zc.recipe.egg.egg-link
+
+and the extdemo now has a built extension:
+
+ >>> ls(extdemo)
+ - MANIFEST
+ - MANIFEST.in
+ - README
+ d build
+ - extdemo.c
+ d extdemo.egg-info
+ - extdemo.so
+ - setup.py
+
+Because develop eggs take precedence over non-develop eggs, the demo
+script will use the new develop egg:
+
+ >>> print system(join('bin', 'demo')),
+ 2
diff --git a/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/egg.py b/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/egg.py
new file mode 100644
index 0000000..c19f757
--- /dev/null
+++ b/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/egg.py
@@ -0,0 +1,230 @@
+##############################################################################
+#
+# Copyright (c) 2006 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Install packages as eggs
+
+$Id: egg.py 115900 2010-08-23 20:26:07Z gary $
+"""
+
+import UserDict, logging, os, re, zipfile
+import zc.buildout
+import zc.buildout.easy_install
+
+
+class Eggs(object):
+
+ include_site_packages = allowed_eggs = None
+
+ def __init__(self, buildout, name, options):
+ self.buildout = buildout
+ self.name = self.default_eggs = name
+ if getattr(options, 'query_bool', None) is None:
+ # Someone is not passing us a zc.buildout.buildout.Options
+ # object. Maybe we should have a deprecation warning.
+ # Whatever.
+ options = _BackwardsSupportOption(options)
+ self.options = options
+ b_options = buildout['buildout']
+ links = options.get('find-links', b_options['find-links'])
+ if links:
+ links = links.split()
+ options['find-links'] = '\n'.join(links)
+ else:
+ links = ()
+ self.links = links
+
+ index = options.get('index', b_options.get('index'))
+ if index is not None:
+ options['index'] = index
+ self.index = index
+
+ allow_hosts = b_options['allow-hosts']
+ allow_hosts = tuple([host.strip() for host in allow_hosts.split('\n')
+ if host.strip()!=''])
+ self.allow_hosts = allow_hosts
+
+ options['eggs-directory'] = b_options['eggs-directory']
+ options['_e'] = options['eggs-directory'] # backward compat.
+ options['develop-eggs-directory'] = b_options['develop-eggs-directory']
+ options['_d'] = options['develop-eggs-directory'] # backward compat.
+
+ python = options.setdefault('python', b_options['python'])
+ options['executable'] = buildout[python]['executable']
+
+ def working_set(self, extra=()):
+ """Separate method to just get the working set
+
+ This is intended for reuse by similar recipes.
+ """
+ options = self.options
+ b_options = self.buildout['buildout']
+
+ distributions = [
+ r.strip()
+ for r in options.get('eggs', self.default_eggs).split('\n')
+ if r.strip()]
+ orig_distributions = distributions[:]
+ distributions.extend(extra)
+
+ if b_options.get('offline') == 'true':
+ ws = zc.buildout.easy_install.working_set(
+ distributions, options['executable'],
+ [options['develop-eggs-directory'],
+ options['eggs-directory']],
+ include_site_packages=self.include_site_packages,
+ allowed_eggs_from_site_packages=self.allowed_eggs,
+ )
+ else:
+ kw = {}
+ if 'unzip' in options:
+ kw['always_unzip'] = options.query_bool('unzip', None)
+ ws = zc.buildout.easy_install.install(
+ distributions, options['eggs-directory'],
+ links=self.links,
+ index=self.index,
+ executable=options['executable'],
+ path=[options['develop-eggs-directory']],
+ newest=b_options.get('newest') == 'true',
+ include_site_packages=self.include_site_packages,
+ allowed_eggs_from_site_packages=self.allowed_eggs,
+ allow_hosts=self.allow_hosts,
+ **kw)
+
+ return orig_distributions, ws
+
+ def install(self):
+ reqs, ws = self.working_set()
+ return ()
+
+ update = install
+
+
+class ScriptBase(Eggs):
+
+ def __init__(self, buildout, name, options):
+ super(ScriptBase, self).__init__(buildout, name, options)
+
+ b_options = buildout['buildout']
+
+ options['bin-directory'] = b_options['bin-directory']
+ options['_b'] = options['bin-directory'] # backward compat.
+
+ self.extra_paths = [
+ os.path.join(b_options['directory'], p.strip())
+ for p in options.get('extra-paths', '').split('\n')
+ if p.strip()
+ ]
+ if self.extra_paths:
+ options['extra-paths'] = '\n'.join(self.extra_paths)
+
+
+ relative_paths = options.get(
+ 'relative-paths', b_options.get('relative-paths', 'false'))
+ if relative_paths == 'true':
+ options['buildout-directory'] = b_options['directory']
+ self._relative_paths = options['buildout-directory']
+ else:
+ self._relative_paths = ''
+ assert relative_paths == 'false'
+
+ parse_entry_point = re.compile(
+ '([^=]+)=(\w+(?:[.]\w+)*):(\w+(?:[.]\w+)*)$'
+ ).match
+
+ def install(self):
+ reqs, ws = self.working_set()
+ options = self.options
+
+ scripts = options.get('scripts')
+ if scripts or scripts is None or options.get('interpreter'):
+ if scripts is not None:
+ scripts = scripts.split()
+ scripts = dict([
+ ('=' in s) and s.split('=', 1) or (s, s)
+ for s in scripts
+ ])
+
+ for s in options.get('entry-points', '').split():
+ parsed = self.parse_entry_point(s)
+ if not parsed:
+ logging.getLogger(self.name).error(
+ "Cannot parse the entry point %s.", s)
+ raise zc.buildout.UserError("Invalid entry point")
+ reqs.append(parsed.groups())
+
+ if options.query_bool('dependent-scripts', 'false'):
+ # Generate scripts for all packages in the working set,
+ # except setuptools.
+ reqs = list(reqs)
+ for dist in ws:
+ name = dist.project_name
+ if name != 'setuptools' and name not in reqs:
+ reqs.append(name)
+ return self._install(reqs, ws, scripts)
+ return ()
+
+ update = install
+
+ def _install(self, reqs, ws, scripts):
+ # Subclasses implement this.
+ raise NotImplementedError()
+
+
+class Scripts(ScriptBase):
+
+ def _install(self, reqs, ws, scripts):
+ options = self.options
+ return zc.buildout.easy_install.scripts(
+ reqs, ws, options['executable'],
+ options['bin-directory'],
+ scripts=scripts,
+ extra_paths=self.extra_paths,
+ interpreter=options.get('interpreter'),
+ initialization=options.get('initialization', ''),
+ arguments=options.get('arguments', ''),
+ relative_paths=self._relative_paths
+ )
+
+Egg = Scripts
+
+
+class _BackwardsSupportOption(UserDict.UserDict):
+
+ def __init__(self, data):
+ self.data = data # We want to show mutations to the underlying dict.
+
+ def query_bool(self, name, default=None):
+ """Given a name, return a boolean value for that name.
+
+ ``default``, if given, should be 'true', 'false', or None.
+ """
+ if default is not None:
+ value = self.setdefault(name, default)
+ else:
+ value = self.get(name)
+ if value is None:
+ return value
+ return _convert_bool(name, value)
+
+ def get_bool(self, name):
+ """Given a name, return a boolean value for that name.
+ """
+ return _convert_bool(name, self[name])
+
+
+def _convert_bool(name, value):
+ if value not in ('true', 'false'):
+ raise zc.buildout.UserError(
+ 'Invalid value for %s option: %s' % (name, value))
+ else:
+ return value == 'true'
diff --git a/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/egg.pyo b/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/egg.pyo
new file mode 100644
index 0000000..a683750
--- /dev/null
+++ b/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/egg.pyo
Binary files differ
diff --git a/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/selecting-python.txt b/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/selecting-python.txt
new file mode 100644
index 0000000..dcf07e8
--- /dev/null
+++ b/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/selecting-python.txt
@@ -0,0 +1,140 @@
+Controlling which Python to use
+-------------------------------
+
+The following assumes that you have Python 2.4 installed.
+
+We can specify the python to use by specifying the name of a section
+to read the Python executable from. The default is the section
+defined by the python buildout option.
+
+We have a link server:
+
+ >>> print get(link_server),
+ <html><body>
+ <a href="bigdemo-0.1-py2.4.egg">bigdemo-0.1-py2.4.egg</a><br>
+ <a href="demo-0.1-py2.4.egg">demo-0.1-py2.4.egg</a><br>
+ <a href="demo-0.2-py2.4.egg">demo-0.2-py2.4.egg</a><br>
+ <a href="demo-0.3-py2.4.egg">demo-0.3-py2.4.egg</a><br>
+ <a href="demo-0.4c1-py2.4.egg">demo-0.4c1-py2.4.egg</a><br>
+ <a href="demoneeded-1.0.zip">demoneeded-1.0.zip</a><br>
+ <a href="demoneeded-1.1.zip">demoneeded-1.1.zip</a><br>
+ <a href="demoneeded-1.2c1.zip">demoneeded-1.2c1.zip</a><br>
+ <a href="extdemo-1.4.zip">extdemo-1.4.zip</a><br>
+ <a href="index/">index/</a><br>
+ <a href="other-1.0-py2.4.egg">other-1.0-py2.4.egg</a><br>
+ </body></html>
+
+We have a sample buildout. Let's update its configuration file to
+install the demo package using Python 2.4.
+
+ >>> write(sample_buildout, 'buildout.cfg',
+ ... """
+ ... [buildout]
+ ... parts = demo
+ ... eggs-directory = eggs
+ ... index = http://www.python.org/pypi/
+ ...
+ ... [python2.4]
+ ... executable = %(python24)s
+ ...
+ ... [demo]
+ ... recipe = zc.recipe.egg
+ ... eggs = demo <0.3
+ ... find-links = %(server)s
+ ... python = python2.4
+ ... interpreter = py-demo
+ ... """ % dict(server=link_server, python24=other_executable))
+
+Now, if we run the buildout:
+
+ >>> import os
+ >>> os.chdir(sample_buildout)
+ >>> buildout = os.path.join(sample_buildout, 'bin', 'buildout')
+ >>> print system(buildout),
+ Installing demo.
+ Getting distribution for 'demo<0.3'.
+ Got demo 0.2.
+ Getting distribution for 'demoneeded'.
+ Got demoneeded 1.2c1.
+ Generated script '/sample-buildout/bin/demo'.
+ Generated interpreter '/sample-buildout/bin/py-demo'.
+
+we'll get the Python 2.4 eggs for demo and demoneeded:
+
+ >>> ls(sample_buildout, 'eggs')
+ - demo-0.2-py2.4.egg
+ - demoneeded-1.2c1-py2.4.egg
+ d setuptools-0.6-py2.5.egg
+ - zc.buildout-1.0-py2.5.egg
+
+And the generated scripts invoke Python 2.4:
+
+ >>> import sys
+ >>> if sys.platform == 'win32':
+ ... script_name = 'demo-script.py'
+ ... else:
+ ... script_name = 'demo'
+ >>> f = open(os.path.join(sample_buildout, 'bin', script_name))
+ >>> shebang = f.readline().strip()
+ >>> if shebang[:3] == '#!"' and shebang[-1] == '"':
+ ... shebang = '#!'+shebang[3:-1]
+ >>> shebang == '#!' + other_executable
+ True
+ >>> print f.read(), # doctest: +NORMALIZE_WHITESPACE
+ <BLANKLINE>
+ import sys
+ sys.path[0:0] = [
+ '/sample-buildout/eggs/demo-0.2-py2.4.egg',
+ '/sample-buildout/eggs/demoneeded-1.2c1-py2.4.egg',
+ ]
+ <BLANKLINE>
+ import eggrecipedemo
+ <BLANKLINE>
+ if __name__ == '__main__':
+ eggrecipedemo.main()
+
+ >>> if sys.platform == 'win32':
+ ... f = open(os.path.join(sample_buildout, 'bin', 'py-demo-script.py'))
+ ... else:
+ ... f = open(os.path.join(sample_buildout, 'bin', 'py-demo'))
+
+ >>> shebang = f.readline().strip()
+ >>> if shebang[:3] == '#!"' and shebang[-1] == '"':
+ ... shebang = '#!'+shebang[3:-1]
+ >>> shebang == '#!' + other_executable
+ True
+ >>> print f.read(), # doctest: +NORMALIZE_WHITESPACE
+ <BLANKLINE>
+ import sys
+ <BLANKLINE>
+ sys.path[0:0] = [
+ '/sample-buildout/eggs/demo-0.2-py2.4.egg',
+ '/sample-buildout/eggs/demoneeded-1.2c1-py2.4.egg',
+ ]
+ <BLANKLINE>
+ _interactive = True
+ if len(sys.argv) > 1:
+ _options, _args = __import__("getopt").getopt(sys.argv[1:], 'ic:m:')
+ _interactive = False
+ for (_opt, _val) in _options:
+ if _opt == '-i':
+ _interactive = True
+ elif _opt == '-c':
+ exec _val
+ elif _opt == '-m':
+ sys.argv[1:] = _args
+ _args = []
+ __import__("runpy").run_module(
+ _val, {}, "__main__", alter_sys=True)
+ <BLANKLINE>
+ if _args:
+ sys.argv[:] = _args
+ __file__ = _args[0]
+ del _options, _args
+ execfile(__file__)
+ <BLANKLINE>
+ if _interactive:
+ del _interactive
+ __import__("code").interact(banner="", local=globals())
+
+ >>> f.close()
diff --git a/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/tests.py b/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/tests.py
new file mode 100644
index 0000000..3a65504
--- /dev/null
+++ b/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/tests.py
@@ -0,0 +1,169 @@
+##############################################################################
+#
+# Copyright (c) 2006 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+
+import os, re, shutil, sys
+import zc.buildout.tests
+import zc.buildout.testselectingpython
+import zc.buildout.testing
+
+import unittest, doctest
+from zope.testing import renormalizing
+
+os_path_sep = os.path.sep
+if os_path_sep == '\\':
+ os_path_sep *= 2
+
+def dirname(d, level=1):
+ if level == 0:
+ return d
+ return dirname(os.path.dirname(d), level-1)
+
+def testUsingDictAsOptions():
+ """
+Some recipes using zc.recipe.egg have been passing dictionaries rather than
+zc.buildout.buildout.Options objects. That's unexpected, but to save
+complaints, we'll support it.
+
+Note that this test intends to show that a dictionary can be used as an
+options object. It also uses a dictionary for the buildout object, which is
+not intended.
+
+ >>> import zc.buildout.buildout
+ >>> import zc.recipe.egg
+ >>> faux_egg_options = {'find-links': 'example.com'}
+ >>> faux_buildout_options = zc.buildout.buildout._unannotate_section(
+ ... zc.buildout.buildout._buildout_default_options.copy())
+ >>> faux_buildout_options['bin-directory'] = '/somewhere/over/rainbow'
+ >>> faux_buildout = {
+ ... 'faux': faux_egg_options, 'buildout': faux_buildout_options}
+ >>> scripts = zc.recipe.egg.Scripts(
+ ... faux_buildout, 'faux', faux_egg_options)
+ >>> scripts.links
+ ['example.com']
+ >>> import zc.buildout.easy_install
+ >>> old_install = zc.buildout.easy_install.install
+ >>> old_scripts = zc.buildout.easy_install.scripts
+ >>> def whatever(*args, **kwargs): pass
+ >>> zc.buildout.easy_install.install = whatever
+ >>> zc.buildout.easy_install.scripts = whatever
+ >>> scripts.install() # This used to fail!
+ >>> zc.buildout.easy_install.install = old_install
+ >>> zc.buildout.easy_install.scripts = old_scripts
+"""
+
+def setUp(test):
+ zc.buildout.tests.easy_install_SetUp(test)
+ zc.buildout.testing.install_develop('zc.recipe.egg', test)
+
+def setUpSelecting(test):
+ zc.buildout.testselectingpython.setup(test)
+ zc.buildout.testing.install_develop('zc.recipe.egg', test)
+
+def test_suite():
+ suite = unittest.TestSuite((
+ doctest.DocFileSuite(
+ 'README.txt',
+ setUp=setUp, tearDown=zc.buildout.testing.buildoutTearDown,
+ checker=renormalizing.RENormalizing([
+ zc.buildout.testing.normalize_path,
+ zc.buildout.testing.normalize_endings,
+ zc.buildout.testing.normalize_script,
+ zc.buildout.testing.normalize_egg_py,
+ zc.buildout.tests.normalize_bang,
+ zc.buildout.tests.hide_distribute_additions,
+ (re.compile('zc.buildout(-\S+)?[.]egg(-link)?'),
+ 'zc.buildout.egg'),
+ (re.compile('[-d] (setuptools|distribute)-[^-]+-'),
+ 'setuptools-X-'),
+ (re.compile(r'eggs\\\\demo'), 'eggs/demo'),
+ (re.compile(r'[a-zA-Z]:\\\\foo\\\\bar'), '/foo/bar'),
+ # Distribute unzips eggs by default.
+ (re.compile('\- demoneeded'), 'd demoneeded'),
+ ])
+ ),
+ doctest.DocFileSuite(
+ 'api.txt',
+ setUp=setUp, tearDown=zc.buildout.testing.buildoutTearDown,
+ checker=renormalizing.RENormalizing([
+ zc.buildout.testing.normalize_path,
+ zc.buildout.testing.normalize_endings,
+ zc.buildout.tests.hide_distribute_additions,
+ (re.compile('__buildout_signature__ = '
+ 'sample-\S+\s+'
+ 'zc.recipe.egg-\S+\s+'
+ '(setuptools|distribute)-\S+\s+'
+ 'zc.buildout-\S+\s*'
+ ),
+ '__buildout_signature__ = sample- zc.recipe.egg-\n'),
+ (re.compile('executable = [\S ]+python\S*', re.I),
+ 'executable = python'),
+ (re.compile('find-links = http://localhost:\d+/'),
+ 'find-links = http://localhost:8080/'),
+ (re.compile('index = http://localhost:\d+/index'),
+ 'index = http://localhost:8080/index'),
+ ])
+ ),
+ doctest.DocFileSuite(
+ 'custom.txt',
+ setUp=setUp, tearDown=zc.buildout.testing.buildoutTearDown,
+ checker=renormalizing.RENormalizing([
+ zc.buildout.testing.normalize_path,
+ zc.buildout.testing.normalize_endings,
+ zc.buildout.tests.hide_distribute_additions,
+ zc.buildout.tests.hide_zip_safe_message,
+ (re.compile("(d ((ext)?demo(needed)?|other)"
+ "-\d[.]\d-py)\d[.]\d(-\S+)?[.]egg"),
+ '\\1V.V.egg'),
+ (re.compile('extdemo.c\n.+\\extdemo.exp\n'), ''),
+ (re.compile('extdemo[.]pyd'), 'extdemo.so')
+ ]),
+ ),
+ doctest.DocTestSuite(
+ setUp=setUp, tearDown=zc.buildout.testing.buildoutTearDown,
+ ),
+ ))
+
+ if sys.version_info[:2] != (2, 4):
+ # Only run selecting python tests if not 2.4, since
+ # 2.4 is the alternate python used in the tests.
+ suite.addTest(
+ doctest.DocFileSuite(
+ 'selecting-python.txt',
+ setUp=setUpSelecting,
+ tearDown=zc.buildout.testing.buildoutTearDown,
+ checker=renormalizing.RENormalizing([
+ zc.buildout.testing.normalize_path,
+ zc.buildout.testing.normalize_endings,
+ zc.buildout.testing.normalize_script,
+ zc.buildout.tests.hide_distribute_additions,
+ (re.compile('Got (setuptools|distribute) \S+'),
+ 'Got setuptools V'),
+ (re.compile('([d-] )?(setuptools|distribute)-\S+-py'),
+ 'setuptools-V-py'),
+ (re.compile('-py2[.][0-35-9][.]'), 'py2.5.'),
+ (re.compile('zc.buildout-\S+[.]egg'),
+ 'zc.buildout.egg'),
+ (re.compile('zc.buildout[.]egg-link'),
+ 'zc.buildout.egg'),
+ # Distribute unzips eggs by default.
+ (re.compile('\- demoneeded'), 'd demoneeded'),
+ ]),
+ ),
+ )
+
+ return suite
+
+if __name__ == '__main__':
+ unittest.main(defaultTest='test_suite')
+
diff --git a/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/tests.pyo b/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/tests.pyo
new file mode 100644
index 0000000..377e52e
--- /dev/null
+++ b/eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/tests.pyo
Binary files differ