
    &g\                     ~    d Z ddlZddlZddlmZ ddlmZ ddlmZ dZdZdZ	dZ
d	Zd
ZdZdZd Zd Zd Zd ZddZdS )z9Helpers for reading the Google Cloud SDK's configuration.    N)_helpers)environment_vars)
exceptionsgcloudAPPDATAz$application_default_credentials.jsonz
gcloud.cmd)configgetproject)authzprint-access-tokenzH764086051850-6qr4p6gpi6hn506pt8ejuq83di341hur.apps.googleusercontent.comc                  $   	 t           j        t          j                 S # t          $ r Y nw xY wt           j        dk    rCt           j                            t           j                            d          dt                    S 	 t           j                            t           j        t                   t                    S # t          $ rI t           j                            dd          } t           j                            | dt                    cY S w xY w)zReturns the absolute path the the Cloud SDK's configuration directory.

    Returns:
        str: The Cloud SDK config path.
    nt~z.configSystemDrivezC:\)osenvironr   CLOUD_SDK_CONFIG_DIRKeyErrornamepathjoin
expanduser_CONFIG_DIRECTORY_WINDOWS_CONFIG_ROOT_ENV_VARr	   )drives    H/var/www/api/venv/lib/python3.11/site-packages/google/auth/_cloud_sdk.pyget_config_pathr   -   s    z*?@@    
w$w||BG..s33Y@QRRR	@7<<
78:K    	@ 	@ 	@ JNN=$77E7<<t->?????		@s    
++9B< <ADDc                  h    t                      } t          j                            | t                    S )zGets the path to the application default credentials file.

    The path may or may not exist.

    Returns:
        str: The full path to application default credentials.
    )r   r   r   r   _CREDENTIALS_FILENAME)config_paths    r   (get_application_default_credentials_pathr!   I   s&     "##K7<<%:;;;    c                     t          t          j        d          5 }t          j        | |          }ddd           n# 1 swxY w Y   |S )zJ Return subprocess.check_output with the given command and ignores stderr.wstderrN)openr   devnull
subprocesscheck_output)commandr(   outputs      r   _run_subprocess_ignore_stderrr-   U   s    	bj#		 B'(AAAB B B B B B B B B B B B B B BMs   >AAc                     t           j        dk    rt          } nt          } 	 t	          | ft
          z             }t          j        |                                          }|r|ndS # t          j
        t          t          f$ r Y dS w xY w)zaGets the project ID from the Cloud SDK.

    Returns:
        Optional[str]: The project ID.
    r   N)r   r   _CLOUD_SDK_WINDOWS_COMMAND_CLOUD_SDK_POSIX_COMMANDr-   %_CLOUD_SDK_CONFIG_GET_PROJECT_COMMANDr   
from_bytesstripr)   CalledProcessErrorOSErrorIOError)r+   r
   s     r   get_project_idr7   \   s     
w$,* 0J>>
 

 %g..4466!+wwt+)7G<   tts   AA% %BBc                    t           j        dk    rt          }nt          }	 | r|ft          z   d| z   fz   }n|ft          z   }t          j        |t
          j                  }|                    d          	                                S # t
          j
        t          t          f$ r}t          j        d|          }||d}~ww xY w)a  Load user access token with the ``gcloud auth print-access-token`` command.

    Args:
        account (Optional[str]): Account to get the access token for. If not
            specified, the current active account will be used.

    Returns:
        str: The user access token.

    Raises:
        google.auth.exceptions.UserAccessTokenError: if failed to get access
            token from gcloud.
    r   z
--account=r%   zutf-8zFailed to obtain access tokenN)r   r   r/   r0   $_CLOUD_SDK_USER_ACCESS_TOKEN_COMMANDr)   r*   STDOUTdecoder3   r4   r5   r6   r   UserAccessTokenError)accountr+   access_token
caught_excnew_excs        r   get_auth_access_tokenrA   u   s     
w$,*& 	H
67')+, G j#GGG!.wz?PQQQ""7++11333)7G< & & &1+Z
 
 :%	&s   A&B C$B<<C)N)__doc__r   r)   google.authr   r   r   r   r   r   r0   r/   r1   r9   CLOUD_SDK_CLIENT_IDr   r!   r-   r7   rA    r"   r   <module>rF      s    @ ? 				                 ( ( ( ( ( ( " " " " " "  (  ? # ) (D %'E $ O 
@ @ @8	< 	< 	<    2$& $& $& $& $& $&r"   