Ë
    ëÿæ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)Útypez”Comma-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               úq/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/huggingface_hub/cli/datasets.pyÚdatasets_lsr3   E   s{   € ô, ˜5Ô
!€CÙ!ˆt�zŠz t€Hð  ×-Ñ-ØØØØØØð .ô 
ó
ñ
ˆLô 	˜<Õ(ð
ð ð 
ô ‡I�IˆgÕùò
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Ø×Ñ¨
¸XÈfÐÓUˆô
 ‡H�HˆT…Nøô	 #ò DÜ˜ : ,¨lÐ;Ó<À!ÐCûÜ ò UÜ˜ H :Ð-=¸j¸\ÈÐLÓMÐSTÐ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ÈÐ,ÓO€GÙ#*ÓT¡7˜%¨e¨m¸u¿{¹{ÈeÓ?S’ 7€HÐTájróÙjrÐaf�5—<‘<¨%¯+©+¸e¿i¹iÐQV×Q[ÑQ[Ó\Ðjrð ð ô ‡I�IˆgÒAÈ%ÖPùò	 Uùòs   ¤B»BÁ6BÚsqlz–hf datasets sql "SELECT COUNT(*) AS rows FROM read_parquet('https://huggingface.co/api/datasets/cfahlgren1/hub-stats/parquet/models/train/0.parquet')"z�hf 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ˆô ‡I�IˆfÕøô ò &Ü”s˜1“vÓ 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¹m¸°°1±¸mÑ/LÐSVÔW€ð Øˆ$�JØ€E‡L�Lð 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à�c˜D‘j , %§,¡,¨zÐ@jÔ"kÐkÑlðQð �S˜4‘Z  §¡Ð3UÔ!VÐVÑWðQð ð	Qð
 ðQð 
òQóðQð" ×ÑØ	ð 	cð 	jðð ó ð !5× 9Ñ 9Øñ
Ø	�3˜˜Ÿ™Ð,GÔHÐHÑ	Ið
àð
ð ð
ð 
ò	
óñ
ùò_ 0Ms   Á4
H4
