o
    $i                     @   s>  d Z ddlZddl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eeeeeee	e
eed
Zdddddddddd d!d"Zd#ed$efd%d&Zi d'd(d)d(d*d+d,d-d.d/d0d1d2d3d4d5d6d5d7d8d9d:d;d:d<d=d>d?d@dAdBdCdDdCdEdFiZdGefdHdIZdJefdKdLZdS )Mz;Registry of algorithm names for tune.Tuner(trainable=[..]).    Nc                  C   (   dd l m  m  m}  | j| j fS Nr   )ray.rllib.algorithms.apporllib
algorithmsappoAPPOget_default_config)r    r
   Z/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/ray/rllib/algorithms/registry.py_import_appo      r   c                  C   r   r   )ray.rllib.algorithms.bcr   r   bcBCr	   )r   r
   r
   r   
_import_bc   r   r   c                  C   r   r   )ray.rllib.algorithms.cqlr   r   cqlCQLr	   )r   r
   r
   r   _import_cql   r   r   c                  C   r   r   )ray.rllib.algorithms.dqnr   r   dqnDQNr	   )r   r
   r
   r   _import_dqn   r   r   c                  C   r   r   )ray.rllib.algorithms.dreamerv3r   r   	dreamerv3	DreamerV3r	   )r   r
   r
   r   _import_dreamerv3   r   r   c                  C   r   r   )ray.rllib.algorithms.impalar   r   impalaIMPALAr	   )r   r
   r
   r   _import_impala%   r   r!   c                  C   r   r   )ray.rllib.algorithms.iqlr   r   iqlIQLr	   )r#   r
   r
   r   _import_iql+   r   r%   c                  C   r   r   )ray.rllib.algorithms.marwilr   r   marwilMARWILr	   )r'   r
   r
   r   _import_marwil1   r   r)   c                  C   r   r   )ray.rllib.algorithms.ppor   r   ppoPPOr	   )r+   r
   r
   r   _import_ppo7   r   r-   c                  C   r   r   )ray.rllib.algorithms.sacr   r   sacSACr	   )r/   r
   r
   r   _import_sac=   r   r1   )
r   r   r   r   r   r    r$   r(   r,   r0   r   r   r   r   r   r    r$   r(   r,   r0   )r   r   r   r   r   Impalar$   r    r(   r,   r0   algreturnc                 C   s   | t v rt |   d S | dkrddlm} |jS | dkr$ddlm} |S | dkr0ddlm} |S | dkr<dd	lm} |S td
	| )Nr   script)script_runner__fake)_MockTrainer__sigmoid_fake_data)_SigmoidFakeData__parameter_tuning)_ParameterTuningTrainerzUnknown algorithm {}.)

ALGORITHMSray.tuner6   ScriptRunnerray.rllib.algorithms.mockr8   r:   r<   	Exceptionformat)r3   r6   r8   r:   r<   r
   r
   r   _get_algorithm_class`   s   rC   APPOTF1Policyzappo.appo_tf_policyAPPOTF2PolicyAPPOTorchPolicyzappo.appo_torch_policyCQLTFPolicyzcql.cql_tf_policyCQLTorchPolicyzcql.cql_torch_policyDQNTFPolicyzdqn.dqn_tf_policyDQNTorchPolicyzdqn.dqn_torch_policyImpalaTF1Policyzimpala.impala_tf_policyImpalaTF2PolicyImpalaTorchPolicyzimpala.impala_torch_policyMARWILTF1Policyzmarwil.marwil_tf_policyMARWILTF2PolicyMARWILTorchPolicyzmarwil.marwil_torch_policySACTFPolicyzsac.sac_tf_policySACTorchPolicyzsac.sac_torch_policyPPOTF1Policyzppo.ppo_tf_policyPPOTF2PolicyPPOTorchPolicyzppo.ppo_torch_policypolicy_classc                 C   s    t dd| j}|tv r|S dS )zReturns a string name for the provided policy class.

    Args:
        policy_class: RLlib policy class, e.g. A3CTorchPolicy, DQNTFPolicy, etc.

    Returns:
        A string name uniquely mapped to the given policy class.
    z_traced$ N)resub__name__POLICIES)rV   namer
   r
   r   get_policy_class_name   s   r]   r\   c                 C   s:   | t vrdS t |  }td| }t|| sdS t|| S )zReturn an actual policy class given the string name.

    Args:
        name: string name of the policy class.

    Returns:
        Actual policy class for the given name.
    Nzray.rllib.algorithms.)r[   	importlibimport_modulehasattrgetattr)r\   pathmoduler
   r
   r   get_policy_class   s   	

rd   )__doc__r^   rX   r   r   r   r   r   r!   r%   r)   r-   r1   r=   ALGORITHMS_CLASS_TO_NAMEstrtyperC   r[   r]   rd   r
   r
   r
   r   <module>   s    	
