
    Pi                         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	m
Z
 d dlmZ d dlmZmZ d dlmZ d d	lmZ  e j        e          Zg d
Ze	j        de	j        de	j        diZe	j        h de	j        ddhe	j        h diZd(dddededz  dedz  defdZ	 	 d)dededede e         ez  dz  ddf
dZ!ddddddde	dededededz  d ed!e
dz  d"edefd#Z"dddd$de	dededededz  d edefd%Z#de	d&eddfd'Z$dS )*    N)Any)ApiBlobType)registry)KaggleDatasetAdapterPolarsFrameType)create_dataset_or_version)normalize_patternsupload_files_and_directories)parse_dataset_handle)EXTRA_CONSOLE_BLOCK)z.git/z*/.git/z.cache/z.huggingface/zhf-datasetszpandas-datasetszpolars-datasets>   	hf_kwargs	sql_querypandas_kwargsr   r   >   r   polars_kwargspolars_frame_typeFforce_downloadhandlepathr   returnc                    t          |           }t                              d|                                 di t                     t          j        |||          \  }}|S )aA  Download dataset files
    Args:
        handle: (string) the dataset handle
        path: (string) Optional path to a file within a dataset
        force_download: (bool) Optional flag to force download a dataset, even if it's cached
    Returns:
        A string requesting the path to the requested dataset files.
    zDownloading Dataset:  ...)extrar   )r   loggerinfoto_urlr   r   dataset_resolver)r   r   r   h_s        f/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/kagglehub/datasets.pydataset_downloadr!   "   sb     	V$$A
KK8

888@WCV@WKXXX'4OOOGD!K     local_dataset_dirversion_notesignore_patternsc                 P   t          |           }t                              d|                                 d           |                                rd}t          |          t          |t          j        t          t          |                    }t          |||           dS )a  Upload dataset files.
    Args:
        handle: (string) the dataset handle.
        local_dataset_dir: (string) path to a file in a local directory.
        version_notes: (string) Optional to write dataset versions.
        ignore_patterns (str or list[str], optional):
            Additional ignore patterns to DEFAULT_IGNORE_PATTERNS.
            Files matching any of the patterns are not uploaded.
            Patterns are standard wildcards that can be matched by
            https://docs.python.org/3/library/fnmatch.html.
            Use a pattern ending with "/" to ignore the whole dir,
            e.g., ".git/" is equivalent to ".git/*".
    zUploading Dataset r   z1The dataset handle should not include the version)default
additional)	item_typer&   N)r   r   r   r   is_versioned
ValueErrorr
   r   DATASETr	   DEFAULT_IGNORE_PATTERNSr   )r   r$   r%   r&   r   is_versioned_exceptiontokenss          r    dataset_uploadr1   1   s    & 	V$$A
KK5QXXZZ555666~~ 1!T/000)%*3JWfggg  F a77777r"   r   r   r   r   r   adapterr   r   r   c                   t          | |||||           ||nt          j        }	 | t          j        u r#ddl}|j                            |||||          S | t          j        u r"ddl	}|j
                            ||||          S | t          j        u r#ddl}|j                            |||||          S |  d}	t!          |	          # t"          $ r' t$          |          }
d|
 d	|
 d
}t#          |          dw xY w)a  Load a Kaggle Dataset into a python object based on the selected adapter

    Args:
        adapter: (KaggleDatasetAdapter) The adapter used to load the dataset
        handle: (string) The dataset handle
        path: (string) Path to a file within the dataset
        pandas_kwargs:
            (dict) Optional set of kwargs to pass to the pandas `read_*` method while constructing the DataFrame(s)
        sql_query:
            (string) Argument to be used for SQLite files. Required when reading a SQLite file. See pandas documentation
            for details: https://pandas.pydata.org/docs/reference/api/pandas.read_sql_query.html
        hf_kwargs:
            (dict) Optional set of kwargs to pass to Dataset.from_pandas() while constructing the Dataset
        polars_frame_type: (PolarsFrameType) Optional control for which Frame to return: LazyFrame or DataFrame. The
            default is PolarsFrameType.LAZY_FRAME.
        polars_kwargs:
            (dict) Optional set of kwargs to pass to the polars `read_*` method while constructing the DataFrame(s)
    Returns:
        A python object based on the selected adapter:
            - 'pandas': A DataFrame (or dict[int | str, DataFrame] for Excel-like files with multiple sheets)
            - 'hugging_face': A Huggingface Dataset (via pandas)
            - 'polars':
                A LazyFrame or DataFrame (or dict[int | str, LazyFrame] / dict[int | str, DataFrame] for Excel-like
                files with multiple sheets)
    r2   Nr   r   r   r   )r   r   )r   r   r   z is not yet implementedz*The 'dataset_load' function requires the 'z3' extras. Install them with 'pip install kagglehub[z]')validate_dataset_load_argsr   
LAZY_FRAMEr   HUGGING_FACEkagglehub.hf_datasetshf_datasetsload_hf_datasetPANDASkagglehub.pandas_datasetspandas_datasetsload_pandas_datasetPOLARSkagglehub.polars_datasetspolars_datasetsload_polars_datasetNotImplementedErrorImportError.DATASET_LOAD_ADAPTER_OPTIONAL_DEPENDENCIES_MAP)r3   r   r   r   r   r   r   r   	kagglehubnot_implemented_error_messageadapter_optional_dependencyimport_warning_messages               r    dataset_loadrK   S   s   J #+#    .?-J))P_Pj!<*777(((((88+## 9    ,333,,,,,@@MY A    ,333,,,,,@@0AQ^js A    07,O,O,O)%&CDDD < < <&TU\&]#X9T X X8SX X X 	
 011t;<s   0C /C 0C 9C 1C>r5   c                d    t          j        dt          d           t          | |||||          S )NzaUse dataset_load() instead of load_dataset(). load_dataset() will be removed in a future version.   )
stacklevelr5   )warningswarnDeprecationWarningrK   )r3   r   r   r   r   r   s         r    load_datasetrR      sE     Mk   
 ]V_ktuuuur"   kwargsc                 "   t           |          }g }|                                D ] \  }}||vr||                    |           !t          |          dk    rd S d                    |          }t
                              | d|  d           d S )Nr   z, z are invalid for z and will be ignored)_DATASET_LOAD_VALID_KWARGS_MAPitemsappendlenjoinr   warning)r3   rS   valid_kwargsinvalid_kwargs_listkeyvalueinvalid_kwargss          r    r6   r6      s     2':L%'llnn , ,
Ul""u'8&&s+++
1$$YY233N
NNnTTwTTTUUUUUr"   )N)r#   N)%loggingrO   typingr   &kagglesdk.blobs.types.blob_api_servicer   rG   r   kagglehub.datasets_enumsr   r   kagglehub.datasets_helpersr   kagglehub.gcs_uploadr	   r
   kagglehub.handler   kagglehub.loggerr   	getLogger__name__r   r.   r8   r<   r@   rF   rU   strboolr!   listr1   rK   rR   r6    r"   r    <module>rn      s5           > > > > > >       J J J J J J J J @ @ @ @ @ @ Q Q Q Q Q Q Q Q 1 1 1 1 1 1 0 0 0 0 0 0		8	$	$ KJJ  %}!2!22 . %'R'R'R/;!?!T!T!T" \a   S d
 dUYk fi    $ .2	8 888 8 #Y_t+	8
 
8 8 8 8P  04O< O< O<!O< O< 	O< O< TzO< O< '-O< O< 	O< O< O< O<p  v v v!v v 	v v Tzv v 	v v v v$V!VV 
V V V V V Vr"   