
    i                     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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mZ  e ee            Z ee      Z  ejB                  d
e D  ci c]  } | |  c} e"      Z#ee"dz   ejH                  ddjK                  e       d ee            f   Z& ed      Z'e'jQ                  dg d      ddddddejR                  dfdedededee#dz   ejH                  d      f   dede&dededdfd        Z*e'jQ                  d!d"d#g      ddejR                  dfd$ee" ejV                  d%      f   d&ede&dededdfd'       Z,e'jQ                  d(g d)      ddejR                  dfd$ee" ejV                  d%      f   d*ee"dz   ejH                  d+d,      f   d-ee"dz   ejH                  d.      f   dededdfd/       Z-e'jQ                  d0d1d2g      ejR                  dfd0ee" ejV                  d3      f   dededdfd4       Z.yc c} w )5a  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   )	AuthorOpt	FilterOptFormatWithAutoOptLimitOptRevisionOpt	SearchOptTokenOptapi_object_to_dict
get_hf_apimake_expand_properties_parsertyper_factory)OutputFormatWithAuto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")examples
   searchauthorfiltersortzSort results.limitexpandformattokenreturnc                     t        |      }|r|j                  nd}	|j                  ||| |	||      D 
cg c]  }
t        |
       }}
t	        j
                  |       yc c}
w )zList datasets on the Hub.r'   N)r"   r!   r    r#   r$   r%   )r   valuelist_datasetsr   r   table)r    r!   r"   r#   r$   r%   r&   r'   apisort_keydataset_inforesultss               m/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/huggingface_hub/cli/datasets.pydatasets_lsr3   E   st    , 5
!C!tzztH  -- . 

 	<(
G 
 IIg
s   A infoz&hf datasets info HuggingFaceFW/finewebz9hf datasets info my-dataset --expand downloads,likes,tags
dataset_idz+The dataset ID (e.g. `username/repo-name`).revisionc                     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.r*   )repo_idr6   r%   z	Dataset 'z' not found.Nz
Revision 'z' not found on 'z'.)r   r0   r   r   r   r   dict)r5   r6   r%   r&   r'   r.   r4   es           r2   datasets_infor;   k   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.r*   )r8   configN)r=   r>   urlsizerA   )headersid_key)r   list_dataset_parquet_filesr>   r@   rA   rB   r   r-   )
r5   r=   r>   r&   r'   r.   entriesentryfilteredr1   s
             r2   datasets_parquetrI      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   r-   )rJ   r&   r'   resultr:   s        r2   datasets_sqlrP      sD    &&EB IIf  &s1vA%&s   % 	AAA)/__doc__enumtypingr   r   typerhuggingface_hub._dataset_viewerr   huggingface_hub.errorsr   r   r   huggingface_hub.hf_apir	   r
   
_cli_utilsr   r   r   r   r   r   r   r   r   r   r   _outputr   r   sorted_EXPAND_PROPERTIES_SORT_OPTIONSEnumrN   r   Optionjoin	ExpandOptdatasets_clicommandautor3   Argumentr;   rI   rP   )ss   0r2   <module>rf      s    &  A [ [ I    / 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     	 4 9 9  $/*	,	     
< 
0C   ! 4 9 9#~u~~3`aab  	
  
$    ptZ^ 4 9 9Q#~u~~3`aabQcDj,%,,z@j"kklQ S4Z3U!VVWQ 	Q
 Q 
QQ" 	 	c 	j   !5 9 9
	3,GHH	I

 
 
	

_ 0Ms   4
H4
