
    bi-                         d dl mZmZmZ d dlmZ ddlmZ ddlm	Z	 ddl
mZ ddlmZ  ee      Z G d	 d
e	      Zdededeeeef      deeeef      fdZdededeeeef      deeeeef   f   fdZy)    )AnyOptionalUnion)get_session   )config)DatasetsError   )"get_authentication_headers_for_url)
get_loggerc                       e Zd ZdZy)DatasetViewerErrorzDataset viewer error.

    Raised when trying to use the dataset viewer HTTP API and when trying to access:
    - a missing dataset, or
    - a private/gated dataset and the user is not authenticated.
    - unavailable /parquet or /info responses
    N)__name__
__module____qualname____doc__     Y/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/datasets/utils/_dataset_viewer.pyr   r      s    r   r   datasetcommit_hashtokenreturnc           
      
   t         j                  j                  dd      dz   }	 t               j	                  || z   t        t         j                  d|  z   |      d      }|j                          d|j                  v r|j                  d   |k(  s|j|j                         }|j	                  d
      du r-|j	                  dd      s|j	                  dd      s	d|v r|d   S t        j                  d|  d       n)t        j                  d|  d|j                  d    d       t        d      # t        $ rF}t        j                  d|  dt        |      j                   d| d       Y d	}~t        d      d	}~ww xY w)zn
    Get the dataset exported parquet files
    Docs: https://huggingface.co/docs/datasets-server/parquet
    ://://datasets-server.z/parquet?dataset=	datasets/r         Y@urlheaderstimeout
X-RevisionNpartialFpendingTfailedparquet_fileszParquet export for  is not completely ready yet.) is available but outdated (commit_hash='')zNo parquet export for  available (: )z$No exported Parquet files available.r   HF_ENDPOINTreplacer   getr   raise_for_statusr"   jsonloggerdebug	Exceptiontyper   r   )r   r   r   dataset_viewer_parquet_urlparquet_data_files_response parquet_data_files_response_jsones          r   get_exported_parquet_filesr=      s    "(!3!3!;!;ECX!Y\o!o]&1m&7&7*W46v7I7IiX_W`La7aino '8 '
#
 	$4466>>>*22<@KOS^Sf3N3S3S3U0488CuL<@@DQ<@@4P'+KK;OLLLL#6wi?\!]^)'2[\w\\  AM  ]N  \O  OQ  R
 C
DD  ]-gYl47CSCSBTTVWXVYYZ[\\
C
DD]   B?D3 %AD3 3	F<2E==Fc           
      
   t         j                  j                  dd      dz   }	 t               j	                  || z   t        t         j                  d|  z   |      d      }|j                          d|j                  v r|j                  d   |k(  s|j|j                         }|j	                  d
      du r-|j	                  dd      s|j	                  dd      s	d|v r|d   S t        j                  d|  d       n)t        j                  d|  d|j                  d    d       t        d      # t        $ rF}t        j                  d|  dt        |      j                   d| d       Y d	}~t        d      d	}~ww xY w)z
    Get the dataset information, can be useful to get e.g. the dataset features.
    Docs: https://huggingface.co/docs/datasets-server/info
    r   r   z/info?dataset=r   r   r   r    r$   Nr%   Fr&   Tr'   dataset_infozDataset info for r)   r*   r+   zNo dataset info for r,   r-   r.   z$No exported dataset infos available.r/   )r   r   r   dataset_viewer_info_urlinfo_responser<   s         r   get_exported_dataset_infosrC   >   s    %0088@UVYii[#))''16v7I7IiX_W`La7aino * 

 	&&(=000$$\2kA[EX - 2 2 4!%%i0E9)--i>)--h=&-7(88LL#4WI=Z![\'y0YZgZoZop|Z}Y~  A  B
 C
DD  [+G9LaAQAQ@RRTUVTWWXYZZ
C
DD[r>   N)typingr   r   r   huggingface_hub.utilsr    r   
exceptionsr	   
file_utilsr   loggingr   r   r5   r   strboollistdictr=   rC   r   r   r   <module>rN      s    ' ' -  &   
H	 !E!E"!E+3E#t)4D+E!E	$sCx.!EH!E!E"!E+3E#t)4D+E!E	#tCH~
!Er   