Ë
    ”ÂiÙ  ã                   ó<   — d dl Z ddlmZ dgZdZ G d„ d«      Zd„ Zy)é    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                   óD   — e Zd ZdZdZdZeZd	d„Zd„ Z	d
d„Z
d„ Zd„ Zd„ Zy)r   z`Registry for oauth clients.

    Create an instance for registry::

        oauth = OAuth()
    Nc                 óJ   — i | _         i | _        || _        || _        || _        y ©N)Ú	_registryÚ_clientsÚcacheÚfetch_tokenÚupdate_token)Úselfr   r   r   s       úa/var/www/timesheet/venv/lib/python3.12/site-packages/authlib/integrations/base_client/registry.pyÚ__init__zBaseOAuth.__init__%   s'   € ØˆŒØˆŒØˆŒ
Ø&ˆÔØ(ˆÕó    c                 ó  — || j                   v r| j                   |   S || j                  vry| j                  |   \  }}|j                  dd«      }|r*|j                  r|j                  }|j	                  |«       n|} | j
                  ||fi |¤Ž}| j                  || j                  «      }|r |||fi |¤Ž}n:|j                  d«      r | j                  ||fi |¤Ž}n | j                  ||fi |¤Ž}|| j                   |<   |S )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_clientzBaseOAuth.create_client,   s  € ð �4—=‘=Ñ Ø—=‘= Ñ&Ð&à�t—~‘~Ñ%Øà ŸN™N¨4Ñ0Ñˆ	�6Ø—Z‘Z ¨dÓ3ˆ
á˜*×5Ò5Ø×0Ñ0ˆFØ�M‰M˜&Õ!àˆFà,�×,Ñ,¨T°9ÑGÀÑGˆØ×2Ñ2°4¸¿¹ÓDˆ	ÙÙ 	¨4Ñ:°6Ñ:‰FØ�Z‰ZÐ+Ô,Ø+�T×+Ñ+¨I°tÑF¸vÑF‰Fà+�T×+Ñ+¨I°tÑF¸vÑFˆFà$ˆ�‰�dÑØˆr   c                 óF   — ||f| j                   |<   | j                  |«      S )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   r/   )r   r)   r*   r,   s       r   ÚregisterzBaseOAuth.registerQ   s(   € ð !*¨6Ð2ˆ�‰�tÑØ×!Ñ! $Ó'Ð'r   c                 ó†  — |j                  dd «      }|j                  dd «      }| j                  |t        «      }|rt        |||«      }|s,| j                  r t        j                  | j                  |«      }||d<   |j                  d«      s3|s,| j                  r t        j                  | j                  |«      }||d<   |S )Nr   r   r   )	r!   Úload_configÚOAUTH_CLIENT_PARAMSÚ_config_clientr   Ú	functoolsÚpartialr&   r   )r   r)   r*   r,   r   r   r+   s          r   r$   z BaseOAuth.generate_client_kwargsa   s²   € Ø—j‘j °Ó5ˆØ—z‘z .°$Ó7ˆà×!Ñ! $Ô(;Ó<ˆÙÜ# F¨F°IÓ>ˆFá˜t×/Ò/Ü#×+Ñ+¨D×,<Ñ,<¸dÓCˆKà +ˆˆ}Ñà�z‰zÐ-Ô.Ù D×$5Ò$5Ü(×0Ñ0°×1BÑ1BÀDÓI�à%1ˆF�>Ñ"Øˆr   c                 ó<   — | j                   j                  | ||«      S r   )r%   r3   )r   r)   Úparamss      r   r3   zBaseOAuth.load_configu   s   € Ø×-Ñ-×9Ñ9¸$ÀÀfÓMÐMr   c                 ó¸   — 	 t         j                  | |«      S # t        $ r8}|| j                  v r| j	                  |«      cY d }~S t        d|› �«      |‚d }~ww xY w)NzNo such client: )ÚobjectÚ__getattribute__ÚAttributeErrorr   r/   )r   ÚkeyÚexcs      r   Ú__getattr__zBaseOAuth.__getattr__x   s_   € ð	DÜ×*Ñ*¨4°Ó5Ð5øÜò 	DØ�d—n‘nÑ$Ø×)Ñ)¨#Ó.Õ.Ü Ð#3°C°5Ð!9Ó:ÀÐCûð	Dús   ‚ ˜	A¡A¿AÁAÁA)NNN)F)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r'   r(   r   r%   r   r/   r1   r$   r3   r@   © r   r   r   r      s<   „ ñð ÐØÐØ 4Ðó)ò#óJ(ò ò(NóDr   c                 óº   — t         D ]Q  }| j                  |d «      }||vr|||<   Œ|sŒ"|sŒ%t        ||   t        «      r||   j	                  |«       ŒM|||<   ŒS |S r   )r4   r&   Ú
isinstanceÚdictr#   )r+   r,   r*   ÚkÚvs        r   r5   r5   �   sf   € Ü ò ˆØ�J‰J�q˜$ÓˆØ�F‰?ØˆF�1ŠIÚš1Ü˜& ™)¤TÔ*Ø�q‘	× Ñ  Õ#à��q’	ðð €Mr   )r6   Úframework_integrationr   Ú__all__r4   r   r5   rE   r   r   ú<module>rM      s.   ðÛ å 7àˆ-€ðÐ ÷"eDñ eDóP
r   