o
    h'                     @   sN  d Z ddlmZ ddlmZmZ ddlmZmZ G dd de	Z
G dd de	ZG d	d
 d
eZG dd deZG dd deZG dd deeZG dd de	ZG dd deeZG dd de	ZG dd de	ZG dd deZG dd deZG dd deZG dd  d eZG d!d" d"eZG d#d$ d$eZG d%d& d&eZG d'd( d(eZ G d)d* d*eZ!G d+d, d,e!Z"G d-d. d.eZ#G d/d0 d0eZ$G d1d2 d2eZ%G d3d4 d4e%e&eZ'G d5d6 d6eeZ(G d7d8 d8e	Z)G d9d: d:e)Z*G d;d< d<e)Z+G d=d> d>e+Z,G d?d@ d@e	Z-G dAdB dBe-Z.G dCdD dDe-Z/G dEdF dFe	Z0dGS )HzContains all custom errors.    )Path)OptionalUnion)	HTTPErrorResponsec                       sD   e Zd ZU dZeeef ed< dedeeef f fddZ  Z	S )CacheNotFoundz9Exception thrown when the Huggingface cache is not found.	cache_dirmsgc                    s$   t  j|g|R i | || _d S N)super__init__r   )selfr	   r   argskwargs	__class__ j/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/huggingface_hub/errors.pyr      s   
zCacheNotFound.__init__)
__name__
__module____qualname____doc__r   strr   __annotations__r   __classcell__r   r   r   r   r      s   
 &r   c                   @      e Zd ZdZdS )CorruptedCacheExceptionzGException for any unexpected structure in the Huggingface cache-system.Nr   r   r   r   r   r   r   r   r          r   c                   @   r   )LocalTokenNotFoundErrorz0Raised if local token is required but not found.Nr   r   r   r   r   r      r   r   c                   @   r   )OfflineModeIsEnabledzTRaised when a request is made but `HF_HUB_OFFLINE=1` is set as environment variable.Nr   r   r   r   r   r    $   r   r    c                	       sP   e Zd ZdZddddedee dee f fddZd	ed
dfddZ  Z	S )HfHubHTTPErrora@  
    HTTPError to inherit from for any custom HTTP Error raised in HF Hub.

    Any HTTPError is converted at least into a `HfHubHTTPError`. If some information is
    sent back by the server, it will be added to the error message.

    Added details:
    - Request id from "X-Request-Id" header if exists. If not, fallback to "X-Amzn-Trace-Id" header if exists.
    - Server error message from the header "X-Error-Message".
    - Server error message if we can found one in the response body.

    Example:
    ```py
        import requests
        from huggingface_hub.utils import get_session, hf_raise_for_status, HfHubHTTPError

        response = get_session().post(...)
        try:
            hf_raise_for_status(response)
        except HfHubHTTPError as e:
            print(str(e)) # formatted message
            e.request_id, e.server_message # details returned by server

            # Complete the error message with additional information once it's raised
            e.append_to_message("
`create_commit` expects the repository to exist.")
            raise
    ```
    N)server_messagemessageresponser"   c                   sP   |d ur|j dp|j dnd | _|| _t j|||d ur"|jnd d d S )Nzx-request-idzX-Amzn-Trace-Id)r$   request)headersget
request_idr"   r   r   r%   )r   r#   r$   r"   r   r   r   r   F   s   
zHfHubHTTPError.__init__additional_messagereturnc                 C   s$   | j d | f| j dd  | _ dS )zFAppend additional information to the `HfHubHTTPError` initial message.r      N)r   )r   r)   r   r   r   append_to_messageT   s   $z HfHubHTTPError.append_to_messager
   )
