��Vu � @ sX d d l m Z d d l m Z d d l m Z d d � Z d d � Z d d � Z d S)� )�absolute_import� )�http_client)�HeaderParsingErrorc C sV y | j SWn t k r Yn Xy | j d k SWn t k rE Yn Xt d � � d S)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.)�closed�AttributeError�fp� ValueError)�obj� r �/response.py�is_fp_closed s r c C s� t | t j � s- t d j t | � � � � t | d d � } t | d d � } d } | rf | � } | sr | r� t d | d | � � d S)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� unparsed_data)� isinstance�httplibZHTTPMessage� TypeError�format�type�getattrr )Zheadersr r r r r r �assert_header_parsing s r c C s2 | j } t | t � r"