σ
ωΌςec           @@  se   d  d l  m Z d  d l m Z m Z d d l m Z d d l m Z	 d   Z
 d   Z d   Z d	 S(
   i    (   t   absolute_import(   t!   MultipartInvariantViolationDefectt   StartBoundaryNotFoundDefecti   (   t   HeaderParsingError(   t   http_clientc         C@  sv   y |  j    SWn t k
 r! n Xy |  j SWn t k
 r@ n Xy |  j d k SWn t k
 re n Xt d   d S(   st   
    Checks whether a given file-like object is closed.

    :param obj:
        The file-like object to check.
    s)   Unable to determine whether fp is closed.N(   t   isclosedt   AttributeErrort   closedt   fpt   Nonet
   ValueError(   t   obj(    (    sN   /navires/venv/lib/python2.7/site-packages/pip/_vendor/urllib3/util/response.pyt   is_fp_closed	   s    c         C@  sψ   t  |  t j  s0 t d j t |      n  t |  d d  } t |  d d  } d } | r |  j   s |   } t  | t	 t
 f  r | } q q n  | rΠ g  | D]! } t  | t t f  s¦ | ^ q¦ } n  | sά | rτ t d | d |   n  d S(   s>  
    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.
    s"   expected httplib.Message, got {0}.t   defectst   get_payloadt   unparsed_dataN(   t
   isinstancet   httplibt   HTTPMessaget	   TypeErrort   formatt   typet   getattrR	   t   is_multipartt   bytest   strR   R   R   (   t   headersR   R   R   t   payloadt   defect(    (    sN   /navires/venv/lib/python2.7/site-packages/pip/_vendor/urllib3/util/response.pyt   assert_header_parsing(   s"    	
!c         C@  s2   |  j  } t | t  r" | d k S| j   d k S(   sυ   
    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.
    i   t   HEAD(   t   _methodR   t   intt   upper(   t   responset   method(    (    sN   /navires/venv/lib/python2.7/site-packages/pip/_vendor/urllib3/util/response.pyt   is_response_to_head^   s    
	
N(   t
   __future__R    t   email.errorsR   R   t
   exceptionsR   t   packages.six.movesR   R   R   R   R$   (    (    (    sN   /navires/venv/lib/python2.7/site-packages/pip/_vendor/urllib3/util/response.pyt   <module>   s   		6