o
    ci                      @   s4   d dl mZ d dlZd dlmZ G dd deZdS )    )BoxN)PendulumEnvc                       sB   e Zd ZdZd
 fdd	Z fddZddd fdd	
Z  ZS )StatelessPenduluma3  Partially observable variant of the Pendulum gym environment.

    https://github.com/Farama-Foundation/Gymnasium/blob/main/gymnasium/envs/
    classic_control/pendulum.py

    We delete the angular velocity component of the state, so that it
    can only be solved by a memory enhanced model (policy).
    Nc                    sN   |pi }| dd}t j|d tjddgtjd}t| |tjd| _d S )Ngg      $@)r   g      ?)dtype)lowhighr   )getsuper__init__nparrayfloat32r   observation_space)selfconfigr   r   	__class__ f/home/ubuntu/.local/lib/python3.10/site-packages/ray/rllib/examples/envs/classes/stateless_pendulum.pyr      s
   zStatelessPendulum.__init__c                    s,   t  |\}}}}}|d d ||||fS )N)r
   step)r   actionnext_obsrewarddone	truncatedinfor   r   r   r      s   zStatelessPendulum.stepseedoptionsc                   s$   t  j||d\}}|d d |fS )Nr   r   )r
   reset)r   r   r    init_obs	init_infor   r   r   r!       s   zStatelessPendulum.reset)N)__name__
__module____qualname____doc__r   r   r!   __classcell__r   r   r   r   r      s
    	
r   )gymnasium.spacesr   numpyr   gymnasium.envs.classic_controlr   r   r   r   r   r   <module>   s    