Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/url.py @ 14071:b23a8dd36a21
url: remove unused/obsolete functions
author | Brodie Rao <brodie@bitheap.org> |
---|---|
date | Sat, 30 Apr 2011 07:00:13 -0700 |
parents | e4bfb9c337f3 |
children | 924c82157d46 |
comparison
equal
deleted
inserted
replaced
14070:305c97670d7a | 14071:b23a8dd36a21 |
---|---|
272 '''remove all authentication information from a url string''' | 272 '''remove all authentication information from a url string''' |
273 u = url(u) | 273 u = url(u) |
274 u.user = u.passwd = None | 274 u.user = u.passwd = None |
275 return str(u) | 275 return str(u) |
276 | 276 |
277 def netlocsplit(netloc): | |
278 '''split [user[:passwd]@]host[:port] into 4-tuple.''' | |
279 | |
280 a = netloc.find('@') | |
281 if a == -1: | |
282 user, passwd = None, None | |
283 else: | |
284 userpass, netloc = netloc[:a], netloc[a + 1:] | |
285 c = userpass.find(':') | |
286 if c == -1: | |
287 user, passwd = urllib.unquote(userpass), None | |
288 else: | |
289 user = urllib.unquote(userpass[:c]) | |
290 passwd = urllib.unquote(userpass[c + 1:]) | |
291 c = netloc.find(':') | |
292 if c == -1: | |
293 host, port = netloc, None | |
294 else: | |
295 host, port = netloc[:c], netloc[c + 1:] | |
296 return host, port, user, passwd | |
297 | |
298 def netlocunsplit(host, port, user=None, passwd=None): | |
299 '''turn host, port, user, passwd into [user[:passwd]@]host[:port].''' | |
300 if port: | |
301 hostport = host + ':' + port | |
302 else: | |
303 hostport = host | |
304 if user: | |
305 quote = lambda s: urllib.quote(s, safe='') | |
306 if passwd: | |
307 userpass = quote(user) + ':' + quote(passwd) | |
308 else: | |
309 userpass = quote(user) | |
310 return userpass + '@' + hostport | |
311 return hostport | |
312 | |
313 def readauthforuri(ui, uri): | 277 def readauthforuri(ui, uri): |
314 # Read configuration | 278 # Read configuration |
315 config = dict() | 279 config = dict() |
316 for key, val in ui.configitems('auth'): | 280 for key, val in ui.configitems('auth'): |
317 if '.' not in key: | 281 if '.' not in key: |
339 if (prefix == '*' or hostpath.startswith(prefix)) and \ | 303 if (prefix == '*' or hostpath.startswith(prefix)) and \ |
340 len(prefix) > bestlen and scheme in schemes: | 304 len(prefix) > bestlen and scheme in schemes: |
341 bestlen = len(prefix) | 305 bestlen = len(prefix) |
342 bestauth = group, auth | 306 bestauth = group, auth |
343 return bestauth | 307 return bestauth |
344 | |
345 _safe = ('abcdefghijklmnopqrstuvwxyz' | |
346 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' | |
347 '0123456789' '_.-/') | |
348 _safeset = None | |
349 _hex = None | |
350 def quotepath(path): | |
351 '''quote the path part of a URL | |
352 | |
353 This is similar to urllib.quote, but it also tries to avoid | |
354 quoting things twice (inspired by wget): | |
355 | |
356 >>> quotepath('abc def') | |
357 'abc%20def' | |
358 >>> quotepath('abc%20def') | |
359 'abc%20def' | |
360 >>> quotepath('abc%20 def') | |
361 'abc%20%20def' | |
362 >>> quotepath('abc def%20') | |
363 'abc%20def%20' | |
364 >>> quotepath('abc def%2') | |
365 'abc%20def%252' | |
366 >>> quotepath('abc def%') | |
367 'abc%20def%25' | |
368 ''' | |
369 global _safeset, _hex | |
370 if _safeset is None: | |
371 _safeset = set(_safe) | |
372 _hex = set('abcdefABCDEF0123456789') | |
373 l = list(path) | |
374 for i in xrange(len(l)): | |
375 c = l[i] | |
376 if (c == '%' and i + 2 < len(l) and | |
377 l[i + 1] in _hex and l[i + 2] in _hex): | |
378 pass | |
379 elif c not in _safeset: | |
380 l[i] = '%%%02X' % ord(c) | |
381 return ''.join(l) | |
382 | 308 |
383 class passwordmgr(urllib2.HTTPPasswordMgrWithDefaultRealm): | 309 class passwordmgr(urllib2.HTTPPasswordMgrWithDefaultRealm): |
384 def __init__(self, ui): | 310 def __init__(self, ui): |
385 urllib2.HTTPPasswordMgrWithDefaultRealm.__init__(self) | 311 urllib2.HTTPPasswordMgrWithDefaultRealm.__init__(self) |
386 self.ui = ui | 312 self.ui = ui |