
]'v_l  ã               @   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   ú7/usr/lib/python3/dist-packages/urllib3/util/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ÚhttplibZHTTPMessageÚ	TypeErrorÚformatÚtypeÚgetattrr   )Zheadersr   r   r   r   r   r   Úassert_header_parsing   s    		r   c             C   s2   |  j  } t | t ƒ r" | d k S| j ƒ  d k S)z²
    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`
    é   ZHEAD)Ú_methodr   ÚintÚupper)ZresponseÚmethodr   r   r   Úis_response_to_head>   s    		
r   N)
Z
__future__r   Z	six.movesr   r   Ú
exceptionsr   r   r   r   r   r   r   r   Ú<module>   s
   