
    Ki                        d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dlm
Z
 d d	lmZ d
dlmZ ddlmZ ddlmZ  G d dee
      Z G d deej(                        Z G d deej,                        Zy)    N)Auth)Request)Response)
to_unicode)SIGNATURE_HMAC_SHA1)SIGNATURE_TYPE_HEADER)
ClientAuth)OAuth1Client   
OAuthError   )build_request)extract_client_kwargsc                   D    e Zd ZdZdZdedej                  eedf   fdZ	y)
OAuth1Authz0Signs the httpx request using OAuth 1 (RFC5849).TrequestreturnNc              #      K   | j                  |j                  t        |j                        |j                  |j
                        \  }}}t        t        |            |d<   t        ||||       y w)NzContent-Length)urlheadersbodyinitial_request)preparemethodstrr   r   contentlenr   )selfr   r   r   r   s        {/home/jay/workspace/scripts/.codegraph-venv/lib/python3.12/site-packages/authlib/integrations/httpx_client/oauth1_client.py	auth_flowzOAuth1Auth.auth_flow   sd     !\\NNC,goow
Wd %(D	N !W4
 	
s   A3A5)
__name__
__module____qualname____doc__requires_request_bodyr   typing	Generatorr   r!        r    r   r      s1    : 
 
V-=-=gxQU>U-V 
r*   r   c            	       H    e Zd ZeZddddddeedf	dZddZd Z	e
d        Zy)AsyncOAuth1ClientNFc                     t        |      }t        j                  j                  | fi | t	        j                  | d f|||||||||	|
d
| y )N
	client_idclient_secrettokentoken_secretredirect_urirsa_keyverifiersignature_methodsignature_typeforce_include_body)r   httpxAsyncClient__init___OAuth1Client)r   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   kwargs_client_kwargss                r    r;   zAsyncOAuth1Client.__init__%   sj     /v6""4:>:	
  '%%-)1	
 	
r*   c                    K   |r|| j                   _        | j                   j                  s| j                  dd        | j                  |fi | d{   }d| j                   _        |S 7 w)a  Method for fetching an access token from the token endpoint.

        This is the final step in the OAuth 1 workflow. An access token is
        obtained using all previously obtained credentials, including the
        verifier from the authorization step.

        :param url: Access Token endpoint.
        :param verifier: A verifier string to prove authorization was granted.
        :param kwargs: Extra parameters to include for fetching access token.
        :return: A token dict.
        missing_verifierzMissing "verifier" valueN)authr5   handle_error_fetch_token)r   r   r5   r=   r1   s        r    fetch_access_tokenz$AsyncOAuth1Client.fetch_access_tokenF   sf      !)DIIyy!!02LM'd''6v66!		 7s   AA.A,A.c                    K    | j                   |fi | d {   }|j                          d {   }| j                  |j                  t	        |            }|| _        |S 7 J7 4wN)postareadparse_response_tokenstatus_coder   r1   )r   r   r=   resptextr1   s         r    rC   zAsyncOAuth1Client._fetch_tokenZ   s^     TYYs-f--ZZ\!))$*:*:Jt<LM
	 .!s   A(A$A(A&3A(&A(c                     t        | |      rF   r   
error_typeerror_descriptions     r    rB   zAsyncOAuth1Client.handle_errora       %677r*   rF   )r"   r#   r$   r   
auth_classr   r   r;   rD   rC   staticmethodrB   r)   r*   r    r,   r,   "   sH    J
 ,, 
B( 8 8r*   r,   c            	       :    e Zd ZeZddddddeedf	dZed        Z	y)r
   NFc                     t        |      }|j                  dd       }|t        j                  |      |d<   t        j                  j
                  | fi | t        j
                  | | f|||||||||	|
d
| y )Napp)rV   	transportr.   )r   popr9   WSGITransportClientr;   r<   )r   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r=   r>   	app_values                 r    r;   zOAuth1Client.__init__i   s     /v6"&&ud3	 */*=*=)*LN;'d5n5	
  '%%-)1	
 	
r*   c                     t        | |      rF   r   rN   s     r    rB   zOAuth1Client.handle_error   rQ   r*   )
r"   r#   r$   r   rR   r   r   r;   rS   rB   r)   r*   r    r
   r
   f   s>    J
 ,, $
L 8 8r*   r
   )r'   r9   r   r   r   authlib.common.encodingr   authlib.oauth1r   r   r	   authlib.oauth1.clientr
   r<   base_clientr   utilsr   r   r   r:   r,   rZ   r)   r*   r    <module>rb      sc         . . 0 % ? $   (
z 
A8u'8'8 A8H+8=%,, +8r*   