
    8iP                     p    S r SSKJr  SSKJr  SSKJrJr   " S S\R                  5      r	 " S S	\	5      r
g
)z-The module containing the code for GuessAuth.    )auth)cookies   )_digest_auth_compathttp_proxy_digestc                   6    \ rS rSrSrS rS rS rS rS r	Sr
g	)
	GuessAuth	   z7Guesses the auth type by the WWW-Authentication header.c                 8    Xl         X l        S U l        S U l        g N)usernamepasswordr   pos)selfr   r   s      l/home/dmtnaga/Documents/work/airagagent/rag_env/lib/python3.13/site-packages/requests_toolbelt/auth/guess.py__init__GuessAuth.__init__   s      	    c                    U R                   b/  UR                  R                  R                  U R                   5        UR                    UR
                  R                  5         UR                  R                  5       n[        US5      (       d  [        R                  " 5       Ul        [        R                  " UR                  UR                  UR
                  5        UR                  UR                  5        [        R                  " U R                   U R"                  5      U l        U R                  U5      nUR$                  R&                  " U40 UD6nUR(                  R+                  U5        X4l        U$ N_cookies)r   requestbodyseekcontentrawrelease_conncopyhasattrr   RequestsCookieJarr   extract_cookies_to_jarprepare_cookiesr   HTTPBasicAuthr   r   
connectionsendhistoryappendr   rkwargsprep_rs        r   _handle_basic_auth_401 GuessAuth._handle_basic_auth_401   s    88IINN) 	
			yy~~tZ((#557DM&&t}}aiiGT]]+&&t}}dmmD	yy\\t.v.


!
	r   c                 x   [         R                  " U R                  U R                  5      U l         U R                  R                  5         [        U R                  S5      (       a(  U R                  R                  c  SU R                  l        U R                  R                  " U40 UD6$ ! [         a     Nlf = f)Nnum_401_callsr   )
auth_compatHTTPDigestAuthr   r   r   init_per_thread_stateAttributeErrorr   r0   
handle_401r   r)   r*   s      r   _handle_digest_auth_401!GuessAuth._handle_digest_auth_401'   s    ..t}}dmmL		II++- DII//		''/&'DII# yy##A000  	 	s   B, ,
B98B9c                     UR                   R                  SS5      R                  5       nSU;   a  U R                  X5      $ SU;   a  U R	                  X5      $ g)z/Resends a request with auth headers, if needed.zwww-authenticate basicdigestN)headersgetlowerr-   r7   )r   r)   r*   www_authenticates       r   r5   GuessAuth.handle_401:   s\     99==);R@FFH&&..q99''//:: (r   c                     U R                   b  U R                  U5      $  UR                  R                  5       U l        UR                  SU R                  5        U$ ! [         a     N*f = fNresponse)r   r   tellr   r4   register_hookr5   )r   r   s     r   __call__GuessAuth.__call__E   sc    99 99W%%	||((*DH 	j$//:	  		s   A 
A*)A*)r   r   r   r   N)__name__
__module____qualname____firstlineno____doc__r   r-   r7   r5   rG   __static_attributes__ r   r   r	   r	   	   s    A,1&	;
r   r	   c                   R   ^  \ rS rSrSr  S	U 4S jjrS rS rS rU 4S jr	Sr
U =r$ )
GuessProxyAuthR   zN
Guesses the auth type by WWW-Authentication and Proxy-Authentication
headers
c                 R   > [         [        U ]  X5        X0l        X@l        S U l        g r   )superrQ   r   proxy_usernameproxy_password
proxy_auth)r   r   r   rU   rV   	__class__s        r   r   GuessProxyAuth.__init__W   s%    nd,X@,,r   c                    U R                   b/  UR                  R                  R                  U R                   5        UR                    UR
                  R                  5         UR                  R                  5       n[        US5      (       d  [        R                  " 5       Ul        [        R                  " UR                  UR                  UR
                  5        UR                  UR                  5        [        R                  " U R                   U R"                  5      U l        U R%                  U5      nUR&                  R(                  " U40 UD6nUR*                  R-                  U5        X4l        U$ r   )r   r   r   r   r   r   r   r   r   r   r    r   r!   r"   r   HTTPProxyAuthrU   rV   rW   r$   r%   r&   r'   r(   s        r   _handle_basic_auth_407%GuessProxyAuth._handle_basic_auth_407^   s   88IINN)				yy~~tZ((#557DM&&t}}aiiGT]]+,,T-@-@-1-@-@Bt$\\t.v.


!
	r   c                     [         R                  " U R                  U R                  S9U l         U R
                  R                  5         U R                  R                  " U40 UD6$ ! [         a     N)f = f)N)r   r   )	r   HTTPProxyDigestAuthrU   rV   rW   r   r3   r4   
handle_407r6   s      r   _handle_digest_auth_407&GuessProxyAuth._handle_digest_auth_407s   sk    +??((((*	II++- ))!6v66  		s   A' '
A43A4c                     UR                   R                  SS5      R                  5       nSU;   a  U R                  X5      $ SU;   a  U R	                  X5      $ g )NzProxy-Authenticater:   r;   r<   )r=   r>   r?   r\   ra   )r   r)   r*   proxy_authenticates       r   r`   GuessProxyAuth.handle_407   sZ    YY]]+?DJJL((..q99))//:: *r   c                    > U R                   b  U R                  U5      n UR                  R                  5       U l        UR                  SU R                  5        [        [        U ]'  U5      $ ! [         a     N;f = frC   )
rW   r   rE   r   r4   rF   r`   rT   rQ   rG   )r   r   rX   s     r   rG   GuessProxyAuth.__call__   sp    ??&oog.G	||((*DH 	j$//:^T3G<<	  		s   A/ /
A<;A<)r   rW   rV   rU   )NNNN)rI   rJ   rK   rL   rM   r   r\   ra   r`   rG   rN   __classcell__)rX   s   @r   rQ   rQ   R   s.     0459*
7;
= 
=r   rQ   N)rM   requestsr   r   r:   r   r1   r   AuthBaser	   rQ   rO   r   r   <module>rk      s2    3   CF FR@=Y @=r   