
    (^iwl                       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 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jN                  jQ                  e)      Z*dZ+dZ,dZ- G d dej\                        Z/ G d de      Z0 G d d      Z1y)    )annotations)	Container)Iterable)SequenceN)Any)JSONSerializable)BaseDistribution) check_distribution_compatibility)distribution_to_json)json_to_distribution)DuplicatedStudyError)UpdateFinishedTrialError)BaseStorage)DEFAULT_STUDY_NAME_PREFIX)BaseJournalBackend)BaseJournalSnapshot)FrozenStudy)StudyDirection)FrozenTrial)
TrialStatezRecord does not exist.zATrial#{trial_number} has already finished and can not be updated.d   c                  4    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
Zy)JournalOperationr                           	   N)__name__
__module____qualname__CREATE_STUDYDELETE_STUDYSET_STUDY_USER_ATTRSET_STUDY_SYSTEM_ATTRCREATE_TRIALSET_TRIAL_PARAMSET_TRIAL_STATE_VALUESSET_TRIAL_INTERMEDIATE_VALUESET_TRIAL_USER_ATTRSET_TRIAL_SYSTEM_ATTR     a/var/www/html/hubwallet-dev/venv/lib/python3.12/site-packages/optuna/storages/journal/_storage.pyr   r   (   s:    LLLO#$ r1   r   c                  2   e Zd ZdZddZddZddZddZd dZd!dZ		 d"	 	 	 	 	 d#d	Z
d$d
Zd%dZd&dZd'dZd(dZd)dZd*dZd*dZd+dZd"d,dZ	 	 	 	 	 	 	 	 	 	 d-dZd.dZ	 d"	 	 	 	 	 	 	 d/dZ	 	 	 	 	 	 	 	 d0dZd1dZd2dZd3dZ	 	 d4	 	 	 	 	 	 	 d5dZy)6JournalStoragea  Storage class for Journal storage backend.

    Note that library users can instantiate this class, but the attributes
    provided by this class are not supposed to be directly accessed by them.

    Journal storage writes a record of every operation to the database as it is executed and
    at the same time, keeps a latest snapshot of the database in-memory. If the database crashes
    for any reason, the storage can re-establish the contents in memory by replaying the
    operations stored from the beginning.

    Journal storage has several benefits over the conventional value logging storages.

    1. The number of IOs can be reduced because of larger granularity of logs.
    2. Journal storage has simpler backend API than value logging storage.
    3. Journal storage keeps a snapshot in-memory so no need to add more cache.

    Example:

        .. code::

            import optuna


            def objective(trial): ...


            storage = optuna.storages.JournalStorage(
                optuna.storages.journal.JournalFileBackend("./optuna_journal_storage.log")
            )

            study = optuna.create_study(storage=storage)
            study.optimize(objective)

    In a Windows environment, an error message "A required privilege is not held by the
    client" may appear. In this case, you can solve the problem with creating storage
    by specifying :class:`~optuna.storages.journal.JournalFileOpenLock` as follows.

    .. code::

        file_path = "./optuna_journal_storage.log"
        lock_obj = optuna.storages.journal.JournalFileOpenLock(file_path)

        storage = optuna.storages.JournalStorage(
            optuna.storages.journal.JournalFileBackend(file_path, lock_obj=lock_obj),
        )
    c                   t        t        j                               dz   | _        || _        t        j                         | _        t        | j                        | _	        | j                  5  t        | j                  t              r-| j                  j                         }|| j                  |       | j                          d d d        y # 1 sw Y   y xY wN-)struuiduuid4_worker_id_prefix_backend	threadingLock_thread_lockJournalStorageReplayResult_replay_result
