mercurial/httprangereader.py
author mpm@selenic.com
Sun, 03 Jul 2005 20:33:35 -0800
changeset 602 56d81b303656
parent 372 4b0f562c61f4
child 1559 59b3639df0a9
permissions -rw-r--r--
Various HTML cleanups -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Various HTML cleanups From: Edouard Gomez <ed.gomez@free.fr> Cleaned up the changeset summary table differentiating title cells from data cells using th and td. Added semantic classes. Changed the big pre tag into a div that mimics pre tag style (that is monospace font and white space preformated). This is required because pre is an inline element, and thus cannot be the parent of block elements as div (diffblock). I replaced all these div blocks by a series ul lists as patches can be seen as lists of changes in versioned files. If someone has a better semantic to propose, i'd be pleased he drops me an email about this patch. - -- Cleaned up the filediff summary table differentiating title cells from data cells using th and td. Added semantic classes. - -- Keep style unchanged for changeset template As promised no changes in style. This one got through my eyes + brain checking... sorry. manifest hash: 68dd5c1ac71aa6a5932fb209d48df5fc0c78643b -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux) iD8DBQFCyLwfywK+sNU5EO8RAtE9AJ0cxl80eF3zpBWLn8OkoSs7dkZOTgCgtYto j7T/iRk0Hq4Q0mjdos7FvYU= =KOP2 -----END PGP SIGNATURE-----

# 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()