XylotrechusZ
U
��.e
� @ s@ d dl mZ ddlmZ ddlmZ dd� Zdd� Zd d
� Z dS )� )�absolute_import� )�http_client)�HeaderParsingErrorc C sl z
| � � W S tk
r Y nX z| jW S tk
r< Y nX z| jdkW S tk
r^ Y nX td��dS )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.)Zisclosed�AttributeError�closed�fp�
ValueError)�obj� r �E/usr/lib/python3.8/site-packages/pip/_vendor/urllib3/util/response.py�is_fp_closed s
r
c C sv t | tj�std�t| ����t| dd�}t| dd�}d}|r^| �� s^|� }t |tt f�r^|}|sf|rrt
||d��dS )aP
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.
z"expected httplib.Message, got {0}.�defectsN�get_payload)r �
unparsed_data)�
isinstance�httplibZHTTPMessage� TypeError�format�type�getattrZis_multipart�bytes�strr )Zheadersr r r Zpayloadr r r �assert_header_parsing&