
    3fis                    2   d Z ddlmZ ddlZddlZddlmZ ddlmZm	Z	m
Z
mZ ddlmZ ddlmZ dZd	Zer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  ej:                  e      ZdddZ dddZ!ddZ"ddZ#ddZ$dZ%dZ&dZ'	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ(y)zUtilities to init Vertex AI.    )annotationsN)metadata)TYPE_CHECKINGListOptionalTuple)
ClientInfo)guard_importremote_reasoning_engineGOOGLE_CLOUD_AGENT_ENGINE_ID)Request)Credentials)InstalledAppFlow)buildc                    	 t        j                  d      }| r| d|  n|}t        j                  j                  t              r|dt         z  }|d| fS # t         j                  $ r d}Y Xw xY w)znReturns a custom user agent header.

    Args:
        module: The module for a custom user agent header.
    zlangchain-google-communityz0.0.0-+zlangchain-google-community/)r   versionPackageNotFoundErrorosenvironget_TELEMETRY_ENV_VARIABLE_NAME_TELEMETRY_TAG)modulelangchain_versionclient_library_versions      _/var/www/auto_recruiter/arenv/lib/python3.12/site-packages/langchain_google_community/_utils.pyget_user_agentr      s    $$,,-IJ ,2
Qvh'7H  
zz~~23An%5"66
%&<%=>  (( $#$s   A A0/A0c                8    t        |       \  }}t        ||      S )zReturns a client info object with a custom user agent header.

    Args:
        module: The module for a custom user agent header.
    )r   
user_agent)r   r	   )r   r   r!   s      r   get_client_infor"   /   s'     *8)?&J5     c                     t        dd      j                  t        dd      j                  t        dd      j                  fS )zXImport google libraries.

    Returns:
        `Request` and `Credentials` classes.
    zgoogle.auth.transport.requestszgoogle-authmodule_namepip_namezgoogle.oauth2.credentialszgoogle.oauth2.service_account)r
   r   r    r#   r   import_googler)   <   sG     	8"	
 '3m	

+7-	

+ r#   c                 0    t        dd      j                  S )zUImport `InstalledAppFlow` class.

    Returns:
        `InstalledAppFlow` class.
    zgoogle_auth_oauthlib.flowzgoogle-auth-oauthlibr%   )r
   r   r(   r#   r   import_installed_app_flowr+   P   s     /:Pr#   c                 0    t        dd      j                  S )zyImport `googleapiclient.discovery.build` function.

    Returns:
        `googleapiclient.discovery.build` function.
    zgoogleapiclient.discoveryzgoogle-api-python-clientr%   )r
   r   r(   r#   r   'import_googleapiclient_resource_builderr-   [   s     /:Ter#   z
token.jsonzcredentials.jsonzservice_account.jsonc                   |rAt               \  }}}|xs t        } |j                  ||       }|r|j                  |      }|S t               \  }	}
}t	               }d}|xs t
        }|xs t        }t        j                  j                  |      r |
j                  ||       }|r|j                  s|r/|j                  r#|j                  r|j                   |	              n% |j                  ||       }|j!                  d      }t#        |d      5 }|j%                  |j'                                ddd       |S |S # 1 sw Y   |S xY w)zGet credentials.)scopesNr   )portw)r)   DEFAULT_SERVICE_ACCOUNT_FILEfrom_service_account_filewith_subjectr+   DEFAULT_CREDS_TOKEN_FILEDEFAULT_CLIENT_SECRETS_FILEr   pathexistsfrom_authorized_user_filevalidexpiredrefresh_tokenrefreshfrom_client_secrets_filerun_local_serveropenwriteto_json)r/   
token_fileclient_secrets_fileservice_account_fileuse_domain_widedelegated_user_ServiceCredentialscredentialsr   r   r   credsflowtokens                  r   get_google_credentialsrN   k   sC    #0? 1 3S7SB(BB 
 %22>BK3@?0046;#;
1P5P 77>>*%9K99*fMEEKK5+>+>gi( A'@@' --1-5j#& -%EMMO,-u-s    E  E
)N)r   Optional[str]returnzTuple[str, str])r   rO   rP   z'ClientInfo')rP   z/Tuple[Request, Credentials, ServiceCredentials])rP   r   )rP   build_resource)NNNFN)r/   z	List[str]rC   rO   rD   rO   rE   rO   rF   boolrG   rO   rP   r   ))__doc__
__future__r   loggingr   	importlibr   typingr   r   r   r   $google.api_core.gapic_v1.client_infor	   langchain_core.utilsr
   r   r   google.auth.transport.requestsr   google.oauth2.credentialsr   google.oauth2.service_accountrI   google_auth_oauthlib.flowr   googleapiclient.discoveryr   rQ   	getLogger__name__loggerr   r"   r)   r+   r-   r5   r6   r2   rN   r(   r#   r   <module>rb      s    " "  	  7 7 ; -*= 65O:A			8	$*
( ( 0 5 
 !%)-*.!$(,,, ', (	,
 , ", ,r#   