diff mercurial/statichttprepo.py @ 1325:57220daf40e9

Move urllib error handling from revlog into statichttprepo, where it belongs.
author Bryan O'Sullivan <bos@serpentine.com>
date Fri, 23 Sep 2005 00:05:16 -0700
parents 2cf5c8a4eae5
children 14d1f1868bf6 11d12bd6e1dc
line wrap: on
line diff
--- a/mercurial/statichttprepo.py	Thu Sep 22 23:33:26 2005 -0700
+++ b/mercurial/statichttprepo.py	Fri Sep 23 00:05:16 2005 -0700
@@ -7,15 +7,23 @@
 # This software may be used and distributed according to the terms
 # of the GNU General Public License, incorporated herein by reference.
 
-import os, urllib
-import localrepo, httprangereader, filelog, manifest, changelog
+from demandload import demandload
+demandload(globals(), "changelog filelog httprangereader")
+demandload(globals(), "localrepo manifest os urllib urllib2")
+
+class rangereader(httprangereader.httprangereader):
+    def read(self, size=None):
+        try:
+            return httprangereader.httprangereader.read(self, size)
+        except urllib2.URLError, inst:
+            raise IOError(None, str(inst))
 
 def opener(base):
     """return a function that opens files over http"""
     p = base
     def o(path, mode="r"):
         f = os.path.join(p, urllib.quote(path))
-        return httprangereader.httprangereader(f)
+        return rangereader(f)
     return o
 
 class statichttprepository(localrepo.localrepository):