ó
    ,Êžjö  ã                  ó  • S SK Jr  S SKrS SKrS SKJr  S SKJr  S SKJr  S SKrS SK	J
r
  S SKJr  \(       a$  S SKJr  S S	KJr  \" S
5      r\" S5      r\" S5      rSrSS jrSS jrSS jr S     SS jjr S     SS jjrg)é    )Ú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}.
c                ó,   • [        SU  S3[        5        g )NzArgument ``zF`` is an experimental feature. The interface can change in the future.)r   r   )Úoption_names    Ú¢C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\optuna/_experimental.pyÚwarn_experimental_argumentr       s   € ÜØ
�k�]ð #3ð 	3äõó    c                óˆ   • [        U [        5      (       a  [        U R                  S5      5      S:w  a  [	        SU  S35      eg )NÚ.é   z?Invalid version specification. Must follow `x.y.z` format but `z
` is given)Ú
isinstanceÚstrÚlenÚsplitÚ
ValueError)Úversions    r   Ú_validate_versionr   (   sD   € Ü�gœs×#Ñ#¤s¨7¯=©=¸Ó+=Ó'>À!Ó'CÜØMÈgÈYÐV`Ðaó
ð 	
ð (Dr   c                ó:   • SU ;   a  U R                  S5      S   $ S$ )NÚ
éÿÿÿÿÚ )r   )Ú	docstrings    r   Ú_get_docstring_indentr"   /   s"   € Ø(,°	Ó(9ˆ9�?‰?˜4Ó  Ñ$ÐA¸rÐAr   c                ó2   ^ ^• [        T 5        SUU 4S jjnU$ )zÿ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.
c                ó„  >^ ^• T R                   c  ST l         [        R                  TS9n[        T R                   5      nT R                   R	                  5       [
        R                  " X5      -   U-   T l         T=(       d    T R                   ST R                   3m[        R                  " T 5      SUU U4S jj5       nU$ )Nr    ©Úverr   c                 óT   >• [         R                  " T ST S3[        SS9  T" U 0 UD6$ ©Nz" is experimental (supported from vz*). The interface can change in the future.é   )Ú
stacklevel©ÚwarningsÚwarnr   )ÚargsÚkwargsÚ_nameÚfuncr   s     €€€r   ÚwrapperÚ5experimental_func.<locals>.decorator.<locals>.wrapperK   s>   ø€ ä�MŠMØ�'Ð;¸G¸9ð E:ð :ä#Øò	ñ ˜Ð( Ñ(Ð(r   )r.   r   r/   r   Úreturnr   )Ú__doc__Ú_EXPERIMENTAL_NOTE_TEMPLATEÚformatr"   ÚstripÚtextwrapÚindentÚ
__module__Ú__qualname__Ú	functoolsÚwraps)r1   Únoter:   r2   r0   Únamer   s   `   @€€r   Ú	decoratorÚ$experimental_func.<locals>.decoratorA   s¤   ú€ Ø�<‰<ÑØˆDŒLä*×1Ñ1°gÐ1Ð>ˆÜ& t§|¡|Ó4ˆØ—|‘|×)Ñ)Ó+¬h¯oªo¸dÓ.KÑKÈfÑTˆŒà×@˜4Ÿ?™?Ð+¨1¨T×->Ñ->Ð,?Ð@ˆä	�Š˜Ó	÷	)ð 	)ó 
ð	)ð ˆr   )r1   úCallable[FP, FT]r4   rC   ©r   ©r   r@   rA   s   `` r   Úexperimental_funcrF   3   s   ù€ ô �gÔ÷ð ð. Ðr   c                ó2   ^ ^• [        T 5        SUU 4S jjnU$ )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.
c                ó&   >• SUU4S jjnU" U 5      $ )Nc                óˆ  >^^• [        U S5      m[        U S5      m[        R                  " T5      SUUUU4S jj5       n[        U SU5        U R                  c  SU l        [
        R                  TS9n[        U R                  5      nU R                  R                  5       [        R                  " X#5      -   U-   U l        U $ )zhDecorates a class as experimental.

This decorator is supposed to be applied to the experimental class.
Ú__init__Ú__name__c                óh   >• [         R                  " Tb  TOT ST S3[        SS9  T" U /UQ70 UD6  g r(   r+   )Úselfr.   r/   Ú_original_initÚ_original_namer@   r   s      €€€€r   Úwrapped_initÚLexperimental_class.<locals>.decorator.<locals>.wrapper.<locals>.wrapped_initq   sN   ø€ ä—’Ø#Ñ/‘t°^ÐDð E8Ø8?°yð A>ð>ô (Ø òñ ˜tÐ5 dÒ5¨fÓ5r   r    r%   )rM   r   r.   r   r/   r   r4   ÚNone)Úgetattrr=   r>   Úsetattrr5   r6   r7   r"   r8   r9   r:   )ÚclsrP   r?   r:   rN   rO   r@   r   s       @@€€r   r2   Ú6experimental_class.<locals>.decorator.<locals>.wrapperi   sª   ú€ ô
 % S¨*Ó5ˆNÜ$ S¨*Ó5ˆNä�_Š_˜^Ó,÷	6ñ 	6ó -ð	6ô �C˜ \Ô2à�{‰{Ñ"Ø �”ä.×5Ñ5¸'Ð5ÐBˆDÜ*¨3¯;©;Ó7ˆFØŸ+™+×+Ñ+Ó-´·²ÀÓ0MÑMÐPVÑVˆCŒKàˆJr   ©rU   r   r4   r   © )rU   r2   r@   r   s     €€r   rA   Ú%experimental_class.<locals>.decoratorh   s   ø€ ÷	ð 	ñ> �s‹|Ðr   rW   rD   rE   s   `` r   Úexperimental_classrZ   [   s    ù€ ô �gÔ÷ ð  ðD Ðr   )r   r   r4   rR   )r   r   r4   rR   )r!   r   r4   r   )N)r   r   r@   ú
str | Noner4   z.Callable[[Callable[FP, FT]], Callable[FP, FT]])r   r   r@   r[   r4   zCallable[[CT], CT])Ú
__future__r   r=   r9   Útypingr   r   r   r,   Úoptuna._warningsr   Úoptuna.exceptionsr   Úcollections.abcr	   Útyping_extensionsr
   r   r   r   r6   r   r   r"   rF   rZ   rX   r   r   Ú<module>rb      s§   ðÝ "ã Û Ý Ý  Ý Û å (Ý 1ö Ý(å+á	�‹€BÙ	�4‹€BÙ	�‹€BðÐ ôô
ôBð ð%Øð%à
ð%ð 4õ%ðT ð/Øð/à
ð/ð ö/r   