isinstancer   load_snapshotrestore_replay_result_sync_with_backend)selflog_storagesnapshots      r2   __init__zJournalStorage.__init__e   s    !$TZZ\!2S!8#%NN,89O9OP 	&$--)<===668'..x8##%	& 	& 	&s   ,ACCc                L    | j                   j                         }|d= |d= |d= |S )Nr;   rA   r?   )__dict__copyrF   states     r2   __getstate__zJournalStorage.__getstate__r   s3    ""$%&"#.!r1   c                    | j                   j                  |       t        t        j                               dz   | _        t        | j
                        | _        t        j                         | _
        y r6   )rK   updater8   r9   r:   r;   r@   rA   r=   r>   r?   rM   s     r2   __setstate__zJournalStorage.__setstate__y   sN    U#!$TZZ\!2S!889O9OP%NN,r1   c                6   	 t        j                  |      }|y t        |t              st        j                  d       y | j                  |_        i |_	        d|_
        || _        y # t         j                  t        f$ r t        j                  d       Y y w xY w)Nz/Failed to restore `JournalStorageReplayResult`.z8The restored object is not `JournalStorageReplayResult`.)pickleloadsUnpicklingErrorKeyError_loggerwarningrB   r@   r;   _worker_id_to_owned_trial_id&_last_created_trial_id_by_this_processrA   )rF   rH   rs      r2   rD   z$JournalStorage.restore_replay_result   s    	39<<3IA 9!78OOVW"44)+&350 &&1 	OOMN	s   A' '.BBc                r    | j                   j                  }| j                  j                  ||d|g       y )N)op_code	worker_id)rA   r`   r<   append_logs)rF   r_   extra_fieldsr`   s       r2   
_write_logzJournalStorage._write_log   s3    ''11	!!wY#_R^#_"`ar1   c                    | j                   j                  | j                  j                        }| j                  j	                  |       y N)r<   	read_logsrA   log_number_read
apply_logs)rF   logss     r2   rE   z!JournalStorage._sync_with_backend   s6    }}&&t':':'J'JK&&t,r1   Nc                   |xs$ t         t        t        j                               z   }| j                  5  | j                  t        j                  ||d       | j                          | j                  j                         D ]  }|j                  |k7  rt        j                  dj                  |             |j                  }t!        | j"                  t$              rI|dk7  rD|t&        z  dk(  r8| j"                  j)                  t+        j,                  | j                               |c cd d d        S  J d       # 1 sw Y   y xY w)N)
study_name
directionsz,A new study created in Journal with name: {}r   Should not reach.)r   r8   r9   r:   r?   rc   r   r&   rE   rA   get_all_studiesrk   rY   infoformat	_study_idrB   r<   r   SNAPSHOT_INTERVALsave_snapshotrU   dumps)rF   rl   rk   frozen_studystudy_ids        r2   create_new_studyzJournalStorage.create_new_study   s     P#<s4::<?P#P
 	.OO --jXb/c ##% $ 3 3 C C E  **j8KRRS]^_'11 t}}.AB A #449MM//T=P=P0QR+	. 	.   .--5-	. 	.s   C7D>6D>>Ec                    | j                   5  | j                  t        j                  d|i       | j	                          d d d        y # 1 sw Y   y xY wNrv   )r?   rc   r   r'   rE   rF   rv   s     r2   delete_studyzJournalStorage.delete_study   sF     	&OO,99J;QR##%	& 	& 	&s   3A		Ac                    |||id}| j                   5  | j                  t        j                  |       | j	                          d d d        y # 1 sw Y   y xY w)N)rv   	user_attr)r?   rc   r   r(   rE   rF   rv   keyvaluelogs        r2   set_study_user_attrz"JournalStorage.set_study_user_attr   sO    +33,O 	&OO,@@#F##%	& 	& 	&   1AAc                    |||id}| j                   5  | j                  t        j                  |       | j	                          d d d        y # 1 sw Y   y xY w)N)rv   system_attr)r?   rc   r   r)   rE   r~   s        r2   set_study_system_attrz$JournalStorage.set_study_system_attr   sO    +3S%LQ 	&OO,BBCH##%	& 	& 	&r   c                    | j                   5  | j                          | j                  j                         D ](  }|j                  |k(  s|j
                  c cd d d        S  t        t              # 1 sw Y   y xY wre   )r?   rE   rA   rn   rk   rq   rX   NOT_FOUND_MSG)rF   rk   studys      r2   get_study_id_from_namez%JournalStorage.get_study_id_from_name   st     	*##%,,<<> +##z1 ??*		* 	*+ =))	* 	*s   =A2A2"A22A;c                    | j                   5  | j                          | j                  j                  |      j                  cd d d        S # 1 sw Y   y xY wre   )r?   rE   rA   	get_studyrk   rz   s     r2   get_study_name_from_idz%JournalStorage.get_study_name_from_id   J     	F##%&&00:EE	F 	F 	F   5AAc                    | j                   5  | j                          | j                  j                  |      j                  cd d d        S # 1 sw Y   y xY wre   )r?   rE   rA   r   rl   rz   s     r2   get_study_directionsz#JournalStorage.get_study_directions   r   r   c                    | j                   5  | j                          | j                  j                  |      j                  cd d d        S # 1 sw Y   y xY wre   )r?   rE   rA   r   
