o
    ̳i                     @   s  d Z ddl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dl
mZ eje ddZd	Zeje d
Zej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Z dZ!da"ej#ejej$ej%ej&dZ'g dZ(e)e*Z+eG dd dZ,de-fddZ.de,dB fddZ/de0fd d!Z1de2fd"d#Z3de2fd$d%Z4de-fd&d'Z5de-fd(d)Z6d*e-de2fd+d,Z7de-d-e-ddfd.d/Z8d0e-ddfd1d2Z9d:d3d4Z:d5e-de-fd6d7Z;de,dB fd8d9Z<dS );zRetrieve config values that a user may set/override.

For config values specific to a resolver's environment (a user is not expected to override),
add it to the resolver's module.
    N)	dataclass)Path)get_access_token_from_env)is_in_colab_notebookz.cache	kagglehubzhttps://www.kaggle.comz.kagglezkaggle.jsonKAGGLEHUB_CACHEKAGGLE_USERNAME
KAGGLE_KEYKAGGLE_CONFIG_DIRKAGGLEHUB_VERBOSITYDISABLE_KAGGLE_CACHEDISABLE_COLAB_CACHETBE_RUNTIME_ADDRusernamekeyKAGGLE_API_TOKEN)debuginfowarningerrorcritical)true1tc                   @   s>   e Zd ZU dZedB ed< dZedB ed< dZedB ed< dS )KaggleApiCredentialsNr   r   api_key)__name__
__module____qualname__r   str__annotations__r   r    r!   r!   D/home/ubuntu/.local/lib/python3.10/site-packages/kagglehub/config.pyr   5   s   
 r   returnc                   C      t tjv r
tjt  S tS N)CACHE_FOLDER_ENV_VAR_NAMEosenvironDEFAULT_CACHE_FOLDERr!   r!   r!   r"   get_cache_folder<      

r*   c            
      C   s@  t rt S t \} }| rt| dS t }tt}tt}|r-|r-ttjt tjt dS tj	
|rt|S}zt|}W n tjyV } z
d| }t||d }~ww t|vrhd| dt d}t|t|vryd| dt d}t|t|t |t dW  d    S 1 sw   Y  t rt  }	d ur|	S d S )Nr   r   r   z#Invalid Kaggle credentials file at zKaggle credentials file at z is missing 'z' key)_kaggle_credentialsr   r   _get_kaggle_credentials_filer'   getenvUSERNAME_ENV_VAR_NAMEKEY_ENV_VAR_NAMEr(   pathexistsopenjsonloadJSONDecodeError
ValueErrorCREDENTIALS_JSON_USERNAMECREDENTIALS_JSON_KEYr   get_colab_credentials)
r   _creds_filepathenv_var_usernameenv_var_keycreds_json_file
creds_dicterrmsgcolab_secretr!   r!   r"   get_kaggle_credentialsB   s@   






 rF   c                  C   sN   t tjv r%tjt  } | tv rt|  S tdt  d|  ddt   tS )Nz!Unknown verbosity level set with =z, Accepted values are: z, )	LOG_VERBOSITY_ENV_VAR_NAMEr'   r(   LOG_LEVELS_MAPloggerr   joinkeysDEFAULT_LOG_LEVEL)log_level_strr!   r!   r"   get_log_verbosityj   s   

rO   c                   C      t tS r%   )_is_env_var_truthy DISABLE_COLAB_CACHE_ENV_VAR_NAMEr!   r!   r!   r"   is_colab_cache_disabledw      rS   c                   C   rP   r%   )rQ   !DISABLE_KAGGLE_CACHE_ENV_VAR_NAMEr!   r!   r!   r"   is_kaggle_cache_disabled{   rT   rV   c                   C   s   t jt tS r%   )r'   r3   rK   _get_kaggle_credentials_folderCREDENTIALS_FILENAMEr!   r!   r!   r"   r/      s   r/   c                   C   r$   r%   )CREDENTIALS_FOLDER_ENV_VAR_NAMEr'   r(   !DEFAULT_KAGGLE_CREDENTIALS_FOLDERr!   r!   r!   r"   rW      r+   rW   env_var_namec                 C   s   | t jv ot j|   tv S r%   )r'   r(   lowerTRUTHY_VALUES)r[   r!   r!   r"   rQ      s   rQ   r   c                 C   s>   |   }|  }|r|sd}t|t| |datd d S )Nz7Both username and API key cannot be empty or whitespacer-   Kaggle credentials set.stripr9   r   r.   rJ   r   )r   r   stripped_usernamestripped_api_keyerror_messager!   r!   r"   set_kaggle_credentials   s   rd   	api_tokenc                 C   s0   |   }|sd}t|t| datd d S )NzThe API token cannot be emptyr,   r^   r_   )re   stripped_tokenrc   r!   r!   r"   set_kaggle_api_token   s   
rg   c                   C   s   d a d S r%   )r.   r!   r!   r!   r"   clear_kaggle_credentials   s   rh   sc                 C   s   |  dd dd S )N 
)replacer`   )ri   r!   r!   r"   _normalize_whitespace   s   rn   c                  C   s   zddl m}  W n
 ty   Y d S w z+t| t}|r#t|dW S t| t}t| t}|r<|r<t||dW S W d S  t	yH   Y d S w )Nr   )userdatar,   r-   )
google.colabro   ImportErrorrn   getCOLAB_SECRET_API_TOKENr   COLAB_SECRET_USERNAMECOLAB_SECRET_KEY	Exception)ro   re   r   r   r!   r!   r"   r<      s"   r<   )r#   N)=__doc__r6   loggingr'   dataclassesr   pathlibr   kagglesdk.kaggle_envr   kagglehub.envr   r3   rK   homer)   DEFAULT_KAGGLE_API_ENDPOINTrZ   INFOrM   rX   r&   r1   r2   rY   rH   rU   rR   TBE_RUNTIME_ADDR_ENV_VAR_NAMEr:   r;   rt   ru   rs   r.   DEBUGWARNINGERRORCRITICALrI   r]   	getLoggerr   rJ   r   r   r*   rF   intrO   boolrS   rV   r/   rW   rQ   rd   rg   rh   rn   r<   r!   r!   r!   r"   <module>   sd    
(