r   r   r   r   r   r   r   r   r,   r   r   r   r   r   r!   (   s    *r!   c                   @   r   )InferenceTimeoutErrorzBError raised when a model is unavailable or the request times out.Nr   r   r   r   r   r-   \   r   r-   c                   @   r   )InferenceEndpointErrorz8Generic exception when dealing with Inference Endpoints.Nr   r   r   r   r   r.   c   r   r.   c                   @   r   )InferenceEndpointTimeoutErrorz<Exception for timeouts while waiting for Inference Endpoint.Nr   r   r   r   r   r/   g   r   r/   c                   @   r   )SafetensorsParsingErrorzRaised when failing to parse a safetensors file metadata.

    This can be the case if the file is not a safetensors file or does not respect the specification.
    Nr   r   r   r   r   r0   n   r   r0   c                   @   r   )NotASafetensorsRepoErrorzRaised when a repo is not a Safetensors repo i.e. doesn't have either a `model.safetensors` or a
    `model.safetensors.index.json` file.
    Nr   r   r   r   r   r1   u   r   r1   c                   @   r   )TextGenerationErrorz3Generic error raised if text-generation went wrong.Nr   r   r   r   r   r2   ~   r   r2   c                   @   r   )ValidationErrorzServer-side validation error.Nr   r   r   r   r   r3      r   r3   c                   @      e Zd ZdS )GenerationErrorNr   r   r   r   r   r   r   r5          r5   c                   @   r4   )OverloadedErrorNr6   r   r   r   r   r8      r7   r8   c                   @   r4   )IncompleteGenerationErrorNr6   r   r   r   r   r9      r7   r9   c                   @   r4   )UnknownErrorNr6   r   r   r   r   r:      r7   r:   c                   @   r   )HFValidationErrorzGeneric exception thrown by `huggingface_hub` validators.

    Inherits from [`ValueError`](https://docs.python.org/3/library/exceptions.html#ValueError).
    Nr   r   r   r   r   r;      r   r;   c                   @   r   )FileMetadataErrorzError triggered when the metadata of a file on the Hub cannot be retrieved (missing ETag or commit_hash).

    Inherits from `OSError` for backward compatibility.
    Nr   r   r   r   r   r<      r   r<   c                   @   r   )RepositoryNotFoundErrora  
    Raised when trying to access a hf.co URL with an invalid repository name, or
    with a private repo name the user does not have access to.

    Example:

    ```py
    >>> from huggingface_hub import model_info
    >>> model_info("<non_existent_repository>")
    (...)
    huggingface_hub.utils._errors.RepositoryNotFoundError: 401 Client Error. (Request ID: PvMw_VjBMjVdMz53WKIzP)

    Repository Not Found for url: https://huggingface.co/api/models/%3Cnon_existent_repository%3E.
    Please make sure you specified the correct `repo_id` and `repo_type`.
    If the repo is private, make sure you are authenticated.
    Invalid username or password.
    ```
    Nr   r   r   r   r   r=      r   r=   c                   @   r   )GatedRepoErrora  
    Raised when trying to access a gated repository for which the user is not on the
    authorized list.

    Note: derives from `RepositoryNotFoundError` to ensure backward compatibility.

    Example:

    ```py
    >>> from huggingface_hub import model_info
    >>> model_info("<gated_repository>")
    (...)
    huggingface_hub.utils._errors.GatedRepoError: 403 Client Error. (Request ID: ViT1Bf7O_026LGSQuVqfa)

    Cannot access gated repo for url https://huggingface.co/api/models/ardent-figment/gated-model.
    Access to model ardent-figment/gated-model is restricted and you are not in the authorized list.
    Visit https://huggingface.co/ardent-figment/gated-model to ask for access.
    ```
    Nr   r   r   r   r   r>      r   r>   c                   @   r   )DisabledRepoErrora  
    Raised when trying to access a repository that has been disabled by its author.

    Example:

    ```py
    >>> from huggingface_hub import dataset_info
    >>> dataset_info("laion/laion-art")
    (...)
    huggingface_hub.utils._errors.DisabledRepoError: 403 Client Error. (Request ID: Root=1-659fc3fa-3031673e0f92c71a2260dbe2;bc6f4dfb-b30a-4862-af0a-5cfe827610d8)

    Cannot access repository for url https://huggingface.co/api/datasets/laion/laion-art.
    Access to this resource is disabled.
    ```
    Nr   r   r   r   r   r?      r   r?   c                   @   r   )RevisionNotFoundErrora  
    Raised when trying to access a hf.co URL with a valid repository but an invalid
    revision.

    Example:

    ```py
    >>> from huggingface_hub import hf_hub_download
    >>> hf_hub_download('bert-base-cased', 'config.json', revision='<non-existent-revision>')
    (...)
    huggingface_hub.utils._errors.RevisionNotFoundError: 404 Client Error. (Request ID: Mwhe_c3Kt650GcdKEFomX)

    Revision Not Found for url: https://huggingface.co/bert-base-cased/resolve/%3Cnon-existent-revision%3E/config.json.
    ```
    Nr   r   r   r   r   r@      r   r@   c                   @   r   )EntryNotFoundErrora  
    Raised when trying to access a hf.co URL with a valid repository and revision
    but an invalid filename.

    Example:

    ```py
    >>> from huggingface_hub import hf_hub_download
    >>> hf_hub_download('bert-base-cased', '<non-existent-file>')
    (...)
    huggingface_hub.utils._errors.EntryNotFoundError: 404 Client Error. (Request ID: 53pNl6M0MxsnG5Sw8JA6x)

    Entry Not Found for url: https://huggingface.co/bert-base-cased/resolve/main/%3Cnon-existent-file%3E.
    ```
    Nr   r   r   r   r   rA     r   rA   c                       s&   e Zd ZdZdef fddZ  ZS )LocalEntryNotFoundErrora  
    Raised when trying to access a file or snapshot that is not on the disk when network is
    disabled or unavailable (connection issue). The entry may exist on the Hub.

    Note: `ValueError` type is to ensure backward compatibility.
    Note: `LocalEntryNotFoundError` derives from `HTTPError` because of `EntryNotFoundError`
          even when it is not a network issue.

    Example:

    ```py
    >>> from huggingface_hub import hf_hub_download
    >>> hf_hub_download('bert-base-cased', '<non-cached-file>',  local_files_only=True)
    (...)
    huggingface_hub.utils._errors.LocalEntryNotFoundError: Cannot find the requested files in the disk cache and outgoing traffic has been disabled. To enable hf.co look-ups and downloads online, set 'local_files_only' to False.
    ```
    r#   c                    s   t  j|d d d S )N)r$   )r   r   )r   r#   r   r   r   r   &  s   z LocalEntryNotFoundError.__init__)r   r   r   r   r   r   r   r   r   r   r   rB     s    rB   c                   @   r   )BadRequestErroraQ  
    Raised by `hf_raise_for_status` when the server returns a HTTP 400 error.

    Example:

    ```py
    >>> resp = requests.post("hf.co/api/check", ...)
    >>> hf_raise_for_status(resp, endpoint_name="check")
    huggingface_hub.utils._errors.BadRequestError: Bad request for check endpoint: {details} (Request ID: XXX)
    ```
    Nr   r   r   r   r   rC   +  r   rC   c                   @   r   )	DDUFErrorz5Base exception for errors related to the DDUF format.Nr   r   r   r   r   rD   <  r   rD   c                   @   r   )DDUFCorruptedFileErrorz1Exception thrown when the DDUF file is corrupted.Nr   r   r   r   r   rE   @  r   rE   c                   @   r   )DDUFExportErrorz-Base exception for errors during DDUF export.Nr   r   r   r   r   rF   D  r   rF   c                   @   r   )DDUFInvalidEntryNameErrorz0Exception thrown when the entry name is invalid.Nr   r   r   r   r   rG   H  r   rG   c                   @   r   )XetErrorz1Base exception for errors related to Xet Storage.Nr   r   r   r   r   rH   O  r   rH   c                   @   r   )XetAuthorizationErrorzXException thrown when the user does not have the right authorization to use Xet Storage.Nr   r   r   r   r   rI   S  r   rI   c                   @   r   )XetRefreshTokenErrorz3Exception thrown when the refresh token is invalid.Nr   r   r   r   r   rJ   W  r   rJ   c                   @   r   )XetDownloadErrorz:Exception thrown when the download from Xet Storage fails.Nr   r   r   r   r   rK   [  r   rK   N)1r   pathlibr   typingr   r   requestsr   r   	Exceptionr   r   EnvironmentErrorr   ConnectionErrorr    r!   TimeoutErrorr-   r.   r/   r0   r1   r2   r3   r5   r8   r9   r:   
ValueErrorr;   OSErrorr<   r=   r>   r?   r@   rA   FileNotFoundErrorrB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   r   r   r   r   <module>   sJ    
4	

