U
    ”Ê¹j,  ã                   @   sŽ  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-ƒZ0G dGdH„ dHe	ƒZ1G dIdJ„ dJe1ƒZ2G dKdL„ dLe1ƒZ3G dMdN„ dNe	ƒZ4dOS )PzContains all custom errors.é    )ÚPath)ÚOptionalÚUnion)Ú	HTTPErrorÚResponsec                       sB   e Zd ZU dZeeef ed< eeeef dœ‡ fdd„Z‡  Z	S )ÚCacheNotFoundz9Exception thrown when the Huggingface cache is not found.Ú	cache_dir)Úmsgr   c                    s   t ƒ j|f|ž|Ž || _d S )N)ÚsuperÚ__init__r   )Úselfr	   r   ÚargsÚkwargs©Ú	__class__© úU/var/www/html/bwave/python/venv/lib/python3.8/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                   @   s   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      s   r   c                   @   s   e Zd ZdZdS )ÚLocalTokenNotFoundErrorz0Raised if local token is required but not found.Nr   r   r   r   r   r      s   r   c                   @   s   e Zd ZdZdS )ÚOfflineModeIsEnabledzTRaised when a request is made but `HF_HUB_OFFLINE=1` is set as environment variable.Nr   r   r   r   r   r   $   s   r   c                       sJ   e Zd ZdZd
