�
��fg�
� �L � d dl mZ d dlmZmZ ddlmZ d dlmZ d� Z
d� Zd� Zd S )
� )�absolute_import)�!MultipartInvariantViolationDefect�StartBoundaryNotFoundDefect� )�HeaderParsingError)�http_clientc �� � | � � � S # t $ r Y nw xY w | j S # t $ r Y nw xY w | j du S # t $ r Y nw xY wt d� � �)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.)�isclosed�AttributeError�closed�fp�
ValueError)�objs �7/usr/lib/python3/dist-packages/urllib3/util/response.py�is_fp_closedr s� � �
� �|�|�~�~����
�
�
���
����
��z����
�
�
���
����
� �v��~����
�
�
���
���� �@�
A�
A�As) � �
#�#�. �
;�;�A �
A�Ac � � t | t j � � s/t d� t | � � � � � � �t
| dd� � }t
| dd� � }d}|r<| � � � s( |� � }t |t t f� � r|}|rd� |D � � }|s|rt ||�� � �dS )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}.�defectsN�get_payloadc �J � g | ] }t |t t f� � �|��!S � )�
isinstancer r )�.0�defects r �
<listcomp>z)assert_header_parsing.<locals>.<listcomp>R sD � �
�
�
����4�6W�X�� �
��
�
�
� )r �
unparsed_data)r �httplib�HTTPMessage� TypeError�format�type�getattr�is_multipart�bytes�strr )�headersr r r �payloads r �assert_header_parsingr( ( s � � �g�w�2�3�3� T��<�C�C�D��M�M�R�R�S�S�S��g�y�$�/�/�G��'�=�$�7�7�K��M�� (� �#�#�%�%� (�!�k�m�m�G��'�E�3�<�0�0�
(� '�
��
�
�
�!�
�
�
�� � O�-� O� ��
�N�N�N�N�O� Or c �v � | j }t |t � � r|dk S |� � � dk S )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.
� �HEAD)�_methodr �int�upper)�response�methods r �is_response_to_headr1 ^ s; � � �
�F��&�#��� ���{���<�<�>�>�V�#�#r N)
�
__future__r �email.errorsr r �
exceptionsr � six.movesr r r r( r1 r r r �<module>r6 s� �� &� &� &� &� &� &� W� W� W� W� W� W� W� W� +� +� +� +� +� +� ,� ,� ,� ,� ,� ,�B� B� B�>3O� 3O� 3O�l
$�
$�
$�
$�
$r |