
o
\c           @   so   d  Z  d d l m Z d d l m Z d d l m Z m Z d e j f d     YZ	 d e	 f d	     YZ
 d
 S(   s-   The module containing the code for GuessAuth.i(   t   auth(   t   cookiesi   (   t   _digest_auth_compatt   http_proxy_digestt	   GuessAuthc           B   s;   e  Z d  Z d   Z d   Z d   Z d   Z d   Z RS(   s7   Guesses the auth type by the WWW-Authentication header.c         C   s(   | |  _  | |  _ d  |  _ d  |  _ d  S(   N(   t   usernamet   passwordt   NoneR    t   pos(   t   selfR   R   (    (    sQ   /data/av2000/b2b/venv/lib/python2.7/site-packages/requests_toolbelt/auth/guess.pyt   __init__   s    			c         C   s   |  j  d  k	 r( | j j j |  j   n  | j | j j   | j j   } t	 | d  sl t
 j   | _ n  t
 j | j | j | j  | j | j  t j |  j |  j  |  _ |  j |  } | j j | |  } | j j |  | | _ | S(   Nt   _cookies(   R   R   t   requestt   bodyt   seekt   contentt   rawt   release_connt   copyt   hasattrR   t   RequestsCookieJarR   t   extract_cookies_to_jart   prepare_cookiesR    t   HTTPBasicAuthR   R   t
   connectiont   sendt   historyt   append(   R	   t   rt   kwargst   prept   _r(    (    sQ   /data/av2000/b2b/venv/lib/python2.7/site-packages/requests_toolbelt/auth/guess.pyt   _handle_basic_auth_401   s    	c         C   s   t  j |  j |  j  |  _ y |  j j   Wn t k
 r? n Xt |  j d  rs |  j j d  k rs d |  j _ n  |  j j
 | |  S(   Nt   num_401_callsi   (   t   auth_compatt   HTTPDigestAuthR   R   R    t   init_per_thread_statet   AttributeErrorR   R!   R   t
   handle_401(   R	   R   R   (    (    sQ   /data/av2000/b2b/venv/lib/python2.7/site-packages/requests_toolbelt/auth/guess.pyt   _handle_digest_auth_401'   s    c         K   sW   | j  j d d  j   } d | k r7 |  j | |  Sd | k rS |  j | |  Sd S(   s/   Resends a request with auth headers, if needed.s   www-authenticatet    t   basict   digestN(   t   headerst   gett   lowerR    R'   (   R	   R   R   t   www_authenticate(    (    sQ   /data/av2000/b2b/venv/lib/python2.7/site-packages/requests_toolbelt/auth/guess.pyR&   :   s
    c         C   s]   |  j  d  k	 r |  j  |  Sy | j j   |  _ Wn t k
 rE n X| j d |  j  | S(   Nt   response(   R    R   R   t   tellR   R%   t   register_hookR&   (   R	   R   (    (    sQ   /data/av2000/b2b/venv/lib/python2.7/site-packages/requests_toolbelt/auth/guess.pyt   __call__E   s    (   t   __name__t
   __module__t   __doc__R
   R    R'   R&   R2   (    (    (    sQ   /data/av2000/b2b/venv/lib/python2.7/site-packages/requests_toolbelt/auth/guess.pyR   	   s   				t   GuessProxyAuthc           B   sG   e  Z d  Z d d d d d  Z d   Z d   Z d   Z d   Z RS(   sZ   
    Guesses the auth type by WWW-Authentication and Proxy-Authentication
    headers
    c         C   s8   t  t |   j | |  | |  _ | |  _ d  |  _ d  S(   N(   t   superR6   R
   t   proxy_usernamet   proxy_passwordR   t
   proxy_auth(   R	   R   R   R8   R9   (    (    sQ   /data/av2000/b2b/venv/lib/python2.7/site-packages/requests_toolbelt/auth/guess.pyR
   W   s    		c         C   s   |  j  d  k	 r( | j j j |  j   n  | j | j j   | j j   } t	 | d  sl t
 j   | _ n  t
 j | j | j | j  | j | j  t j |  j |  j  |  _ |  j |  } | j j | |  } | j j |  | | _ | S(   NR   (   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R    t   HTTPProxyAuthR8   R9   R:   R   R   R   R   (   R	   R   R   R   R   (    (    sQ   /data/av2000/b2b/venv/lib/python2.7/site-packages/requests_toolbelt/auth/guess.pyt   _handle_basic_auth_407^   s     	c         C   sY   t  j d |  j d |  j  |  _ y |  j j   Wn t k
 rE n X|  j j | |  S(   NR   R   (	   R   t   HTTPProxyDigestAuthR8   R9   R:   R    R$   R%   t
   handle_407(   R	   R   R   (    (    sQ   /data/av2000/b2b/venv/lib/python2.7/site-packages/requests_toolbelt/auth/guess.pyt   _handle_digest_auth_407s   s    		c         K   sW   | j  j d d  j   } d | k r7 |  j | |  Sd | k rS |  j | |  Sd  S(   Ns   Proxy-AuthenticateR(   R)   R*   (   R+   R,   R-   R<   R?   (   R	   R   R   t   proxy_authenticate(    (    sQ   /data/av2000/b2b/venv/lib/python2.7/site-packages/requests_toolbelt/auth/guess.pyR>      s
    c         C   st   |  j  d  k	 r! |  j  |  } n  y | j j   |  _ Wn t k
 rJ n X| j d |  j  t t	 |   j
 |  S(   NR/   (   R:   R   R   R0   R   R%   R1   R>   R7   R6   R2   (   R	   R   (    (    sQ   /data/av2000/b2b/venv/lib/python2.7/site-packages/requests_toolbelt/auth/guess.pyR2      s    N(	   R3   R4   R5   R   R
   R<   R?   R>   R2   (    (    (    sQ   /data/av2000/b2b/venv/lib/python2.7/site-packages/requests_toolbelt/auth/guess.pyR6   R   s   				N(   R5   t   requestsR    R   R(   R   R"   R   t   AuthBaseR   R6   (    (    (    sQ   /data/av2000/b2b/venv/lib/python2.7/site-packages/requests_toolbelt/auth/guess.pyt   <module>   s
   I