Ë
    þÍ: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y)é    )Ú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                ó,   — t        d| › d�t        «       y )NzArgument ``zF`` is an experimental feature. The interface can change in the future.)r   r   )Úoption_names    úi/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/optuna/_experimental.pyÚwarn_experimental_argumentr       s   € ÜØ
�k�]ð #3ð 	3äõó    c                ó|   — t        | t        «      rt        | j                  d«      «      dk7  rt	        d| › d�«      ‚y )Nú.é   z?Invalid version specification. Must follow `x.y.z` format but `z
` is given)Ú
isinstanceÚstrÚlenÚsplitÚ
ValueError)Úversions    r   Ú_validate_versionr   (   sA   € Ü�gœsÔ#¤s¨7¯=©=¸Ó+=Ó'>À!Ò'CÜØMÈgÈYÐV`Ðaó
ð 	
ð (Dr   c                ó6   — d| v r| j                  d«      d   S dS )Nú
éÿÿÿÿÚ )r   )Ú	docstrings    r   Ú_get_docstring_indentr"   /   s"   € Ø(,°	Ñ(9ˆ9�?‰?˜4Ó  Ñ$ÐA¸rÐAr   c                ó.   ‡ ‡— 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.
    c                óx  •‡ ‡— ‰ j                   €d‰ _         t        j                  ‰¬«      }t        ‰ j                   «      }‰ j                   j	                  «       t        j                  ||«      z   |z   ‰ _         ‰xs ‰ j                  › d‰ j                  › �Št        j                  ‰ «      dˆˆ ˆfd„«       }|S )Nr    ©Úverr   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   )ÚargsÚkwargsÚ_nameÚfuncr   s     €€€r   Úwrapperz5experimental_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   Únoter9   r2   r0   Únamer   s   `   @€€r   Ú	decoratorz$experimental_func.<locals>.decoratorA   s¡   ú€ Ø�<‰<ÐØˆDŒLä*×1Ñ1°gÐ1Ó>ˆÜ& t§|¡|Ó4ˆØ—|‘|×)Ñ)Ó+¬h¯o©o¸dÀFÓ.KÑKÈfÑTˆŒàÒ@˜4Ÿ?™?Ð+¨1¨T×->Ñ->Ð,?Ð@ˆä	�‰˜Ó	ö	)ó 
ð	)ð ˆr   )r1   úCallable[FP, FT]r3   rA   ©r   ©r   r?   r@   s   `` r   Úexperimental_funcrD   3   s   ù€ ô �gÔöð. Ðr   c                ó.   ‡ ‡— 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.
    c                ó"   •— dˆˆfd„} || «      S )Nc                ó†  •‡‡— t        | d«      Št        | d«      Št        j                  ‰«      dˆˆˆˆfd„«       }t        | d|«       | j                  €d| _        t
        j                  ‰¬«      }t        | j                  «      }| 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__c                ój   •— t        j                  ‰�‰n‰› d‰› d�t        d¬«        ‰| g|¢­i |¤Ž y r(   r+   )Úselfr.   r/   Ú_original_initÚ_original_namer?   r   s      €€€€r   Úwrapped_initzLexperimental_class.<locals>.decorator.<locals>.wrapper.<locals>.wrapped_initq   sN   ø€ ä—‘Ø#Ð/‘t°^ÐDð E8Ø8?°yð A>ð>ô (Ø õñ ˜tÐ5 dÒ5¨fÓ5r   r    r%   )rK   r   r.   r   r/   r   r3   ÚNone)Úgetattrr<   r=   Úsetattrr4   r5   r6   r"   r7   r8   r9   )ÚclsrN   r>   r9   rL   rM   r?   r   s       @@€€r   r2   z6experimental_class.<locals>.decorator.<locals>.wrapperi   s§   ú€ ô
 % S¨*Ó5ˆNÜ$ S¨*Ó5ˆNä�_‰_˜^Ó,÷	6ó -ð	6ô �C˜ \Ô2à�{‰{Ð"Ø �”ä.×5Ñ5¸'Ð5ÓBˆDÜ*¨3¯;©;Ó7ˆFØŸ+™+×+Ñ+Ó-´·±ÀÀfÓ0MÑMÐPVÑVˆCŒKàˆJr   ©rR   r   r3   r   © )rR   r2   r?   r   s     €€r   r@   z%experimental_class.<locals>.decoratorh   s   ø€ ö	ñ> �s‹|Ðr   rS   rB   rC   s   `` r   Úexperimental_classrU   [   s   ù€ ô �gÔö ðD Ðr   )r   r   r3   rO   )r   r   r3   rO   )r!   r   r3   r   )N)r   r   r?   ú
str | Noner3   z.Callable[[Callable[FP, FT]], Callable[FP, FT]])r   r   r?   rV   r3   zCallable[[CT], CT])Ú
__future__r   r<   r8   Útypingr   r   r   r,   Úoptuna._warningsr   Úoptuna.exceptionsr   Úcollections.abcr	   Útyping_extensionsr
   r   r   r   r5   r   r   r"   rD   rU   rT   r   r   ú<module>r]      s§   ðÝ "ã Û Ý Ý  Ý Û å (Ý 1ñ Ý(å+á	�‹€BÙ	�4‹€BÙ	�‹€BðÐ óó
óBð ð%Øð%à
ð%ð 4ó%ðT ð/Øð/à
ð/ð ô/r   