o
    8wi-                     @   s   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
 d
e	Zdededeeeef  deeeef  fddZdededeeeef  deeeeef f fddZdS )    )AnyOptionalUnion)get_session   )config)DatasetsError   )"get_authentication_headers_for_url)
get_loggerc                   @   s   e Zd ZdZdS )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__ r   r   [/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/datasets/utils/_dataset_viewer.pyr      s    r   datasetcommit_hashtokenreturnc                 C   sD  t jddd }zqt j||  tt jd|   |ddd}|  d|jv rq|jd |ks3|d	u r]| }|d
du rS|ddsS|ddsSd|v rS|d W S t	
d|  d nt	
d|  d|jd  d W tdW tdW td ty } zt	
d|  dt|j d| d W Y d	}~tdd	}~w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er   r   r   get_exported_parquet_files   @   



.r9   c                 C   sD  t jddd }zqt j||  tt jd|   |ddd}|  d|jv rq|jd |ks3|d	u r]| }|d
du rS|ddsS|ddsSd|v rS|d W S t	
d|  d nt	
d|  d|jd  d W tdW tdW td ty } zt	
d|  dt|j d| d W Y d	}~tdd	}~w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_responser8   r   r   r   get_exported_dataset_infos>   r:   r>   N)typingr   r   r   huggingface_hub.utilsr    r   
exceptionsr   
file_utilsr
   loggingr   r   r1   r   strboollistdictr9   r>   r   r   r   r   <module>   s4    

$