user_attrsrz   s     r2   get_study_user_attrsz#JournalStorage.get_study_user_attrs   r   r   c                    | j                   5  | j                          | j                  j                  |      j                  cd d d        S # 1 sw Y   y xY wre   )r?   rE   rA   r   system_attrsrz   s     r2   get_study_system_attrsz%JournalStorage.get_study_system_attrs   sJ     	H##%&&00:GG	H 	H 	Hr   c                    | j                   5  | j                          t        j                  | j                  j                               cd d d        S # 1 sw Y   y xY wre   )r?   rE   rL   deepcopyrA   rn   rF   s    r2   rn   zJournalStorage.get_all_studies   sK     	H##%==!4!4!D!D!FG	H 	H 	Hs   =AAc                   |t         j                   j                         j                  d      d}|rl|j                  |d<   |j                  -t        |j                        dkD  rd |d<   |j                  |d<   n|j                  |d<   d |d<   |j                  r |j                  j                  d      |d<   nd |d<   |j                  r|j                  j                  d      |d	<   |j                  j                         D ci c]  \  }}|t        |       c}}|d
<   |j                  j                         D ci c]$  \  }}||j                  |   j                  |      & c}}|d<   |j                  |d<   |j                  |d<   |j                   |d<   | j"                  5  | j%                  t&        j(                  |       | j+                          | j,                  j.                  }t1        | j2                  t4              rI|dk7  rD|t6        z  dk(  r8| j2                  j9                  t;        j<                  | j,                               d d d        |S c c}}w c c}}w # 1 sw Y   S xY w)Nmicrosecondstimespec)rv   datetime_startrN   r   r   valuesr   datetime_completedistributionsparamsr   r   intermediate_valuesr   )datetimenow	isoformatrN   r   lenr   r   r   r   itemsr   r   to_internal_reprr   r   r   r?   rc   r   r*   rE   rA   r\   rB   r<   r   rr   rs   rU   rt   )rF   rv   template_trialr   kdistparamtrial_ids           r2   create_new_trialzJournalStorage.create_new_trial   s_    &//335???X

 )//CL$$0S9N9N5ORS5S#G . 5 5H-33G $H,,(6(E(E(O(O+ )P )$% )-$%//+9+K+K+U+U+ ,V ,'(
 >L=Y=Y=_=_=a$29!T'--$C 
 !/ 5 5 ; ; =Au >//2CCEJJCM !/ 9 9C"0"="=C)7)K)KC%& 	OOO,993?##%**QQH 4==*=>M00A5++FLL9L9L,MN	O /$	O s   
