From 4d4de6eecb3917e19a0af616790630a683b43767 Mon Sep 17 00:00:00 2001 From: Stefan Israelsson Tampe Date: Tue, 6 Nov 2018 23:26:25 +0100 Subject: python repo install --- modules/language/python/module/urllib/#error.py# | 77 ++++++++++++++++++++++++ modules/language/python/module/urllib/.#error.py | 1 + 2 files changed, 78 insertions(+) create mode 100644 modules/language/python/module/urllib/#error.py# create mode 120000 modules/language/python/module/urllib/.#error.py (limited to 'modules/language/python/module/urllib') diff --git a/modules/language/python/module/urllib/#error.py# b/modules/language/python/module/urllib/#error.py# new file mode 100644 index 0000000..7df0238 --- /dev/null +++ b/modules/language/python/module/urllib/#error.py# @@ -0,0 +1,77 @@ +module(urllib,error) + +"""Exception classes raised by urllib. + +The base exception class is URLError, which inherits from OSError. It +doesn't define any behavior of its own, but is the base class for all +exceptions defined in this package. + +HTTPError is an exception class that is also a valid HTTP response +instance. It behaves this way because HTTP protocol errors are valid +responses, with a status code, headers, and a body. In some contexts, +an application may want to handle an exception like a regular +response. +""" + +import urllib.response + +__all__ = ['URLError', 'HTTPError', 'ContentTooShortError'] + +class URLError(OSError): + # URLError is a sub-type of OSError, but it doesn't share any of + # the implementation. need to override __init__ and __str__. + # It sets self.args for compatibility with other EnvironmentError + # subclasses, but args doesn't have the typical format with errno in + # slot 0 and strerror in slot 1. This may be better than nothing. + def __init__(self, reason, filename=None): + self.args = reason, + self.reason = reason + if filename is not None: + self.filename = filename + + def __str__(self): + return '' % self.reason + + +class HTTPError(URLError, urllib.response.addinfourl): + """Raised when HTTP error occurs, but also acts like non-error return""" + __super_init = urllib.response.addinfourl.__init__ + + def __init__(self, url, code, msg, hdrs, fp): + self.code = code + self.msg = msg + self.hdrs = hdrs + self.fp = fp + self.filename = url + # The addinfourl classes depend on fp being a valid file + # object. In some cases, the HTTPError may not have a valid + # file object. If this happens, the simplest workaround is to + # not initialize the base classes. + if fp is not None: + self.__super_init(fp, hdrs, url, code) + + def __str__(self): + return 'HTTP Error %s: %s' % (self.code, self.msg) + + def __repr__(self): + return '' % (self.code, self.msg) + + # since URLError specifies a .reason attribute, HTTPError should also + # provide this attribute. See issue13211 for discussion. + @property + def reason(self): + return self.msg + + @property + def headers(self): + return self.hdrs + + @headers.setter + def headers(self, headers): + self.hdrs = headers + +class ContentTooShortError(URLError): + """Exception raised when downloaded size does not match content-length.""" + def __init__(self, message, content): + URLError.__init__(self, message) + self.content = content diff --git a/modules/language/python/module/urllib/.#error.py b/modules/language/python/module/urllib/.#error.py new file mode 120000 index 0000000..c8d0ed8 --- /dev/null +++ b/modules/language/python/module/urllib/.#error.py @@ -0,0 +1 @@ +stis@lapwine.2086:1535196580 \ No newline at end of file -- cgit v1.2.3