trying to get together a working 1.0.0b7
without ez_setup.py --HG-- branch : 1.0.x
This commit is contained in:
		
							parent
							
								
									608ff40cc1
								
							
						
					
					
						commit
						d056149b67
					
				
							
								
								
									
										3
									
								
								MANIFEST
								
								
								
								
							
							
						
						
									
										3
									
								
								MANIFEST
								
								
								
								
							|  | @ -1,8 +1,6 @@ | ||||||
| MANIFEST | MANIFEST | ||||||
| py/__init__.py | py/__init__.py | ||||||
| setup.py | setup.py | ||||||
| .hgignore |  | ||||||
| .hgtags |  | ||||||
| CHANGELOG | CHANGELOG | ||||||
| LICENSE | LICENSE | ||||||
| README.txt | README.txt | ||||||
|  | @ -59,7 +57,6 @@ example/genxml.py | ||||||
| example/pytest/failure_demo.py | example/pytest/failure_demo.py | ||||||
| example/pytest/test_failures.py | example/pytest/test_failures.py | ||||||
| example/pytest/test_setup_flow_example.py | example/pytest/test_setup_flow_example.py | ||||||
| ez_setup.py |  | ||||||
| py/LICENSE | py/LICENSE | ||||||
| py/_com.py | py/_com.py | ||||||
| py/bin/_findpy.py | py/bin/_findpy.py | ||||||
|  |  | ||||||
|  | @ -9,7 +9,8 @@ Latest Release, see `PyPI project page`_ | ||||||
| "easy_install py" | "easy_install py" | ||||||
| =================================================== | =================================================== | ||||||
| 
 | 
 | ||||||
| If you have a working `setuptools installation`_ you can install from the command line:: | With a working `setuptools installation`_ you can type:: | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
|     easy_install -U py  |     easy_install -U py  | ||||||
| 
 | 
 | ||||||
|  | @ -35,6 +36,9 @@ code automatically during the above install). | ||||||
| Installing on Debian or Fedora  | Installing on Debian or Fedora  | ||||||
| =================================== | =================================== | ||||||
| 
 | 
 | ||||||
|  | As of July 2009 pytest/pylib 1.0 RPMs and Debian packages  | ||||||
|  | are not yet available.  | ||||||
|  | 
 | ||||||
| On Debian systems look for ``python-codespeak-lib``. | On Debian systems look for ``python-codespeak-lib``. | ||||||
| *This package is probably outdated - if somebody  | *This package is probably outdated - if somebody  | ||||||
| can help with bringing this up to date,  | can help with bringing this up to date,  | ||||||
|  | @ -46,10 +50,11 @@ Dwayne Bailey has thankfully put together a Fedora `RPM`_. | ||||||
| 
 | 
 | ||||||
| .. _`setuptools installation`: http://pypi.python.org/pypi/setuptools | .. _`setuptools installation`: http://pypi.python.org/pypi/setuptools | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| Downloading a tar/zip archive and installing that | Downloading a tar/zip archive and installing that | ||||||
| =================================================== | =================================================== | ||||||
| 
 | 
 | ||||||
|  | You need a working `setuptools installation`_.  | ||||||
|  | 
 | ||||||
| Go to the python package index (pypi) and download a tar or zip file: | Go to the python package index (pypi) and download a tar or zip file: | ||||||
| 
 | 
 | ||||||
|     http://pypi.python.org/pypi/py/ |     http://pypi.python.org/pypi/py/ | ||||||
|  | @ -58,35 +63,25 @@ and unpack it to a directory, where you then type:: | ||||||
| 
 | 
 | ||||||
|     python setup.py install |     python setup.py install | ||||||
| 
 | 
 | ||||||
| If you don't have a working C-compiler you can do:: |  | ||||||
| 
 |  | ||||||
|     python setup.py install_lib |  | ||||||
| 
 |  | ||||||
| You will then not be able to use greenlets but otherwise |  | ||||||
| ``py.test`` and all tools and APIs are fine to use.  |  | ||||||
| 
 |  | ||||||
| Installing from subversion / develop mode | Installing from subversion / develop mode | ||||||
| ============================================ | ============================================ | ||||||
| 
 | 
 | ||||||
| To follow development or help with fixing things | To follow development or help with fixing things | ||||||
| for the next release, checkout the complete code | for the next release, checkout the complete code | ||||||
| and documentation source:: | and documentation source with mercurial:: | ||||||
| 
 | 
 | ||||||
|     svn co http://codespeak.net/svn/py/release/0.9.x py-0.9.x |     hg clone https://bitbucket.org/hpk42/py-trunk/ | ||||||
| 
 | 
 | ||||||
