
    .PhP                     t    d Z ddlmZ ddlmZ ddlmZmZ  G d dej                  Z	 G d d	e	          Z
d
S )z-The module containing the code for GuessAuth.    )auth)cookies   )_digest_auth_compathttp_proxy_digestc                   0    e Zd ZdZd Zd Zd Zd Zd ZdS )	GuessAuthz7Guesses the auth type by the WWW-Authentication header.c                 >    || _         || _        d | _        d | _        d S N)usernamepasswordr   pos)selfr   r   s      \/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/requests_toolbelt/auth/guess.py__init__zGuessAuth.__init__   s"      	    c                 v   | j         $|j        j                            | j                    |j         |j                                         |j                                        }t          |d          st          j
                    |_        t          j        |j        |j        |j                   |                    |j                   t          j        | j        | j                  | _        |                     |          } |j        j        |fi |}|j                            |           ||_        |S 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_401z GuessAuth._handle_basic_auth_401   s
   8IN))) 	
			y~~tZ(( 	8#577DM&t}aiGGGT]+++&t}dmDD	yyQ\t..v..

!
	r   c                     t          j        | j        | j                  | _        	 | j                                         n# t          $ r Y nw xY wt          | j        d          r| j        j        d| j        _         | j        j	        |fi |S )Nnum_401_callsr   )
auth_compatHTTPDigestAuthr   r   r   init_per_thread_stateAttributeErrorr   r-   
handle_401r   r'   r(   s      r   _handle_digest_auth_401z!GuessAuth._handle_digest_auth_401'   s    .t}dmLL		I++---- 	 	 	 D	 DI// 	(	'/&'DI# $ty#A00000s   A   
AAc                     |j                             dd                                          }d|v r|                     ||          S d|v r|                     ||          S dS )z/Resends a request with auth headers, if needed.zwww-authenticate basicdigestN)headersgetlowerr+   r4   )r   r'   r(   www_authenticates       r   r2   zGuessAuth.handle_401:   ss     9==);R@@FFHH&&&..q&999'''//6::: ('r   c                     | j         |                      |          S 	 |j                                        | _        n# t          $ r Y nw xY w|                    d| j                   |S Nresponse)r   r   tellr   r1   register_hookr2   )r   r   s     r   __call__zGuessAuth.__call__E   sw    9 99W%%%	|((**DHH 	 	 	D	 	j$/:::s   = 
A
	A
N)	__name__
__module____qualname____doc__r   r+   r4   r2   rB    r   r   r	   r	   	   se        AA    ,1 1 1&	; 	; 	;
 
 
 
 
r   r	   c                   D     e Zd ZdZ	 	 d fd	Zd Zd Zd Z fdZ xZ	S )	GuessProxyAuthzZ
    Guesses the auth type by WWW-Authentication and Proxy-Authentication
    headers
    Nc                     t          t          |                               ||           || _        || _        d | _        d S r   )superrI   r   proxy_usernameproxy_password
proxy_auth)r   r   r   rL   rM   	__class__s        r   r   zGuessProxyAuth.__init__W   s>    nd##,,Xx@@@,,r   c                 v   | j         $|j        j                            | j                    |j         |j                                         |j                                        }t          |d          st          j
                    |_        t          j        |j        |j        |j                   |                    |j                   t          j        | j        | j                  | _        |                     |          } |j        j        |fi |}|j                            |           ||_        |S r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   HTTPProxyAuthrL   rM   rN   r"   r#   r$   r%   r&   s        r   _handle_basic_auth_407z%GuessProxyAuth._handle_basic_auth_407^   s   8IN)))				y~~tZ(( 	8#577DM&t}aiGGGT]+++,T-@-1-@B Bt$$Q\t..v..

!
	r   c                     t          j        | j        | j                  | _        	 | j                                         n# t          $ r Y nw xY w | j        j        |fi |S )N)r   r   )	r   HTTPProxyDigestAuthrL   rM   rN   r   r0   r1   
handle_407r3   s      r   _handle_digest_auth_407z&GuessProxyAuth._handle_digest_auth_407s   s    +?((* * *	I++---- 	 	 	D	 *t)!66v666s   A 
AAc                     |j                             dd                                          }d|v r|                     ||          S d|v r|                     ||          S d S )NzProxy-Authenticater6   r7   r8   )r9   r:   r;   rR   rV   )r   r'   r(   proxy_authenticates       r   rU   zGuessProxyAuth.handle_407   sq    Y]]+?DDJJLL(((..q&999)))//6::: *)r   c                 "   | j         |                      |          }	 |j                                        | _        n# t          $ r Y nw xY w|                    d| j                   t          t          |           	                    |          S r>   )
rN   r   r@   r   r1   rA   rU   rK   rI   rB   )r   r   rO   s     r   rB   zGuessProxyAuth.__call__   s    ?&oog..G	|((**DHH 	 	 	D	 	j$/:::^T**33G<<<s   > 
A
A)NNNN)
rC   rD   rE   rF   r   rR   rV   rU   rB   __classcell__)rO   s   @r   rI   rI   R   s          0459       *
7 
7 
7; ; ;
= 
= 
= 
= 
= 
= 
= 
= 
=r   rI   N)rF   requestsr   r   r6   r   r.   r   AuthBaser	   rI   rG   r   r   <module>r]      s    3 3             C C C C C C C CF F F F F F F FR@= @= @= @= @=Y @= @= @= @= @=r   