mercurial/statichttprepo.py
changeset 50376 3eacb4a54313
parent 50375 ebf1a07539b9
child 50437 3a2df812e1c7
equal deleted inserted replaced
50375:ebf1a07539b9 50376:3eacb4a54313
   117         r.msg = msg
   117         r.msg = msg
   118         return r
   118         return r
   119 
   119 
   120     def http_error_416(self, req, fp, code, msg, hdrs):
   120     def http_error_416(self, req, fp, code, msg, hdrs):
   121         # HTTP's Range Not Satisfiable error
   121         # HTTP's Range Not Satisfiable error
   122         raise _RangeError(b'Requested Range Not Satisfiable')
   122         raise _RangeError('Requested Range Not Satisfiable')
   123 
   123 
   124 
   124 
   125 def build_opener(ui, authinfo):
   125 def build_opener(ui, authinfo):
   126     # urllib cannot handle URLs with embedded user or passwd
   126     # urllib cannot handle URLs with embedded user or passwd
   127     urlopener = url.opener(ui, authinfo)
   127     urlopener = url.opener(ui, authinfo)
   132             self.base = base
   132             self.base = base
   133             self.options = {}
   133             self.options = {}
   134 
   134 
   135         def __call__(self, path, mode=b'r', *args, **kw):
   135         def __call__(self, path, mode=b'r', *args, **kw):
   136             if mode not in (b'r', b'rb'):
   136             if mode not in (b'r', b'rb'):
   137                 raise IOError(b'Permission denied')
   137                 raise IOError('Permission denied')
   138             f = b"/".join((self.base, urlreq.quote(path)))
   138             f = b"/".join((self.base, urlreq.quote(path)))
   139             return httprangereader(f, urlopener)
   139             return httprangereader(f, urlopener)
   140 
   140 
   141         def join(self, path, *insidef):
   141         def join(self, path, *insidef):
   142             if path:
   142             if path: