
    Ng'                        d Z ddlmZ ddlZddlZddlmZmZmZm	Z	 ddl
m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Zd(dZd)dZdgZdZdZ	 	 	 d*d+dZ	 	 	 d,d-d$Z d.d&Z!dS )/zGmail tool utils.    )annotationsN)TYPE_CHECKINGListOptionalTuple)guard_import)Request)Credentials)InstalledAppFlow)Resource)buildreturnTuple[Request, Credentials]c                 Z    t          dd          j        t          dd          j        fS )zqImport google libraries.

    Returns:
        Tuple[Request, Credentials]: Request and Credentials classes.
    zgoogle.auth.transport.requestszgoogle-auth-httplib2module_namepip_namezgoogle.oauth2.credentials)r   r	   r
        a/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain_community/tools/gmail/utils.pyimport_googler      sF     	8+	
 	
 	
 3>T	
 	
 	

 r   r   c                 .    t          dd          j        S )zcImport InstalledAppFlow class.

    Returns:
        InstalledAppFlow: InstalledAppFlow class.
    zgoogle_auth_oauthlib.flowzgoogle-auth-oauthlibr   )r   r   r   r   r   import_installed_app_flowr   &   s$     /:P  r   build_resourcec                 .    t          dd          j        S )zImport googleapiclient.discovery.build function.

    Returns:
        build_resource: googleapiclient.discovery.build function.
    zgoogleapiclient.discoveryzgoogle-api-python-clientr   )r   r   r   r   r   'import_googleapiclient_resource_builderr   1   s$     /:T  r   zhttps://mail.google.com/z
token.jsonzcredentials.json
token_fileOptional[str]client_secrets_filescopesOptional[List[str]]r
   c                8   t                      \  }}t                      }d}|pt          }| pt          } |pt          }t
          j                            |           r |j        | |          }|r|j	        s|r,|j
        r%|j        r|                     |                       n' |j        ||          }|                    d          }t          | d          5 }|                    |                                           ddd           n# 1 swxY w Y   |S )zGet credentials.Nr   )portw)r   r   DEFAULT_SCOPESDEFAULT_CREDS_TOKEN_FILEDEFAULT_CLIENT_SECRETS_FILEospathexistsfrom_authorized_user_filevalidexpiredrefresh_tokenrefreshfrom_client_secrets_filerun_local_serveropenwriteto_json)	r   r   r    r	   r
   r   credsflowtokens	            r   get_gmail_credentialsr8   A   sm    )??G[022E%~F77J-L1L 
w~~j!! J55j&II ) ) 	2U] 	2u': 	2MM''))$$$$ =#<#V D ))q)11E*c"" 	)eKK(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)Ls   (DDDgmailv1credentialsOptional[Credentials]service_namestrservice_versionr   c                Z    | pt                      } t                      } ||||           S )zBuild a Gmail service.)r;   )r8   r   )r;   r=   r?   builders       r   build_resource_servicerB   c   s7     8!6!8!8K577G7<kJJJJr   bodyc                |   	 ddl m} 	  |t          |           d          }|                                } t          |           S # t          $ r3}t
                              |           t          |           cY d}~S d}~ww xY w# t          $ r, t
                              d           t          |           cY S w xY w)zClean email body.r   )BeautifulSoupzhtml.parserNz/BeautifulSoup not installed. Skipping cleaning.)	bs4rE   r>   get_text	ExceptionloggererrorImportErrorwarning)rC   rE   soupes       r   clean_email_bodyrO   n   s    %%%%%%	 =TM::D==??Dt99 	 	 	LLOOOt99	    HIII4yys:   B ;A 
B(A=7B8B =BB 3B;:B;)r   r   )r   r   )r   r   )NNN)r   r   r   r   r    r!   r   r
   )Nr9   r:   )r;   r<   r=   r>   r?   r>   r   r   )rC   r>   r   r>   )"__doc__
__future__r   loggingr(   typingr   r   r   r   langchain_core.utilsr   google.auth.transport.requestsr	   google.oauth2.credentialsr
   google_auth_oauthlib.flowr   googleapiclient.discoveryr   r   r   	getLogger__name__rI   r   r   r   r%   r&   r'   r8   rB   rO   r   r   r   <module>r[      s     " " " " " "  				 7 7 7 7 7 7 7 7 7 7 7 7 - - - - - - B666666555555::::::222222AAAAAA		8	$	$   "       --' 0  !%)-"&    F *.K K K K K     r   