mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 01:07:15 +03:00
7bdae1e0eb
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Move httprangereader into its own file manifest hash: 7a856e4024ce5d3d305e23e418a77d3058c74ddf -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux) iD8DBQFCsPj4ywK+sNU5EO8RAizKAJ9kbYVAC+iL4cKml14BcwX9okdnJQCgjLAP cWM5/y9FdC3THOC6DkUNic0= =PkL6 -----END PGP SIGNATURE-----
25 lines
762 B
Python
25 lines
762 B
Python
# 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:
|
|
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
|
|
req.add_header('Range', 'bytes=%d-%s' % (self.pos, end))
|
|
f = urllib2.urlopen(req)
|
|
return f.read()
|