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