o
    `Û·i;  ã                   @   st   d dl mZ d dlmZmZ d dlmZ d dlmZ d dl	m
Z
mZ d dlmZ eG dd„ deƒƒZeejeƒ d	S )
é    )ÚAny)ÚActionConnectorÚConnectorContext)Úregister_connector)ÚOldAPIStack)Úclip_actionÚget_base_struct_from_space)ÚActionConnectorDataTypec                       sR   e Zd Zdef‡ fdd„Zdedefdd„Zdd	„ Zeded
e	fdd„ƒZ
‡  ZS )ÚClipActionsConnectorÚctxc                    s   t ƒ  |¡ t|jƒ| _d S ©N)ÚsuperÚ__init__r   Úaction_spaceÚ_action_space_struct)Úselfr   ©Ú	__class__© úV/home/ubuntu/vllm_env/lib/python3.10/site-packages/ray/rllib/connectors/action/clip.pyr      s   zClipActionsConnector.__init__Úac_dataÚreturnc                 C   sB   t |jtƒs
J dƒ‚|j\}}}t|j|j|jt|| jƒ||fƒS )Nz0Action connector requires PolicyOutputType data.)	Ú
isinstanceÚoutputÚtupler	   Úenv_idÚagent_idÚ
input_dictr   r   )r   r   ÚactionsÚstatesÚfetchesr   r   r   Ú	transform   s   ÿþüzClipActionsConnector.transformc                 C   s
   t jd fS r   )r
   Ú__name__)r   r   r   r   Úto_state!   s   
zClipActionsConnector.to_stateÚparamsc                 C   s   t | ƒS r   )r
   )r   r$   r   r   r   Ú
from_state$   s   zClipActionsConnector.from_state)r"   Ú
__module__Ú__qualname__r   r   r	   r!   r#   Ústaticmethodr   r%   Ú__classcell__r   r   r   r   r
      s    r
   N)Útypingr   Úray.rllib.connectors.connectorr   r   Úray.rllib.connectors.registryr   Úray.rllib.utils.annotationsr   Ú"ray.rllib.utils.spaces.space_utilsr   r   Úray.rllib.utils.typingr	   r
   r"   r   r   r   r   Ú<module>   s    