+
    &j+                        ^ RI t ^ RIt^ RIt^ RIt^ RIHt ^ RIHtHtH	t	 ^RI
Ht ^RIHt ]'       d   ^ RIt]! RR7       ! R R	4      4       tR
R/R R lltR R ltR R lt] ! R R4      4       t] ! R R4      4       tR R ltR# )    N)	dataclass)TYPE_CHECKINGAnyUnion)	constants)	get_tokenT)frozenc                   0   a  ] tR t^t o RtV 3R ltRtV tR# )DatasetParquetEntryzDRepresents a single parquet file available for a dataset on the Hub.c                J   < V ^8  d   Qh/ S[ ;R&   S[ ;R&   S[ ;R&   S[;R&   # )   configspliturlsize)strint)format__classdict__s   "w/Users/jameslopez/projects/CWCArchive/cwc-podcast/.venv/lib/python3.14/site-packages/huggingface_hub/_dataset_viewer.py__annotate__ DatasetParquetEntry.__annotate__   s5      K	 
 J  
H  I      N)__name__
__module____qualname____firstlineno____doc____annotate_func____static_attributes____classdictcell__r   s   @r   r   r      s     N  r   r   tokenc          	          V ^8  d   QhR\         R\         \        ,          R,          R\        \        \         \        3,          ,          /# )r   	sql_queryr$   Nreturn)r   boollistdictr   )r   s   "r   r   r   '   s=      S C$J4E QUVZ[^`c[cVdQe r   c          	         V P                  4       P                  R 4      P                  4       p\        V4       Rp \        VR7      pVP	                  V4      pVf   \        R4      h\        V\        4      '       d&   VP                  4       Ve   VP                  4        # # \        ;QJ d    . R VP                   4       F  NK  	  5M! R VP                   4       4      p\        ;QJ d"    . R VP                  4        4       F  NK  	  5M! R VP                  4        4       4      pV Uu. uF  p\        \        WW4      4      NK  	  upVe   VP                  4        # # u upi   Te   TP                  4        i i ; i);N)r$   zSQL query must return rows.c              3   2   "   T F  q^ ,          x  K  	  R# 5i)r   Nr   ).0columns   & r   	<genexpr>(execute_raw_sql_query.<locals>.<genexpr>7   s     I4H&1II4Hs   c              3   8   "   T F  p\        V4      x  K  	  R # 5iN)tuple)r.   rows   & r   r0   r1   8   s     C/Bs/Bs   )striprstrip_raise_on_forbidden_query_get_duckdb_connectionsql
ValueError
isinstance_DuckDBCliRelationexecutecloser4   descriptionfetchallr*   zip)r&   r$   normalized_query
connectionrelationcolumnsrowsr5   s   &$      r   execute_raw_sql_queryrH   '   sA    (//4::<./J+%8
>>"23:;;h 233##% ! "	 eIH4H4HIeeIH4H4HIIG5Cx/@/@/BC55Cx/@/@/BCCD7;<tDW*+t<! " =! "s1   AE) #
E) .?E) .AE) /E$E) $E) )F c                (    V ^8  d   QhR\         RR/# )r   queryr'   Nr   )r   s   "r   r   r   ?   s     	Y 	YS 	YT 	Yr   c                    \        V 4      ^ 8X  d   \        R4      hV P                  4        FT  pVP                  4       pVP	                  R4      '       g   K,  VR,          P                  4       '       g   KK  \        R4      h	  R# )r   zSQL query cannot be empty..:   r   Nz8DuckDB CLI meta-commands are not allowed in SQL queries.N)lenr;   
splitlineslstrip
startswithisalpha)rJ   linestrippeds   &  r   r8   r8   ?   sh    
5zQ566   ";;=s##(=(=(?(?WXX #r   c                b    V ^8  d   QhR\         \        ,          R,          R\        R,          /# )r   r$   Nr'   )zduckdb.DuckDBPyConnection_DuckDBCliConnection)r   r(   r   )r   s   "r   r   r   K   s+      :
>?r   c                 N    ^ RI pTP
                  ! 4       p \        T 4       F  pTP                  T4       K  	  T#   \         d=   p\        P                  ! R4      pTf   \        R4      Th\	        Y0R7      u Rp?# Rp?ii ; i  \         d    TP                  4        h i ; i)r   NduckdbzDuckDB is required for `hf datasets sql`. Install the Python package with `pip install duckdb` or install the DuckDB CLI binary (for example `brew install duckdb`).)binary_pathr$   )
