
    -:j*                     R   d Z ddlZddlmZmZ ddlZddlmZ ddlm	Z	m
Z
mZ ddlmZmZ ddlmZ dd	lmZmZmZmZmZmZmZmZmZmZ dd
lmZ ddlmZm Z   e! ee            Z" ee      Z# ejH                  de#D  ci c]  } | |  c} e%      Z&ee%dz   ejN                  ddjQ                  e"       d ee"            f   Z) ed      Z*e*jW                  dg d      dddddeddddddfdee%dz   ejX                  d      f   dedededee&dz   ejN                  d      f   ded e)d!ee- ejN                  d"d#d$      f   d%ee- ejN                  d&d'      f   d(ee- ejN                  d)d*d+      f   d,ed-ed.dfd/       Z.e*jW                  d0g d1      	 	 dPd2ee% ejX                  d3      f   ded-ed.dfd4       Z/e*jW                  d5d6d7g      	 	 	 dQd2ee% ejX                  d8      f   d,ed e)d-ed.df
d9       Z0e*jW                  d:g d;      	 	 	 dQd2ee% ejX                  d8      f   d<ee%dz   ejN                  d=d>      f   d?ee%dz   ejN                  d@      f   d-ed.df
dA       Z1e*jW                  dBdCdDg      	 dRdBee% ejX                  dE      f   d-ed.dfdF       Z2e*jW                  dGg dH      	 	 	 dSd2ee% ejX                  d8      f   dIee- ejN                  dJdK      f   dLee- ejN                  dMdN      f   d-ed.df
dO       Z3yc c} w )Ta  Contains commands to interact with datasets on the Hugging Face Hub.

Usage:
    # list datasets on the Hub
    hf datasets ls

    # list datasets with a search query
    hf datasets ls --search "code"

    # get info about a dataset
    hf datasets info HuggingFaceFW/fineweb
    N)	Annotatedget_args)execute_raw_sql_query)CLIErrorRepositoryNotFoundErrorRevisionNotFoundError)DatasetSort_TExpandDatasetProperty_T)DatasetCard   )
REPO_LIST_DEFAULT_LIMIT	AuthorOpt	FilterOptLimitOptRevisionOpt	SearchOptTokenOpt
get_hf_apimake_expand_properties_parsertyper_factory)list_repo_files_cmd)_dataclass_to_dictoutDatasetSortEnum)typezComma-separated properties to return. When used, only the listed properties (and id) are returned. Example: '--expand=downloads,likes,tags'. Valid: z, .)helpcallbackz"Interact with datasets on the Hub.)r   z	list | ls)zhf datasets lsz*hf datasets ls --sort downloads --limit 10zhf datasets ls --search "code"z*hf datasets ls --filter benchmark:officialz$hf datasets ls HuggingFaceFW/finewebz'hf datasets ls HuggingFaceFW/fineweb -Rz.hf datasets ls HuggingFaceFW/fineweb --tree -h)examplesFrepo_idzVDataset ID (e.g. `username/repo-name`) to list files from. If omitted, lists datasets.searchauthorfiltersortzSort results.limitexpandhuman_readablez--human-readablez-hz=Show sizes in human readable format (only for listing files).as_treez--treez3List files in tree format (only for listing files).	recursivez--recursivez-Rz0List files recursively (only for listing files).revisiontokenreturnc           	         | |t        j                  d      |t        j                  d      |t        j                  d      |t        j                  d      |t        k7  rt        j                  d      |t        j                  d      t        | d|||	|
|	      S |rt        j                  d
      |	rt        j                  d      |rt        j                  d      |
t        j                  d      t	        |      }|r|j
                  nd}|j                  ||||||      D cg c]  }t        |       }}t        j                  |       yc c}w )zList datasets on the Hub, or files in a dataset repo.

    When called with no argument, lists datasets on the Hub.
    When called with a dataset ID, lists files in that dataset repo.
    Nz'Cannot use --search when listing files.z'Cannot use --author when listing files.z'Cannot use --filter when listing files.z%Cannot use --sort when listing files.z&Cannot use --limit when listing files.z'Cannot use --expand when listing files.dataset)r    	repo_typer'   r(   r)   r*   r+   z(Cannot use --tree when listing datasets.z-Cannot use --recursive when listing datasets.z2Cannot use --human-readable when listing datasets.z,Cannot use --revision when listing datasets.r+   )r#   r"   r!   r$   r%   r&   )
typerBadParameterr   r   r   valuelist_datasetsr   r   table)r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   apisort_keydataset_inforesultss                   ^/var/www/html/tokenscope/api/venv/lib/python3.12/site-packages/huggingface_hub/cli/datasets.pydatasets_lsr;   F   s   \ $$%NOO$$%NOO$$%NOO$$%LMM++$$%MNN$$%NOO")
 	
   !KLL  !PQQ  !UVV  !OPP
5
!C!tzztH  -- . 

 	<(
G 
 IIg
s   7E!leaderboard)z4hf datasets leaderboard SWE-bench/SWE-bench_VerifiedzLhf datasets leaderboard SWE-bench/SWE-bench_Verified --limit 5 --format jsonzIhf datasets ls --filter benchmark:official  # list available leaderboards
dataset_idz?The benchmark dataset ID (e.g. `SWE-bench/SWE-bench_Verified`).c                 0   t        |      }|j                  |       }|d| D cg c]  }t        |       }}t        j                  |g dd       t        j
                  d       |r't        j
                  d|d	   j                   d
       yyc c}w )zList model scores from a dataset leaderboard. This command helps find the best models for a task or compare models by benchmark scores. Use 'hf datasets ls --filter benchmark:official' to list available leaderboards.r0   )r    N)rankmodel_idr3   sourcer@   headersid_keyzPUse 'hf datasets ls --filter benchmark:official' to list available leaderboards.zUse 'hf models info r   z' to get details about a model.)r   get_dataset_leaderboardr   r   r5   hintr@   )r=   r%   r+   r6   r<   entryr9   s          r:   datasets_leaderboardrH      s     5
