view mercurial/httprangereader.py @ 687:44b30755d07c

Hide file hashes in log There are six different kinds of revision numbers and hashes: changeset hash and local number manifest hash and local number file hash and local number We really ought to expose only the changeset hash and local number, so begin hiding the others from the end user manifest hash: 40d07cc930e84a9283d5e03ade23e3454401e148
author Matt Mackall <mpm@selenic.com>
date Tue, 12 Jul 2005 20:55:42 -0800
parents 4b0f562c61f4
children 59b3639df0a9
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:
    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()