I!)I'-B*I--I7c                    |||t        |      d}| j                  5  | j                  t        j                  |       | j                          d d d        y # 1 sw Y   y xY w)N)r   
param_nameparam_value_internaldistribution)r   r?   rc   r   r+   rE   )rF   r   r   r   r   r   s         r2   set_trial_paramzJournalStorage.set_trial_param  s]     !$$80>	
  	&OO,<<cB##%	& 	& 	&s   1AA c                   | j                   5  | j                          t        | j                  j                  |         |k  rt        dj                  ||            | j                  j                  |   |   cd d d        S # 1 sw Y   y xY w)Nz?No trial with trial number {} exists in study with study_id {}.)r?   rE   r   rA   _study_id_to_trial_idsrX   rp   )rF   rv   trial_numbers      r2   'get_trial_id_from_study_id_trial_numberz6JournalStorage.get_trial_id_from_study_id_trial_number+  s     	V##%4&&==hGHLXU\\$h 
 &&==hGU	V 	V 	Vs   A,BBc                   |||d}|t         j                  k(  r2t        j                  j                         j	                  d      |d<   nA|j                         r1t        j                  j                         j	                  d      |d<   | j                  5  |t         j                  k(  r| j                          | j                  j                  j                  |      }|J d       |j                  j                         r)t        t        j                  |j                              |j                  t         j                   k7  r
	 d d d        y| j#                  t$        j&                  |       | j                          |t         j                  k7  xs || j                  j(                  k(  cd d d        S # 1 sw Y   y xY w)	N)r   rN   r   r   r   r   r   z@Please report your bug on GitHub if this line fails your script.r   F)r   RUNNINGr   r   r   is_finishedr?   rE   rA   _trialsgetrN   r   UNUPDATABLE_MSGrp   numberWAITINGrc   r   r,   owned_trial_id)rF   r   rN   r   r   existing_trials         r2   set_trial_state_valuesz%JournalStorage.set_trial_state_values6  s    !
 J&&&$,$5$5$9$9$;$E$E~$E$^C ! '/'8'8'<'<'>'H'HR`'H'aC#$ 	a
***
 '') "&!4!4!<!<!@!@!J".VUV.!''3352'..N<Q<Q.R  "'':+=+== 3	a 	a4 OO,CCSI##%J...`(d>Q>Q>`>`2`9	a 	a 	as   B3F<AF<<Gc                    |||d}| j                   5  | j                  t        j                  |       | j	                          d d d        y # 1 sw Y   y xY w)N)r   stepintermediate_value)r?   rc   r   r-   rE   )rF   r   r   r   r   s        r2   set_trial_intermediate_valuez+JournalStorage.set_trial_intermediate_valueb  sU     !"4
  	&OO,II3O##%	& 	& 	&s   1AAc                    |||id}| j                   5  | j                  t        j                  |       | j	                          d d d        y # 1 sw Y   y xY w)N)r   r}   )r?   rc   r   r.   rE   rF   r   r   r   r   s        r2   set_trial_user_attrz"JournalStorage.set_trial_user_attro  sT     u

  	&OO,@@#F##%	& 	& 	&r   c                    |||id}| j                   5  | j                  t        j                  |       | j	                          d d d        y # 1 sw Y   y xY w)N)r   r   )r?   rc   r   r/   rE   r   s        r2   set_trial_system_attrz$JournalStorage.set_trial_system_attry  sT     <

  	&OO,BBCH##%	& 	& 	&r   c                    | j                   5  | j                          | j                  j                  |      cd d d        S # 1 sw Y   y xY wre   )r?   rE   rA   	get_trialrF   r   s     r2   r   zJournalStorage.get_trial  s@     	;##%&&00:	; 	; 	;s   +AAc                    | j                   5  | j                          | j                  j                  ||      }|rt	        j
                  |      cd d d        S |cd d d        S # 1 sw Y   y xY wre   )r?   rE   rA   get_all_trialsrL   r   )rF   rv   r   statesfrozen_trialss        r2   r   zJournalStorage.get_all_trials  sd      	!##% //>>xPM}}]3		! 	!
 !	! 	! 	!s   AA%A%%A.)rG   r   returnNone)r   dict[Any, Any])rN   r   r   r   )rH   bytesr   r   )r_   intrb   dict[str, Any]r   r   )r   r   re   )rl   zSequence[StudyDirection]rk   z
str | Noner   r   )rv   r   r   r   )rv   r   r   r8   r   r   r   r   )rv   r   r   r8   r   r   r   r   )rk   r8   r   r   )rv   r   r   r8   )rv   r   r   zlist[StudyDirection])rv   r   r   r   r   zlist[FrozenStudy])rv   r   r   zFrozenTrial | Noner   r   )
r   r   r   r8   r   floatr   r	   r   r   )rv   r   r   r   r   r   )r   r   rN   r   r   zSequence[float] | Noner   bool)r   r   r   r   r   r   r   r   )r   r   r   r8   r   r   r   r   )r   r   r   r8   r   r   r   r   r   r   r   r   )TN)rv   r   r   r   r   Container[TrialState] | Noner   list[FrozenTrial])r#   r$   r%   __doc__rI   rO   rR   rD   rc   rE   rw   r{   r   r   r   r   r   r   r   rn   r   r   r   r   r   r   r   r   r   r0   r1   r2   r4   r4   5   sW   -^&-  b-
 NR.2.@J.	.:&
&&*F
F
F
H
H0d&& & $	&
 '& 
&$	V RV*a*a$.*a8N*a	*aX&&#&&<A&	&&&; /3	!! ! -	!
 
!r1   r4   c                      e Zd ZddZddZddZddZddZ	 	 	 	 	 	 ddZe	dd       Z
e	dd       Zdd	Zd d
Zd!dZd!dZd!dZd!dZd!dZd!dZd!dZd!dZd!dZd!dZd"dZy)#r@   c                t    d| _         || _        i | _        i | _        i | _        i | _        d| _        i | _        y )Nr   )rg   r;   _studiesr   r   _trial_id_to_study_id_next_study_idr[   )rF   worker_id_prefixs     r2   rI   z#JournalStorageReplayResult.__init__  s@     !102/1<>#57"#$<>)r1   c                @   |D ]  }| xj                   dz  c_         |d   }|t        j                  k(  r| j                  |       C|t        j                  k(  r| j                  |       h|t        j                  k(  r| j                  |       |t        j                  k(  r| j                  |       |t        j                  k(  r| j                  |       |t        j                  k(  r| j                  |       |t        j                  k(  r| j                  |       "|t        j                   k(  r| j#                  |       H|t        j$                  k(  r| j'                  |       n|t        j(                  k(  r| j+                  |       J d        y )Nr   r_   rm   )rg   r   r&   _apply_create_studyr'   _apply_delete_studyr(   _apply_set_study_user_attrr)   _apply_set_study_system_attrr*   _apply_create_trialr+   _apply_set_trial_paramr,   _apply_set_trial_state_valuesr-   #_apply_set_trial_intermediate_valuer.   _apply_set_trial_user_attrr/   _apply_set_trial_system_attr)rF   ri   r   ops       r2   rh   z%JournalStorageReplayResult.apply_logs  sX    	2C  A% YB%222((-'444((-';;;//4'===11#6'444((-'777++C0'>>>2237'DDD88=';;;//4'===11#6111u1	2r1   c                Z    || j                   vrt        t              | j                   |   S re   )r   rX   r   rz   s     r2   r   z$JournalStorageReplayResult.get_study  s(    4==(=))}}X&&r1   c                H    t        | j                  j                               S re   )listr   r   r   s    r2   rn   z*JournalStorageReplayResult.get_all_studies  s    DMM((*++r1   c                Z    || j                   vrt        t              | j                   |   S re   )r   rX   r   r   s     r2   r   z$JournalStorageReplayResult.get_trial  s(    4<<'=))||H%%r1   c                    || j                   vrt        t              g }| j                  |   D ]3  }| j                  |   }||j
                  |v s#|j                  |       5 |S re   )r   rX   r   r   r   rN   append)rF   rv   r   r   r   trials         r2   r   z)JournalStorageReplayResult.get_all_trials  sn     4==(=))+-33H= 	,HLL*E~!6$$U+	, r1   c                V    | j                   t        t        j                               z   S re   )r;   r8   r=   	get_identr   s    r2   r`   z$JournalStorageReplayResult.worker_id  s!    %%I,?,?,A(BBBr1   c                L    | j                   j                  | j                        S re   )r[   r   r`   r   s    r2   r   z)JournalStorageReplayResult.owned_trial_id  s    0044T^^DDr1   c                &    |d   | j                   k(  S )Nr`   )r`   )rF   r   s     r2   _is_issued_by_this_workerz4JournalStorageReplayResult._is_issued_by_this_worker  s    ;4>>11r1   c                b    || j                   v ry| j                  |      rt        t              y)NTF)r   r   rX   r   )rF   rv   r   s      r2   _study_existsz(JournalStorageReplayResult._study_exists  s-    t}}$))#.=))r1   c                   |d   }|d   D cg c]  }t        |       }}|| j                  j                         D cg c]  }|j                   c}v r,| j	                  |      rt        dj                  |            y | j                  }| xj                  dz  c_        t        |d i i ||      | j                  |<   g | j                  |<   y c c}w c c}w )Nrk   rl   zAnother study with name '{}' already exists. Please specify a different name, or reuse the existing one by setting `load_if_exists` (for Python API) or `--skip-if-exists` flag (for CLI).r   )rk   	directionr   r   rv   rl   )
r   r   r   rk   r   r   rp   r   r   r   )rF   r   rk   drl   srv   s          r2   r   z.JournalStorageReplayResult._apply_create_study  s    &
14\1BCAnQ'C
C0D0D0FG1!,,GG--c2*9 :@
9K	  &&q "-!!#
h 13##H-/ DGs
   CCc                    |d   }| j                  ||      r-| j                  j                  |      }|j                  |k(  sJ y y ry   )r  r   poprq   )rF   r   rv   fss       r2   r   z.JournalStorageReplayResult._apply_delete_study  sF    z?h,""8,B<<8+++ -r1   c                    |d   }| j                  ||      r?t        |d         dk(  sJ | j                  |   j                  j	                  |d          y y )Nrv   r}   r   )r  r   r   r   rQ   rF   r   rv   s      r2   r   z5JournalStorageReplayResult._apply_set_study_user_attr  sZ    z?h,s;'(A---MM(#..55c+6FG -r1   c                    |d   }| j                  ||      r?t        |d         dk(  sJ | j                  |   j                  j	                  |d          y y )Nrv   r   r   )r  r   r   r   rQ   r  s      r2   r   z7JournalStorageReplayResult._apply_set_study_system_attr  sZ    z?h,s=)*a///MM(#0077M8JK -r1   c                   |d   }| j                  ||      sy t        | j                        }i }d|v r/|d   j                         D ci c]  \  }}|t	        |       }}}i }d|v r8|d   j                         D ci c]  \  }}|||   j                  |       }}}|d   #t        j                  j                  |d         }	nd }	d|v r#t        j                  j                  |d         }
nd }
t        |t        | j                  |         t        |j                  dt        j                  j                              |||j                  di       |j                  di       |j                  d	d       |j                  d
i       j                         D ci c]  \  }}t        |      | c}}|	|
|j                  dd             | j                  |<   | j                  |   j                  |       || j                   |<   | j#                  |      rL|| _        | j                  |   j&                  t        j                  k(  r|| j(                  | j*                  <   y y y c c}}w c c}}w c c}}w )Nrv   r   r   r   r   rN   r   r   r   r   r   )r   r   rN   r   r   r   r   r   r   r   r   r   )r  r   r   r   r   to_external_reprr   fromisoformatr   r   r   r   r   r   r   r   r   r   r\   rN   r[   r`   )rF   r   rv   r   r   r   vr   pr   r   s              r2   r   z.JournalStorageReplayResult._apply_create_trial  sQ   z?!!(C0t||$c!DGDXD^D^D`aDAqQ 4Q 77aMas?JMh-J]J]J_`$!Qaq)::1==`F` ,%..<<SAQ=RSN!N#% ( 1 1 ? ?DW@X Y $!,t228<=SWWWj.@.@.F.FGH'ww|R04'''4(7:ww?TVX7Y7_7_7a btq!Q b)/778T*"
X 	##H-44X>/7""8,))#.:BD7||H%++z/A/AADL11$..A B /? b a& !cs   
I%?I+I1c                   |d   }| j                  ||      sy |d   }|d   }t        |d         }| j                  |   }| j                  |   D ]I  }| j                  |   }||j
                  j                         v s/	 t        |j                  |   |        n t        j                  | j                  |         }	i t        j                  |	j
                        ||j                  |      i|	_        i t        j                  |	j                        ||i|	_        |	| j                  |<   y # t        $ r | j                  |      r Y  y w xY w)Nr   r   r   r   )_trial_exists_and_updatabler   r   r   r   r   keysr
   r   	Exceptionr   rL   r  )
