aboutsummaryrefslogtreecommitdiffstats
path: root/netlib/http/response.py
diff options
context:
space:
mode:
Diffstat (limited to 'netlib/http/response.py')
-rw-r--r--netlib/http/response.py116
1 files changed, 0 insertions, 116 deletions
diff --git a/netlib/http/response.py b/netlib/http/response.py
deleted file mode 100644
index 8f4d6215..00000000
--- a/netlib/http/response.py
+++ /dev/null
@@ -1,116 +0,0 @@
-from __future__ import absolute_import, print_function, division
-
-import warnings
-
-from . import cookies
-from .headers import Headers
-from .message import Message, _native, _always_bytes, MessageData
-from .. import utils
-from ..odict import ODict
-
-
-class ResponseData(MessageData):
- def __init__(self, http_version, status_code, reason=None, headers=None, content=None,
- timestamp_start=None, timestamp_end=None):
- if not isinstance(headers, Headers):
- headers = Headers(headers)
-
- self.http_version = http_version
- self.status_code = status_code
- self.reason = reason
- self.headers = headers
- self.content = content
- self.timestamp_start = timestamp_start
- self.timestamp_end = timestamp_end
-
-
-class Response(Message):
- """
- An HTTP response.
- """
- def __init__(self, *args, **kwargs):
- data = ResponseData(*args, **kwargs)
- super(Response, self).__init__(data)
-
- def __repr__(self):
- if self.content:
- details = "{}, {}".format(
- self.headers.get("content-type", "unknown content type"),
- utils.pretty_size(len(self.content))
- )
- else:
- details = "no content"
- return "Response({status_code} {reason}, {details})".format(
- status_code=self.status_code,
- reason=self.reason,
- details=details
- )
-
- @property
- def status_code(self):
- """
- HTTP Status Code, e.g. ``200``.
- """
- return self.data.status_code
-
- @status_code.setter
- def status_code(self, status_code):
- self.data.status_code = status_code
-
- @property
- def reason(self):
- """
- HTTP Reason Phrase, e.g. "Not Found".
- This is always :py:obj:`None` for HTTP2 requests, because HTTP2 responses do not contain a reason phrase.
- """
- return _native(self.data.reason)
-
- @reason.setter
- def reason(self, reason):
- self.data.reason = _always_bytes(reason)
-
- @property
- def cookies(self):
- """
- Get the contents of all Set-Cookie headers.
-
- A possibly empty :py:class:`ODict`, where keys are cookie name strings,
- and values are [value, attr] lists. Value is a string, and attr is
- an ODictCaseless containing cookie attributes. Within attrs, unary
- attributes (e.g. HTTPOnly) are indicated by a Null value.
- """
- ret = []
- for header in self.headers.get_all("set-cookie"):
- v = cookies.parse_set_cookie_header(header)
- if v:
- name, value, attrs = v
- ret.append([name, [value, attrs]])
- return ODict(ret)
-
- @cookies.setter
- def cookies(self, odict):
- values = []
- for i in odict.lst:
- header = cookies.format_set_cookie_header(i[0], i[1][0], i[1][1])
- values.append(header)
- self.headers.set_all("set-cookie", values)
-
- # Legacy
-
- def get_cookies(self): # pragma: nocover
- warnings.warn(".get_cookies is deprecated, use .cookies instead.", DeprecationWarning)
- return self.cookies
-
- def set_cookies(self, odict): # pragma: nocover
- warnings.warn(".set_cookies is deprecated, use .cookies instead.", DeprecationWarning)
- self.cookies = odict
-
- @property
- def msg(self): # pragma: nocover
- warnings.warn(".msg is deprecated, use .reason instead.", DeprecationWarning)
- return self.reason
-
- @msg.setter
- def msg(self, reason): # pragma: nocover
- warnings.warn(".msg is deprecated, use .reason instead.", DeprecationWarning)
- self.reason = reason