U
`
@ sP d dl mZ d dlmZmZ ddlmZ ddlmZ dd Z
dd Zd
d ZdS )
)absolute_import)!MultipartInvariantViolationDefectStartBoundaryNotFoundDefect )HeaderParsingError)http_clientc C sl z
| W S tk
r Y nX z| jW S tk
r< Y nX z| jdkW S tk
r^ Y nX tddS )zt
Checks whether a given file-like object is closed.
:param obj:
The file-like object to check.
Nz)Unable to determine whether fp is closed.)ZisclosedAttributeErrorclosedfp
ValueError)obj r
F/opt/alt/python38/lib/python3.8/site-packages/urllib3/util/response.pyis_fp_closed s
r c C s t | tjstdt| t| dd}t| dd}d}|r^| s^| }t |tt fr^|}|rpdd |D }|sx|rt
||ddS )a>
Asserts whether all headers have been successfully parsed.
Extracts encountered errors from the result of parsing headers.
Only works on Python 3.
:param http.client.HTTPMessage headers: Headers to verify.
:raises urllib3.exceptions.HeaderParsingError:
If parsing errors are found.
z"expected httplib.Message, got {0}.defectsNget_payloadc S s g | ]}t |ttfs|qS r
)
isinstancer r ).0Zdefectr
r
r
<listcomp>R s z)assert_header_parsing.<locals>.<listcomp>)r
unparsed_data)r httplibZHTTPMessage TypeErrorformattypegetattrZis_multipartbytesstrr )Zheadersr r r Zpayloadr
r
r assert_header_parsing( s r c C s$ | j }t|tr|dkS | dkS )z
Checks whether the request of a response has been a HEAD-request.
Handles the quirks of AppEngine.
:param http.client.HTTPResponse response:
Response to check if the originating request
used 'HEAD' as a method.
ZHEAD)_methodr intupper)Zresponsemethodr
r
r is_response_to_head^ s
r# N)
Z
__future__r Zemail.errorsr r
exceptionsr Zpackages.six.movesr r r r r# r
r
r
r <module> s 6