
    !#h"                       d dl mZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dlm
Z
 d d	lZd d	lZd d	lZd d	lZd d	lZ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mZ d dlmZ d dlmZ d dlmZ d dlmZ d dl m!Z! d dl m"Z"  ejF                  e$      Z%	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ&	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ'	 	 	 	 	 	 	 	 ddZ(	 	 d	 	 	 	 	 	 	 	 	 ddZ)y	)    )annotations)Callable)Iterable)Sequence)FIRST_COMPLETED)Future)ThreadPoolExecutor)waitN)Any)
exceptions)logging)progress_bar)trial)get_heartbeat_thread)is_heartbeat_enabled)_tell_with_warning)STUDY_TELL_WARNING_KEY)FrozenTrial)
TrialStatec	                n   t        |t              s-t        dj                  t	        |      j
                              | j                  j                  rt        d      |r |||dk7  rt        j                  d       d}t        j                  |||      }	d| _        	 |dk(  rt        | ||||||dd |	
       n'|dk(  rt        j                          xs d}t"        j"                  j%                         }
t'               }t)        |      5 }t+        j,                         D ]  }| j                  r n|4t"        j"                  j%                         |
z
  j/                         |kD  r nr|||k\  r nit1        |      |k\  r+t3        |t4        	      \  }}|D ]  }|j7                           |j9                  |j;                  t        | |d||||d
|
|	              d d d        d| j                  _        |	j=                          y # 1 sw Y   +xY w# d| j                  _        |	j=                          w xY w)Nz7The catch argument is of type '{}' 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formattype__name___thread_localin_optimize_loopRuntimeErrorwarningswarn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                   S/var/www/html/sandstorm/venv/lib/python3.12/site-packages/optuna/study/_optimize.py	_optimizerH   "   s+    eU#ELLTRW[MaMab
 	
 ++XYYX-'2E&TU+YZ!++,=xQLE:Q; #() |,1!**..0J#&5G#7 "8*3//*; !&''  +%..224zAPPRU\\+0Bh0N7|v--1'-W*	7!* 'AHHJ' KK 0! #!%* &('!"H 05,K" "H 05,s&    A-H CHH H
H #H4c
                   d| j                   _        |r| j                  j                          d}
|t        j                  j                         }	 | j                  rn||
|k\  rn|
dz  }
|5t        j                  j                         |z
  j                         }||k\  rn{	 t        | ||      }|rt        j                          	 ||D ]  } || |        |	At        j                  j                         |z
  j                         }|	j                  ||        | j                  j                          y # |rt        j                          w w xY w)NTr   r   )r#   r$   sampler
reseed_rngr.   r/   r*   r3   
_run_trialgccollectupdate_storageremove_session)r9   r:   r;   r<   r>   r?   r@   r   r   r   i_trialelapsed_secondsfrozen_trialcallbacks                 rG   r+   r+   z   sG    ,0E(  "G&&**,

("qLG'00446CRRTO')	%eT59L 

 % .-. #'00446CRRTO7= @ 
NN!!# 

 s   #D8 8Ec           
        t        | j                        rt        j                  j	                  |        | j                         }d }d }d }d }t        |j                  | j                        5  	  ||      }d d d        	 t#        | |||d      }		 |	j&                  t        j(                  k(  r| j+                  |	       n|	j&                  t        j                  k(  r9t,        j/                  dj1                  |	j2                  t5        |                   nx|	j&                  t        j                  k(  rT|t7        |	t9        |      ||       n@t:        |	j<                  v r t7        |	|	j<                  t:           |       nJ d       J d       |	j&                  t        j                  k(  r|t?        ||      s||	S # t        j                  $ r}t        j                  }|}Y d }~qd }~wt        t        f$ r1}t        j                  }|}t        j                          }Y d }~d }~ww xY w# 1 sw Y   xY w# t        $ r' | j                  j%                  |j                        }	 w xY w# 	j&                  t        j(                  k(  r| j+                  |	       w |	j&                  t        j                  k(  r9t,        j/                  dj1                  |	j2                  t5        |                   w |	j&                  t        j                  k(  rT|t7        |	t9        |      ||       w t:        |	j<                  v r t7        |	|	j<                  t:           |       w J d       J d       xY w)NT)r9   r   value_or_valuesstatesuppress_warningzTrial {} pruned. {})exc_inforW   )rW   zShould not reach.) r   rP   optunastoragesfail_stale_trialsaskr   	_trial_idr   TrialPrunedr   PRUNED	ExceptionKeyboardInterruptFAILsysrZ   r   	get_trialrX   COMPLETE_log_completed_trial_loggerinfor    numberstr_log_failed_trialreprr   system_attrsr   )
r9   r:   r>   r   rX   rW   func_errfunc_err_fail_exc_infoerT   s
             rG   rL   rL      s   
 ENN+))%0IIKE#E6:O59H)-	eoou~~	> 
4		4"5kO
4!.)+!
 !4!44&&|4:#4#44LL.55l6I6I3x=YZ:??2#! N3$3	 (<+D+DD!  --.DE$3 211u---5 	joo- 8U+g %% 	%%EH,- 	4OOEH%(\\^"	4
4 
4*  ~~//@ !4!44&&|4:#4#44LL.55l6I6I3x=YZ:??2#! N3$3	 (<+D+DD!  --.DE$3 211u---5s[   -H./F= H; =H+G("H.(H+:&H& H.&H++H..H8;0I++I. .C>M,c                    t         j                  dj                  | j                  | j                  |      |       t         j                  dj                  | j                  t        |                   y )NzGTrial {} failed with parameters: {} because of the following error: {}.)rZ   zTrial {} failed with value {}.)ri   warningr    rk   paramsrn   )r   messagerZ   rW   s       rG   rm   rm      s\     OOQXXLL%,,	
 	   OO4;;ELL$J_`a    )NNr    NFF)r9   'optuna.Study'r:   &'optuna.study.study.ObjectiveFuncType'r;   
int | Noner<   float | Noner=   intr>   tuple[type[Exception], ...]r?   >Iterable[Callable[['optuna.Study', FrozenTrial], None]] | Noner@   boolrA   r   returnNone)r9   ry   r:   rz   r;   r{   r<   r|   r>   r~   r?   r   r@   r   r   r   r   zdatetime.datetime | Noner   zpbar_module._ProgressBar | Noner   r   )r9   ry   r:   rz   r>   r~   r   ztrial_module.FrozenTrial)NN)
r   r   rv   zstr | WarningrZ   r   rW   r   r   r   )*
__future__r   collections.abcr   r   r   concurrent.futuresr   r   r	   r
   r.   rM   r1   r,   re   typingr   r&   r[   r   r   r   r(   r   trial_moduleoptuna.storages._heartbeatr   r   optuna.study._tellr   r   optuna.trialr   r   
get_loggerr"   ri   rH   r+   rL   rm   rx   rw   rG   <module>r      s   " $ $ $ . % 1 #  	  	 
      . ( ; ; 1 5 $ # '

X
&   )+PT #UU
0U U 	U
 U 'U NU U U 
Up7$7$
07$ 7$ 	7$
 '7$ N7$ 7$ 7$ )7$ 27$ 
7$tEE
0E 'E 	EV 	bbb b 	b
 
brw   