rF   r   r   r   r   r   rv   prev_trial_id
prev_trialr   s
             r2   r   z1JournalStorageReplayResult._apply_set_trial_paramF  sZ   z?//#>&
"#9:+C,?@--h7!88B 	Mm4JZ..33554"00<l 	 		$,,x01
ii%
556JK
 [5+>+>!?Z\Z!&X ! 55c:s   ?D00EEc                t   |d   }| j                  ||      sy t        |d         }|| j                  |   j                  k(  r|t        j                  k(  ry t        j
                  | j                  |         }|t        j                  k(  rQt        j                  j                  |d         |_        | j                  |      r|| j                  | j                  <   |j                         r't        j                  j                  |d         |_        ||_        |d   
|d   |_        || j                  |<   y )Nr   rN   r   r   r   )r  r   r   rN   r   rL   r   r  r   r   r[   r`   r   r   r   )rF   r   r   rN   r   s        r2   r   z8JournalStorageReplayResult._apply_set_trial_state_valuesg  s   z?//#>3w<(DLL*000Uj>P>P5P		$,,x01J&&&#+#4#4#B#B3GWCX#YE --c2DL11$..A&.&7&7&E&EcJ]F^&_E#x=$x=EL!&Xr1   c                    |d   }| j                  ||      rbt        j                  | j                  |         }i t        j                  |j                        |d   |d   i|_        || j                  |<   y y )Nr   r   r   )r  rL   r   r   rF   r   r   r   s       r2   r   z>JournalStorageReplayResult._apply_set_trial_intermediate_value  s|    z?++Hc:IIdll845E)))E556)FS!56)E% &+DLL" ;r1   c                   |d   }| j                  ||      rpt        |d         dk(  sJ t        j                  | j                  |         }i t        j                  |j                        |d   |_        || j                  |<   y y )Nr   r}   r   )r  r   rL   r   r   r  s       r2   r   z5JournalStorageReplayResult._apply_set_trial_user_attr  s    z?++Hc:s;'(A---IIdll845ER$))E,<,<"=R[AQRE%*DLL"	 ;r1   c                   |d   }| j                  ||      rpt        |d         dk(  sJ t        j                  | j                  |         }i t        j                  |j                        |d   |_        || j                  |<   y y )Nr   r   r   )r  r   rL   r   r   r  s       r2   r   z7JournalStorageReplayResult._apply_set_trial_system_attr  s    z?++Hc:s=)*a///IIdll845E"))E../"m$"E &+DLL" ;r1   c                @   || j                   vr!| j                  |      rt        t              y| j                   |   j                  j                         rH| j                  |      r6t        t        j                  | j                   |   j                              yy)NFr   T)
r   r   rX   r   rN   r   r   r   rp   r   )rF   r   r   s      r2   r  z6JournalStorageReplayResult._trial_exists_and_updatable  s    4<<'--c2}--\\(#))557--c2.#**X8N8U8U*V  r1   N)r   r8   r   r   )ri   zIterable[dict[str, Any]]r   r   )rv   r   r   r   r   r   )rv   r   r   r   r   r   )r   r8   )r   z
int | None)r   r   r   r   )rv   r   r   r   r   r   )r   r   r   r   )r   r   r   r   r   r   )r#   r$   r%   rI   rh   r   rn   r   r   propertyr`   r   r   r  r   r   r   r   r   r   r   r   r   r   r  r0   r1   r2   r@   r@     s    	?26'
,&
%A	 C C E E236,HL+MZ'B'0	++
+r1   r@   )2
__future__r   collections.abcr   r   r   rL   r   enumrU   r=   typingr   r9   optunaoptuna._typingr   optuna.distributionsr	   r
   r   r   optuna.exceptionsr   r   optuna.storagesr   optuna.storages._baser   optuna.storages.journal._baser   r   optuna.study._frozenr   optuna.study._study_directionr   optuna.trialr   r   logging
get_loggerr#   rY   r   r   rr   IntEnumr   r4   r@   r0   r1   r2   <module>r0     s    " % $ $         + 1 A 5 5 2 6 ' ; < = , 8 $ # ..
#
#H
-(U 
t|| 
^![ ^!BU Ur1   