U
    ”Ê¹j¦	  ã                   @   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 )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                     s$   t jst dˆ› d�t¡ ˆ | |Ž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   Z#HF_HUB_DISABLE_EXPERIMENTAL_WARNINGÚwarningsÚwarnÚUserWarning)ÚargsÚkwargs©r   Úname© úb/var/www/html/bwave/python/venv/lib/python3.8/site-packages/huggingface_hub/utils/_experimental.pyÚ	_inner_fn9   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
   