[Python-checkins] r88792 - sandbox/trunk/setuptools/setuptools/package_index.py (original) (raw)
phillip.eby python-checkins at python.org
Wed Mar 23 21:35:43 CET 2011
- Previous message: [Python-checkins] peps: add the anti-tab action item
- Next message: [Python-checkins] r88793 - in sandbox/branches/setuptools-0.6: EasyInstall.txt setuptools/package_index.py
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: phillip.eby Date: Wed Mar 23 21:35:42 2011 New Revision: 88792
Log: Handle multiple Content-Length headers, and support HTTP credentials for SVN checkouts.
Modified: sandbox/trunk/setuptools/setuptools/package_index.py
Modified: sandbox/trunk/setuptools/setuptools/package_index.py
--- sandbox/trunk/setuptools/setuptools/package_index.py (original) +++ sandbox/trunk/setuptools/setuptools/package_index.py Wed Mar 23 21:35:42 2011 @@ -550,7 +550,7 @@ 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 @@ 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))
def debug(self, msg, *args):os.system("svn checkout%s -q %s %s" % (creds, url, filename)) return filename
@@ -654,6 +683,18 @@ def warn(self, msg, *args): log.warn(msg, *args)
This pattern matches a character entity reference (a decimal numeric
entity_sub = re.compile(r'&(#(\d+|x[\da-fA-F]+)|[\w.:-]+);?').sub references, a hexadecimal numeric reference, or a named reference).
- Previous message: [Python-checkins] peps: add the anti-tab action item
- Next message: [Python-checkins] r88793 - in sandbox/branches/setuptools-0.6: EasyInstall.txt setuptools/package_index.py
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]