Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F120685910
response.py
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sun, Jul 6, 07:25
Size
2 KB
Mime Type
text/x-python
Expires
Tue, Jul 8, 07:25 (1 d, 23 h)
Engine
blob
Format
Raw Data
Handle
27219571
Attached To
R3852 EMS for Smart-Building
response.py
View Options
from
..packages.six.moves
import
http_client
as
httplib
from
..exceptions
import
HeaderParsingError
def
is_fp_closed
(
obj
):
"""
Checks whether a given file-like object is closed.
:param obj:
The file-like object to check.
"""
try
:
# Check via the official file-like-object way.
return
obj
.
closed
except
AttributeError
:
pass
try
:
# Check if the object is a container for another file-like object that
# gets released on exhaustion (e.g. HTTPResponse).
return
obj
.
fp
is
None
except
AttributeError
:
pass
raise
ValueError
(
"Unable to determine whether fp is closed."
)
def
assert_header_parsing
(
headers
):
"""
Asserts whether all headers have been successfully parsed.
Extracts encountered errors from the result of parsing headers.
Only works on Python 3.
:param headers: Headers to verify.
:type headers: `httplib.HTTPMessage`.
:raises urllib3.exceptions.HeaderParsingError:
If parsing errors are found.
"""
# This will fail silently if we pass in the wrong kind of parameter.
# To make debugging easier add an explicit check.
if
not
isinstance
(
headers
,
httplib
.
HTTPMessage
):
raise
TypeError
(
'expected httplib.Message, got {}.'
.
format
(
type
(
headers
)))
defects
=
getattr
(
headers
,
'defects'
,
None
)
get_payload
=
getattr
(
headers
,
'get_payload'
,
None
)
unparsed_data
=
None
if
get_payload
:
# Platform-specific: Python 3.
unparsed_data
=
get_payload
()
if
defects
or
unparsed_data
:
raise
HeaderParsingError
(
defects
=
defects
,
unparsed_data
=
unparsed_data
)
def
is_response_to_head
(
response
):
"""
Checks, wether a the request of a response has been a HEAD-request.
Handles the quirks of AppEngine.
:param conn:
:type conn: :class:`httplib.HTTPResponse`
"""
# FIXME: Can we do this somehow without accessing private httplib _method?
method
=
response
.
_method
if
isinstance
(
method
,
int
):
# Platform-specific: Appengine
return
method
==
3
return
method
.
upper
()
==
'HEAD'
Event Timeline
Log In to Comment