o
    Ďi                  	   @   s   d dl Z d dlZd dlZd dlmZ dZdZeeZ	zd dl
mZ dee v ZW n eefy7   dZY nw defd	d
Ze jdefddZdededB fddZdS )    N)metadataKAGGLE_KERNEL_RUN_TYPEKAGGLE_DATA_PROXY_URL)get_ipythonzgoogle.colabFreturnc                   C   s   t S )N)_is_google_colab r   r   I/home/jeff/fluffinator/venv/lib/python3.10/site-packages/kagglehub/env.pyis_in_colab_notebook   s   r
   c                  C   sh   d} zt | }|  W  d    W S 1 sw   Y  W d S  ty3   td|  d Y dS w )Nz/etc/build_datezBuild date file z* not found in Kaggle Notebook environment.unknown)openreadstripFileNotFoundErrorloggingwarning)build_date_filefiler   r   r	   read_kaggle_build_date   s   

(r   lib_namec              	   C   s~   t  D ]8}t |j}|rt|dr|j}nd}|dur<|| r<zt| }|  d| W   S  tj	y;   Y qw qdS )ai  Search the call stack for a given library name and get its information.

    Args:
        lib_name (str):
            The name of the library to search for.
            We use str.startswith so the lib_name must match the exact module name from beginning.

    Returns:
        str: A formatted string f"{lib_name}/{lib_version}" if found, otherwise None.
    __name__N/)
inspectstack	getmoduleframehasattrr   
startswithr   versionPackageNotFoundError)r   
frame_infomodulemodule_namelib_versionr   r   r	   search_lib_in_call_stack$   s   
r$   )	functoolsr   r   	importlibr   KAGGLE_NOTEBOOK_ENV_VAR_NAME"KAGGLE_DATA_PROXY_URL_ENV_VAR_NAME	getLoggerr   loggerIPythonr   strr   	NameErrorModuleNotFoundErrorboolr
   cacher   r$   r   r   r   r	   <module>   s"    

