
    k7i                     <    S SK r SSKJr  S/rSr " S S5      rS rg)    N   )FrameworkIntegration	BaseOAuth)	client_idclient_secretrequest_token_urlrequest_token_paramsaccess_token_urlaccess_token_paramsrefresh_token_urlrefresh_token_paramsauthorize_urlauthorize_paramsapi_base_urlclient_kwargsserver_metadata_urlc                   P    \ rS rSrSrSrSr\rSS jr	S r
SS jrS rS rS	 rS
rg)r      zTRegistry for oauth clients.

Create an instance for registry::

    oauth = OAuth()
Nc                 D    0 U l         0 U l        Xl        X l        X0l        g N)	_registry_clientscachefetch_tokenupdate_token)selfr   r   r   s       c/home/james-whalen/.local/lib/python3.13/site-packages/authlib/integrations/base_client/registry.py__init__BaseOAuth.__init__%   s!    
&(    c                 ,   XR                   ;   a  U R                   U   $ XR                  ;  a  gU R                  U   u  p#UR                  SS5      nU(       a/  UR                  (       a  UR                  nUR	                  U5        OUnU R
                  " X40 UD6nU R                  XR                  5      nU(       a
  U" Xa40 UD6nO=UR                  S5      (       a  U R                  " Xa40 UD6nOU R                  " Xa40 UD6nXpR                   U'   U$ )a  Create or get the given named OAuth client. For instance, the
OAuth registry has ``.register`` a twitter client, developers may
access the client with::

    client = oauth.create_client("twitter")

:param: name: Name of the remote application
:return: OAuth remote app
N
client_clsr   )r   r   popOAUTH_APP_CONFIGupdategenerate_client_kwargsframework_integration_clsr   getoauth1_client_clsoauth2_client_cls)r   name	overwriteconfigr"   kwargs	frameworkclients           r   create_clientBaseOAuth.create_client,   s     == ==&&~~% NN40	ZZd3
*5500FMM&!F,,TGG224D		:6:FZZ+,,++IFvFF++IFvFF$dr    c                 D    X#4U R                   U'   U R                  U5      $ )a  Registers a new remote application.

:param name: Name of the remote application.
:param overwrite: Overwrite existing config with framework settings.
:param kwargs: Parameters for :class:`RemoteApp`.

Find parameters for the given remote app class. When a remote app is
registered, it can be accessed with *named* attribute::

    oauth.register('twitter', client_id='', ...)
    oauth.twitter.get('timeline')
)r   r1   )r   r+   r,   r.   s       r   registerBaseOAuth.registerQ   s&     !*2t!!$''r    c                    UR                  SS 5      nUR                  SS 5      nU R                  U[        5      nU(       a  [        XcU5      nU(       d2  U R                  (       a!  [
        R                  " U R                  U5      nXCS'   UR                  S5      (       d=  U(       d2  U R                  (       a!  [
        R                  " U R                  U5      nXSS'   U$ )Nr   r   r   )	r#   load_configOAUTH_CLIENT_PARAMS_config_clientr   	functoolspartialr(   r   )r   r+   r,   r.   r   r   r-   s          r   r&    BaseOAuth.generate_client_kwargsa   s    jj5zz.$7!!$(;<#FI>Ft//#++D,<,<dCK +}zz-..D$5$5(001B1BDI%1>"r    c                 :    U R                   R                  XU5      $ r   )r'   r7   )r   r+   paramss      r   r7   BaseOAuth.load_configu   s    --99$fMMr    c                      [         R                  X5      $ ! [         a9  nXR                  ;   a  U R	                  U5      s S nA$ [        SU 35      UeS nAff = f)NzNo such client: )object__getattribute__AttributeErrorr   r1   )r   keyexcs      r   __getattr__BaseOAuth.__getattr__x   s[    	D**455 	Dnn$))#.. #3C5!9:C	Ds     
AA AAA)r   r   r   r   r   )NNN)F)__name__
__module____qualname____firstlineno____doc__r)   r*   r   r'   r   r1   r4   r&   r7   rF   __static_attributes__ r    r   r   r      s<      4)#J( (NDr    c                     [          Hb  nU R                  US 5      nX1;  a  XAU'   M   U(       d  M)  U(       d  M2  [        X   [        5      (       a  X   R	                  U5        M^  XAU'   Md     U$ r   )r8   r(   
isinstancedictr%   )r-   r.   r,   kvs        r   r9   r9      s^     JJq$?1IY11&)T**	  #q	 ! Mr    )r:   framework_integrationr   __all__r8   r   r9   rN   r    r   <module>rV      s.     7- "eD eDP
r    