
    LMhX                        U d dl Z d dlmZmZmZ d dlZd dlmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZ dZdZdZdZdZd	Zed
ede	de
dedediZee         eee         eee	         eee
         eee         eee         eiZeeee         f         Zi Zee d<   ded	ee         ddfdZ!defdZ"dee#e j$        f         ddfdZ%dee#e j$        f         defdZ&ded	ee         defdZ'dede(eee         f         fdZ)d	edee         fdZ*dS )    N)AnyOptionalUnion)CompetitionHandleDatasetHandleModelHandleNotebookHandlePackageHandleResourceHandleUtilityScriptHandleparse_competition_handleparse_dataset_handleparse_model_handleparse_notebook_handleparse_package_handleparse_utility_script_handlez0.1.0format_versiondatasourcestyperefversionCompetitionDatasetModelNotebookUtilityScriptPackage_accessed_datasourceshandlereturnc                     |t           | <   dS )zdRecord that a datasource was accessed.

    Link the user-requested handle to the version retrieved.N)r   )r   r   s     Q/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/kagglehub/tracker.pyregister_datasource_accessr#   8   s     %,&!!!    c                  4    t                                           S N)r   copy r$   r"   get_accessed_datasourcesr)   ?   s     %%'''r$   filepathc                     t           t          t          d t                                          D             i}t          | d          5 }t          j        ||d           ddd           dS # 1 swxY w Y   dS )zWrite the datasources accessed during this session to a yaml file.

    Args:
        filepath: (str | pathlib.Path) Where to write the yaml file.
    c                 4    g | ]\  }}t          ||          S r(   )_serialize_datasource).0hr   s      r"   
<listcomp>zwrite_file.<locals>.<listcomp>K   s'    nnn*!W1!W==nnnr$   wF)	sort_keysN)FORMAT_VERSION_FIELDFORMAT_VERSIONDATASOURCES_FIELDr   itemsopenyamldump)r*   datafs      r"   
write_filer<   C   s     	nnnPePkPkPmPmnnnD
 
h		 ,	$U++++, , , , , , , , , , , , , , , , , ,s   A,,A03A0c                 \   t          |           5 }t          j        |          }ddd           n# 1 swxY w Y   |                    t                    }|t
          k    rd| }t          |          i }|                    t          g           D ]}t          |          \  }}|||<   |S )zRead a yaml file with datasource + version records.

    Args:
        filepath: (str | pathlib.Path) Path of yaml file to read from.
    Returns:
        Dictionary mapping ResourceHandle to version number, parsed from file.
    Nz)Unsupported tracker file format version: )	r7   r8   	safe_loadgetr3   r4   
ValueErrorr5   _deserialize_datasource)	r*   r;   r:   r   msgversioned_datasources
datasourcer/   r   s	            r"   	read_filerE   R   s     
h !1~a  ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! XX233N''J.JJoo24hh0"55 + +
,Z88
7#*a    s   155r/   c                     t           t          t          |                    t          t	          |           i}|
||t
          <   |S r&   )DATASOURCE_TYPE_FIELDHANDLE_TYPE_NAMESr   DATASOURCE_REF_FIELDstrDATASOURCE_VERSION_FIELD)r/   r   r:   s      r"   r-   r-   j   s=    0a9c!ffD
 )0%&Kr$   r:   c                     t           | t                            } || t                             }t          |                     t
          d                     }||fS r&   )HANDLE_TYPE_PARSERSrG   rI   _parse_versionr?   rK   )r:   parserr/   r   s       r"   rA   rA   v   sM     &;!<=Ft()**ATXX&>EEFFGg:r$   c                     | t          | t                    r| S t          | t                    r	 t          |           S #  Y nxY wd|  d}t          |          )NzInvalid version: 'z'. Expected an integer or None.)
isinstanceintrJ   r@   )r   rB   s     r"   rN   rN   ~   sg    *Wc22'3 	w<<	D
Gw
G
G
GC
S//s	   ? A)+pathlibtypingr   r   r   r8   kagglehub.handler   r   r   r	   r
   r   r   r   r   r   r   r   r   r4   r3   r5   rG   rI   rK   rH   rM   dictrR   VersionedDatasourcesr   __annotations__r#   r)   rJ   Pathr<   rE   r-   tuplerA   rN   r(   r$   r"   <module>r[      s    ' ' ' ' ' ' ' ' ' '                              " ' !   $  }9J9  '(*Bm$&:k"$6n%'<)*,Gm$&:  NHSM9:  /1 + 0 0 0,~ , ,RV , , , ,("6 ( ( ( (,sGL01 ,d , , , ,!c7</0 !5I ! ! ! !0	^ 	hsm 	 	 	 	 	$ 5#1N+O    C HSM      r$   