diff options
author | PJ Eby <distutils-sig@python.org> | 2011-03-23 20:38:12 +0000 |
---|---|---|
committer | PJ Eby <distutils-sig@python.org> | 2011-03-23 20:38:12 +0000 |
commit | 9f3c9810de9de1358d4f62ebd74bdf2c866c7d73 (patch) | |
tree | fd69152461a9da750981fbb0ef72d9f39b017e51 /setuptools/package_index.py | |
parent | 2e97ab0fbc5862025968cf6d10b6011f2a585cf1 (diff) | |
download | external_python_setuptools-9f3c9810de9de1358d4f62ebd74bdf2c866c7d73.tar.gz external_python_setuptools-9f3c9810de9de1358d4f62ebd74bdf2c866c7d73.tar.bz2 external_python_setuptools-9f3c9810de9de1358d4f62ebd74bdf2c866c7d73.zip |
Backport.
--HG--
branch : setuptools-0.6
extra : convert_revision : svn%3A6015fed2-1504-0410-9fe1-9d1591cc4771/sandbox/branches/setuptools-0.6%4088793
Diffstat (limited to 'setuptools/package_index.py')
-rwxr-xr-x | setuptools/package_index.py | 45 |
1 files changed, 43 insertions, 2 deletions
diff --git a/setuptools/package_index.py b/setuptools/package_index.py index 32498d0f..9a9c5d62 100755 --- a/setuptools/package_index.py +++ b/setuptools/package_index.py @@ -550,7 +550,7 @@ class PackageIndex(Environment): bs = self.dl_blocksize size = -1 if "content-length" in headers: - size = int(headers["Content-Length"]) + size = max(map(int,headers.getheaders("Content-Length"))) self.reporthook(url, filename, blocknum, bs, size) tfp = open(filename,'wb') while True: @@ -639,10 +639,39 @@ class PackageIndex(Environment): os.unlink(filename) raise DistutilsError("Unexpected HTML page found at "+url) + + + + + + + + + + + + + + + def _download_svn(self, url, filename): url = url.split('#',1)[0] # remove any fragment for svn's sake + creds = '' + if url.lower().startswith('svn:') and '@' in url: + scheme, netloc, path, p, q, f = urlparse.urlparse(url) + if not netloc and path.startswith('//') and '/' in path[2:]: + netloc, path = path[2:].split('/',1) + auth, host = urllib.splituser(netloc) + if auth: + if ':' in auth: + user, pw = auth.split(':',1) + creds = " --username=%s --password=%s" % (user, pw) + else: + creds = " --username="+auth + netloc = host + url = urlparse.urlunparse((scheme, netloc, url, p, q, f)) self.info("Doing subversion checkout from %s to %s", url, filename) - os.system("svn checkout -q %s %s" % (url, filename)) + os.system("svn checkout%s -q %s %s" % (creds, url, filename)) return filename def debug(self, msg, *args): @@ -654,6 +683,18 @@ class PackageIndex(Environment): def warn(self, msg, *args): log.warn(msg, *args) + + + + + + + + + + + + # This pattern matches a character entity reference (a decimal numeric # references, a hexadecimal numeric reference, or a named reference). entity_sub = re.compile(r'&(#(\d+|x[\da-fA-F]+)|[\w.:-]+);?').sub |