o
    ~j6h\                     @   s   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d Zdd Zdd Zdd Zd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                  C   s   zt jtj W S  ty   Y nw t jdkr"t jt jddt	S zt jt jt
 t	W S  tyE   t jdd} t j| dt	 Y S 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   )drive r   e/var/www/html/chefvision.cloud.itp360.com/venv/lib/python3.10/site-packages/google/auth/_cloud_sdk.pyget_config_path-   s   

r   c                  C   s   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_pathr   r   r   (get_application_default_credentials_pathI   s   r   c                 C   s@   t tjd}tj| |d}W d   |S 1 sw   Y  |S )zJ Return subprocess.check_output with the given command and ignores stderr.wstderrN)openr   devnull
subprocesscheck_output)commandr$   outputr   r   r   _run_subprocess_ignore_stderrU   s   
r)   c               
   C   s^   t jdkrt} nt} zt| ft }t| }|r|W S dW S  t	j
ttfy.   Y dS 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	   r   r   r   get_project_id\   s   
r2   c              
   C   s   t jdkrt}nt}z"| r|ft d|  f }n|ft }tj|tjd}|d	 W S  tj
ttfyE } z	td|}||d}~w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*   r+   $_CLOUD_SDK_USER_ACCESS_TOKEN_COMMANDr%   r&   STDOUTdecoder.   r/   r0   r1   r   UserAccessTokenError)accountr'   access_token
caught_excnew_excr   r   r   get_auth_access_tokenu   s*   

r;   )N)__doc__r   r%   google.authr   r   r   r   r   r   r+   r*   r,   r3   CLOUD_SDK_CLIENT_IDr   r   r)   r2   r;   r   r   r   r   <module>   s(   