diff options
author | Jason R. Coombs <jaraco@jaraco.com> | 2013-05-24 15:59:31 -0400 |
---|---|---|
committer | Jason R. Coombs <jaraco@jaraco.com> | 2013-05-24 15:59:31 -0400 |
commit | d189e4d498cf1b00d2d703d05117a75454df70f0 (patch) | |
tree | d2f4fa97ae742f55a2620db0b73ae9dbbf506d94 | |
parent | 2faf1e9a78136fe09365e8054f0fc04cdb26db94 (diff) | |
parent | 62e96b0e72c19c087c9de388d6c8897710a3e080 (diff) | |
download | external_python_setuptools-d189e4d498cf1b00d2d703d05117a75454df70f0.tar.gz external_python_setuptools-d189e4d498cf1b00d2d703d05117a75454df70f0.tar.bz2 external_python_setuptools-d189e4d498cf1b00d2d703d05117a75454df70f0.zip |
Merge with distribute 0.6.42
-rw-r--r-- | .hgtags | 1 | ||||
-rw-r--r-- | CHANGES.txt | 9 | ||||
-rw-r--r-- | CONTRIBUTORS.txt | 1 | ||||
-rwxr-xr-x | setup.py | 10 | ||||
-rwxr-xr-x | setuptools/command/easy_install.py | 2 | ||||
-rwxr-xr-x | setuptools/package_index.py | 32 | ||||
-rw-r--r-- | setuptools/py24compat.py | 11 | ||||
-rw-r--r--[-rwxr-xr-x] | setuptools/site-patch.py (renamed from site.py) | 0 |
8 files changed, 58 insertions, 8 deletions
@@ -52,3 +52,4 @@ d737b2039c5f92af8000f78bbc80b6a5183caa97 0.6.39 9b2e2aa06e058c63e06c5e42a7f279ddae2dfb7d 0.7b1 0a783fa0dceb95b5fc743e47c2d89c1523d0afb7 0.6.40 ad107e9b4beea24516ac4e1e854696e586fe279d 0.6.41 +f30167716b659f96c5e0b7ea3d5be2bcff8c0eac 0.6.42 diff --git a/CHANGES.txt b/CHANGES.txt index c0c1c98c..614a8489 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -21,6 +21,14 @@ Added several features that were slated for setuptools 0.6c12: an HTTPS service. ------ +0.6.42 +------ + +* External links finder no longer yields duplicate links. +* Issue #337: Moved site.py to setuptools/site-patch.py (graft of very old + patch from setuptools trunk which inspired PR #31). + +------ 0.6.41 ------ @@ -79,6 +87,7 @@ Added several features that were slated for setuptools 0.6c12: 0.6.35 ------ + Note this release is backward-incompatible with distribute 0.6.23-0.6.34 in how it parses version numbers. diff --git a/CONTRIBUTORS.txt b/CONTRIBUTORS.txt index 92dc368c..8515babe 100644 --- a/CONTRIBUTORS.txt +++ b/CONTRIBUTORS.txt @@ -8,6 +8,7 @@ Contributors * Christophe Combelles * Daniel Stutzbach * Daniel Holth +* Dirley Rodrigues * Grigory Petrov * Hanno Schlichting * Jannis Leidel @@ -132,20 +132,18 @@ dist = setup( test_suite = 'setuptools.tests', src_root = src_root, packages = find_packages(), - package_data = {'setuptools':['*.exe'], 'setuptools.command':['*.xml']}, + package_data = {'setuptools':['*.exe', 'site-patch.py'], 'setuptools.command':['*.xml']}, - py_modules = ['pkg_resources', 'easy_install', 'site'], + py_modules = ['pkg_resources', 'easy_install'], zip_safe = (sys.version>="2.5"), # <2.5 needs unzipped for -m to work cmdclass = {'test': test}, entry_points = { - "distutils.commands" : [ "%(cmd)s = setuptools.command.%(cmd)s:%(cmd)s" % locals() for cmd in SETUP_COMMANDS ], - "distutils.setup_keywords": [ "eager_resources = setuptools.dist:assert_string_list", "namespace_packages = setuptools.dist:check_nsp", @@ -166,7 +164,6 @@ dist = setup( "use_2to3_fixers = setuptools.dist:assert_string_list", "use_2to3_exclude_fixers = setuptools.dist:assert_string_list", ], - "egg_info.writers": [ "PKG-INFO = setuptools.command.egg_info:write_pkg_info", "requires.txt = setuptools.command.egg_info:write_requirements", @@ -177,7 +174,6 @@ dist = setup( "depends.txt = setuptools.command.egg_info:warn_depends_obsolete", "dependency_links.txt = setuptools.command.egg_info:overwrite_arg", ], - "console_scripts": console_scripts, "setuptools.file_finders": @@ -185,7 +181,7 @@ dist = setup( "setuptools.installation": ['eggsecutable = setuptools.command.easy_install:bootstrap'], - }, + }, classifiers = textwrap.dedent(""" diff --git a/setuptools/command/easy_install.py b/setuptools/command/easy_install.py index c98be5a2..f29faf9d 100755 --- a/setuptools/command/easy_install.py +++ b/setuptools/command/easy_install.py @@ -1276,7 +1276,7 @@ Please make the appropriate changes for your system and try again.""" % ( return # already did it, or don't need to sitepy = os.path.join(self.install_dir, "site.py") - source = resource_string(Requirement.parse("setuptools"), "site.py") + source = resource_string("setuptools", "site-patch.py") current = "" if os.path.exists(sitepy): diff --git a/setuptools/package_index.py b/setuptools/package_index.py index 04a30a45..2701c873 100755 --- a/setuptools/package_index.py +++ b/setuptools/package_index.py @@ -1,5 +1,6 @@ """PyPI and direct package downloading""" import sys, os.path, re, urlparse, urllib2, shutil, random, socket, cStringIO +import itertools import base64 import httplib, urllib from setuptools import ssl_support @@ -11,6 +12,8 @@ try: except ImportError: from md5 import md5 from fnmatch import translate +from .py24compat import wraps + EGG_FRAGMENT = re.compile(r'^egg=([-A-Za-z0-9_.]+)$') HREF = re.compile("""href\\s*=\\s*['"]?([^'"> ]+)""", re.I) # this is here to fix emacs' cruddy broken syntax highlighting @@ -134,9 +137,38 @@ def interpret_distro_name(location, basename, metadata, platform = platform ) +# From Python 2.7 docs +def unique_everseen(iterable, key=None): + "List unique elements, preserving order. Remember all elements ever seen." + # unique_everseen('AAAABBBCCDAABBB') --> A B C D + # unique_everseen('ABBCcAD', str.lower) --> A B C D + seen = set() + seen_add = seen.add + if key is None: + for element in itertools.ifilterfalse(seen.__contains__, iterable): + seen_add(element) + yield element + else: + for element in iterable: + k = key(element) + if k not in seen: + seen_add(k) + yield element + +def unique_values(func): + """ + Wrap a function returning an iterable such that the resulting iterable + only ever yields unique items. + """ + @wraps(func) + def wrapper(*args, **kwargs): + return unique_everseen(func(*args, **kwargs)) + return wrapper + REL = re.compile("""<([^>]*\srel\s*=\s*['"]?([^'">]+)[^>]*)>""", re.I) # this line is here to fix emacs' cruddy broken syntax highlighting +@unique_values def find_external_links(url, page): """Find rel="homepage" and rel="download" links in `page`, yielding URLs""" diff --git a/setuptools/py24compat.py b/setuptools/py24compat.py new file mode 100644 index 00000000..c5d7d204 --- /dev/null +++ b/setuptools/py24compat.py @@ -0,0 +1,11 @@ +""" +Forward-compatibility support for Python 2.4 and earlier +""" + +# from jaraco.compat 1.2 +try: + from functools import wraps +except ImportError: + def wraps(func): + "Just return the function unwrapped" + return lambda x: x diff --git a/site.py b/setuptools/site-patch.py index a7166f14..a7166f14 100755..100644 --- a/site.py +++ b/setuptools/site-patch.py |