§
    ìóÉjö  ã                  óø   — d dl mZ d dlZd dlZd dlmZ d dlmZ d dlmZ d dlZd dl	m
Z
 d dlmZ er-d dlmZ d d	lmZ  ed
¦  «        Z ed¦  «        Z ed¦  «        ZdZdd„Zdd„Zdd„Z	 d d!d„Z	 d d"d„ZdS )#é    )ÚannotationsN)ÚAny)ÚTYPE_CHECKING)ÚTypeVar)Úoptuna_warn)ÚExperimentalWarning)ÚCallable)Ú	ParamSpecÚFTÚFPÚCTz»

.. note::
    Added in v{ver} as an experimental feature. The interface may change in newer versions
    without prior notice. See https://github.com/optuna/optuna/releases/tag/v{ver}.
Úoption_nameÚstrÚreturnÚNonec                ó8   — t          d| › d�t          ¦  «         d S )NzArgument ``zF`` is an experimental feature. The interface can change in the future.)r   r   )r   s    úw/home/lighthouse/badge-speaker-benchmark/.benchmark-venv-community/lib/python3.11/site-packages/optuna/_experimental.pyÚwarn_experimental_argumentr       s7   € Ýð	3�kð 	3ð 	3ð 	3åñô ð ð ð ó    Úversionc                ó¢   — t          | t          ¦  «        r&t          |                      d¦  «        ¦  «        dk    rt	          d| › d�¦  «        ‚d S )Nú.é   z?Invalid version specification. Must follow `x.y.z` format but `z
` is given)Ú
isinstancer   ÚlenÚsplitÚ
ValueError)r   s    r   Ú_validate_versionr   (   s[   € Ý�g�sÑ#Ô#ð 
¥s¨7¯=ª=¸Ñ+=Ô+=Ñ'>Ô'>À!Ò'CÐ'CÝØaÈgÐaÐaÐañ
ô 
ð 	
ð (DÐ'Cr   Ú	docstringc                óD   — d| v r|                       d¦  «        d         ndS )Nú
éÿÿÿÿÚ )r   )r   s    r   Ú_get_docstring_indentr$   /   s(   € Ø(,°	Ð(9Ð(9ˆ9�?Š?˜4Ñ Ô  Ô$Ð$¸rÐAr   Únameú
str | Noneú.Callable[[Callable[FP, FT]], Callable[FP, FT]]c                ó6   ‡ ‡— t          ‰ ¦  «         dˆˆ fd„}|S )a  Decorate function as experimental.

    Args:
        version: The first version that supports the target feature.
        name: The name of the feature. Defaults to fully qualified name of
        the function, i.e. `f"{func.__module__}.{func.__qualname__}"`. Optional.
    ÚfuncúCallable[FP, FT]r   c                ó^  •‡ ‡— ‰ j         €d‰ _         t                               ‰¬¦  «        }t          ‰ j         ¦  «        }‰ j                              ¦   «         t          j        ||¦  «        z   |z   ‰ _         ‰p‰ j        › d‰ j        › �Št          j
        ‰ ¦  «        d
ˆˆ ˆfd	„¦   «         }|S )Nr#   ©Úverr   Úargsr   Úkwargsr   r   c                 óX   •— t          j        ‰› d‰› d�t          d¬¦  «          ‰| i |¤ŽS ©Nz" is experimental (supported from vz*). The interface can change in the future.é   )Ú
stacklevel©ÚwarningsÚwarnr   )r.   r/   Ú_namer)   r   s     €€€r   Úwrapperz5experimental_func.<locals>.decorator.<locals>.wrapperK   sW   ø€ åŒMØð :ð :¸Gð :ð :ð :å#Øð	ñ ô ð ð �4˜Ð( Ð(Ð(Ð(r   )r.   r   r/   r   r   r   )Ú__doc__Ú_EXPERIMENTAL_NOTE_TEMPLATEÚformatr$   ÚstripÚtextwrapÚindentÚ
__module__Ú__qualname__Ú	functoolsÚwraps)r)   Únoter>   r8   r7   r%   r   s   `   @€€r   Ú	decoratorz$experimental_func.<locals>.decoratorA   sÅ   øøø€ ØŒ<ÐØˆDŒLå*×1Ò1°gÐ1Ñ>Ô>ˆÝ& t¤|Ñ4Ô4ˆØ”|×)Ò)Ñ+Ô+­h¬o¸dÀFÑ.KÔ.KÑKÈfÑTˆŒàÐ@˜4œ?Ð@Ð@¨TÔ->Ð@Ð@ˆå	Œ˜Ñ	Ô	ð	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)ñ 
Ô	ð	)ð ˆr   )r)   r*   r   r*   ©r   ©r   r%   rD   s   `` r   Úexperimental_funcrG   3   s?   øø€ õ �gÑÔÐðð ð ð ð ð ð ð. Ðr   úCallable[[CT], CT]c                ó6   ‡ ‡— t          ‰ ¦  «         dˆˆ fd„}|S )zÁDecorate class as experimental.

    Args:
        version: The first version that supports the target feature.
        name: The name of the feature. Defaults to the class name. Optional.
    Úclsr   r   c                ó(   •— dˆˆfd„} || ¦  «        S )NrJ   r   r   c                óœ  •‡‡— t          | d¦  «        Št          | d¦  «        Št          j        ‰¦  «        dˆˆˆˆfd	„¦   «         }t          | d|¦  «         | j        €d| _        t
                               ‰¬¦  «        }t          | j        ¦  «        }| j                             ¦   «         t          j
        ||¦  «        z   |z   | _        | S )z€Decorates a class as experimental.

            This decorator is supposed to be applied to the experimental class.
            Ú__init__Ú__name__Úselfr   r.   r/   r   r   c                ól   •— t          j        ‰�‰n‰› d‰› d�t          d¬¦  «          ‰| g|¢R i |¤Ž d S r1   r4   )rO   r.   r/   Ú_original_initÚ_original_namer%   r   s      €€€€r   Úwrapped_initzLexperimental_class.<locals>.decorator.<locals>.wrapper.<locals>.wrapped_initq   st   ø€ å”Ø#Ð/�t�t°^ð >ð >Ø8?ð>ð >ð >õ (Ø ðñ ô ð ð �˜tÐ5 dÐ5Ð5Ð5¨fÐ5Ð5Ð5Ð5Ð5r   Nr#   r,   )rO   r   r.   r   r/   r   r   r   )ÚgetattrrA   rB   Úsetattrr9   r:   r;   r$   r<   r=   r>   )rJ   rS   rC   r>   rQ   rR   r%   r   s       @@€€r   r8   z6experimental_class.<locals>.decorator.<locals>.wrapperi   sà   øøø€ õ
 % S¨*Ñ5Ô5ˆNÝ$ S¨*Ñ5Ô5ˆNåŒ_˜^Ñ,Ô,ð	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ñ -Ô,ð	6õ �C˜ \Ñ2Ô2Ð2àŒ{Ð"Ø �”å.×5Ò5¸'Ð5ÑBÔBˆDÝ*¨3¬;Ñ7Ô7ˆFØœ+×+Ò+Ñ-Ô-µ´ÀÀfÑ0MÔ0MÑMÐPVÑVˆCŒKàˆJr   ©rJ   r   r   r   © )rJ   r8   r%   r   s     €€r   rD   z%experimental_class.<locals>.decoratorh   s6   ø€ ð	ð 	ð 	ð 	ð 	ð 	ð 	ð> ˆw�s‰|Œ|Ðr   rV   rE   rF   s   `` r   Úexperimental_classrX   [   s@   øø€ õ �gÑÔÐð ð  ð  ð  ð  ð  ð  ðD Ðr   )r   r   r   r   )r   r   r   r   )r   r   r   r   )N)r   r   r%   r&   r   r'   )r   r   r%   r&   r   rH   )Ú
__future__r   rA   r=   Útypingr   r   r   r5   Úoptuna._warningsr   Úoptuna.exceptionsr   Úcollections.abcr	   Útyping_extensionsr
   r   r   r   r:   r   r   r$   rG   rX   rW   r   r   ú<module>r_      ss  ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø €€€à (Ð (Ð (Ð (Ð (Ð (Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1ð ð Ø(Ð(Ð(Ð(Ð(Ð(à+Ð+Ð+Ð+Ð+Ð+à	ˆ�‰Œ€BØ	ˆ�4‰Œ€BØ	ˆ�‰Œ€BðÐ ðð ð ð ð
ð 
ð 
ð 
ðBð Bð Bð Bð ð%ð %ð %ð %ð %ðT ð/ð /ð /ð /ð /ð /ð /r   