
    (^i$                       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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 er$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jH                  e%      Z&	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ'	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ(	 	 	 	 	 	 	 	 ddZ)	 	 d	 	 	 	 	 	 	 	 	 	 	 ddZ*y)    )annotations)FIRST_COMPLETED)ThreadPoolExecutor)waitN)TYPE_CHECKING)
exceptions)logging)progress_bar)ExperimentalWarning)get_heartbeat_thread)is_heartbeat_enabled)_tell_with_warning)
TrialState)Callable)Iterable)Sequence)Future)Any)FrozenTrialc	                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                   W/var/www/html/hubwallet-dev/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                          	 |>| j                  j                  |      }|D ]  } || t        j                  |               |	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_storage	get_trialcopydeepcopyupdateremove_session)r9   r:   r;   r<   r>   r?   r@   r   r   r
   i_trialelapsed_secondsfrozen_trial_idfrozen_trialcallbacks                  rG   r+   r+   ~   sd    ,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   #E& &E?c           
        t        | j                        rVt        j                         5  t        j                  dt
               t        j                  j                  |        d d d        | j                         }d }d }d }d }t        |j                  | j                        5  	  ||      }d d d        	 t+        | |||d      \  }	}
}	 |	t        j2                  k(  r,|
J | j5                  |
|j6                  |j8                         n|	t        j                  k(  r9t:        j=                  dj?                  |j6                  tA        |                   nw|	t        j$                  k(  r]|.tC        |j6                  |j8                  tE        |      ||       n4|$tC        |j6                  |j8                  ||       nJ d       J d       |	t        j$                  k(  r|tG        ||      s||j                  S # 1 sw Y   xY w# t        j                  $ r}t        j                  }|}Y d }~d }~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         $ rA | j                  j-                  |j                        }|j.                  }	|j0                  }
d } w xY w# 	t        j2                  k(  r,
J | j5                  |
|j6                  |j8                         w |	t        j                  k(  r9t:        j=                  dj?                  |j6                  tA        |                   w |	t        j$                  k(  r]|.tC        |j6                  |j8                  tE        |      ||       w $tC        |j6                  |j8                  ||       w J d       J d       xY w)NignoreT)r9   trialvalue_or_valuesstatesuppress_warningzTrial {} pruned. {})exc_infor]   )r]   zShould not reach.)$r   rO   r&   catch_warningssimplefilterr   optunastoragesfail_stale_trialsaskr   	_trial_idr   TrialPrunedr   PRUNED	ExceptionKeyboardInterruptFAILsysr`   r   rP   r^   valuesCOMPLETE_log_completed_trialnumberparams_loggerinfor    str_log_failed_trialreprr   )r9   r:   r>   r\   r^   r]   func_errfunc_err_fail_exc_infoeupdated_statern   warning_messagerX   s                rG   rL   rL      sC   
 ENN+$$& 	5!!(,?@OO--e4	5
 IIKE#E6:O59H)-	eoou~~	> 
4		4"5kO
4'.1C+!2
.v J///%%%&&vu||U\\Jj///LL.55ellCMRSjoo-#!LLLLN3$3 !,!LLLL#$3	 211u---5 	( 8U+??Q	5 	5 %% 	%%EH,- 	4OOEH%(\\^"	4
4 
4*  ~~//@$**$$ J///%%%&&vu||U\\Jj///LL.55ellCMRSjoo-#!LLLLN3$3 !,!LLLL#$3	 211u---5sg   :G=$I;&H
7J =H
I8H5/I;5I8&I3-I;3I88I;;JA
KK DOc                    t         j                  dj                  | ||      |       t         j                  dj                  | t        |                   y )NzGTrial {} failed with parameters: {} because of the following error: {}.)r`   zTrial {} failed with value {}.)rs   warningr    rw   )trial_numbertrial_paramsmessager`   r]   s        rG   rv   rv   
  sP     OOQXX,	
 	   OO4;;L$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   r   r:   r   r;   r   r<   r   r>   r   r?   r   r@   r   r   r   r   zdatetime.datetime | Noner
   zpbar_module._ProgressBar | Noner   r   )r9   r   r:   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   rQ   r.   rM   r1   r,   rm   typingr   r&   rc   r   r	   r
   r(   optuna.exceptionsr   optuna.storages._heartbeatr   r   optuna.study._tellr   optuna.trialr   collections.abcr   r   r   r   r   r   
get_loggerr"   rs   rH   r+   rL   rv   r   r   rG   <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 bb b b 	b
 b 
br   