U
    9%eZ	                     @   sD   d Z ddlZddlmZ ddlmZ ddlmZ eeddd	ZdS )
zJContains utilities to flag a feature as "experimental" in Huggingface Hub.    N)wraps)Callable   )	constants)fnreturnc                    s@    j dr  j dtd  n j t  fdd}|S )aC  Decorator to flag a feature as experimental.

    An experimental feature trigger a warning when used as it might be subject to breaking changes in the future.
    Warnings can be disabled by setting the environment variable `HF_EXPERIMENTAL_WARNING` to `0`.

    Args:
        fn (`Callable`):
            The function to flag as experimental.

    Returns:
        `Callable`: The decorated function.

    Example:

    ```python
    >>> from huggingface_hub.utils import experimental

    >>> @experimental
    ... def my_function():
    ...     print("Hello world!")

    >>> my_function()
    UserWarning: 'my_function' is experimental and might be subject to breaking changes in the future. You can disable
    this warning by setting `HF_HUB_DISABLE_EXPERIMENTAL_WARNING=1` as environment variable.
    Hello world!
    ```
    z.__new__Nc                     s$   t jstd dt  | |S )N'z' is experimental and might be subject to breaking changes in the future. You can disable this warning by setting `HF_HUB_DISABLE_EXPERIMENTAL_WARNING=1` as environment variable.)r   Z#HF_HUB_DISABLE_EXPERIMENTAL_WARNINGwarningswarnUserWarning)argskwargsr   name b/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/huggingface_hub/utils/_experimental.py	_inner_fn6   s    
zexperimental.<locals>._inner_fn)__qualname__endswithlenr   )r   r   r   r   r   experimental   s    &
r   )	__doc__r	   	functoolsr   typingr    r   r   r   r   r   r   <module>   s
   