rY   ImportErrorshutilwhichrW   connect_build_duckdb_secret_statementsr>   	Exceptionr?   )r$   rY   errorduckdb_binaryrD   	statements   &     r   r9   r9   K   s    L !J8?Iy) @  LX. U  $KKL   s&   = $B B1A?9B?BB$c                   f   a  ] tR t^ft o RtV 3R lR ltV 3R lR ltV 3R lR ltV 3R ltR	t	V t
R
# )rW   zbDuckDB connection.

Mimics the DuckDB Python API, but runs the queries via the DuckDB CLI binary.
c                   < V ^8  d   QhRR/# r   r'   Nr   )r   r   s   "r   r   !_DuckDBCliConnection.__annotate__p   s     M Mt Mr   c                :    \        V P                  4      V n        R # r3   )r_   r$   _setup_statementsselfs   &r   __post_init__"_DuckDBCliConnection.__post_init__p   s    !@!Lr   c                $   < V ^8  d   QhRS[ RR/# )r   rJ   r'   r=   rK   )r   r   s   "r   r   rg   s   s      v v v!5 vr   c                F    \        V P                  V P                  VR 7      # ))rZ   setup_statementsrJ   )r=   rZ   ri   )rk   rJ   s   &&r   r:   _DuckDBCliConnection.sqls   s    !d.>.>QUQgQgotuur   c                   < V ^8  d   QhRR/# rf   r   )r   r   s   "r   r   rg   v   s      t r   c                    R # r3   r   rj   s   &r   r?   _DuckDBCliConnection.closev   s    r   c                P   < V ^8  d   Qh/ S[ ;R&   S[ S[,          R,          ;R&   # )r   rZ   Nr$   )r   r(   )r   r   s   "r   r   rg   f   s(        : r   )ri   N)r   r   r   r   r   rl   r:   r?   r    r!   r"   r#   s   @r   rW   rW   f   s3     M Mv v !  r   rW   c                   B   a  ] tR t^zt o RtV 3R lR ltV 3R ltRtV tR# )r=   z`DuckDB relation.

Mimics the DuckDB Python API, but runs the queries via the DuckDB CLI binary.
c                F   < V ^8  d   QhRS[ S[S[S[3,          ,          /# )r   r'   )r)   r*   r   r   )r   r   s   "r   r   _DuckDBCliRelation.__annotate__   s!     1 1d38n- 1r   c                <   . pV P                   '       d*   R \        P                   2.R V P                    4       ORNpRP                  WP                  R,           .,           4      p\
        P                  ! V P                  R.VRRRR7      pVP                  ^ 8w  dR   VP                  P                  4       ;'       g%    VP                  P                  4       ;'       g    R	p\        V4      h\        P                  ! VP                  P                  4       4      # )
z.output c              3   *   "   T F	  q R 2x  K  	  R# 5i)r,   Nr   )r.   stmts   & r   r0   -_DuckDBCliRelation.execute.<locals>.<genexpr>   s     ?)>F!*)>s   z.output
r,   z-jsonTF)inputcapture_outputtextcheckzDuckDB CLI command failed.)rp   osdevnulljoinrJ   
subprocessrunrZ   
returncodestderrr6   stdoutRuntimeErrorjsonloads)rk   setup
full_queryresulterror_messages   &    r   r>   _DuckDBCliRelation.execute   s       2::,'?)>)>? E
 YYu

S(8'99:
 w'
 !"MM//1jjV]]5H5H5JjjNjM}-- zz&----/00r   c                N   < V ^8  d   Qh/ S[ ;R&   S[S[ ,          ;R&   S[ ;R&   # )r   rZ   rp   rJ   )r   r)   )r   r   s   "r   r   rx   z   s/        3i  J r   r   N)	r   r   r   r   r   r>   r    r!   r"   r#   s   @r   r=   r=   z   s     1 1  r   r=   c                j    V ^8  d   QhR\         \        ,          R,          R\        \         ,          /# )r   r$   Nr'   )r   r(   r)   )r   s   "r   r   r      s'      3:+< c r   c                     V e   V RJ d   \        4       p V '       g   . # V P                  RR4      p\        P                  P                  RR4      pRV RV R2RV R2.# )NT'z''z@CREATE OR REPLACE SECRET hf_hub_token (TYPE HTTP, BEARER_TOKEN 'z
', SCOPE 'z')z<CREATE OR REPLACE SECRET hf_token (TYPE HUGGINGFACE, TOKEN ')r   replacer   ENDPOINT)r$   escaped_tokenescaped_endpoints   &  r   r_   r_      sr    }	MM#t,M ))11#t<
J=/Ycdtcuuwx
F}oUWX r   )r   r   r\   r   dataclassesr   typingr   r   r    r   utilsr   rY   r   rH   r8   r9   rW   r=   r_   r   r   r   <module>r      s     	   ! , ,    $   0	Y6   & "1 "1 "1Jr   