
    -ji$                        S SK Jr  S SKJr  S SKJr  S SKJr  S SKrS SKrS SKrS SK	r	S SK
r
S SKr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Jr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  \(       a$  S SKJ r   S SKJ!r!  S SKJ"r"  S SKJ#r#  S SKJ$r$  S SKJ%r%  \RL                  " \'5      r(       S                   SS jjr)                      SS jr*        SS jr+  S           SS jjr,g)     )annotations)FIRST_COMPLETED)ThreadPoolExecutor)waitN)TYPE_CHECKING)
exceptions)logging)progress_bar)optuna_warn)ExperimentalWarning)get_heartbeat_thread)is_heartbeat_enabled)_tell_with_warning)
TrialState)Callable)Iterable)Sequence)Future)Any)FrozenTrialc	                   [        U[        5      (       d"  [        S[        U5      R                   S35      eU R
                  R                  (       a  [        S5      eU(       a  Uc  Ub  US:w  a  [        S5        Sn[        R                  " XU5      n	SU l         US:X  a  [        U UUUUUUSS U	S9
  GO5US:X  a  [        R                  " 5       =(       d    Sn[        R                  R!                  5       n
[#        5       n[%        US	9 n[&        R(                  " 5        H  nU R                  (       a    OUb5  [        R                  R!                  5       U
-
  R+                  5       U:  a    OtUb  X:  a    Oj[-        U5      U:  a)  [/        U[0        S
9u  pU H  nUR3                  5         M     UR5                  UR7                  [        U USUUUUSU
U	5      5        M     S S S 5        SU R
                  l        U	R9                  5         g ! , (       d  f       N0= f! SU R
                  l        U	R9                  5         f = f)NzThe catch argument is of type 'z' but must be a tuple.z;Nested invocation of `Study.optimize` method isn't allowed.   zAThe timeout-based progress bar is not supported with n_jobs != 1.F)reseed_sampler_rng
time_startr
   )max_workers)return_whenT)
isinstancetuple	TypeErrortype__name___thread_localin_optimize_loopRuntimeErrorr   pbar_module_ProgressBar
_stop_flag_optimize_sequentialos	cpu_countdatetimenowsetr   	itertoolscounttotal_secondslenr   r   resultaddsubmitclose)studyfuncn_trialstimeoutn_jobscatch	callbacksgc_after_trialshow_progress_barr
   r   futuresexecutorn_submitted_trials	completedfs                   P/home/james-whalen/.local/lib/python3.13/site-packages/optuna/study/_optimize.py	_optimizerF   '   s    eU##-d5k.B.B-CCYZ
 	
 ++XYYX-'2E&TU+WX!++,=QLE:Q; #() |,1!**..0J#&5G#78*3//*;&''  +%..224zAPPRU\\+0B0N7|v--1'-W*	!*AHHJ "+ KK 0! #!%* &(' +< 8H 05,K 87H 05,s&   A/H CH$H 
HH #Ic
                >   SU R                   l        U(       a  U R                  R                  5         Sn
Uc  [        R                  R                  5       n U R                  (       a  OUb  X:  a  OU
S-  n
Ub5  [        R                  R                  5       U-
  R                  5       nX:  a  O [        XU5      nU(       a  [        R                  " 5         UbA  U R                  R                  U5      nU H   nU" U [        R                  " U5      5        M"     U	b@  [        R                  R                  5       U-
  R                  5       nU	R                  X5        GM  U R                  R!                  5         g ! U(       a  [        R                  " 5         f f = f)NTr   r   )r#   r$   sampler
reseed_rngr,   r-   r(   r1   
_run_trialgccollect_storage	get_trialcopydeepcopyupdateremove_session)r7   r8   r9   r:   r<   r=   r>   r   r   r
   i_trialelapsed_secondsfrozen_trial_idfrozen_trialcallbacks                  rE   r)   r)      sW    ,0E(  "G&&**,

"qLG'00446CRRTO)	(e<O 

  >>33ODL%l ;< & #'00446CRRTO7? B 
NN!!# 

 s   0E= =Fc           
        [        U R                  5      (       aX  [        R                  " 5          [        R                  " S[
        5        [        R                  R                  U 5        S S S 5        U R                  5       nS nS nS nS n[        UR                  U R                  5          U" U5      nS S S 5         [+        U UUUSS9u  pn U	[        R2                  :X  a,  U
c   eU R5                  XR6                  UR8                  5        OU	[        R                  :X  a/  [:        R=                  SUR6                   S[?        U5       35        OtU	[        R$                  :X  aY  Ub+  [A        UR6                  UR8                  [C        U5      UUS9  O2Ub!  [A        UR6                  UR8                  UUS9  O S5       e S5       eU	[        R$                  :X  a  Ub  [E        Xb5      (       d  UeUR                  $ ! , (       d  f       GN= f! [        R                   a  n[        R                  nUn S nAGNS nAf[         ["        4 a2  n[        R$                  nUn[&        R(                  " 5       n S nAGNS nAff = f! , (       d  f       GN= f! [          aA    U R                  R-                  UR                  5      nUR.                  n	UR0                  n
S ne f = f! W	[        R2                  :X  a,  W
c   eU R5                  XR6                  UR8                  5        f U	[        R                  :X  a/  [:        R=                  SUR6                   S[?        U5       35        f U	[        R$                  :X  aY  Ub+  [A        UR6                  UR8                  [C        U5      UUS9  f Wb!  [A        UR6                  UR8                  UUS9  f  S5       e S5       e= f)	NignoreT)r7   trialvalue_or_valuesstatesuppress_warningTrial z	 pruned. )exc_infor[   )r[   zShould not reach.)#r   rM   warningscatch_warningssimplefilterr   optunastoragesfail_stale_trialsaskr   	_trial_idr   TrialPrunedr   PRUNED	ExceptionKeyboardInterruptFAILsysr_   r   rN   r\   valuesCOMPLETE_log_completed_trialnumberparams_loggerinfostr_log_failed_trialreprr   )r7   r8   r<   rZ   r\   r[   func_errfunc_err_fail_exc_infoeupdated_statern   warning_messagerV   s                rE   rJ   rJ      s1   
 ENN++$$&!!(,?@OO--e4 '
 IIKE#E6:O59H)-	eoou~~	>		4"5kO 
?'.1C+!2
. J///%%%&&v||U\\Jj///LL6%,,yXHIjoo-#!LLLLN3$3 !,!LLLL#$3	 211u---5 	( 8++??Q '& %% 	%%EH,- 	4OOEH%(\\^"	4 
?	>*  ~~//@$**$$ J///%%%&&v||U\\Jj///LL6%,,yXHIjoo-#!LLLLN3$3 !,!LLLL#$3	 211u---5sg   ;G;+J-H>J ;
H
I>!H93J9I>'I93J9I>>J
JAKK! !C8Oc           	         [         R                  SU  SU SU S3US9  [         R                  SU  S[        U5       S35        g )Nr^   z failed with parameters: z! because of the following error: .)r_   z failed with value )rs   warningrw   )trial_numbertrial_paramsmessager_   r[   s        rE   rv   rv     s_     OO\N";L> J//6iq:    OOf\N*=d?>S=TTUVW    )NNr    NFF)r7   'optuna.Study'r8   &'optuna.study.study.ObjectiveFuncType'r9   
int | Noner:   float | Noner;   intr<   tuple[type[Exception], ...]r=   >Iterable[Callable[['optuna.Study', FrozenTrial], None]] | Noner>   boolr?   r   returnNone)r7   r   r8   r   r9   r   r:   r   r<   r   r=   r   r>   r   r   r   r   zdatetime.datetime | Noner
   zpbar_module._ProgressBar | Noner   r   )r7   r   r8   r   r<   r   r   r   )NN)r   r   r   zdict[str, Any]r   zstr | Warningr_   r   r[   r   r   r   )-
__future__r   concurrent.futuresr   r   r   rO   r,   rK   r/   r*   rm   typingr   r`   rc   r   r	   r
   r&   optuna._warningsr   optuna.exceptionsr   optuna.storages._heartbeatr   r   optuna.study._tellr   optuna.trialr   collections.abcr   r   r   r   r   r   
get_loggerr"   rs   rF   r)   rJ   rv   r   r   rE   <module>r      s   " . 1 #   	  	 
       . ( 1 ; ; 1 # ((()(


X
&   )+PT #UU
0U U 	U
 U 'U NU U U 
Up8$8$
08$ 8$ 	8$
 '8$ N8$ 8$ 8$ )8$ 28$ 
8$vNN
0N 'N 		Nj XX X X 	X
 X 
Xr   