o
    TZhX                     @   s   d dl mZmZmZmZmZ ddlmZ ddlm	Z	 ddl
mZ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DictListOptionalUnion   )config)DatasetsError   )"get_authentication_headers_for_urlhttp_get)
get_loggerc                   @   s   e Zd ZdZdS )DatasetsServerErrorzDataset-server error.

    Raised when trying to use the Datasets-server 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   V/var/www/html/lang_env/lib/python3.10/site-packages/datasets/utils/_datasets_server.pyr      s    r   datasetrevisiontokenreturnc                 C   sD  t jddd }zqt||  dtt jd|   |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=N	datasets/r         Y@   url	temp_fileheaderstimeoutmax_retries
X-RevisionpartialFpendingTfailedZparquet_fileszParquet export for  is not completely ready yet.& is available but outdated (revision='')zNo parquet export for  available (: )z$No exported Parquet files available.r   ZHF_ENDPOINTreplacer   r   raise_for_statusr"   jsongetloggerdebug	Exceptiontyper   r   )r   r   r   Zdatasets_server_parquet_urlZparquet_data_files_responseZ parquet_data_files_response_jsoner   r   r   get_exported_parquet_files   sD   



.r9   c                 C   sD  t jddd }zqt||  dtt jd|   |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=Nr   r   r   r   r   r%   r&   Fr'   Tr(   Z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   Zdatasets_server_info_urlZinfo_responser8   r   r   r   get_exported_dataset_infos=   sD   



.r:   N)typingr   r   r   r   r    r   
exceptionsr	   Z
file_utilsr   r   loggingr   r   r4   r   strboolr9   r:   r   r   r   r   <module>   s"    2
$