!C--j-AK6A&56IJU!%(JGJII7
 HH_`'A(?(?'@@_`a  Ks   Binfoz&hf datasets info HuggingFaceFW/finewebz9hf datasets info my-dataset --expand downloads,likes,tagsz+The dataset ID (e.g. `username/repo-name`).c                     t        |      }	 |j                  | ||      }t        j                  |       y# t        $ r}t        d|  d      |d}~wt        $ r}t        d| d|  d      |d}~ww xY w)	z$Get info about a dataset on the Hub.r0   )r    r*   r&   z	Dataset 'z' not found.Nz
Revision 'z' not found on 'z'.)r   r8   r   r   r   r   dict)r=   r*   r&   r+   r6   rI   es          r:   datasets_inforM      s     5
!CU
XfU
 HHTN	 # D:,l;<!C  UH:-=j\LMSTTUs!   8 	A5AA5A00A5parquet)z(hf datasets parquet cfahlgren1/hub-statsz8hf datasets parquet cfahlgren1/hub-stats --subset modelsz6hf datasets parquet cfahlgren1/hub-stats --split trainz6hf datasets parquet cfahlgren1/hub-stats --format jsonsubsetz--subsetz(Filter parquet entries by subset/config.splitz Filter parquet entries by split.c                 D   t        |      }|j                  | |      }|D cg c]  }||j                  |k(  s| }}|D cg c]1  }|j                  |j                  |j                  |j
                  d3 }}t        j                  |g dd       yc c}w c c}w )z/List parquet file URLs available for a dataset.r0   )r    configN)rO   rP   urlsizerS   rB   )r   list_dataset_parquet_filesrP   rR   rS   rT   r   r5   )	r=   rO   rP   r+   r6   entriesrG   filteredr9   s	            r:   datasets_parquetrX      s      5
!C,,Z,OG#*T%emu{{e?STHTjraf5<<%++eiiQVQ[Q[\G  IIgA%P	 Us   BB6Bsqlzhf datasets sql "SELECT COUNT(*) AS rows FROM read_parquet('https://huggingface.co/api/datasets/cfahlgren1/hub-stats/parquet/models/train/0.parquet')"zhf datasets sql "SELECT * FROM read_parquet('https://huggingface.co/api/datasets/cfahlgren1/hub-stats/parquet/models/train/0.parquet') LIMIT 5" --format jsonzRaw SQL query to execute.c                     	 t        | |      }t	        j
                  |       y# t        $ r}t        t        |            |d}~ww xY w)zAExecute a raw SQL query with DuckDB against dataset parquet URLs.)	sql_queryr+   N)r   ImportErrorr   strr   r5   )rY   r+   resultrL   s       r:   datasets_sqlr_      sD    &&EB IIf  &s1vA%&s   % 	AAAcard)z&hf datasets card HuggingFaceFW/finewebz1hf datasets card HuggingFaceFW/fineweb --metadataz?hf datasets card HuggingFaceFW/fineweb --metadata --format jsonz-hf datasets card HuggingFaceFW/fineweb --textmetadataz
--metadataz'Output only the metadata from the card.textz--textz(Output only the text body (no metadata).c                 d   |r|rt        d      t        j                  | |      }|r.t        j                  |j
                  j                                y|r t        j                  |j                         yt        j                  |j                         t        j                  d|  d       y)z7Get the dataset card (README) for a dataset on the Hub.z---metadata and --text are mutually exclusive.r0   zUse `hf datasets card z/ --metadata` to extract only the card metadata.N)
r   r   loadr   rK   datato_dictrb   contentrF   )r=   ra   rb   r+   r`   s        r:   datasets_cardrh     s}      DFGGJe4D""$%	)*5def    )   N)NNN)N)FFN)4__doc__enumtypingr   r   r1   huggingface_hub._dataset_viewerr   huggingface_hub.errorsr   r   r   huggingface_hub.hf_apir	   r
   huggingface_hub.repocardr   
_cli_utilsr   r   r   r   r   r   r   r   r   r   _file_listingr   _outputr   r   sorted_EXPAND_PROPERTIES_SORT_OPTIONSEnumr]   r   Optionjoin	ExpandOptdatasets_clicommandArgumentboolr;   rH   rM   rX   r_   rh   )ss   0r:   <module>r      sZ    &  A [ [ I 0   / , H%<=> '$))-m/L1/LSVW $JELL d  ei  en  en  oA  eB  dC  CD  E./AB	 "FG     	 	- 	 	 	 7Od
tu	wO
 O O O $/*	,O O O '4st	vO$ X$YZ	\%O, ]D/ab	d-O4 5O6 7O8 
9OOd    b#~u~~3tuuvbb b 
	bb& 
0C   !	#~u~~3`aab  	
 
"    ptZ^	Q#~u~~3`aabQcDj,%,,z@j"kklQ S4Z3U!VVWQ 	Q
 
QQ  	 	c 	j   		3,GHH	I		 
		 
   mrej	g#~u~~3`aabglell<>ghhig D,%,,x6`aa
bg 	g
 
ggk 0Ms   >
L$