| You can then issue:: | or with subversion: | ||||||
|  | 
 | ||||||
|  |     svn co http://codespeak.net/svn/py/trunk | ||||||
|  | 
 | ||||||
|  | With a working `setuptools installation`_ you can then issue:: | ||||||
| 
 | 
 | ||||||
|     python setup.py develop  |     python setup.py develop  | ||||||
| 
 | 
 | ||||||
| in order to work with your checkout version.  | in order to work with your checkout version.  | ||||||
| 
 | 
 | ||||||
| other interesting svn checkout points:: |  | ||||||
| 
 |  | ||||||
|     http://codespeak.net/ |  | ||||||
|         svn/py/release      # release tags and branches |  | ||||||
|         svn/py/dist         # latest stable (may or may not be a release)  |  | ||||||
|         svn/py/trunk        # head development / merge point |  | ||||||
| 
 |  | ||||||
| 
 | 
 | ||||||
| Working with multiple py lib versions / svn externals | Working with multiple py lib versions / svn externals | ||||||
| ======================================================= | ======================================================= | ||||||
|  |  | ||||||
							
								
								
									
										276
									
								
								ez_setup.py
								
								
								
								
							
							
						
						
									
										276
									
								
								ez_setup.py
								
								
								
								
							|  | @ -1,276 +0,0 @@ | ||||||
| #!python |  | ||||||
| """Bootstrap setuptools installation |  | ||||||
| 
 |  | ||||||
| If you want to use setuptools in your package's setup.py, just include this |  | ||||||
| file in the same directory with it, and add this to the top of your setup.py:: |  | ||||||
| 
 |  | ||||||
|     from ez_setup import use_setuptools |  | ||||||
|     use_setuptools() |  | ||||||
| 
 |  | ||||||
| If you want to require a specific version of setuptools, set a download |  | ||||||
| mirror, or use an alternate download directory, you can do so by supplying |  | ||||||
| the appropriate options to ``use_setuptools()``. |  | ||||||
| 
 |  | ||||||
| This file can also be run as a script to install or upgrade setuptools. |  | ||||||
| """ |  | ||||||
| import sys |  | ||||||
| DEFAULT_VERSION = "0.6c9" |  | ||||||
| DEFAULT_URL     = "http://pypi.python.org/packages/%s/s/setuptools/" % sys.version[:3] |  | ||||||
| 
 |  | ||||||
