
    LMh8                      ,   d dl Z d dlZd dlmZ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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e         dee         defdZ	 	 d(dedededeee e         ef                  ddf
dZ!ddddddde	dedededee         ded ee
         d!edefd"Z"dddd#de	dedededee         dedefd$Z#de	d%eddfd&Z$dS ))    N)AnyOptionalUnion)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        R/var/www/html/test/jupyter/venv/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                 <   t          |           }t                              d|                                 d           |                                rd}t          |          t          |d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dataset)default
additional)	item_typer'   N)
r   r   r   r   is_versioned
ValueErrorr   r
   DEFAULT_IGNORE_PATTERNSr	   )r   r%   r&   r'   r   is_versioned_exceptiontokenss          r!   dataset_uploadr2   /   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)
    r3   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)r4   r   r   r   r   r   r   r   	kagglehubnot_implemented_error_messageadapter_optional_dependencyimport_warning_messages               r!   dataset_loadrL   Q   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>r6   c                d    t          j        dt          d           t          | |||||          S )NzCload_dataset is deprecated and will be removed in a future version.   )
stacklevelr6   )warningswarnDeprecationWarningrL   )r4   r   r   r   r   r   s         r!   load_datasetrS      sE     MMOano    ]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)r4   rT   valid_kwargsinvalid_kwargs_listkeyvalueinvalid_kwargss          r!   r7   r7      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)%loggingrP   typingr   r   r   rH   r   kagglehub.datasets_enumsr   r   kagglehub.datasets_helpersr	   kagglehub.gcs_uploadr
   r   kagglehub.handler   kagglehub.loggerr   	getLogger__name__r   r/   r9   r=   rA   rG   rV   strboolr"   listr2   rL   rS   r7    r#   r!   <module>rn      s6     ' ' ' ' ' ' ' ' ' '       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" bg   S  QYZ^Q_ lo    $ 7;	8 888 8 eDIsN34	8
 
8 8 8 8P #37O< O< O<!O< O< 	O< O< }O< O<  0O< O< 	O< O< O< O<p #v v v!v v 	v v }v v 	v v v v V!VV 
V V V V V Vr#   