
    &`iM                         d dl Z d dlZd dlZd dlZd dlmZmZ d dlm	Z	 d dl
mZ  G d de          Z G d de          Z G d	 d
e          Zd ZdS )    N)	AlgorithmAlgorithmConfig)override)resultc                   R   e Zd ZdZe ee          defd                        Zedefd            Z	 ee          d             Z
 ee          d             Z ee          d             Z ee          d	             Ze ee          d
                         Zd ZddZdS )_MockTrainerz Mock Algorithm for use in tests.returnc                 v    t                                          d                              dddddd          S )NtfF   r   )
mock_errorpersistent_errortest_variableuser_checkpoint_freqsleep)r   	frameworkupdate_from_dictclss    m/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/ray/rllib/algorithms/mock.pyget_default_configz_MockTrainer.get_default_config   sF     Yt__"'(-%&,-  	
    configc                     d S N )r   r   s     r   default_resource_requestz%_MockTrainer.default_resource_request    s    tr   c                 ^    | j                                         | _        d | _        d| _        d S )NF)r   callbacks_class	callbacksinforestored)selfr   s     r   setupz_MockTrainer.setup$   s+    4466 	r   c                    | j         j        r-| j        dk    r"| j         j        s| j        st          d          | j         j        rt          j        | j         j                   t          dddi           }| j         j	        dk    rD| j        dk    r9| j        | j         j	        z  dk    r!|
                    t          j        di           |S )Nr   z
mock error
   )episode_reward_meanepisode_len_meantimesteps_this_iterr!   r   T)r   r   	iterationr   r"   	Exceptionr   timedictr   updatetune_resultSHOULD_CHECKPOINT)r#   r   s     r   stepz_MockTrainer.step,   s     K"	*!##- $59] $ L))); 	*Jt{())) "RRVX
 
 
 ;+a//DNQ4F4F~ @@AEE{<dCDDDr   c                     t           j                            |d          }t          |d          5 }t	          j        | j        |           d d d            d S # 1 swxY w Y   d S )Nmock_agent.pklwb)ospathjoinopenpickledumpr!   )r#   checkpoint_dirr6   fs       r   save_checkpointz_MockTrainer.save_checkpoint>   s    w||N,<==$ 	&K	1%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s   AA Ac                     t           j                            |d          }t          |d          5 }t	          j        |          }d d d            n# 1 swxY w Y   || _        d| _        d S )Nr3   rbT)r5   r6   r7   r8   r9   loadr!   r"   )r#   r;   r6   r<   r!   s        r   load_checkpointz_MockTrainer.load_checkpointD   s    w||N,<==$ 	";q>>D	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"	s   AAAc                     dS )N)NNr   )env_specifierr   s     r   _get_env_id_and_creatorz$_MockTrainer._get_env_id_and_creatorL   s	     zr   c                     || _         |S r   r!   )r#   r!   s     r   set_infoz_MockTrainer.set_infoR   s    	r   Nc                     | j         S r   rF   )r#   sesss     r   get_infoz_MockTrainer.get_infoV   s
    yr   r   )__name__
__module____qualname____doc__classmethodr   r   r   r   r   r$   r1   r=   rA   staticmethodrD   rG   rJ   r   r   r   r   r      sf       **Xi
? 
 
 
  [
 o    [ Xi   Xi  " Xi& & &
 Xi   Xi   \       r   r   c                   V    e Zd ZdZe ee          defd                        Zd Z	dS )_SigmoidFakeDatazrAlgorithm that returns sigmoid learning curves.

    This can be helpful for evaluating early stopping algorithms.r	   c                 P    t                                          dddddd          S )Nd   r   r&   r   )widthheightoffset	iter_timeiter_timestepsr   r   r   s    r   r   z#_SigmoidFakeData.get_default_config_   s;       11"# 
 
 	
r   c                    t          d| j        | j        j        z
            }t	          j        t          |          | j        j        z            }|| j        j        z  }t          ||| j        j
        | j        j        i           S )Nr   r'   r(   r)   time_this_iter_sr!   )maxr*   r   rW   nptanhfloatrU   rV   r-   rY   rX   )r#   ivs      r   r1   z_SigmoidFakeData.stepl   s{    4>DK$6677GE!HHt{0011	T[ ! $ :![2
 
 
 	
r   N)
rK   rL   rM   rN   rO   r   r   r   r   r1   r   r   r   rR   rR   Z   sk        E E Xi	
? 	
 	
 	
  [	


 

 

 

 

r   rR   c                   R    e Zd Ze ee          defd                        Zd ZdS )_ParameterTuningTrainerr	   c                 P    t                                          dddddd          S )Nr&      r   )
reward_amtdummy_paramdummy_param2rX   rY   rZ   r   s    r   r   z*_ParameterTuningTrainer.get_default_configz   s;       11 ! ""# 
 
 	
r   c                     t          | j        j        | j        z  | j        j        | j        j        | j        j        i           S )Nr\   )r-   r   rh   r*   rY   rX   )r#   s    r   r1   z_ParameterTuningTrainer.step   sC     $ 6 G![3 $ :![2
 
 
 	
r   N)	rK   rL   rM   rO   r   r   r   r   r1   r   r   r   re   re   y   s]        Xi	
? 	
 	
 	
  [	

 
 
 
 
r   re   c                 2      G  fddt                     }|S )zCReturns dummy Algorithm class for if PyTorch etc. is not installed.c                       e Zd ZdZ fdZdS )8_algorithm_import_failed.<locals>._AlgorithmImportFailedAlgorithmImportFailedc                 "    t                    r   )ImportError)r#   r   traces     r   r$   z>_algorithm_import_failed.<locals>._AlgorithmImportFailed.setup   s    e$$$r   N)rK   rL   rM   _namer$   )rr   s   r   _AlgorithmImportFailedrn      s3        '	% 	% 	% 	% 	% 	% 	%r   rt   )r   )rr   rt   s   ` r   _algorithm_import_failedru      s?    % % % % % % % % % % "!r   )r5   r9   r,   numpyr_   ray.rllib.algorithms.algorithmr   r   ray.rllib.utils.annotationsr   ray.tuner   r/   r   rR   re   ru   r   r   r   <module>rz      s   				       E E E E E E E E 0 0 0 0 0 0 * * * * * *K K K K K9 K K K\
 
 
 
 
| 
 
 
>
 
 
 
 
l 
 
 
0	" 	" 	" 	" 	"r   