| md5_data = { |  | ||||||
|     'setuptools-0.6b1-py2.3.egg': '8822caf901250d848b996b7f25c6e6ca', |  | ||||||
|     'setuptools-0.6b1-py2.4.egg': 'b79a8a403e4502fbb85ee3f1941735cb', |  | ||||||
|     'setuptools-0.6b2-py2.3.egg': '5657759d8a6d8fc44070a9d07272d99b', |  | ||||||
|     'setuptools-0.6b2-py2.4.egg': '4996a8d169d2be661fa32a6e52e4f82a', |  | ||||||
|     'setuptools-0.6b3-py2.3.egg': 'bb31c0fc7399a63579975cad9f5a0618', |  | ||||||
|     'setuptools-0.6b3-py2.4.egg': '38a8c6b3d6ecd22247f179f7da669fac', |  | ||||||
|     'setuptools-0.6b4-py2.3.egg': '62045a24ed4e1ebc77fe039aa4e6f7e5', |  | ||||||
|     'setuptools-0.6b4-py2.4.egg': '4cb2a185d228dacffb2d17f103b3b1c4', |  | ||||||
|     'setuptools-0.6c1-py2.3.egg': 'b3f2b5539d65cb7f74ad79127f1a908c', |  | ||||||
|     'setuptools-0.6c1-py2.4.egg': 'b45adeda0667d2d2ffe14009364f2a4b', |  | ||||||
|     'setuptools-0.6c2-py2.3.egg': 'f0064bf6aa2b7d0f3ba0b43f20817c27', |  | ||||||
|     'setuptools-0.6c2-py2.4.egg': '616192eec35f47e8ea16cd6a122b7277', |  | ||||||
|     'setuptools-0.6c3-py2.3.egg': 'f181fa125dfe85a259c9cd6f1d7b78fa', |  | ||||||
|     'setuptools-0.6c3-py2.4.egg': 'e0ed74682c998bfb73bf803a50e7b71e', |  | ||||||
|     'setuptools-0.6c3-py2.5.egg': 'abef16fdd61955514841c7c6bd98965e', |  | ||||||
|     'setuptools-0.6c4-py2.3.egg': 'b0b9131acab32022bfac7f44c5d7971f', |  | ||||||
|     'setuptools-0.6c4-py2.4.egg': '2a1f9656d4fbf3c97bf946c0a124e6e2', |  | ||||||
|     'setuptools-0.6c4-py2.5.egg': '8f5a052e32cdb9c72bcf4b5526f28afc', |  | ||||||
|     'setuptools-0.6c5-py2.3.egg': 'ee9fd80965da04f2f3e6b3576e9d8167', |  | ||||||
|     'setuptools-0.6c5-py2.4.egg': 'afe2adf1c01701ee841761f5bcd8aa64', |  | ||||||
|     'setuptools-0.6c5-py2.5.egg': 'a8d3f61494ccaa8714dfed37bccd3d5d', |  | ||||||
|     'setuptools-0.6c6-py2.3.egg': '35686b78116a668847237b69d549ec20', |  | ||||||
|     'setuptools-0.6c6-py2.4.egg': '3c56af57be3225019260a644430065ab', |  | ||||||
|     'setuptools-0.6c6-py2.5.egg': 'b2f8a7520709a5b34f80946de5f02f53', |  | ||||||
|     'setuptools-0.6c7-py2.3.egg': '209fdf9adc3a615e5115b725658e13e2', |  | ||||||
|     'setuptools-0.6c7-py2.4.egg': '5a8f954807d46a0fb67cf1f26c55a82e', |  | ||||||
|     'setuptools-0.6c7-py2.5.egg': '45d2ad28f9750e7434111fde831e8372', |  | ||||||
|     'setuptools-0.6c8-py2.3.egg': '50759d29b349db8cfd807ba8303f1902', |  | ||||||
|     'setuptools-0.6c8-py2.4.egg': 'cba38d74f7d483c06e9daa6070cce6de', |  | ||||||
|     'setuptools-0.6c8-py2.5.egg': '1721747ee329dc150590a58b3e1ac95b', |  | ||||||
|     'setuptools-0.6c9-py2.3.egg': 'a83c4020414807b496e4cfbe08507c03', |  | ||||||
|     'setuptools-0.6c9-py2.4.egg': '260a2be2e5388d66bdaee06abec6342a', |  | ||||||
|     'setuptools-0.6c9-py2.5.egg': 'fe67c3e5a17b12c0e7c541b7ea43a8e6', |  | ||||||
|     'setuptools-0.6c9-py2.6.egg': 'ca37b1ff16fa2ede6e19383e7b59245a', |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| import sys, os |  | ||||||
| try: from hashlib import md5 |  | ||||||
| except ImportError: from md5 import md5 |  | ||||||
| 
 |  | ||||||
| def _validate_md5(egg_name, data): |  | ||||||
|     if egg_name in md5_data: |  | ||||||
|         digest = md5(data).hexdigest() |  | ||||||
|         if digest != md5_data[egg_name]: |  | ||||||
|             print >>sys.stderr, ( |  | ||||||
|                 "md5 validation of %s failed!  (Possible download problem?)" |  | ||||||
|                 % egg_name |  | ||||||
|             ) |  | ||||||
|             sys.exit(2) |  | ||||||
|     return data |  | ||||||
| 
 |  | ||||||
| def use_setuptools( |  | ||||||
|     version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir, |  | ||||||
|     download_delay=15 |  | ||||||
| ): |  | ||||||
|     """Automatically find/download setuptools and make it available on sys.path |  | ||||||
| 
 |  | ||||||
|     `version` should be a valid setuptools version number that is available |  | ||||||
|     as an egg for download under the `download_base` URL (which should end with |  | ||||||
|     a '/').  `to_dir` is the directory where setuptools will be downloaded, if |  | ||||||
|     it is not already available.  If `download_delay` is specified, it should |  | ||||||
|     be the number of seconds that will be paused before initiating a download, |  | ||||||
|     should one be required.  If an older version of setuptools is installed, |  | ||||||
|     this routine will print a message to ``sys.stderr`` and raise SystemExit in |  | ||||||
|     an attempt to abort the calling script. |  | ||||||
|     """ |  | ||||||
|     was_imported = 'pkg_resources' in sys.modules or 'setuptools' in sys.modules |  | ||||||
|     def do_download(): |  | ||||||
|         egg = download_setuptools(version, download_base, to_dir, download_delay) |  | ||||||
|         sys.path.insert(0, egg) |  | ||||||
|         import setuptools; setuptools.bootstrap_install_from = egg |  | ||||||
|     try: |  | ||||||
|         import pkg_resources |  | ||||||
|     except ImportError: |  | ||||||
|         return do_download()        |  | ||||||
|     try: |  | ||||||
|         pkg_resources.require("setuptools>="+version); return |  | ||||||
|     except pkg_resources.VersionConflict, e: |  | ||||||
|         if was_imported: |  | ||||||
|             print >>sys.stderr, ( |  | ||||||
|             "The required version of setuptools (>=%s) is not available, and\n" |  | ||||||
|             "can't be installed while this script is running. Please install\n" |  | ||||||
|             " a more recent version first, using 'easy_install -U setuptools'." |  | ||||||
|             "\n\n(Currently using %r)" |  | ||||||
|             ) % (version, e.args[0]) |  | ||||||
|             sys.exit(2) |  | ||||||
|         else: |  | ||||||
|             del pkg_resources, sys.modules['pkg_resources']    # reload ok |  | ||||||
|             return do_download() |  | ||||||
|     except pkg_resources.DistributionNotFound: |  | ||||||
|         return do_download() |  | ||||||
| 
 |  | ||||||
| def download_setuptools( |  | ||||||
|     version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir, |  | ||||||
|     delay = 15 |  | ||||||
| ): |  | ||||||
|     """Download setuptools from a specified location and return its filename |  | ||||||
| 
 |  | ||||||
|     `version` should be a valid setuptools version number that is available |  | ||||||
|     as an egg for download under the `download_base` URL (which should end |  | ||||||
|     with a '/'). `to_dir` is the directory where the egg will be downloaded. |  | ||||||
|     `delay` is the number of seconds to pause before an actual download attempt. |  | ||||||
|     """ |  | ||||||
|     import urllib2, shutil |  | ||||||
|     egg_name = "setuptools-%s-py%s.egg" % (version,sys.version[:3]) |  | ||||||
|     url = download_base + egg_name |  | ||||||
|     saveto = os.path.join(to_dir, egg_name) |  | ||||||
|     src = dst = None |  | ||||||
|     if not os.path.exists(saveto):  # Avoid repeated downloads |  | ||||||
|         try: |  | ||||||
|             from distutils import log |  | ||||||
|             if delay: |  | ||||||
|                 log.warn(""" |  | ||||||
| --------------------------------------------------------------------------- |  | ||||||
| This script requires setuptools version %s to run (even to display |  | ||||||
| help).  I will attempt to download it for you (from |  | ||||||
| %s), but |  | ||||||
| you may need to enable firewall access for this script first. |  | ||||||
| I will start the download in %d seconds. |  | ||||||
| 
 |  | ||||||
| (Note: if this machine does not have network access, please obtain the file |  | ||||||
| 
 |  | ||||||
|    %s |  | ||||||
| 
 |  | ||||||
| and place it in this directory before rerunning this script.) |  | ||||||
| ---------------------------------------------------------------------------""", |  | ||||||
|                     version, download_base, delay, url |  | ||||||
|                 ); from time import sleep; sleep(delay) |  | ||||||
|             log.warn("Downloading %s", url) |  | ||||||
|             src = urllib2.urlopen(url) |  | ||||||
|             # Read/write all in one block, so we don't create a corrupt file |  | ||||||
|             # if the download is interrupted. |  | ||||||
|             data = _validate_md5(egg_name, src.read()) |  | ||||||
|             dst = open(saveto,"wb"); dst.write(data) |  | ||||||
|         finally: |  | ||||||
|             if src: src.close() |  | ||||||
|             if dst: dst.close() |  | ||||||
|     return os.path.realpath(saveto) |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| def main(argv, version=DEFAULT_VERSION): |  | ||||||
|     """Install or upgrade setuptools and EasyInstall""" |  | ||||||
|     try: |  | ||||||
|         import setuptools |  | ||||||
|     except ImportError: |  | ||||||
|         egg = None |  | ||||||
|         try: |  | ||||||
|             egg = download_setuptools(version, delay=0) |  | ||||||
|             sys.path.insert(0,egg) |  | ||||||
|             from setuptools.command.easy_install import main |  | ||||||
|             return main(list(argv)+[egg])   # we're done here |  | ||||||
|         finally: |  | ||||||
|             if egg and os.path.exists(egg): |  | ||||||
|                 os.unlink(egg) |  | ||||||
|     else: |  | ||||||
|         if setuptools.__version__ == '0.0.1': |  | ||||||
|             print >>sys.stderr, ( |  | ||||||
|             "You have an obsolete version of setuptools installed.  Please\n" |  | ||||||
|             "remove it from your system entirely before rerunning this script." |  | ||||||
|             ) |  | ||||||
|             sys.exit(2) |  | ||||||
| 
 |  | ||||||
|     req = "setuptools>="+version |  | ||||||
|     import pkg_resources |  | ||||||
|     try: |  | ||||||
|         pkg_resources.require(req) |  | ||||||
|     except pkg_resources.VersionConflict: |  | ||||||
|         try: |  | ||||||
|             from setuptools.command.easy_install import main |  | ||||||
|         except ImportError: |  | ||||||
|             from easy_install import main |  | ||||||
|         main(list(argv)+[download_setuptools(delay=0)]) |  | ||||||
|         sys.exit(0) # try to force an exit |  | ||||||
|     else: |  | ||||||
|         if argv: |  | ||||||
|             from setuptools.command.easy_install import main |  | ||||||
|             main(argv) |  | ||||||
|         else: |  | ||||||
|             print "Setuptools version",version,"or greater has been installed." |  | ||||||
|             print '(Run "ez_setup.py -U setuptools" to reinstall or upgrade.)' |  | ||||||
| 
 |  | ||||||
| def update_md5(filenames): |  | ||||||
|     """Update our built-in md5 registry""" |  | ||||||
| 
 |  | ||||||
|     import re |  | ||||||
| 
 |  | ||||||
|     for name in filenames: |  | ||||||
|         base = os.path.basename(name) |  | ||||||
|         f = open(name,'rb') |  | ||||||
|         md5_data[base] = md5(f.read()).hexdigest() |  | ||||||
|         f.close() |  | ||||||
| 
 |  | ||||||
|     data = ["    %r: %r,\n" % it for it in md5_data.items()] |  | ||||||
|     data.sort() |  | ||||||
|     repl = "".join(data) |  | ||||||
| 
 |  | ||||||
|     import inspect |  | ||||||
|     srcfile = inspect.getsourcefile(sys.modules[__name__]) |  | ||||||
|     f = open(srcfile, 'rb'); src = f.read(); f.close() |  | ||||||
| 
 |  | ||||||
|     match = re.search("\nmd5_data = {\n([^}]+)}", src) |  | ||||||
|     if not match: |  | ||||||
|         print >>sys.stderr, "Internal error!" |  | ||||||
|         sys.exit(2) |  | ||||||
| 
 |  | ||||||
|     src = src[:match.start(1)] + repl + src[match.end(1):] |  | ||||||
|     f = open(srcfile,'w') |  | ||||||
|     f.write(src) |  | ||||||
|     f.close() |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| if __name__=='__main__': |  | ||||||
|     if len(sys.argv)>2 and sys.argv[1]=='--md5update': |  | ||||||
|         update_md5(sys.argv[2:]) |  | ||||||
|     else: |  | ||||||
|         main(sys.argv[1:]) |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|  | @ -19,7 +19,7 @@ For questions please check out http://pylib.org/contact.html | ||||||
| """ | """ | ||||||
| from initpkg import initpkg | from initpkg import initpkg | ||||||
| 
 | 
 | ||||||
| version = "1.0.0b6" | version = "1.0.0b7" | ||||||
| 
 | 
 | ||||||
| initpkg(__name__, | initpkg(__name__, | ||||||
|     description = "py.test and pylib: advanced testing tool and networking lib",  |     description = "py.test and pylib: advanced testing tool and networking lib",  | ||||||
|  |  | ||||||
							
								
								
									
										4
									
								
								setup.py
								
								
								
								
							
							
						
						
									
										4
									
								
								setup.py
								
								
								
								
							|  | @ -4,8 +4,6 @@ autogenerated by gensetup.py | ||||||
| """ | """ | ||||||
| import os, sys | import os, sys | ||||||
|          |          | ||||||
| import ez_setup |  | ||||||
| ez_setup.use_setuptools() |  | ||||||
| from setuptools import setup | from setuptools import setup | ||||||
|              |              | ||||||
| long_description = """ | long_description = """ | ||||||
|  | @ -32,7 +30,7 @@ def main(): | ||||||
|         name='py', |         name='py', | ||||||
|         description='py.test and pylib: advanced testing tool and networking lib', |         description='py.test and pylib: advanced testing tool and networking lib', | ||||||
|         long_description = long_description,  |         long_description = long_description,  | ||||||
|         version='1.0.0b6',  |         version='1.0.0b7',  | ||||||
|         url='http://pylib.org',  |         url='http://pylib.org',  | ||||||
|         license='MIT license', |         license='MIT license', | ||||||
|         platforms=['unix', 'linux', 'osx', 'cygwin', 'win32'],  |         platforms=['unix', 'linux', 'osx', 'cygwin', 'win32'],  | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue