
    '[f                     f    d dl mZ ddlmZmZ ddlmZmZ ddlm	Z	m
Z
  G d de	          Zg d	Zd
S )    )
LocalProxy   )FlaskIntegrationtoken_update)FlaskOAuth1AppFlaskOAuth2App   )	BaseOAuth
OAuthErrorc                   F     e Zd ZeZeZeZd fd	Z	ddZ
 fdZd	dZ xZS )
OAuthNc                     t                                          |||           || _        |r|                     |           d S d S )N)cachefetch_tokenupdate_token)super__init__appinit_app)selfr   r   r   r   	__class__s        ^/var/www/piapp/venv/lib/python3.11/site-packages/authlib/integrations/flask_client/__init__.pyr   zOAuth.__init__   s_    [| 	 	M 	M 	M 	MM#	 	    c                     || _         ||| _        |r|| _        |r|| _        t	          |di           |_        | |j        d<   dS )zkInitialize lazy for Flask app. This is usually used for Flask application
        factory pattern.
        N
extensionsz!authlib.integrations.flask_client)r   r   r   r   getattrr   )r   r   r   r   r   s        r   r   zOAuth.init_app   s^     DJ 	+*D 	- ,D lB77>B:;;;r   c                 r    | j         st          d          t                                          |          S )Nz!OAuth is not init with Flask app.)r   RuntimeErrorr   create_client)r   namer   s     r   r   zOAuth.create_client#   s5    x 	DBCCCww$$T***r   Fc                 |     ||f j         <    j        r                               S t           fd          S )Nc                  .                                    S )N)r   )r    r   s   r   <lambda>z OAuth.register.<locals>.<lambda>,   s    $"4"4T":": r   )	_registryr   r   r   )r   r    	overwritekwargss   ``  r   registerzOAuth.register(   sN     )62t8 	,%%d+++:::::;;;r   )NNNN)NNN)F)__name__
__module____qualname__r   oauth1_client_clsr   oauth2_client_clsr   framework_integration_clsr   r   r   r'   __classcell__)r   s   @r   r   r      s        && 0     C C C C + + + + +
< < < < < < < <r   r   )r   r   r   r   r   r   N)werkzeug.localr   integrationr   r   appsr   r   base_clientr
   r   r   __all__ r   r   <module>r5      s    % % % % % % 7 7 7 7 7 7 7 7 0 0 0 0 0 0 0 0 / / / / / / / /%< %< %< %< %<I %< %< %<P  r   