Mercurial > hg > mercurial-crew-with-dirclash
view mercurial/httprangereader.py @ 2330:b30aa02c85e7
add 'uisetup' function to extension module protocol.
if uisetup functin exists in extension, is called before cmdtable examined.
called with ui object as parameter. lets module modify cmdtable before
commands.py sees it.
author | Vadim Gelfer <vadim.gelfer@gmail.com> |
---|---|
date | Sun, 21 May 2006 22:14:11 -0700 |
parents | 12e11413ca19 |
children | 345bac2bc4ec |
line wrap: on
line source
# httprangereader.py - just what it says # # Copyright 2005 Matt Mackall <mpm@selenic.com> # # This software may be used and distributed according to the terms # of the GNU General Public License, incorporated herein by reference. import byterange, urllib2 class httprangereader(object): def __init__(self, url): self.url = url self.pos = 0 def seek(self, pos): self.pos = pos def read(self, bytes=None): opener = urllib2.build_opener(byterange.HTTPRangeHandler()) urllib2.install_opener(opener) req = urllib2.Request(self.url) end = '' if bytes: end = self.pos + bytes - 1 req.add_header('Range', 'bytes=%d-%s' % (self.pos, end)) f = urllib2.urlopen(req) data = f.read() if bytes: data = data[:bytes] return data