
    ;3h	                     D    d Z ddlZddlmZ ddlmZ ddlmZ dedefd	Zy)
zJContains utilities to flag a feature as "experimental" in Huggingface Hub.    N)wraps)Callable   )	constantsfnreturnc                       j                   j                  d      r j                   dt        d        n j                   t                fd       }|S )ay  Decorator to flag a feature as experimental.

    An experimental feature triggers a warning when used as it might be subject to breaking changes without prior notice
    in the future.

    Warnings can be disabled by setting `HF_HUB_DISABLE_EXPERIMENTAL_WARNING=1` as environment variable.

    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 without prior
    notice. You can disable this warning by setting `HF_HUB_DISABLE_EXPERIMENTAL_WARNING=1` as environment variable.
    Hello world!
    ```
    z.__new__Nc                  p    t         j                  st        j                  d dt                | i |S )N'z' is experimental and might be subject to breaking changes in the future without prior notice. You can disable this warning by setting `HF_HUB_DISABLE_EXPERIMENTAL_WARNING=1` as environment variable.)r   #HF_HUB_DISABLE_EXPERIMENTAL_WARNINGwarningswarnUserWarning)argskwargsr   names     c/var/www/html/audio-gradio/venv/lib/python3.12/site-packages/huggingface_hub/utils/_experimental.py	_inner_fnzexperimental.<locals>._inner_fn9   s@    <<MMD6   	 4"6""    )__qualname__endswithlenr   )r   r   r   s   ` @r   experimentalr      sU    > 35//2J2J:2V2??-c*o-.\^\k\kD
2Y# # r   )	__doc__r   	functoolsr   typingr    r   r    r   r   <module>r      s*    Q    ,X ,( ,r   