ddœeee ee dœ‡ fdd„Zeddœdd	„Z‡  Z	S )ÚHfHubHTTPErroraA  
    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 sourced from headers in order of precedence: "X-Request-Id", "X-Amzn-Trace-Id", "X-Amz-Cf-Id".
    - 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                   s\   |d k	r,|j  d¡p.|j  d¡p.|j  d¡nd | _|| _tƒ j|||d k	rP|jnd d� d S )Nzx-request-idzX-Amzn-Trace-Idzx-amz-cf-id)r!   Úrequest)ÚheadersÚgetZ
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_messageV   s    z HfHubHTTPError.append_to_message)N)
r   r   r   r   r   r   r   r   r(   r   r   r   r   r   r   (   s   &r   c                   @   s   e Zd ZdZdS )ÚInferenceTimeoutErrorzBError raised when a model is unavailable or the request times out.Nr   r   r   r   r   r)   ^   s   r)   c                   @   s   e Zd ZdZdS )ÚInferenceEndpointErrorz8Generic exception when dealing with Inference Endpoints.Nr   r   r   r   r   r*   e   s   r*   c                   @   s   e Zd ZdZdS )ÚInferenceEndpointTimeoutErrorz<Exception for timeouts while waiting for Inference Endpoint.Nr   r   r   r   r   r+   i   s   r+   c                   @   s   e Zd ZdZdS )ÚSafetensorsParsingErrorz¥Raised 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   r,   p   s   r,   c                   @   s   e Zd ZdZdS )ÚNotASafetensorsRepoErrorzŽRaised 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   r-   w   s   r-   c                   @   s   e Zd ZdZdS )ÚTextGenerationErrorz3Generic error raised if text-generation went wrong.Nr   r   r   r   r   r.   €   s   r.   c                   @   s   e Zd ZdZdS )ÚValidationErrorzServer-side validation error.Nr   r   r   r   r   r/   …   s   r/   c                   @   s   e Zd ZdS )ÚGenerationErrorN©r   r   r   r   r   r   r   r0   ‰   s   r0   c                   @   s   e Zd ZdS )ÚOverloadedErrorNr1   r   r   r   r   r2   �   s   r2   c                   @   s   e Zd ZdS )ÚIncompleteGenerationErrorNr1   r   r   r   r   r3   ‘   s   r3   c                   @   s   e Zd ZdS )ÚUnknownErrorNr1   r   r   r   r   r4   •   s   r4   c                   @   s   e Zd ZdZdS )ÚHFValidationErrorzŸGeneric exception thrown by `huggingface_hub` validators.

    Inherits from [`ValueError`](https://docs.python.org/3/library/exceptions.html#ValueError).
    Nr   r   r   r   r   r5   œ   s   r5   c                   @   s   e Zd ZdZdS )ÚFileMetadataErrorz§Error 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   r6   ¦   s   r6   c                   @   s   e Zd ZdZdS )Ú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   r7   °   s   r7   c                   @   s   e Zd ZdZdS )Ú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   r8   Å   s   r8   c                   @   s   e Zd ZdZdS )Ú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   r9   Û   s   r9   c                   @   s   e Zd ZdZdS )Ú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:   ð   s   r:   c                   @   s   e Zd ZdZdS )Ú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   r;     s   r;   c                       s&   e Zd ZdZedœ‡ 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   r<     s   r<   c                   @   s   e Zd ZdZdS )Ú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   r=   -  s   r=   c                   @   s   e Zd ZdZdS )Ú	DDUFErrorz5Base exception for errors related to the DDUF format.Nr   r   r   r   r   r>   >  s   r>   c                   @   s   e Zd ZdZdS )ÚDDUFCorruptedFileErrorz1Exception thrown when the DDUF file is corrupted.Nr   r   r   r   r   r?   B  s   r?   c                   @   s   e Zd ZdZdS )ÚDDUFExportErrorz-Base exception for errors during DDUF export.Nr   r   r   r   r   r@   F  s   r@   c                   @   s   e Zd ZdZdS )ÚDDUFInvalidEntryNameErrorz0Exception thrown when the entry name is invalid.Nr   r   r   r   r   rA   J  s   rA   c                   @   s   e Zd ZdZdS )ÚStrictDataclassErrorz&Base exception for strict dataclasses.Nr   r   r   r   r   rB   Q  s   rB   c                   @   s   e Zd ZdZdS )ÚStrictDataclassDefinitionErrorz@Exception thrown when a strict dataclass is defined incorrectly.Nr   r   r   r   r   rC   U  s   rC   c                       s(   e Zd ZdZeedœ‡ fdd„Z‡  ZS )Ú#StrictDataclassFieldValidationErrorzLException thrown when a strict dataclass fails validation for a given field.)ÚfieldÚcausec                    s4   d|› d�}|d|j j› d|› �7 }tƒ  |¡ d S )NzValidation error for field 'ú':ú
    ú: ©r   r   r
   r   )r   rE   rF   Úerror_messager   r   r   r   \  s    z,StrictDataclassFieldValidationError.__init__©r   r   r   r   r   Ú	Exceptionr   r   r   r   r   r   rD   Y  s   rD   c                       s(   e Zd ZdZeedœ‡ fdd„Z‡  ZS )Ú#StrictDataclassClassValidationErrorzOException thrown when a strict dataclass fails validation on a class validator.)Ú	validatorrF   c                    s4   d|› d�}|d|j j› d|› �7 }tƒ  |¡ d S )Nz&Class validation error for validator 'rG   rH   rI   rJ   )r   rO   rF   rK   r   r   r   r   e  s    z,StrictDataclassClassValidationError.__init__rL   r   r   r   r   rN   b  s   rN   c                   @   s   e Zd ZdZdS )ÚXetErrorz1Base exception for errors related to Xet Storage.Nr   r   r   r   r   rP   n  s   rP   c                   @   s   e Zd ZdZdS )ÚXetAuthorizationErrorzXException thrown when the user does not have the right authorization to use Xet Storage.Nr   r   r   r   r   rQ   r  s   rQ   c                   @   s   e Zd ZdZdS )ÚXetRefreshTokenErrorz3Exception thrown when the refresh token is invalid.Nr   r   r   r   r   rR   v  s   rR   c                   @   s   e Zd ZdZdS )ÚXetDownloadErrorz:Exception thrown when the download from Xet Storage fails.Nr   r   r   r   r   rS   z  s   rS   N)5r   Úpathlibr   Útypingr   r   Úrequestsr   r   rM   r   r   ÚEnvironmentErrorr   ÚConnectionErrorr   r   ÚTimeoutErrorr)   r*   r+   r,   r-   r.   r/   r0   r2   r3   r4   Ú
ValueErrorr5   ÚOSErrorr6   r7   r8   r9   r:   r;   ÚFileNotFoundErrorr<   r=   r>   r?   r@   rA   rB   rC   rD   rN   rP   rQ   rR   rS   r   r   r   r   Ú<module>   sP   
6	

	